Extending the Migration Cockpit “Material” Object with EXTENSIONIN for Subscription Data Fields
The requirement is to mass load new material master records of material type SUBS (Subscription Product) into a greenfield implementation of SAP S/4 BRIM (Billing and Revenue Innovation Management). The SAP S/4 Migration Cockpit is being used; however, the “Material” migration object does not include the Subscription Data fields: Billing Cycle, Billing Cycle Determ, and Assignment Schema.
This blog will show step-by-step how to extend the standard-delivered “Material” migration object in the SAP S/4HANA Migration Cockpit to handle the “Subscription Data” fields on the material master in an S/4 1909 BRIM system with S4CRM installed.
Areas of focus will be:
- LTMOM (Migration Object Modeler)
- SE18 (BAdI Builder)
- LTMC (Migration Cockpit)
Note: Since the new materials are not being migrated from a legacy system and the number of records is small, staging tables will not be used. We will use the Migration Cockpit’s file upload feature.
Data Migration Analyst
ABAP Programmer (for the BAdI steps only)
Blog is based on the following system: On-premise SAP S/4HANA 1909 SP1 with S4CRM version 204 installed.
While this blog is a little more advanced than other Migration Cockpit topics, it is still intended to be easy to follow for someone new to the Migration Cockpit. If you are new to this tool, then here is what you will need to get started:
- S/4 Migration – Data Transfer role (SAP_CA_DMC_MC_USER)
- S/4 Migration – Data Modeling and Data Transfer (SAP_CA_DMC_MC_DEVELOPER)
The follow DMC services need to be activated by your System Admin.
Tcode SICF > default_host > sap > bc > webdynpro > sap
If you are new to the Migration Cockpit, then here are some excellent blogs to read before proceeding:
- Starter Blog for SAP S/4HANA Migration Cockpit, Sybille Lackermeier, July 5 2017
- Discover the S/4HANA Migration Cockpit Migration Object Modeler (OnPremise) /NLTMOM, Jörg Knaus, June 20, 2017
(1) From S/4, run Tcode LTMC to launch the Migration Cockpit
(2) Create a new project for data transfer from files
(3) Return to S/4
(4) Run Tcode LTMOM
(5) Using the Object Browser, set Object Browser to “Project” and search for Projects
(6) Select the project that the migration object will be assigned to
(7) From the menu, select Project > Create Migration Object > From Template > Migrate Data Using Files/Staging Tables
(8) From the “Create Migration Object from Template” popup, click on the “Next” button
(9) Select the migration object “Material”
(10) Click on the Continue button
(11) Migration Object Z_MATERIAL_nnn is created.
MATERIAL (migration object template)
_nnn (mass transfer id with an underscore prefixed to it)
In our example, the Migration Object is Z_MATERIAL_006.
(12) Double-click on Source Structures
(13) Note: The default names on “Source Structures” shows the structure descriptions, and not the technical names like shown above. If you want to switch between descriptions and technical names, then click on Settings > Technical Names On/Off
(14) Click on the Display<->Change button to switch from Display to Change mode
(15) Right-click on S_MARA (Basic Data) and then select “Append Structure to Lower Level”
(16) Add a Name and Description for the structure
(17) Click on the Continue button
(18) Structure gets added
(19) Add six (6) rows to the structure by clicking on the “Add Field” icon six (6) times
(20) Result shown below
Why six rows?
- Row 1 will be MATERIAL. This will be required so that the migration cockpit knows which materials these extension fields are related to.
- Rows 2-6 will be a copy of Structure BAPIPAREX
(21) Result shown below
(22) Select the MATERIAL field of the S_EXTENSIONIN structure
(23) Click on the “Foreign key relationship” button
(24) Click on the drop-down list on the “Field of Check Table or Literal” field, and select MATNR
(25) This creates a link between S_MARA and S_EXTENSIONIN
(26) No action needed on the STRUCTURE field
(27) Click on the Continue button
(28) No changes are needed to the Target Structures because EXTENSIONIN already exists
(29) Double-click on Structure Mapping
(30) Drag the S_EXTENSIONIN Source Structure to the EXTENSIONIN Target Structure
(35) Open the project
(36) Find the “Material” object, and click on “Material”
(37) Click on the “Download Template” button
- The second column (Structure name of BAPI table extension) has the constant value defined in the Enhancement Implementation – CRMS4S_SOM_MARA.
- Column 3 has the concatenated values for Billing Cycle, Billing Cycle Determ, and Assignment Schema. These fields take a total of 10 characters, CHAR 4, CHAR4, and CHAR2, respectively. The values for those fields must start in the correct position.
- Billing Cycle – Position 1
- Billing Cycle Determ – Position 5
- Assignment Schema – Position 9
Amazing article with very detailed description.
Thanks a lot for creating this.
Very helpful, but when I tried with custom fields, only standard fields are getting updated, if anyone knows more details about this please share