poonam.assudani

6 Posts

SAP Test Data Migration Server is a high-speed data extraction tool that transfers relevant business data from your SAP production system to your development, test, quality assurance, or training system. By enabling the transfer of just the relevant set of application data from the SAP production system, SAP TDMS allows you to create a lean and consistent non-production system. Some of the important features of the product are :

Data Transfer Criteria: You can select production data relevant for transfer based on time, organizational unit, or business processes.

Data Privacy: You can choose to scramble sensitive data before data migration by using the scrambling content provided by SAP or by creating custom scrambling rules.

Consistent Data in the non-production system

For more information about this important feature, attend our TechED session ALM 207 or ALM 261:  http://www.sdn.sap.com/irj/scn/sapteched at SAP TechED Las Vegas, SAP TechED Madrid, SAP TechED Bangalore, SAP TechED Beijing.

In these session, you will learn how to use SAP Test Data Migration Server to: Set up lean and consistent non-production systems with real-time production data. Transfer only the relevant data for testing specific business processes. Scramble sensitive data when refreshing up non-production systems and include customer-specific tables for data transfer and data scrambling.

This blog contains some information regarding TDMS HCM programs that are activity Independent. Also some tips and tricks for Performance improvement.   

        

Program: Payroll Comparison - CNV_TDMS_HCM_PAYROLL_COMP

This Program provides the ability to do payroll result comparison,whenever you perform any of the following

  • TDMS HCM data transfer
  • Changes of SAP-release,
  • Installation of SAP HCM support packages
  • Changes in the customizing

The report can be executed in a Sender or Reciever system i.e HR system .

 

Program: CNV_TDMS_HCM_OBJID_TAB_REORG                                               

         This Report has got two options

  1. Re-organize: This option allows data for inactive packages to be removed from table CNVHCM_OBJID.
  2. Re-Define Rules: This option allows the use of the existing packages even after upgrades. This option will redefine the existing rules in accordance with the latest SP changes, so that the existing package is reusable even after applying new SP.                                                                

Program: CNV_TDMS_HCM_FILL_TABLES                            

The program is executed in the sender systems .This report ensures that entries required for using TDHC1 featured are maintained. In addition, this report ensures that HCM PNPCE   report classes are correctly defined.                                                         

  Program: CNV_TDMS_HCM_INITIAL_SETTINGS                    

This program is called in background from the TDMS HCM activity . From this activity, certain tables that are necessary for TDMS HCM processing are filled if required. One of these tables is the CNVHCM_TR_TAB. This program can be accessed from SE38 and can be used to maintain or   analyze the CNVHCM_TR_TAB table.                 

Performance Improvement:                                                     
                                                                            
 a) For customers on SP07, note 1526547 & 1543903 can be applied,it contains corrections for performance improvements for TEVEN table,improvements for selecting and deleting large amount of data and Post processing performance improvements.                                 
                                                                           
 b) Reading performance in the sender system:  

                             
 Tables which are set for "Inc / Exc" value in the view V_CNVHCM_TR_TAB are read from the sender system.Any superflous or not required entries in V_CNVHCM_TR_TAB has impact on the runtime.                             
 This is particularly important for entries for the PCL1 and PCL2 tables which can be extremely voluminous. For example if you are not interested in reading the PCL2_AR then you can unset the flag "Inc / Exc" for this entry.   
                                                                    
                                                                            
 c) Avoiding Memory Dumps in the PA, PA & PD and PA & PD expert mode when selecting and transferring the large amount of data for tables such as  TEVEN, PCL1, PCL2, PA2001, PA2002 and so on.                              
  -For customers on SP04 please implement Note 1554206                     
  -For customers on SP05 to SP07 implement Note 1562976                     
                                                                            
  -From SP08 this correction is available. The correction invovles a alternative logic for data selection.

This logic is briefly explianed below:                                                                        
                                                                                
The system determines the applicable logic through the settings in table      
CNVHCM_SEL_SIZE. If a particular table has no record in this table, or if the value  of field MAXIMUM for this table is 0, then the old logic applies. However, if a non-zero value for field MAXIMUM is found for a particular table, then for this table the alternative logic is applied.       
In this case the data is selected only in portions, which reduces the overall memory consumption.                                                   
                                                                               
 The value of field MAXIMUM describes the number of personnel numbers          
 processed at a time. However, in the case of cluster tables (tables           
 PCLx), it describes the number of logical keys processed at a time.           
                                                                               
 We recommend to maintain large tables settings in the table                   
 CNVHCM_SEL_SIZE. The table maintenance view V_CNVHCM_SELSIZE can be used      
 to maintain the entries. These settings must be available in the sender       
 system.                                                                       
                                                                               
 For the following tables we recommend maintaining entries in this table:      
 TEVEN                                                                         
 PA2001                                                                        
 PA2002                                                                        
 PA2003                                                                        
 HRPY_RGDIR                                                                    
 HRPY_WPBP                                                                     
                                                                               
 In addition we recommend maintaining entries for the following cluster        
 tables. Thereby, the '_' separates the name of the cluster table from         
 the name of the RELID.                                                        
 PCL1_PC                                                                       
 PCL2_B2                                                                       
 PCL2_xx, whereby xx is a placeholder for the RELID of payroll results         
 (for example, PCL2_RD for the German payroll result)                          
                                                                               
 In addition, we recommend maintaining entries for all large customer          
 tables (that is, tables named Z*).                                            
                                                                               
 For the size per table (field MAXIMUM of table CNVHCM_SEL_SIZE) we            
 recommend the following settings.                                             
                                                                               
 For 32 bit system:                                                            
 Set 100 for all these tables                                                   
                                                                                
For 64 bit system with small main memory                                        
Set 200 for all these tables                                                    
                                                                                
For 64 bit systems with large main memory                                       
Set 400 for all these tables                                                    
                                                                                
Note that increasing this number for a particular table will improve the        
runtime performance. However, in this case the system will require more         
memory. In case of small systems, this may lead to an out-of-memory             
dump. For that reason, if a particular table causes an out-of-memory            
dump in the activity "Transfer Selection Criteria", then it is                  
recommended to maintain an entry for this table in CNVHCM_SEL_SIZE with         
a sufficiently small value for this table.                                       
                        

Delete in receiver system :

   In some scenario it is required to delete redundant data existing in receiver system . In this case you can do the following                                                       

Create a new package with the selection criteria similar to the first run and execute the package till "Prepare Data Transfer" activity. 
This would ensure that the target data is deleted and no data is transferred to the target system.   

 TDMS HCM Processes :                                                     
                                                  
                                                                           
  During execution of the Postprocessing activity for TDMS4HCM the       
 following is done                                                         
                                                                                                                                             
                                                                           
  -Central Person creation in the Receiver system :                       
   If the flag 'Transfer Central Person data' is set and concurrent       
 employement is not active in that case after personnel numbers are       
 transferred into the receiver system, the standard SAP program           
 RPU46CX_CENTRAL_PERSON_ONLINE is called from the Post Processing         
 activity. This program checks whether the new personnel numbers have     
 corresponding Central Person data, if this is NOT the case then a CP     
 record will be generated for the corresponding PERNR in HRP1000 and      
 HRP1001 table.                                                           
                                                                          
  -Posting Document Creation in the Receiver system:                      
   When relevant payroll data is transferred to the receiver system and   
 the flag for 'Posting document' is set,then during the postprocessing    
 activity the standard report RPCIPE00 is executed in simulation mode to  
 create posting run in the receiver system.                                
                                                                           
                       

 Customer Enhancement:           

                                             
 The BADI CNVTDMS_HCM_TRANSFER provides methods that can be used for  additional functional enhancements. These can influence the behavior of     
 the transfer programs and should therefore be used carefully.               
                                                                             
 For Additional information on the BADI implementation,please refer          
 consulting note 1558762 -TDMS4HCM: BAdI for deletion of large tables in     
 receiver .                                                                   
                                                                              
 

Program: CNV_TDMS_HCM_TDHC1_CODE                                                     

This contains an example of code that callable from TDHC1 feature.                                                             

This Blog gives an overview of the SAP TDMS HCM solution. Here I assume that you have some basic knowledge and understanding for the TDMS solution.

SAP TDMS (Test Data Migration Server) is a high-speed data extraction tool that populates development, test, quality assurance, and training systems with SAP business data from a live productive environment.

The solution also provides scrambling functionality for sensitive HCM data i.e the personal details of employees can be scrambled before transfer.

 

  Advantages of using TDMS4HCM

 - Possibility of flexible selection of  personnel numbers and structures.

 - Scrambling: Sensitive employee Data is scrambled in the sender     system and  then transferred.

 - Integration of the authorization concept in TDMS4HCM.

 - Use of the logical databases and ad-hoc-query.

 

Overview of the TDMS HCM components

image    

SAP TDMS works with three clients: 

  • Sender (system where the data are extracted from)
  • Receiver (system where the data are transferred to)
  • Central (control system where the settings are made)

 

    In different steps, configuration settings can be done in the control system to identify the data which should be transferred from the sender to the receiver.

 

  The TDMS Process Tree / Monitor in the central system is the place where all customizing settings are done. It can be reached via transaction CNV_MBT_TDMS. 

Before the data is sent out of the sender system it is scrambled using the scrambling engine. This is required for legal compliance in some countries

SAP provides scrambling templates for different countries which can be copied and used as per the requirements. To do so, use transaction CNV_TDMS_HCM_SCRAM - Scramble maintenance. 

There are three scenarios (Process types) for HCM TDMS

 1.      ERP initial package for HCM Personnel Administration (PA)

 2.      ERP initial package for HCM Personnel Dev PD & PA

 3.      ERP initial package for HCM Personnel Dev PD & PA-EXPERT

 

 

image

 

Data Selection: Personal Administration data (ERP initial package for HCM Personnel Administration) 

This is used for exclusive selection of PA Master Data using the logical database PNPCE. It includes  ad-hoc-query for enhanced data selection. This is useful for customers without organizational management

          Selection possibilities:

  •          Infotypes
  •          Cluster tables
  •          Country-specific HCM functionality
  •          Customer-specific tables

Data selection:  PD data (ERP initial package for HCM Personnel Dev PD & PA)

This is relevant for customers using organizational management .Here it is possible to structurally select object types and relations,  evaluation path determines the selection of the object types and the relations

Using this process type it is possible to select PA Master Data as well.

Selection possibilities:

  •          Object types
  •          Info types
  •          Customer-specific tables (key object ID)

 Data Selection via Expert Mode (ERP initial package for HCM Personnel Dev PD &  PA-EXPERT)

         Customers having large master data volumes can use this process type.

         This offers good performance for large data transfer. Here some expert HCM knowledge is required.

In the TDMS Process tree (transaction CNV_MBT_TDMS ) there are three main phases: 

  1. Technical Settings
  2. Configuration and Selection
  3. Transfer Data

image

 Availability of TDMS HCM

  •          Release 4.7
  •          Release ERP2004
  •          Release ERP 6.0

I would like to explain these customizing setting in detail in the next blog.

This blog gives the steps to create a Tree view display in CRM web UI. Below is a screen shot of the sample implementation. image  *Prerequisites*: The business objects used should be defined in the business object layer as well. Also the dependent objects should be defined via relations.      *Step 1: Context node for the tree*   First of all you need a context node for the tree, which holds the displayed entities and defines the tree columns. It basically reflects the complete UI state of the tree control in the model.image   In our example this is CASEHISTORY context node, which inherits from CL_BSP_WD_CONTEXT_NODE_TREE:  Its method GET_TABLE_LINE_SAMPLE defines the tree columns available for display:image   Here define a column as NODE_NAME which will be the node column (See screen shot for HTML Code). Of special importance is the REFRESH method of the tree, since it initializes the display:The built-in node factory is used here to create a root node for each BOL entity to be displayed in the tree.image    The BOL entities for tree display come from the tree context node itself.   *Step 2: Context nodes for the top level entries in the tree** *   In order to display entries in the tree you need a class which defines its top level and which inherits from the CL_BSP_WD_TREE_NODE_PROXY class. In the CRM workbench this class appears as “Tree Node Proxy” beneath the tree node “CASEHISTORY” under “Tree Structure”.   Besides the usual Getters and Setters used for display during runtime the context node offers a GET_CHILDREN method called when the user would like to seeimage    Redefine method GET_NODE_NAME to display the text for the NODE. Redefine method GET_ICON to display the required ICON.    *Step 3 : Basic Tag Tree* *Step 4 : Tree event handling*    When a node is collapsed on the UI for example a “collapse” event (see attribute “onCollapseNode” above) is raised; this is processed in the DO_HANDLE method of the controller:  It delegates the event to the tree context node.   *Collapse or expand tree node*Call the COLLAPSE_NODE method of the tree context node when a tree node is collapsed on the UI.  image    Eventually call EXPAND_NODE.  image

This Example will specify how to access a Business partner details in CRM web UI from sapgui by passing the URL to FM 'CALL_BROWSER'.

Specify four url parameters which have to be added to crm_ui_frame.

  • URL Parameter for Object Type:  crm-object-type

           As defined in customizing, step 1 (see below)

 
  • URL Parameter for Object Action:  crm-object-action

          As defined in customizing step 1 (see below)

 

  • URL Parameter for Object Value  (optional): crm-object-value
         Actual value of the field it will be searched on (e.g. Business Partner ID 112)

 

  •  URL Parameter for Object Key Name(optional.): crm-object-keyname  

           Name of the attribute the value is used for

 

If value and keyname are used, there must be a mapper class defined in customizing for that object type. Check customizing in step 2 for the "BOL object name" of the object type Then check view CRMV_UI_OBJ_MAPS (Customizing see step 3) or view CRMV_UI_OBJ_MAP (customer) for that BOL object name and take the class name. 

This class must have an implementation of IF_CRM_UI_OBJ_MAPPER~GET_ENTITY_FROM_UI_OBJECT that is able to create a bol entity based on keyname and value

 

Here a sample URL that will display business partner 112 in CC6/300 

http://uscicc6.wdf.sap.corp:50010/sap/crm_logon/default.htm?sap-client=300&sap-syscmd=nocookie&crm-object-type=BP_ACCOUNT&crm-object-action=B&crm-object-value=112&crm-object-keyname=PARTNER

 

 

You can pass this URL to FM 'CALL_BROWSER'. 

 

 Step 1 : https://weblogs.sdn.sap.com/cs/blank/edit/wlg/ ULR Parameter for Object Type and -Action

 (Transaction CRMC_UI_NBLINKS)

image

image"

Step 2 :  BOL object name of the object type

  image

image 

Step 3 : https://weblogs.sdn.sap.com/cs/blank/edit/wlg/   BOL object name and take the class name

image

The below figure illustrates the IC Web Client architectural layers.image

The Presentation layer and the business logic (Business Layer) are separated in layers so that any user interface (UI) can request data from the business layer. The presentation layer is based on BSP and the business layer is based on two virtual machines which can interpret JAVA and ABAP code at runtime.

The following figure illustrates the relationship of Presentation Layer and Business Layer in IC web client.

image

The Business Layer is divided into two Sub layers: Business Object Layer (BOL) and Generic Interaction Layer (GENIL). The BOL offers a certain set of objects. There are two main types of objects in the BOL: business objects (entities) and query services. You can use query services to search for specific business objects within the BOL. There are BOL objects for business partner, one order, product master, marketing campaigns, call lists and so on. Each of these BOL objects appears in a tree structure with exactly one root node. The actual attributes of the BOL objects form the leaves of the tree. You can find an overview of the available query services and BOL objects in the BOL browser.

BOL Model (Transaction GENIL_MODEL_BROWSER) image

As can be seen from above figure the BOL model consists of business objects and relations between them. The business objects are subdivided into 6 kinds:

  • root objects,
  • access objects,
  • dependant objects,
  • query objects,
  • query result objects,
  •  
  • View objects.
  • Depending on the object kind several actions for an object are allowed or prohibited. For instance, transactional behavior is only supported on root objects, direct read access only for root and access objects, and so on. The model of a component will always start with a root object (in case of a read-only component an access object may also make sense). This root object is then related to one or more, in general, dependent objects. If the related objects are directly accessible (fully key) they might be defined as access objects. Of course the objects of a component can also have relations to root objects of other components.

    RelationsWe also distinguish 3 kinds of relations:
  • associations,
  • aggregations,
  •  
  • Compositions.
  • The allowed kind of a relation depends also on the related objects. For instance, the relation between a root object and a dependant object must be an aggregation or composition, but the relation between to root objects can only be an association. In addition to the relation kind also the cardinalities of the source and the target object are part of the definition. These are mainly used to distinguish between 1:1 and 1:n relation. All relation is treated as unidirectional with a well defined source object (parent) and target object (child).

    BOL Browser (Transaction GENIL_BOL_BROWSER) image

    The presentation layer and the business layer are linked together, as BOL objects are bound to attributes by context nodes of BSP view controllers. To fill the BOL object, the GENIL accesses its particular data through Application Programming Interfaces (APIs). In this layer, access to different APIs is already implemented, so the BOL gets clearly defined access to the defined structures. The BOL Browser (Transaction GENIL_BOL_BROWSER) can be used to test the query services and BOL objects.

    GENIL Basics

    A component of the generic interaction layer is represented as a global ABAP class, which inherits from the abstract base class CL_CRM_GENIL_ABSTR_COMPONENT. From its base class it inherits two interfaces, one for the model retrieval, and one for the interaction with the generic IL core. The base class provides a default implementation for each of the interface methods (in most case an empty implementation). This means only the needed methods must be implemented/redefined.

    image

    In my next blog I would outline the steps required to create a BOL Model with an example and also how to create GENIL classes.

    Filter Blog

    By date: