Documente Academic
Documente Profesional
Documente Cultură
Good to know topics for a smooth SAP NetWeaver MDM 7.1 implementation
Copyright 2010 SAP AG. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice. Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors. Microsoft, Windows, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation. IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iSeries, pSeries, xSeries, zSeries, z/OS, AFP, Intelligent Miner, WebSphere, Netfinity, Tivoli, Informix, i5/OS, POWER, POWER5, OpenPower and PowerPC are trademarks or registered trademarks of IBM Corporation. Adobe, the Adobe logo, Acrobat, PostScript, and Reader are either trademarks or registered trademarks of Adobe Systems Incorporated in the United States and/or other countries. Oracle is a registered trademark of Oracle Corporation. UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group. Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc. HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C, World Wide Web Consortium, Massachusetts Institute of Technology. Java is a registered trademark of Sun Microsystems, Inc. JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape. MaxDB is a trademark of MySQL AB, Sweden. SAP, R/3, mySAP, mySAP.com, xApps, xApp, SAP NetWeaver, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary.
These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty. These materials are provided as is without a warranty of any kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. SAP shall not be liable for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of these materials. SAP does not warrant the accuracy or completeness of the information, text, graphics, links or other items contained within these materials. SAP has no control over the information that you may access through the use of hot links contained in these materials and does not endorse your use of third party web pages nor provide any warranty whatsoever relating to third party web pages. SAP NetWeaver How -to Guides are intended to simplify the product implementation. While specific product features and procedures typically are explained in a practical business context, it is not implied that those features and procedures are the only approach in solving a specific business problem using SAP NetWeaver. Should you wish to receive additional information, clarification or support, please refer to SAP Consulting. Any software coding and/or code lines / strings (Code) included in this documentation are only examples and are not intended to be used in a productive system environment. The Code is only intended better explain and visualize the syntax and phrasing rules of certain coding. SAP does not warrant the correctness and completeness of the Code given herein, and SAP shall not be liable for errors or damages caused by the usage of the Code, except if such damages were caused by SAP intentionally or grossly negligent. Disclaimer Some components of this product are based on Java. Any code change in these components may cause unpredictable and severe malfunctions and is therefore expressively prohibited, as is any decompilation of these components. Any Java Source Code delivered with this product is only to be used by SAPs Support Services and may not be modified or altered in any way.
Document History
Document Version 1.00 1.01 Description First official release of this guide for SAP NetWeaver MDM 7.1 Change chapter 4.4 System landscape for parallel and serial imports and moved to chapter 6.11 Parallel Import Change chapter 9.1.2 Disable stemming for matching to 9.1.2 Stemming for matching 1.02 Change chapter 5.10 Number of images
Typographic Conventions
Type Style Example Text Description Words or characters quoted from the screen. These include field names, screen titles, pushbuttons labels, menu names, menu paths, and menu options. Cross-references to other documentation Example text Emphasized words or phrases in body text, graphic titles, and table titles File and directory names and their paths, messages, names of variables and parameters, source text, and names of installation, upgrade and database tools. User entry texts. These are words or characters that you enter in the system exactly as they appear in the documentation. Variable user entry. Angle brackets indicate that you replace these words and characters with appropriate entries to make entries in the system. Keys on the keyboard, for example, F2 or ENTER.
Icons
Icon Description Caution Note or Important Example Recommendation or Tip
Example text
Example text
<Example text>
EXAMPLE TEXT
Table of Contents
1. 2. 3. 4. Business Scenario .......................................................................................................... 1 Related Information ......................................................................................................... 1 Prerequisites.................................................................................................................... 1 Architecture/ Landscape ................................................................................................. 2 4.1 4.2 4.3 5. Overview .................................................................................................................. 2 Network .................................................................................................................... 3 Number of servers .................................................................................................... 3
MDS .................................................................................................................................. 4 5.1 5.2 5.3 5.4 5.5 5.6 MDM Server Architecture .......................................................................................... 4 Concurrent users ...................................................................................................... 5 Memory usage .......................................................................................................... 5 Repository load time ................................................................................................. 6 Accelerator files ........................................................................................................ 7 MDM Server Client Requests .................................................................................... 8
5.6.1 Process Flow ................................................................................................ 8 5.6.2 Queue Handling Locking ............................................................................ 9 5.7 MDS.ini file parameter: CPU Count ......................................................................... 14 5.8 MDS.ini file parameter: "Max Threads Per Operation" ............................................. 14 5.9 MDS.ini file parameter: Extra DBConnection Validation ........................................... 15 5.10 Number of images .................................................................................................. 15 5.11 Performance for AIX ............................................................................................... 15 6. Import and MDIS ............................................................................................................ 16 6.1 6.2 Steps during update and import .............................................................................. 16 MDIS.ini File Parameters ........................................................................................ 17 6.2.1 Interval ....................................................................................................... 18 6.2.2 Chunk Size ................................................................................................. 18 6.2.3 Inter-Chunk Delay MS................................................................................. 19 6.2.4 No. Of Chunks Processed In Parallel .......................................................... 20 Slicing..................................................................................................................... 20 Registry parameters................................................................................................ 23 Bulk_Import_Silo..................................................................................................... 23 Cartesian Product ................................................................................................... 25 How to import lookup main ...................................................................................... 29
6.8 Importing single source field to multiple display fields .............................................. 32 6.9 Strategies for Attribute/Value Import........................................................................ 34 6.10 Excel Import............................................................................................................ 37 6.11 Parallel Import ........................................................................................................ 40 6.12 Transport of maps (value mapping) ......................................................................... 41 6.13 Import XML (XSD.exe) ............................................................................................ 42 6.14 How to avoid disappearing value mappings............................................................. 42 6.15 Difference between Value Exceptions and Import Exceptions.................................. 43
Limitation on number of source fields ...................................................................... 43 Limitation on import file size .................................................................................... 43 Port Sequence ........................................................................................................ 43 Access, Excel, complex XML not supported on Win64 ............................................ 45 Maximum multi-record value ................................................................................... 45
Syndicator and MDSS ................................................................................................... 46 7.1 7.2 7.3 7.4 7.5 7.6 Steps during Syndication ........................................................................................ 46 MDSS.ini Parameters ............................................................................................. 48 Syndication remote keys ......................................................................................... 50 Suppressing Initial Syndication................................................................................ 50 Field triggers for syndication ................................................................................... 51 Changed Records are not being syndicated .......................................................... 52
8.
Data Model ..................................................................................................................... 53 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 8.10 8.11 8.12 8.13 8.14 8.15 8.16 Performance considerations.................................................................................... 53 Number of main table fields..................................................................................... 54 Lookup tables ......................................................................................................... 54 Nested lookups ....................................................................................................... 55 Qualified tables ....................................................................................................... 55 Lookup main uni-/ bidirectional relationship .......................................................... 57 Tuples .................................................................................................................... 61 Validation Tuples vs. Validation on qualified table ................................................... 62 Key mapping........................................................................................................... 66 Change tracking...................................................................................................... 67 Calculated fields ..................................................................................................... 67 Keyword index ........................................................................................................ 67 Multi-Lingual Fields ................................................................................................. 68 Sort index ............................................................................................................... 69 Display fields .......................................................................................................... 70 Taxonomy............................................................................................................... 70
8.17 Relationships .......................................................................................................... 71 8.18 Workflow................................................................................................................. 71 9. Core Features ................................................................................................................ 72 9.1 Matching................................................................................................................. 72 9.1.1 Matching Performance ................................................................................ 72 9.1.2 Stemming for matching ............................................................................... 74 9.1.3 Matching Strategy: Match attribute values ................................................... 75 Stemming ............................................................................................................... 77 Workflow................................................................................................................. 78 9.3.1 Accessing the Workflows Table .................................................................. 78 9.3.2 9.3.3 9.3.4 10. Import and Workflow ................................................................................... 79 Completed Workflows ................................................................................. 79 Workflow Thread ........................................................................................ 79
9.2 9.3
11.
Portal Integration ........................................................................................................... 81 11.1 11.2 11.3 11.4 11.5 Portal MDM connectivity ...................................................................................... 81 Garbage Connections ............................................................................................. 83 How to find MDM 7.1 Portal Content build version ................................................... 83 MDM Web Services ................................................................................................ 84 MDM Web Dynpro Components.............................................................................. 86
12.
PI Adapter ...................................................................................................................... 88 12.1 Communication with MDS ....................................................................................... 88 12.1.1 Import - MDM PI Adapter to MDS................................................................ 88
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
1.
Business Scenario
This document describes challenges often experienced in SAP NetWeaver Master Data Management (SAP NetWeaver MDM) implementation projects. Besides the explanation of "technical" topics like Multithreading, Locking, and Scalability, there are also "application"-specific topics like Matching, Import Steps, and Syndication Steps discussed, and in addition data modeling recommendations are provided. All of this is given with the purpose of making your own implementation project smoother as well as providing an understanding of the internal architecture of SAP NetWeaver MDM.
As the way MDM handles some of the described topics will change in future releases, please check for further versions of this document. In addition please check the coming release notes for SAP NetWeaver MDM 7.1 SP06 for planned innovations to optimize performance, stability and supportability.
2.
Related Information
SAP MDM 7.1 Documentation Center: service.sap.com/installMDM How to guides: www.sdn.sap.com/irj/sdn/howtoguides Information Management/ Data Unification o Developing Applications on Top of SAP NetWeaver MDM - An Architect's Guide http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/7012ea38-6069-2c10-0097a95ad0b9fc21 o Best Practices Workflow for Master Data Management http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/50f1c01b-972d-2c10-3d9d90887014fafb o Best Practices for Repository Migration from SAP NetWeaver MDM 5.5 to SAP NetWeaver MDM 7.1 http://www.sdn.sap.com/irj/sdn/index?rid=/library/uuid/80765a21-78f3-2b10-74a2dc2ab57a1bd2 o How to Optimize an MDM Matching Process http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/408b8031-6fc42b10-c18b-a77abefb75b9 o How to Activate Field Triggers for Syndication http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/60a2b4e4-69932a10-0e9a-c6d720f1571b o How to Avoid Problems with Your Data Model in SAP NetWeaver MDM Do's and Don'ts http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d0d8aa53-b11d2a10-aca2-ff2bd42a8692
3.
Prerequisites
SAP NetWeaver MDM 7.1
December 2010
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
4.
Architecture/ Landscape
4.1 Overview
SAP NetWeaver MDM is based on a client-server architecture with several server and a variety of client components. User interfaces are provided for administrative task, repository design and for working with master data. MDM Server The MDM server is a standalone application implemented in C++ which is not running inside the SAP NetWeaver Application Server. MDM Server (MDS) is the core component of SAP NetWeaver MDM. MDM Repository An MDM repository certainly includes a database of information consisting of text, images, PDFs, and other data about each record. MDM Client Users can access the MDM functions using the MDM portal UI or a variety of client applications for the different MDM activities. MDM Import Server The Master Data Import Server (MDIS) automates the task of importing master data into MDM repositories. It allows you to import data automatically in conjunction with predefined inbound ports and import maps. MDM Syndication Server The Master Data Syndication Server (MDSS) automates the task of syndicating master data from MDM repositories. It allows you to export data automatically in conjunction with predefined outbound ports and outbound maps.
December 2010
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
4.2 Network
All MDM and DBMS servers should be installed in one LAN with a backbone of 1 Gbps. A network connection between MDM Servers and MDM clients should be at least 100 Mbps. All clients (console, data manager and so on) should reside inside the LAN. For clients connected via slower networks, the recommendation is to install client software on Windows Terminal Server, which should be in the fast network environment of the servers.
December 2010
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
5.
MDS
December 2010
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
For the memory usage, the defined width of 255 is not relevant, but the real-life fill rate is. This means that fields with a large field width definition do not lead to a high memory usage if the real-life fill rate is pretty low.
December 2010
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
nchar and nvarchar: Character data types that are either fixed-length (nchar) or variable-length (nvarchar) Unicode data and use the UNICODE UCS-2 character set. nvarchar(n): Variable-length Unicode character data n can be a value from 1 through 4,000 (4*1024). The storage size, in bytes, is two times the number of characters entered + 2 bytes. The data entered can be 0 characters in length. nvarchar (2000) corresponds to a storage size of 4000 bytes (Unicode character data) for each record.
December 2010
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
What can be done if the load process crashes? 1) Load without creating indices Nevertheless, the missing indices will be created. Only if step 1 fails: 1) Restart MDS 2) Verify, repair, and load with rebuild indices In version MDM 7.1 load immediate and load with indices algorithms were reviewed and modified to enable shorter load time: Load immediate is about 2-4 times faster (in average) Load with indices is about 2-3 times faster (in average) The improvements to the load times are highly repository dependent. The greatest improvements will likely be seen if any of the following apply: Usage of multiple CPUs and a large number of fields indexed Usage of a large number of key mappings Usage of a large number of small flat lookup tables This could result in even faster load times than mentioned above.
Not all data is loaded into memory. MDM needs continuously access to the DB. For example, PDF documents or images are loaded from Database on request and not during repository loading.
December 2010
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Load Repository Immediate o o o Loads indexes from accelerator files instead of being regenerated by reading the data them from the DB and creating the index. Automatically builds indexes stored in out-of-date accelerator files. Is usually fast.
Load Repository with Update Indices o o o Rebuilds all MDM indexes files by reading and indexing data stored in the DB. The results are flushed on disk as accelerator files. Necessary by repository schema changes or if any error occurs. Might take significant amount of time to complete.
December 2010
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
December 2010
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Multiple CPU is useful for read processes since reads occur in parallel. If one CPU is working at full capacity, the other one is still available to service read-only requests. Details of MDM locking: All MDM operations place either a shared or exclusive lock on the repository. This results in the following blocking behavior: o o o o Shared lock operations can occur in parallel with other Shared lock operations Shared lock operations block Exclusive lock operations. Exclusive lock operations block Shared lock operations Exclusive lock operations block Exclusive lock operations
MDM operations can be broken into short duration and long duration operations. The ones that are important here are the long duration operations because these may block other operations. Example A short duration Exclusive lock operations will block all other operations. But this is a minor concern since the operation is short, and therefore the wait time for the other operations will also be short. What is important are the long duration operations, since they may block other operations. Whether they block depends on the above matrix of Shared vs. Exclusive lock.
December 2010
10
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
The list of long duration MDM operations and their lock type follows: o o o o o o o Import - Exclusive Syndicate - Exclusive Modify many records - Exclusive Delete many records - Exclusive Add many records to workflow - Exclusive Check out, Check in, Roll back many records - Exclusive Match many records - Share
All other operations are considered short duration operations. The ones that modify data require an Exclusive lock, and the ones that just retrieve data require a Shared lock. To determine if two operations can be run in parallel, check the duration and Lock Type (Shared vs. Exclusive) of each operation and use the above matrix to determine if they will block each other. Example Match many records can occur simultaneously as Retrieve records since both are Shared lock operations. Match many records cannot occur simultaneously as Import since one is Shared and one is Exclusive. In this case one will occur first, and the other second. Note In a syndication process the read process ends up in a write process when the syndication date is written back to the database. This leads to an exclusive lock of the repository. (Syndication is actually multiple operations, most time is spent in Shared operations, but since there are operations that require an Exclusive lock, the entire Syndicate is just considered as an Exclusive operation). Note Check-in and Check-out operations performance was enhanced. Please see note 1415628. Note Record lock will be released when a user is trying to access the record, which was locked by a dead session, e.g. user application cut the network line, user application finished without destroying session, user session timed out. This means invalidated locks are not actually released on disconnect/expiration. Instead, they stay in place until another application wants to lock the affected record. At that time, locking code checks if the existing lock has a valid owner. If yes, locking fails. If not, the old lock is discarded and the record is locked by the new application. Important As the lock of a repository only takes a very short period of time, the user might notice this behavior only during parallel import, syndication of high volumes or during checking in/out of large volumes of records.
December 2010
11
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
The performance of import and syndication has been tremendously improved so the probability of noticing this effect is decreasing. Example 1: Single processing capability during import and syndication The Import locks the repository exclusively during the import of each batch. Therefore you cannot work on the repository during import and you cannot perform a parallel import. MDM server: CPU usage:
December 2010
12
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Recommendation Large imports, updates or syndications should be scheduled to times when it will not interrupt regular users. Example 2: The following picture shows the activity monitor of the Solution Manager Diagnostics.
Smith
1. Opening of huge maps by user Smith caused a read lock. Please see get matched numbers. 2. User C3VTOMDM tries to add an image at the same time. This is requesting a write lock. The write lock will be given when the task 1 is finished. The user C3VTOMDM waits. 3. All other read repository locks for user C2VTOMDM and C4VTOMDM are now waiting for the 2. request with the write lock to finish.
December 2010
13
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Example 3: Request for a server/repository read lock timed out Under the current locking model, when a user, for example, adds a field to a table, both the server and the repository get locked. When another user attempts to add a field to a table of another repository, the user is unable to lock the server. Until MDM 5.5 SP06 patch 3, users were waiting as long as necessary to acquire the locks. Starting with MDM 5.5 SP06 patch 3 and MDM 7.1, lock attempts time out in 2 minutes to prevent Consoles from locking up for long times. This is not an error and does not require server to be restarted.
December 2010
14
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Note This parameter does not limit the total number of threads used by MDS. Example A multi-core processor combines two or more independent cores into a single package. The individual core is normally a CPU. A dual-core processor contains two cores, and a quad-core processor contains four cores. Number of cores = 2 MDS will use max 1 thread per operation Number of cores = 4 MDS will use max 3 threads per operation
5.10
Number of images
If images are not categorized under Data Groups then each CRUD operation needs to show the thumbnail of all images and it can be slow. But usually images are categorized so that each time you show only the relevant data group, then it is very fast even with overall high number of images.
5.11
With MDM 7.1 SP03 SAP ships a build for AIX which is optimized for performance. This is based on an updated C++ run time library shipped by IBM, and the customer is encouraged to update his landscape to the relevant AIX C++ RTE release. This fix may significantly improve performance on AIX for single user operations. You can find more details at the following links: http://www-01.ibm.com/support/docview.wss?rs=2239&uid=swg21110831 Section: C++ Runtime Environment AIX 5.3 TL6 - AIX 6.1: XL C++ RTE for AIX, V10.1 July 2009 English international 64-bit versions of the released UNIX platforms. MDM on AIX requires AIX service pack 5.3.0.50, which can be downloaded from the IBM Web site. Also, MDM requires the IBM C++ Runtime Environment Components for AIX version 8 or higher contained in the Runtime package. This package can be found at: http://www-306.ibm.com/software/awdtools/xlcpp/ Please see note 1342611.
.
December 2010
15
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
6.
Generally, the following interdependent steps occur during import. During import, this process becomes more complex. Import Server processes data to MDS in batches, which are configured in the MDIS.INI file The source file is parsed to fill a batch The data is normalized, transformed, and mapped to MDM structures The batch of records is matched against the repository and MDIS determines the import action for each record Within each batch, Import Server may also include data not provided in the simple update process described above New lookup records are created including remote keys New attributes and text attribute values including remote keys are created The MDIS sends the batch of records to MDS and the Import Server continues its processing of source data in parallel. MDIS does not import records directly from import files. Instead, it imports a transformed version of the original record called the virtual extended record. This transformation is part of the overall process through which source data is imported into an MDM repository. MDS locks the repository as described in the previous chapters and processes the data; it releases its locks between each batch in order to allow clients to refresh MDIS processes import files in several steps: 1. Scanning Ports: MDIS regularly triggers a port scan. During the port scan it checks if files exist in the port folder structure that need to be imported. If the port scan finds files, it triggers an import. The actual import starts by separating a file into several chunks if its row count exceeds the chunk size defined in mdis.ini. This step takes usually only a few ms. 2. Structural Transformation Stage: The import file or import chunk undergoes a structure and value mapping where the source structure is mapped to the target structure and source values are replaced by target values. The number of executions corresponds to the number of chunks or files transformed. The time spent for the transformation depends strongly on the size of the import files. This means source tables are converted to a single virtual table following the rules of the import map. During the structural transformation stage, MDIS flattens all source tables in the import file into one virtual extended table. For text files, there is a 1:1 ratio of source table records to virtual extended table records (although the number of fields per record increases on the virtual extended table).
December 2010
16
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
For XML files, there can be a 1:many ratio of original records to virtual extended records, depending on the way record data is contained in the XML schema (Please see chapter Cartesian Product). Also during the structural transformation stage, MDIS applies any field transformation operations (cloning, splitting, pivoting, etc.) specified in the import map. If there are discrepancies between the structure of the tables in the import file and the structure in the import map (e.g. missing fields), MDIS will be unable to proceed. If this occurs, MDIS logs a structural error and moves the source file to a separate folder for manual processing in the Import Manager. 3. Value Transformation Stage. Source values on the virtual table are converted according to the rules of the import map. 4. Trigger Import: The transformed virtual records are imported into the MDM repository. The number of executions corresponds to the number of chunks or files imported.
December 2010
17
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
6.2.1
Interval
Interval= The number of seconds MDIS waits between scans of the MDM Server. For MDM 7.1 the files are immediately processed once theyre put into a ready-folder. This means MDIS directly picks up the file no special configuration is required. The parameter Interval is left in the MDIS.ini file as a safeguard. This means if MDIS should miss a notification, the port will be scanned at the latest following the interval definition.
6.2.2
Chunk Size
Chunk Size={number of records for each import chunk, default is 50000} The Chunk Size parameter defines the number of virtual extended records to include in a chunk. Typically, the smaller the chunk size the better, as smaller chunks can be processed faster within MDIS and also require less wait time in transactions between MDIS and the MDM Server. However, setting the chunk size too low can reduce overall performance because there is a fixed overhead per chunk. Example The import task downloads its own source file as a whole and processes it. If the chunk size is set to 20000, a file containing 50000 records is split into three files (20000/20000/10000).
December 2010
18
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Recommendation Chunk Size=50000 (default) Tweak this value slowly, as the larger the chunk size, the more memory is consumed by MDIS. Setting this parameter smaller reduces the time it takes MDS to process each chunk of records. Setting this parameter larger reduces the total time it takes MDS to process all the chunks. Since MDIS uses a multithreaded pipeline to process chunks, you should set the chunk size so that large imports are broken up into multiple chunks.
6.2.3
Inter-Chunk Delay MS
Inter-Chunk Delay MS= {delay between chunks, default is 0} The number of milliseconds MDIS waits between processing chunks of records to allow other clients access to MDS. Note Increasing this parameter gives MDS more time to process other client requests in between chunks.
December 2010
19
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
6.2.4
No. Of Chunks Processed In Parallel= {Number. The number of chunks processed simultaneously during streaming import} The chunks are created in parallel. Therefore multiple CPUs help create parallel chunks. The final import step in MDS is done sequentially and cannot make use of multiple CPUs. The No. of Chunks Processed in Parallel parameter optimizes the way chunks are processed within MDIS. Rather than wait for one chunk to pass through all three processing stages before starting work on the next chunk, MDIS instead moves chunks from stage to stage as each chunk is processed. This parameter determines how many chunks MDIS can manage simultaneously, counting one chunk per stage plus chunks queued between stages. Recommendation No. Of Chunks Processed In Parallel= 5 -10 Optimal setting depends on the available memory and processing power of the machine running MDIS. Minimum requirements = 4 GB available memory and dual-core processor. Increase the value from 5 to 10 in proportion to actual system specifications. Example A file with 10k records has to be imported. The chunk size is set to 2k and the number of parallel chunks to 5. When the structural transformation thread is finished with the first chunk, the chunk travels through the pipeline to be value transformed and imported. Meanwhile the structural transformation thread will break down the next 2k and prepares for travel into the pipeline. If the number of parallel chunks was set to 1, then the structural transformation thread has to wait until the 1st chunk was imported and is ready for re-use.
6.3 Slicing
When importing records into an MDM repository, the MDM Server (MDS) locks the repository from all other client activities in order to safeguard the integrity of the repositorys data. To maintain the safe and timely import of data without sacrificing performance for other MDM clients, a balance must be struck between the amount of time MDS devotes to importing records and the time it allows for processing requests from other clients. To help you optimize this balance, MDM 7.1 introduces the concepts of import slices and import sleep time. Import slices divide a set of import records into smaller groups (slices) for MDS to process. By breaking up a large import job into multiple slices, other MDM clients no longer have to wait until the entire import job is complete before their requests can be answered by MDS. Now, MDS can set aside time between processing each import slice to respond to requests from other clients. During this period, called the import sleep time, MDS becomes available to all other client activities. Once the import sleep time ends, MDS starts processing the next import slice. MDS continues alternating between import slices and import sleep time until the entire import job is completed. Both the number of records to include in each import slice and the length of the import sleep time can be customized by entering configuration parameters in the mds.ini file.
December 2010
20
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Example MDIS would send 50K records (the chuck size) to MDS for importing. On the MDS side, the 50K chunk would be sub-divided into 2K slices (the slice size). MDS is processing the import in small 2K slices, while the write lock is released in between the processing of the import slices during the entire 50K chunk import, and thus does not block other incoming requests for an extended period. This will allow other requests to be handled in between the processing of the import slices. The Import Slice Size Min and Import Slice Size Max parameters determine the average number of records to include in each slice. The higher the number of records in a slice, the more memory is required on the server hosting MDS and the longer the response time becomes for client requests to MDS. Too few records in a slice, however, can make the import process less efficient, as there is some overhead involved in each slice. Factors to consider when determining the optimal import slice size include: Available memory and processing power on the server hosting MDS Capabilities of the underlying DBMS The complexity of the target repositorys data model. The Import Sleep Time Max parameter dictates the length of the pause which MDS takes in-between processing each import slice. The higher this value is set, the longer it will take to complete the import job. The lower this value is set, however, the more likely it is that client requests are delayed. These configuration parameters and their recommended values are summarized in the following
December 2010
21
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Note In future versions of MDM, import slice sizes will alternate between the Min and Max values based on MDS activity levels. Currently, MDS only and always uses the average of these two values. Note Each of these parameters must be added manually to the server-level settings in the mds.ini file. If these parameters are not added to mds.ini or have no values set, their default values will be used. MDS Import Slice Size and MDIS Chunk Size Do not confuse Import Slice parameters with the MDIS parameter, Chunk Size.
The Chunk Size value tells MDIS how many records from an aggregated file set to process at a time. Once MDIS processes a chunk of records, it immediately sends this chunk to MDS for import into the repository. When MDS receives the chunk, the Import Slice Size setting controls how many records from the chunk it should process at a time (several slices may be required to process an entire chunk). You will want to experiment with both chunk and slice settings to achieve optimal import performance for your environment. Note Please see note 1329424, section MDM Import Server: Optimal MDIS Chunk and Slice size: The optimal MDIS chunk size to use in MDM is 2000 and the MDS slice size is 100.
December 2010
22
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Import Slice Size and Record Checkouts If you have configured MDM to check out records automatically upon import, MDS will check out all records in an import slice as part of processing that slice. Import Slice Size and Workflows If you are importing records into a workflow, the workflow is not launched until all import slices from an import package have been processed. An import package refers to the complete set of records received: From Import Manager or an Import Records API function; or From a set of import files aggregated by MDIS. Note The number of files which MDIS aggregates into an import package is controlled by a ports File Aggregation Count
6.5 Bulk_Import_Silo
Bulk Import Silo = True/False. Inreases import performance by optimizing SQL access methods. The mds.ini parameter BULK_IMPORT_SILO_LEVEL is deprecated. Instead the following two mds.ini parameters are used: Bulk Import Silo Safe Silo Mode
Bulk Import Silo is a Boolean value with default value true. During the bulk import, if this option is set to true, MDS will group multiple similar SQL statements into one Silo and execute it later.
December 2010
23
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Example MDS could group multiple insert statements into one bulk-insert operation which will run much faster than individual ones. When Bulk Import Silo is true, Safe Silo Mode (Boolean value) can be set to true/false and default value is false. If Safe Silo Mode is set to true, MDS will flush (execute) the silo whenever next SQL statement change type (insert/update/delete). If Safe Silo Mode is set to false, MDS will keep the Silos until the end of import and flush them altogether. This is by far the most efficient way of bulk import. So there're 3 level of optimization: 1. Bulk Import Silo = false: 2. Bulk Import Silo = true and Safe Silo Mode = true: 3. Bulk Import Silo = true and Safe Silo Mode = false: Recommendation We recommend option 3. Note Please also see note 1329424. no optimization partial optimization full optimization
December 2010
24
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
December 2010
25
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
In a real life example for the number of 2 records for Main Table and 5 nested structures with different occurrences per record this will lead to the import of 1860 records!
The increase of numbers of records is caused by adding Joins & Lookups. Due to better visibility of this topic in MDM 5.5 (in MDM 7.1 it occurs rather under the hood) well do the explanation of the root cause based on screenshots in MDM 5.5.
December 2010
26
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
In MDM 5.5, the record data contained in source XML files was staged in MS Access before being imported into MDM (right after connect to source). This staging process occurred in a virtual workspace and consisted of decomposing the hierarchically structured data in the XML file into a series of flat Access tables ("flatten) (users would later have to manually recompose the original data structure in the Import Manager). From a point in time this happens during creating joins and lookups in the Import Manager.
In MDM 7.1 XML is NOT converted into MS Access. Now the XML files are flattened in a MDM internal data format during the import (means after the user pressed the Import button). XML is converted into a staging area which preserves the hierarchy data. But right before import, these hierarchy data is converted into records ("flatten"). This is necessary as any source fields regardless of how nested they are can be mapped to any destination fields, and the only way to know the relationship between these source fields is to convert them into records. In order to not convert XML into records, heavy restrictions during field mapping would be needed, which allow import to directly translate the source hierarchy into repository => staging still happens, but its no longer visible to the user.
December 2010
27
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Recommendation o Perform several imports with simplified Import Maps. Split a single complex import map into individual maps - one to load the main table, and additional maps for each qualified lookup table. Split Import Files into several files with less segments o One for Main table only One for each Segment in XSD-Structure
Whenever possible, load all the reference data (flat/ hierarchy/taxonomy tables) before loading the main table.
Recommendation applied to our real life example leads to import of 43 records compared to 1860 records !
December 2010
28
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
December 2010
29
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
The source field must contain key values for the lookup table The destination value must have a key on the current remote system The destination values key must match a source field value
December 2010
30
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Example Product lookup main Supplier (multivalue) The source field contains multi-value key values for the lookup table.
The destination values keys do not match a source field value. Therefore set a Field Mapping Delimiter:
December 2010
31
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
The destination values keys are now matched to the source field values.
Lookup table has key-mapping disabled, the initial population of lookup table using both display-fields as matching key During Import into Main table only incomplete information regarding lookup -values is provided (Only ISO-Code, but no country name provided).
This means automapping of values doesnt work here. How to perform an efficient automated import of the values?
December 2010
32
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Solution: Enable Key-mapping for Lookup-table and use remote-key for matching during initial population.
For import in the main table mapping in Import Manager is much more comfortable.
December 2010
33
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Solution 1: o Challenges o o o o Each attributes defined as an own element !!!! => XSD-Definition could get very large New attribute in Taxonomy leads to enhancement in XSD-Definition => Repository needs to be unloaded for updates The more attributes you have, the slower the Import works In Import Manager each attribute needs to be mapped XSD-File Definition has attributes in own segment
December 2010
34
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Solution 2: o o o XSD-File Definition has attributes in own segment Attributes are defined abstract Attributes are unbounded in definition
December 2010
35
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
December 2010
36
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Advantages of solution 2: XSD structure is very simple structured o o o Doesnt change when additional attributes need to be created This means also no repository maintenance required Import Mapping very simple Only one field to be mapped to handle all attribute/value combinations !!!!
6.10
o o o
Excel Import
What is the influence of the regional settings? How should the different d ecimal separators , and . be handled in the import maps? How are the different formats of Excel are handled in Import Manager?
In the following business case Excel sheets are imported from different regions.
December 2010
37
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
December 2010
38
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
In the current release it is not supported to parse two different settings of the decimal point (/thousands) in source tables with the same map, since the current design is the ability to have only one setting per map. Recommendation o o Use only Numeric Excel formats for the prices as described in the previous slide If Text format should be kept, use two import maps if source is always known
Why is the Price formatted as Text in Excel interpreted as NUMERIC in Import Manager? For the interpretation of Import Manager not the format but the internal Data type Excel is using is relevant How to check the Excel Data Type Internal Data type:
December 2010
39
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
6.11
Parallel Import
You can place multiple repositories on the same server if sizing requirements are met.
Parallel imports to different ports of the same repository are not supported. However parallel imports to different repositories on the same server are supported. For parallel import/syndication a separate storage location for each repository should be used to improve performance. No additional hardware raid controller is needed. A redundant array of inexpensive (or independent) drives (or disks) (RAID) is an umbrella term for data storage schemes that divide and/or replicate data among multiple hard drives. They offer, depending on the scheme, increased data reliability and/or throughput. A RAID controller is a device which manages the physical storage units in a RAID system and presents them to the computer as logical units. External disk arrays are usually purchased as an integrated subsystem of RAID controllers, disk drives, power supplies, and management software. RAID adapters for use internal to a PC or server are sold either as embedded systems in the computer or as separate expansion cards.
December 2010
40
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
6.12
Exporting an Import Map in DEV and Importing the map in QA might lead to wrong value mappings during Import. What is going on?
The problem exists only when Value-mapping is used. In this case MDM uses internal ids which can be different from system to system to store the mapping info. System behavior in MDM 5.5 If an import map was created the structural and the value mapping was based on the internal id of the fields and the values. If the map was then transported from a Dev to a Quality system the internal ids might differ. As a result the maps had to be reworked. In MDM 5.5 it could happen as well, that field mapping and not only value mappings were lost. System behavior in MDM 7.1 The structural mapping is based on the Field code now. As there are no codes for the values, the value mapping is still based on the internal ids and not on the values itself. This means if the map was transported from a Dev to a Quality system the internal ids might differ again and as a result the maps have to be reworked. Recommendation Activate key-mapping for the respective table => the mapping will then not be performed on values but on remote keys (The decrease of file size of the maps by switching to key mapping is the positive side effect) or Manually adjust value mapping
December 2010
41
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
6.13
Starting with MDM 7.1 an additional file xsd.exe is required in order to process XML-Files with the Import Manager. To enable the MDM Import Manager to generate XML schemas from XML files upon import, the xsd.exe must reside in the same folder as the Import Manager executable. The xsd.exe is part of the Microsoft .NET Framework SDK (Software Development Kit) 2.0, which can be downloaded from the download center of the Microsoft web site.
6.14
During an Import with Import Manager value mappings are performed and saved in an already existing map. Loading the map again shows that some value mappings disappeared from the map.
There are two ways to save a map 1) Save saves only the current mapping s and disregards value mappings done in the past 2) Save update keeps previously made value mappings and adds the new ones to the map
December 2010
42
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Incoming Value A B C
Value in Repository 1 2 3
A new value D is part of the import -File, but has no integer values mapped to it. In this case the system doesnt know how to handle that value and as a consequence generates a value exception. Example for an Import exception In the MDM Console a field is defined as unique. There are three records stored in the repository. For record 1 the field has the value "17" record 2 the field has the value "18" record 3 the field has the value "21"
During an import a new record has to be created, however for the unique field it has e.g. the value "18" a value which already exists for that field in the repository. This would violate the uniqueness criteria for the field and thus Import Server would generate an Import exception. Import exceptions basically are raised for all other exceptions besides value exceptions and structural exceptions.
6.16
MDM 7.1 removed the limitation on number of source fields. It is now limitless where in MDM 5.5 SP6 it was limited to 255 fields because of the processing staging using MS Access (MDM 7.1 no longer uses MS Access as a staging area).
6.17 6.18
Lookup [Main] fields provide the capability to relate two main table records together using a unidirectional relationship from the origin record to the target record.
December 2010
43
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
It is necessary to import the Suppliers first so that references to them can be imported later on. Therefore there is a need for controlling of which ports should be processed first. Port Sequence: Port 1: Suppliers Port 2: Materials Important But now the following scenario could happen for which an (manual) exception handling has to be set up in your project. MDIS is permanently polling the ports. At present the default behavior is to exhaust all import files in a given port prior to scanning of the next port. So MDIS starts with Port 1 but does not find any files and goes on to port 2. Before MDIS polls port 2 input files will be placed in the corresponding ready folders: Port 1: Suppliers
Port 2: Materials
Now MDIS would go on importing files from Port 2. But in this the import could fail (corresponding to the map configuration) as the dependant supplier information is missing. In this example file import of ZZ_Product_E.xml will fail as the file with the supplier information SN239877523xxx.xml will not be imported in advance.
December 2010
44
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
6.20
Performance in SAP NetWeaver MDM Data Manager can be dramatically changed by altering the parameter Maximum multi-record value display in Record Detail pane in Data Manger configuration options. Here low values like 100 or less should be set.
December 2010
45
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
7.
The first step in the syndication process is the initialization of the table cache (this may take considerable amount of time depending on the number of lookup table records) Remote keys for the main table records are generated in a separate protocol command before the first chunk is retrieved from MDS; Remote keys are generated in one step for the entire set of records selected by the query Then the syndication port is locked; Port locks are held in MDS memory, not in the repository itself
December 2010
46
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Updating record timestamps for successful syndication happens inside MDS as part of saving files to the distribution ready folder (after the file blobs are successfully transmitted, unwrapped and persisted in the ready folder, we update the timestamps) Temp syndication files are then deleted After the syndication is completed (succeeded or failed), the port is unlocked. The syndication chunk size is the number of source table records (and all the nested sub records for mapped lookups) read from MDS in one transaction. Default is 100 records, but it can be configured for MDSS in its ini file (BLOCK_READ_SIZE entry), and for Syndicator in the registry.
Note The smaller the chunk size, the more responsive MDS is for other clients' requests, especially those with data modifications. With bigger chunk sizes (such as 5000), MDS may block the repository while the chunk data is prepared inside the transaction, although the delay highly depends on the syndication map and repository structure.
Note The record timestamps for a particular syndication request will be updated only after all its result files (there may be many if split by records) have been successfully moved to the ready folder. If MDS ran out of disk space, the incomplete syndication results will be removed and the record timestamps will not updated.
December 2010
47
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
The Log file is copied to MDSS memory, goes via TCP/IP to MDS and is then saved in the distribution port's log folder After that the temp log. File is deleted
December 2010
48
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Note MDSS does not assign a task to a remote system if there are no corresponding ports for that task type on that remote system. The Automated task syndicates only to Automatic|Continuous ports. It works in a continuous loop by syndicating to each continuous port on a remote system, on a repository-by-repository basis. After it finishes syndicating to all of a repositorys ports, the Automated task waits the number of seconds specified in that repositorys MDSS Auto Syndication Task Delay property before continuing. The settings can be specified in the global or repository specific section. Auto Syndication Task Delay (seconds) = The num ber of seconds MDSSs automatic syndication task waits after syndicating to all ports associated with the repository. Value copied from the corresponding property in MDM Console. The Scheduled task syndicates only to Automatic ports with Hourly; Daily; or Weekly values in their Port Processing Interval properties. Instead of looping, it sleeps until a syndication time is due for a port. The Manual task syndicates only to Manual ports which have syndication job requests from a Workflow or API waiting on them. It works in a continuous loop, scanning each Manual port on a remote system for syndication requests to fulfill. Like the Automated task, it works on a repository-byrepository basis. After it finishes syndicating all of a repositorys manual jobs, the Manual task waits the number of seconds specified in that repositorys MDSS Manual Syndication Task Delay property before continuing. The settings can be specified in the global or repository specific section. Manual Syndication Task Delay (seconds) = The number of seconds MDSSs manual syndication task waits after syndicating all requests from ports associated with the repository. Value copied from the corresponding property in MDM Console.
Note If more than one syndication request is waiting on a port, MDSS fulfills all requests on that port before it resumes scanning. Recommendation The number of ports for each repository should be limited due to performance reasons as far as possible. The MDM Server Check Interval (sec) is used to monitor repositories start/stop events. At the given interval, the main MDSS thread will get the list of currently running repositories and start or stop syndication tasks for each repository as necessary. The default value is currently 20 seconds. Note The parameter Auto Syndication Task Enabled is obsolete, with MDM 7.1 auto syndication is always enabled
December 2010
49
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
The parameters can also be adjusted in the MDM Console on server level
or repository level
December 2010
50
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
A workflow does the trick: o o Workflow called immediately after Record Update, Record add, Record Import Validation checks whether specific fields have changed One branch (called when validation returns true) triggers syndication (marks record for syndication) One branch stops the workflow (no action in this case)
December 2010
51
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
For further information please see the How to guide How to Activate Field Triggers for Syndication http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/60a2b4e4-6993-2a10-0e9ac6d720f1571b
December 2010
52
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
8.
Data Model
The data model is a cornerstone and one of the most important success factors during the MDM implementation. It needs to be planned carefully. With the following formulas, a hint of the influencing parameters is given and how they affect memory usage and CPU consumption.
December 2010
53
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Memory Usage Server Data modeling decision # of main table fields (# of records) * (# of fields) * (average size of field value) Caches only 100 result set records, so the number of fields has a minimal impact. Client
Minor impact for displaying records in results grid and detail pane.
December 2010
54
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Memory Usage Server Data modeling decision # of lookup table records In general: Main table-related data tends to overshadow lookup record memory usage If the statement above does not fit: (# of records) * (# of fields) * (average size of field value)
.
GUI clients cache lookup record display fields plus internal record information. More records use more memory.
More CPU cycles are required to produce the limited set of lookup records during the search execution.
Minor impact on building picklists. Minor impact receiving limited lookup table results.
Inspection percentage 2 10 1
December 2010
55
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
1001 2001
Munich Chicago
2 1
The qualified table associated to this qualified lookup field will have two fields, Plant and Inspection type as non-qualifiers, and the Inspection percentage and Max. inspection time as qualifiers. The different combinations of plants and inspection types are clearly limited in their numbers. In addition, choosing the max. inspection time as a non-qualifier would increase the number of records in the lookup table dramatically, besides the fact that from a logical/process point of view, it should not be defined as a non-qualifier. QM settings:
Non-qualifying fields Plant - Inspection type Berlin - Goods Receipt Berlin - Production Munich - Shipping Munich - Goods Receipt Chicago - Goods Receipt
Qualified field Max. inspection time 24 hours 2 hours 6 hours 12 hours 0.5 hours
Based on this design, the structure of the catalog concerning the quantity based pricing looks as shown below:
Material 1001
Lookup [QM Settings] Berlin Berlin Munich Munich Goods Receipt Production Shipping Goods Receipt Goods Receipt 2 1 2 1 24 hours 6 hours 72 hours 0.5 hours
10 2 hours
1002
Chicago
Example 2: Non-qualifying entries Qualified tables can hold millions of qualified links, but the non-qualifying entries (qualified lookup table) should be regarded as flat tables in terms of data amount.
December 2010
56
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Memory Usage Server Data modeling decision Qualified Lookup fields Additional indexes are required in addition to simple lookup fields. Cached qualifier fields are similar to main table fields in memory usage, but are multiplied by the average number of qualified links for each record. Minor impact. Only the currently selected records qualified links are cached. Client
Additional processing required to process searches on qualifier fields and to limit qualifier lookup fields. If any qualifier field is not cached, SQL is used in the search and limiting. This is significantly slower than the MDM in memory indices.
Minor impact. Only the currently selected records qualified links are cached.
December 2010
57
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Lookup [Main] fields provide the capability to relate two main table records together using a unidirectional relationship from the origin record to the target record. When the lookup [main] field resides in a tuple, additional fields can be used to qualify the relationship. This is a unidirectional relationship in that the lookup [main] field belongs to the origin record and is not visible in the target record. For data ownership and editing some of the functionality needs to be bidirectional. The bidirectional link between main tables is planned to be supported with the next major release. For the current release there are two workarounds. A) One look-up main field from table Products into Supplier and one look-up main field from table Supplier into Products (as part of a tuple construct). Shortcoming: There is no automatic update of the relationship from both sides i.e. the second look-up is not updated and needs to be maintained manually. This endangers the data consistency.
December 2010
58
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
December 2010
59
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
B) A dedicated main table storing only relationship information e.g. table Product_Supplier_Relation containing 2 look-up fields into tables Products and Suppliers. This way, you can search in both directions and the relationship is valid and updated for both sides. Shortcoming: This only would work if the data volume, which is intended to be managed, is not too high. Keep in mind the multiplications that can appear in the mapping table. Besides the volume factor, the redundancy in the mapping main table is another shortcoming of this workaround.
December 2010
60
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
8.7 Tuples
A tuple is a record template that groups together a set of related fields into a reusable object or type definition that describes or composes a particular object or type
The increment of memory and accelerator size is due to a new type of keyword indices (N-Gram) that were added in version 7.1. These indices are created side by side next to the original keyword indices for a tuple field which has keyword index on. For fields in a qualified table with keyword index on, only original keyword indices are built. The sizing requirements for hardware are higher when using Tuples instead of Qualified tables. See the above table for estimates of these requirements. The sizing formulas will be modified to reflect the impact and will be published in the next version of the Guide after we complete tests on other types of repositories. For further information please see the sizing guide.
December 2010
61
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
December 2010
62
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
To create a validation on a tuple , select the Validations tab and the corresponding tuple from the menu in MDM Data Manager:
Create the validation expression. As stated above, all member fields can be used:
Examples:
December 2010
63
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Ship-To and Bill-To Addresses are filled; Postal Code is missing for Bill-To Address
Example Validation on the main table Shipments into foreign countries will be handled differently to domestic shipments, so the respective validation should run on the ship-to address only. Here, you would need a validation on the main table. To create a validation on the main table , switch to Validation tab in MDM Data Manager and select the main table.
December 2010
64
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
As stated above, for multi-valued tuple fields only the record is supported:
For single-valued tuple fields both are supported, record and member fields: Note The same restrictions as described above apply to assignments, i.e., only the record of multi-valued tuple fields can be used in assignments whereas all member fields can only be used for single-valued tuple fields. Note A callable tuple validation can only be called from within another tuple validation. It cannot be called from within a validation. For more details about validations for tuples, please refer to the MDM 7.1 Data Manager Reference Guide, available on SAP Service Marketplace http://service.sap.com/installmdm71.
Validation behavior CAUTION The validation for multi-valued tuple fields and qualified lookup table fields might behave differently, see example below. Please test all your validations after having migrated.
December 2010
65
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Example In the following example we check if the qualifier Manufacturer Part Number is filled using the function IS NOT NULL in the validation expression.
For the qualified lookup table field, the validation result is TRUE if at least one record is not null, it is FALSE only if all records are empty. For the tuple field, the validation result is TRUE only if all entries are not null, it is FALSE if at least one entry is empty.
Validation failure Assuming, you created a validation using a multi-value field either based on a tuple record or a qualified lookup table. In case of a validation failure, you wont see which tuple record or qualified table record caused the error. Furthermore, for tuple fields where the same tuple is used multiple times, you wont see which tuple field caused the error.
Memory Usage Server Data modeling decision key mapping (# of records) * (# of remote systems) * (average size of key) No impact. Client
No impact.
If key mapping is enabled but the remote keys are not filled, it will have no impact on performance and sizing.
December 2010
66
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
8.10
Change tracking
The Change Tracking table tells the Master Data Server (MDS) which data modifications to track. Each entry set to Yes will cause the MDS to write one or more rows to the History table in the DBMS depending on the operation. Set the entries to No when tracking is not needed. For example, setting a field such as the Products ->Name field to Yes causes one row to be written when a record is added or deleted or when that particular field is modified. Setting all n fields in a table to Yes will cause n rows to be written with a record when it is added or deleted. For example, setting a field such as the Products->Name field to Yes will cause one row to be written when a record is added or deleted, or when that particular field is modified. Setting all x fields in a table to Yes will cause x rows to be written when a record is added or deleted. Moreover, if you have marked the taxonomy lookup as Delete=Yes, for each linked attribute a record will be written to the Change Tracking table. Tip For Best Practices to Archive MDM change tracking table A2I_CM_HISTORY please see note 1343132.
8.11
Calculated fields
Calculated fields are calculated each time a repository is loaded. The fewer calculated fields a repository has, the less CPU-consumption this causes during repository load. Calculated fields are updated when a record is added or updated. Note The import process does not update calculated fields. You must manually trigger a recalculation after import. Recommendation The number of calculated fields has an impact on performance. It is dependent on the complexity of the calculation. A calculated field with a simple calculation will require about the same processing as a non-calculated field. Calculated fields often use a search parameter. Therefore check the alternative use of callable expressions. When creating expressions, avoid using string functions and nested If statements.
8.12
Keyword index
We do not recommend that you use a keyword index on unique fields. This information would be stored in memory and is of no additional use as the field itself is unique and therefore needs no index.
December 2010
67
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Example A Description field is an example of a field you want to keyword; even though the total number of words for all records will be large, the number of distinct words will be small because they are most likely all words from the dictionary. A Part Number field is an example of a field you should not keyword because it is likely to contain a different value for every record. Consider also using free form search instead of enabling fields for keyword search. Memory Usage Server Data modeling decision keyword index Mostly dependent on the number of records since the number of unique keywords tends to be small (fewer than 20,000). However, setting a unique field as keyword=normal will flood the keyword list and use a large (400 bytes per unique word) amount of memory No impact. Minor impact on create, read, update and delete of key worded objects (attributes and records). Setting a unique field as keyword=normal will flood the keyword list, making updates and searches slow. No impact Client CPU Consumption Server Client
If you define Keyword = Normal for your fields, you will have a big impact on the load repository process and on the virtual memory (VM) size used at runtime. It might cause overheads when adding, deleting or updating records. Set Keyword = None whenever there is no need for a keyword definition and where the number of unique values in this field is not too high. For example, Part Number is definitely NOT a candidate for having Keyword = Normal. A lookup table display field is not a candidate either, it is now set to Normal by default, but there is no need to do this. Recommendation Try to eliminate the use of keyword index for fields where it is not necessary and do not use keyword index on unique fields.
8.13
Multi-Lingual Fields
The shipped standard repositories are designed to support numerous languages. These languages add overhead to the system, so it is recommended that you delete all unnecessary languages remember that a language can always be added to a repository later on. Also, for completely new designed repositories, only the required languages should be activated If a field is set to multilingual, the data will be replicated on each level. By default, this attribute is set for all text fields.
December 2010
68
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Note Memory usage in server overhead as it multiplies data storage, sort index storage for multilingual fields by the number of languages and server CPU consumption as it increases text fields update due to language inheritance. Indexes need to be updated for all languages; even if only a single language layer is changed. Recommendation MDM performance is affected by the number of languages-specific fields (multiplication of Languages number and fields count). Therefore it is advised to minimize the number of Multi-Lingual fields as much as possible.
Memory Usage Server Data modeling decision Multilingual Multiplies the data storage and sort index storage for multilingual fields by the number of languages. No impact. Client
Moderate increase in updating of text fields due to language inheritance. Indexes need to be updated for all languages, even if only a single language layer is changed.
No impact.
8.14
Sort index
Sort index property allows a field be sorted by the Data Manager in Records mode and also by APIs. Sorting requires indexing which consumes additional memory for the indices. The indices are recreated when a repository is loaded, thus effect performance during repository loading time and also affect import activities. Recommendation Since sort indexes affects MDS performance, it is advised to eliminate its usages as much as possible. Memory Usage Server Data modeling decision Sort index 4 bytes * (# of records) * (# of sort indexes). Note that multilingual fields use one index per language. No impact. Medium impact on record CRUD (soon to be improved). Free Form equal to or starts with search should only be used on fields with a sort index. No impact. Client CPU Consumption Server Client
December 2010
69
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
8.15
Display fields
A display field for a table is a field whose value is used as: (1) the corresponding lookup field value for each record (2) the node name for the record in hierarchy trees (3) the name of the record in the Product Relationships popup window When a table has multiple display fields, the value that is used for each record is the value combination of the display fields, with each pair of values separated by a comma (,). Display fields are used to create a non-technical key for the main object and the sub-objects and to determine the fields shown to the user in case of a lookup relationship. Recommendation Carefully evaluate which field should be used as a display field. The combination of the display fields should be a unique key in the system. Handle the usage of display fields like the unique fields definition. It is recommended you do not use more than three display fields. The UI clients cache all display fields of non-main table records. More display fields require more memory.
Memory Usage Server Data modeling decision Display field No impact. The UI clients cache all display fields of non-main table records. More display fields require more memory. Client
Minor impact at UI client login to construct the combined display string for all lookup records. Minor impact for API searches that request back the combined display string since it is generated for each request.
Minor impact for Data Manager import/export since display fields will be parsed.
8.16
Taxonomy
The memory usage of MDS depends mostly on the number of record-attribute values which is (# of main records) * (average # of attributes linked to a category). The GUI clients cache all Attribute definitions including Feature Text Values. If you have many of them, the time of client login depends on this. The caches are filled with all fields and values of the repository. The attribute definition including all feature values exists only once. It can be linked to multiple nodes in a hierarchy. You can think of an Attribute definition as a table, and its set of Feature Values as records.
December 2010
70
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Memory Usage Server Data modeling decision Taxonomies Depends mostly on the number of record-attribute values which is (# of main records) * (average # of attributes linked to a category) The GUI clients cache all Attribute definitions including Feature Text Values. Client
Additional processing required retrieving record attribute values. Search processing is similar to lookup fields. Limiting of attribute values mostly depends on the number of unique values, similar to limiting a lookup field.
Additional time needed to load and construct attributes at startup. Minor impact on managing the Attribute grid in Taxonomy mode.
8.17
Relationships
Memory Usage Server Client CPU Consumption Server Client
Data modeling decision Relationships Minor impact. Only the counts are cached. No impact. Minor impact on Record Delete in order to remove relationships. No impact.
8.18
Workflow
The workflow will be kept in memory even if the status is completed. Delete the workflow items on a regular basis. Please see also chapter 9.3 Workflow.
December 2010
71
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
9.
Core Features
9.1 Matching
9.1.1 Matching Performance
A matching run might last very long. What are the influencing parameters and what matching strategies can be used to improve performance? How is an operation calculated? Influencing parameters for matching time are: o o o o Number of matching rules Function Equals vs. Token Equals Number of source records Number of target records Example The number of operations for 3000 x 50000 records is 3000 multiplied by the number of rules in the matching strategy. In the strategy MDM_Persons there are 4 rules, so the number of operations (displayed when the matching is run) is 12000.
Note It takes less time to perform an operation if function Equals is used due to the number of specific comparisons.
December 2010
72
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Recommendation Use workflow to plan nightly matching run and persist matching results Try to reduce the number of tokens By using transformations matching rules. Matching runs on the transformed field. BUT: Transformations are performance intensive if a large number of records is involved.
By creating an additional matching field in the data model and filling it via import using value conversion filters (Replace (, ), AG, Corp, .). Matching runs on the additional field.
December 2010
73
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
In addition please consider the following topics: Matching is done asynchronously. This means if during a matching run the Data Manager is killed by the user, the matching task still runs on the MDM server. A very large matching run might freeze the Data Manager (UI freeze) that started it. But it will be possible to log on from another Data Manager. A performance issue associated with executing very large matching strategies in real-time might impact the usability of other logged in users if only one CPU is available. The result of the matching is stored in memory, but the scores are calculated when the source record is selected. This means that a change of a record during the matching run is considered, and might lead to a different result if the value of the matching fields has been changed for that record after the record was considered in the matching run. Note With SAP NetWeaver MDM 7.1 SP02 (and and 5.5.64) Multithreaded Matching is enabled using the following mds.ini setting: Multithreaded Matching=True. Multi-threading means a single matching request can be spread across multiple threads. Current multi-threading: 1) Does not help the transformation process when starting a matching request. 2) Is essentially blocked in 5.5 when using token equals 3) Reserves one core for other system request (you need to have more than 2 cores to use this feature).
9.1.2
With the introduction of MDM 5.5 SP04 the stemming engine can be also used for matching (MDM tokenizing). MDM tokenizing for matching can be done either with the Stemmer algorithm, or with internal MDM algorithm. Stemmer algorithm is depended upon language and preconfigured linguistic rules; therefore it is difficult to predict the matching results. MDM Internal tokenizing algorithm uses non alpha-numeric characters as token delimiters. When a token contains numeric characters (with or without alphabetic characters), the following characters are allowed to be part of the token: - . , / To activate MDM Internal algorithm for tokenizing, disable the Stemmer by setting the Stemmer Install Dir parameter value in MDS.INI to be empty.
December 2010
74
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Stemmer Install Dir= Note For further information please see note 1452067.
9.1.3
The following chapter describes how to create a matching strategy to match attribute values. To identify duplicates there is the need to compare the taxonomy values. The comparison of the category might be not sufficient.
Attributes usage and fill rate must be analyzed before implementing any of these methods, to minimize the list of attributes which are matched as part of the strategy. Listed below are the alternate methods which can be combined together to achieve best matching results and performance. The general idea is to use the equal function instead of Token equals to improve performance. o Import the attribute values into the matching fields (in addition to the taxonomy attributes). Advantage: Repository loading time is not damaged because of calculated fields. Disadvantages: The list of matched attributes is not dynamic; it is embedded in the repository schema. Import maps should be modified. o Calculated fields holding distinct attribute values. Advantage: The list of matched attributes is dynamic; it is determined by the calculated field expressions.
December 2010
75
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Disadvantage: Repository loading time is higher because of calculated fields. o Calculated field holding concatenated mandatory attribute values. Advantages: Only single field is matched for all attributes. The list of matched attributes is dynamic; it is determined by the calculated field expressions. Disadvantages: Repository loading time is higher because of calculated fields. The concatenated attribute values should not be NULL. Example: Calculated field holding concatenated mandatory attribute values For a matching on attributes an additional field is populated with mandatory taxonomy attribute values. 1. Add taxonomy match field to the main table
2. Add callable validations for calculation of Matching Attributes field To define the mandatory attributes within a repository following steps can be performed 1. Select the taxonomy branch at the Data Manager search pane. 2. Use the attributes search pane to find attributes with no NULL value. 3. Attributes can be added to the calculation expression
December 2010
76
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Note Be aware that an attribute is not mandatory any more if a new record is imported that has a Null value for a mandatory attribute.
9.2 Stemming
When searching for keywords using the Progressive operator, MDM uses the Inxight stemming engine (if installed) to extract the stem (or base form) of the entered search words. Base forms are simply the form of the keyword found in the dictionary. With keyword stemming, MDM finds records containing the search words you entered, plus record containing any variants of your search words, saving you the hassle of performing multiple searches or simply not finding all of the records you were looking for. Three preconditions exist: 1. For the relevant field the keyword setting has to be set to normal
3. The InXight stemming engine has to be installed under the path defined in the mds.ini
When searching for keywords using the Progressive operator, MDM uses the Inxight stemming engine to extract the stem (or base form) of the entered search words.
December 2010
77
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
Inxight stemming engine is included as part of MDM Installation. The path for the stemmer in the ini file should point to the location of the lang directory. If you open the Lang directory you can see the stemmer files for all the different languages.
Keyword needs to be defined in MDM 7.1 as Stemmer but this is just a renaming and it should automatically rename during upgrade from MDM 5.5.
MDM 5.5
MDM 7.1 Using stemming makes it easier to search since you dont have to remember the exact word. For instance if you have records containing the following values in the keyword defined field: see, saw, and seen, then a keyword progressive search for see will return records containing saw and seen as well. This is of course also a business decision if this behavior/ result is required!
9.3 Workflow
9.3.1 Accessing the Workflows Table
It is possible, given certain conditions, that the Workflows table cannot be accessed in Data Manager. 1. You havent installed the Workflow component MDM 5.5 only 2. The Operating System user you logged into your computer with doesnt have write access to the following registry keys 32 bit Operating System HKEY_LOCAL_MACHINE/SOFTWARE/SAP/MDM 5.5 HKEY_LOCAL_MACHINE/SOFTWARE/SAP/MDM 7.1
This problem and the solution are also explained in SAP Note 1300651.
December 2010
78
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
9.3.2
A record can only be in one workflow job at a time. Please check the following example when a workflow is triggered via an import: 1. File 1 includes record A and record B 2. File 1 is imported and a workflow is started 3. File 2 includes record A and record C 4. File 2 is imported This would lead to the conflict that record A is already part of an active workflow job. Therefore File 2 will be put into an exception folder. It will not be split or automatically retried. It will be handled as any files that fail to be imported.
9.3.3
Completed Workflows
With MDM 5.5 or MDM 7.1 there is no automatic deletion of workflows with status "Completed". As a consequence the list of workflow jobs with status "Completed" might be long. These completed jobs are loaded into memory while the repository is loaded. It not only takes up the memory but also affects the software's performance. The number of completed workflow jobs should be decreased. In the current release there are only two possibilities: 1. Delete manually the workflow list with status "Completed". 2. Use the MDM Java API code utility to delete workflow list with status "Completed", it can be run with scheduler after packing it into JAR file (Please see note 1240587).
9.3.4
Workflow Thread
When MDM auto-launches a job based on a max records or max time threshold setting, you should expect up to a to a five-minute delay before the job is actually launched, since the workflow thread sleeps and wakes up every five minutes. If a syndication step is triggered within the workflow, the workflow will listen to the notification coming back from the syndication process. The job will proceed immediately after receiving the notification back without delay.
December 2010
79
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
10. JAVA-API
10.1 Notifications (Events)
The MDM Java API allows you to build an application that can receive notifications about events e.g. record added, record up dated, etc that occur in MDS. An example of this would be to perform complex validations on a newly created record that cant be done using MDM validations. CAUTION The one comment of note to be made about this functionality is that these notifications are not guaranteed to be delivered to any application that is registered to receive them. Once the Master Data Server sends the notification that an event has occurred, it doesnt have any way to know if the notification was received and will not resend the notification under any circumstance.
December 2010
80
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
The connection between the portal and the MDM Server works with user mapping only. From 7.1: User mapping is not obligatory. All MDM Java applications connect to MDS via Java API and MDM Connector, using either Trusted Session or Authenticated Session: Trusted Session The MDS is configured with a list of trusted connections. These connections are specified using their IP address Authentication: only user names are passed to MDM Possibility of change tracking based on portal user For further information please see the MDM 7.1 Security guide Authenticated Session Authentication: user name and password are passed to MDM (User Mapping only) Authenticated Session Either the portal user itself or the user group is mapped to MDM repository user(s). In this case the mapping data is inherited from the group. The same can be achieved by using roles.
Recommendation Create user groups and map the portal user group to an MDM repository user. Trusted Session Trusted connections enable users from safe machines to access MDM Servers and repositories using their sign-on credentials only (without having to additionally provide MDM Server and repository passwords). Note Trusted connections are currently available to SAP system usernames only. Note Users must still provide a DBMS password for operations which require a connection to the DBMS.
December 2010
81
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
There are three basic elements in a trusted connection. Trusted System. The machine sending the connection request. Authenticated User. The username signed on to the trusted system. MDM Server. The MDM Server receiving the connection request.
Trusted systems are identified by IP address in a special file (allow.ip). In this file, you can enter IP addresses for individual machines or for an entire subnet. Requests from IP addresses not included in this file are automatically denied. An optional file, deny.ip, lets you restrict specific IP addresses. Note You must create the allow.ip and deny.ip files, they are not created automatically by MDM. By default, the MDM Server looks for allow.ip and deny.ip in the folder containing the MDM Server executable file (mds.exe). You can change this location by modifying the TrustFilesDir parameter in the MDM Server configuration file (mds.ini). In order for users to connect to an MDM repository from a trusted connection, their usernames must exist on the MDM repositorys Users table. Alternatively, if the MDM Server is configured for LDAP use, the username must exist in the LDAP directory referenced in the MDM Server configuration file. If no matching username is found on the Users table or LDAP directory, access to the MDM repository is denied. Once connected, users are permitted access to MDM repository data and functions based on the MDM role(s) assigned to their MDM or LDAP usernames. SSO Support The connection to MDM via the SAP logon ticket will be supported Only for iViews and Web services. The ticket evaluation is done by the portal and not by the MDS as such this is not real SSO. The user will be extracted from the ticket and propagated to MDS Prerequisites: Trusted Connection AS-MDS configured Same users in Portal and in MDS: LDAP directory or users replication The User Management properties will not be added to MDM System object Example 1. The MDS is configured with a list of trusted connections by adding the IP address of the Portal AS to the allow.ip file of the MDM server 2. User login in the Portal with user ID and password 3. Portal validates user against LDAP or User Management 4. Call of MDM iViews 5. Portal sends user ID but NO pw to MDM for login. Authentication: only user names are passed to MDM. No user mapping necessary 6. MDM recognizes AS/ Portal as trusted server 7. MDM validates user ID
December 2010
82
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
...
11.2
Garbage Connections
There might be a lot of connections remaining even after logging off from portal, by looking at the MDM console. These dead connections won't have significant performance impact.
December 2010
83
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
How to read this detailed information: aa - Service Pack level. bb - build number. yyyy - Year of creation (of the .sca file) mm - Month of creation (of the .sca file) dd - Day of creation (of the .sca file) HHMMSS - Hour of creation (of the .sca file) For example: if you see that the detailed information is 1000.7.1.2.59.20090413174341 then you are using 7.1 SP02 build 7.1.02.59 that was created in 13/04/2009 at 17:43:41 Please see note 1361165.
11.4
Web services for MDM are open interfaces to the MDM Server. They are based on the Simple Object Access Protocol (SOAP) and Web Services Description Language (WSDL) standards. Key Features Data management capabilities (create, read, update, and delete) Access to central key mapping (create, read). Synchronous access to MDM
The Web Services solution consists of two modules: Design time the Web Services Generator Runtime the Generated Web Services
December 2010
84
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
The MDM Web Service design time software component must be deployed on: A J2EE engine of the SAP NetWeaver 7.0 installation (minimum SP number 15) or A JEE5 engine of the SAP NetWeaver 7.1 installation (EH1) CAUTION There are two versions of the Web Services Generator make sure that each version is deployed on the appropriate NetWeaver Java AS. MDM 7.1 server (minimum 7.1.02.51)
The MDM Web Service runtime software component must be deployed on: A J2EE engine of the SAP NetWeaver 7.0 installation (minimum SP number 15) or A JEE5 engine of the SAP NetWeaver 7.1 installation (EH1) CAUTION There are two different software component archives (SCA files), one that is compatible with the Java AS 7.0 and one that is compatible with Java AS 7.1 MDM 7.1 server (minimum 7.1.02.51)
December 2010
85
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
11.5
MDM Web Dynpro Components are ready-made granular UI building blocks that are configurable and reusable and reduce the effort needed to create custom applications. Planned MDM Web Dynpro Components Result Set Item Details (CRUD) Search Building a Stand-Alone Web Dynpro Application Consuming an MDM Web Dynpro Component in an SAP NetWeaver Business Process Management (BPM) Process
A Web Dynpro Project is configured prior to configuring a MDM Web Dynpro Component (Item Details, Result Set or Search). The project acts as a container for the configured components. During runtime the MDM Web Dynpro Component is displayed according to the configuration. MDM Web Dynpro components can be consumed by other custom Web Dynpro components to create a Web Dynpro application with the flexibility to run as a stand-alone application or in a portal environment. MDM Web Dynpro Components can also be directly consumed in a SAP NetWeaver Business Process Management (BPM) process.
December 2010
86
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
December 2010
87
Good to know topics for a smooth SAP NetW eaver MDM 7.1 implementation
12. PI Adapter
12.1 Communication with MDS
The MDM PI Adapter makes use of the MDM Java API in order to get data from and send data to MDS. It also uses the MDM Java API to receive notifications of events such as an import or a syndication being completed. Note The MDM Java API must be deployed on the same physical server as the MDM PI Adapter.
December 2010
88
www.sdn.sap.com/irj/sdn/howtoguides