Overview

The S/4HANA Migration Cockpit is available from S/4HANA Release 1610 in the OnPremise Version.

As it is the first Version, i don’t have too much expectations, but i am sure we will see very interesting updates in the future.

Basically, it is a Web Based Tools to migrate Legacy Data into S/4HANA. It allowes to Download predefined Excel Sheet-Templates, so you can “easily” extract legacy data into this format and upload in S/4Hana by using the Migration Cockpit. Basic Mapping Functionality is provided (e.g. Map Unit of Measure Codes and so on) but don’t expect too much here yet.

Target group seems to be smaller and medium businesses (SMB). The handling of the Import Process and Validations are made very easy (“cloud style”)

To Import the Data, the SAP Standard BAPIs are used. There is an error Log provided with informations on Warnings or Errors.

As there is already a number of Standard Objects Available (see below)

 

 

Transaction Codes

LTMC Migration Cockpit

LTMOM Migration Object Modeler

 

Existing Documentation

SAP Help

https://help.sap.com/doc/PRODUCTION/bf1d5c82ea1c45ba8f1d7d1f7757f04d/1610%20001/en-US/frameset.htm?8f97f0b407024465a283809f0bbe000c.html

https://help.sap.com/doc/PRODUCTION/bf1d5c82ea1c45ba8f1d7d1f7757f04d/1610%20001/en-US/frameset.htm?9a02076c76354f6a93aefc9bdf943e68.html

Best Practice Explorer S/4Hana OnPremise, Data Management:

Data Migration to S/4HANA from File (BH5)

Data Migration to S/4HANA Enhancements (BH4)

https://support.sap.com/content/dam/SAAP/Sol_Pack/BP_OP_ENTPR_S4HANA1611_DEV3/BP_OP_ENTPR_S4HANA1611_DEV3_Content_Library_EN_DE.htm

Migration Objects

 

Business Object Name Area Business Object Type Migration Cockpit Object Name Technical Object Name
Activity Types CO Master data Migration of Activity types (FILE2S4) SIF_LSTAR_CREATE
Cost Center CO Master data Migration of Cost centers (FILE2S4) SIF_KOSTL_MASTER
Activity Price CO Master data Migration of Activity prices (FILE2S4) SIF_ACT_PRICE
Internal Order CO Transactional data Migration of Activity prices (FILE2S4) SIF_INTORDER
Profit Center FI Master data Migration of Profit centers (FILE2S4) SIF_PRCTR_MASTER
Bank Master Data FI Master data Migration of Banks (FILE2S4) SIF_BANK_MASTER
Customer Master FI, SD Master data Migration of Customer (FILE2S4) SIF_CUSTOMER
Vendor Master FI, MM-PUR Master data Migration of Vendor (FILE2S4) SIF_VENDOR
Customer Open Items FI Transactional data Migration of Customer open items (FILE2S4) SIF_AR_OPEN_ITEM
Vendor Open Items FI Transactional data Migration of Vendor open items (FILE2S4) SIF_AP_OPEN_ITEM
Fixed Asset incl. Balances FI-AA Master data + Transactional data Migration of Fixed assets (FILE2S4) SIF_FIXED_ASSET
G/L Account Balances FI Transactional data Migration of G/L balances (FILE2S4) SIF_GL_OPEN_ITEM
G/L Account Open Items FI Transactional data Migration of G/L open items (FILE2S4) SIF_GL_OPEN_ITEM
Exchange Rate FI Master data Migration of Exchange rates (FILE2S4) SIF_EXCH_RATE
Inventory Balances MM-IM Transactional data Migration of Material inventory balances (FILE2S4) SIF_INVENTORYBAL
Material Master LO-MD Master data Migration of Materials (FILE2S4) SIF_MATERIAL
Material Long texts LO-MD Master data Migration of Material long texts (FILE2S4) SIF_MAT_LONGTEXT
Material Consumptions LO-MD Master data Migration of Consumptions (FILE2S4) SIF_MAT_CONSUMP
Purchasing Info Record MM-PUR Master data Migration of Purchasing info records (FILE2S4) SIF_PURCH_INFREC
Purchase Order MM-PUR Transactional data Migration of Purchase orders (only open) (FILE2S4) SIF_PURCH_ORDER
Pricing Conditions SD, CO, MM-PUR Master data Migration of Pricing conditions (FILE2S4) SIF_CONDITIONS
Contracts (Purchasing) MM-PUR Transactional data Migration of Purchasing contracts (FILE2S4) SIF_CONTRACTS
Source List MM-PUR Transactional data Migration of Source lists (FILE2S4) SIF_SOURCE_LIST
Sales Order SD Transactional data Migration of sales orders (only open) (FILE2S4) SIF_SALES_ORDER
Batches QM, SD, PP-PI Master data Migration of Batches (FILE2S4) SIF_BATCHES
Bill of Material (BOM) PP Master data Migration of Bill of materials (FILE2S4) SIF_BOM
Work Center PP, QM Master data Migration of Work centers (FILE2S4) SIF_WORK_CNTR
Equipment PM Master data Migration of Equipment (FILE2S4) SIF_EQUIPMENT
Equipment Task List PM Master data Migration of Equipment task lists (FILE2S4) SIF_EAM_TASKLIST
Functional Location PM Master data Migration of Functional locations (FILE2S4) SIF_FUNC_LOC
Characteristics CA Master data Migration of Characteristics (FILE2S4) SIF_CHARACT
Classes CA Master data Migration of Classes (FILE2S4) SIF_CLASS

 

Migration Process

In the first Screen you can create or open a Migration Project.

 

then you can activate one or multiple migration objects

 

Now Open the Migration Object

you can look at the documentation of the migration object

you can Download an Excel Template.

 

Now fill the Excel with you data

 

and Upload into the Migration Cockpit

 

select and activate the File

 

now start Transfer (migrate to S/4 Hana):

First the Data is validated

 

when finished 100 %, click on close

now you can see the notifications (warnings/error messages):

Choose next to perform the Value Mappings (Convert Values)

 

if a value from the excel sheet is found for the first time, you have to confirm or add a value mapping:

enter a new Value (EV_xxx) and/or click on confirm

 

now click on next for the simulation and then next for the import (same procedure as validation)

 

all actions are performed in background (as a batch-job/SM37), but you can wait until process is finished 100 % and then immediately see the results or let it run in background and come back later.

 

 

Excel Format

The Excel Templates are in XML Format

it looks like this

<?xml version=”1.0″?>

<?mso-application progid=”Excel.Sheet”?>

<Workbook xmlns=”urn:schemas-microsoft-com:office:spreadsheet”

xmlns:o=”urn:schemas-microsoft-com:office:office”

xmlns:x=”urn:schemas-microsoft-com:office:excel”

xmlns:dt=”uuid:C2F41010-65B3-11d1-A29F-00AA00C14882″

xmlns:ss=”urn:schemas-microsoft-com:office:spreadsheet”

xmlns:html=”http://www.w3.org/TR/REC-html40″>

<DocumentProperties xmlns=”urn:schemas-microsoft-com:office:office”>

<Title>MATERIAL</Title>

<Author>HHE</Author>

<LastAuthor>Heiko Herrmann</LastAuthor>

<Created>2017-01-03T00:00:00Z</Created>

<LastSaved>2017-02-08T14:11:35Z</LastSaved>

<Company>HHE</Company>

<Version>16.00</Version>

</DocumentProperties>

<CustomDocumentProperties xmlns=”urn:schemas-microsoft-com:office:office”>

<APPLICATION dt:dt=”string”>SLO</APPLICATION>

<OBJECT_NAME dt:dt=”string”>MATERIAL</OBJECT_NAME>

<VERSION dt:dt=”string”>S4CORE 101  – 06.01.2017</VERSION>

<SYSTEM dt:dt=”string”>EAD / 700</SYSTEM>

<LANGUAGE dt:dt=”string”>D</LANGUAGE>

</CustomDocumentProperties>

<OfficeDocumentSettings xmlns=”urn:schemas-microsoft-com:office:office”>

<AllowPNG/>

<Colors>

 

 

<Row ss:AutoFitHeight=”0″>

<Cell ss:StyleID=”s79″><Data ss:Type=”String”>D1-100011-02</Data></Cell>

<Cell ss:StyleID=”s79″><Data ss:Type=”String”>EN</Data></Cell>

<Cell ss:StyleID=”s79″><Data ss:Type=”String”>ASF1400</Data></Cell>

<Cell ss:StyleID=”s79″><Data ss:Type=”String”>E</Data></Cell>

<Cell ss:StyleID=”s79″><Data ss:Type=”String”>9999</Data></Cell>

<Cell ss:Index=”7″ ss:StyleID=”s79″><Data ss:Type=”String”>X</Data></Cell>

<Cell ss:Index=”9″ ss:StyleID=”s79″><Data ss:Type=”String”>98</Data></Cell>

<Cell ss:Index=”11″><Data ss:Type=”String”>01</Data></Cell>

<Cell ss:StyleID=”s79″><Data ss:Type=”String”>PCE</Data></Cell>

<Cell ss:Index=”14″ ss:StyleID=”s79″><Data ss:Type=”String”>10</Data></Cell>

 

you can find several documentations in the internet:

https://msdn.microsoft.com/en-us/library/aa140066(v=office.10).aspx

https://wiki.scn.sap.com/wiki/display/Snippets/XML+TAGS+simplifies+Excel+Download

 

i faced problems with ‘SPACE’ for empty columns, they should be <null> otherwise the ss:Index gets confused and the Values are linked to the wrong columns when importing into the migration cockpit, even if they are in correct order

 

Import Processing

It helps if you are familiar with the Standard BAPI Structures and SAP Input Data (for example how to create a material master)

Abap Skills are not required, but ABAP Debugging skills are useful for the Root Cause Analysis in cases where the Error Log isn’t enough.

 

 

The BAPI used for the Data Inport can be found in Transaction LTMOM

you can also see how the input fields are mapped.

currently i was not able to change the standard mappings, i can only add customer fields.

 

you can set an external Breakpoint (external as the import is always performed by a batch job)

here you can also save the data (after mapping/conversion) as testdata for SE37 (right click on toolbox)  if you need to do some troubleshooting

 

in some cases i added an ‘implicit enhancement’ at begin of function (ABAP Enhancement Concept) in the importing BAPI to change the conversion.

(quick and dirty?)

 

Generated ABAP Objects

The Migration Cockpit generates ABAP Function Modules for the Conversion and the Import.

These can be Debugged (or maybe even “enhanced”?)

if you come from LSMW or other ABAP Migration Tools you will find yourself familiar shortly.

 

Fugr /1LT/S4H500000000000003

INCLUDE /1LT/LS4H500000000000003U01.
“/1LT/S4HIL_500000000000003
INCLUDE /1LT/LS4H500000000000003U02.
“/1LT/S4HOLC_500000000000003
INCLUDE /1LT/LS4H500000000000003U03.
“/1LT/S4HOLO_500000000000003
INCLUDE /1LT/LS4H500000000000003U04.
“/1LT/S4HACS_500000000000003

FUNCTION /1LT/S4HIL_500000000000003.
*”——————————————————————–
*”*”Lokale Schnittstelle:
*”  IMPORTING
*”     VALUE(IM_ALLOG) TYPE  DMC_ALLOG OPTIONAL
*”     VALUE(IM_DEBUG) TYPE  BOOLEAN OPTIONAL
*”     VALUE(IM_DEBUG_LEVEL) TYPE  CHAR1 OPTIONAL
*”     VALUE(IM_TEST_MODE) TYPE  BOOLEAN OPTIONAL
*”     VALUE(IM_ROLLBACK) TYPE  BOOLEAN OPTIONAL
*”     VALUE(IM_VALIDATE) TYPE  BOOLEAN OPTIONAL
*”  EXCEPTIONS
*”      INSERT_IT_ERROR
*”      LOG_ERROR
*”      STOPPED_BY_RULE
*”——————————————————————–
* Project          : ZSIN_MIG_001
* Subproject       : ZSIN_MIG_001
* Migration Object : Z_MATERIAL_001
* Layer            : Conversion layer
* Generated        : 13.02.2017 07:53:07 by SENS_MM
*
* Generate time related processing   = X
* Generate interlinkage processing   = –
* Generate IMPORT FROM MEMORY        = –
* Generate EXPORT TO MEMORY          = –
* Generate LDU initialize            = X
* Generate Call next function module = –


*
*** <__UNIT_0001__> ************************************
*** Targetstructure           : HEADER
*** Primary relation source   : S_MARA
*** Primary relation type     : 1:1
*** Primary relation number   : 0001
********************************************************
* CONVERSION: call BEGIN OF LOOP routine
* CONVERSION: Primary relation read
” init receiver work area
CLEAR _WA_HEADER.
LOOP AT _IT_S_MARA
  INTO _WA_S_MARA
.
CLEAR _actual.
_actual-sstruct1 = ‘S_MARA’.
_actual-sddicname = ”.
* CONVERSION: Init receiver work area
CLEAR _WA_HEADER .
CLEAR l_mapping_error.
* CONVERSION: Init SKIP_TRANSACTION
_FLG_SKIP_TNX_ = FALSE.
* CONVERSION: Increment transaction count
<TNX_COUNT> = <TNX_COUNT> + 1.
* CONVERSION: init SKIP_RECORD flag
_FLG_SKIP_REC_ = FALSE.

ENDIF.
* CONVERSION: call BEGIN OF RECORD routine
PERFORM _BEGIN_OF_RECORD_0001_.
* CONVERSION: call field processing routine
IF _FLG_SKIP_REC_ = FALSE.
PERFORM _CONVERT_0001_.
ENDIF.
* BWP: Increment record count
HEADER_NO = HEADER_NO + 1.

IF _FLG_SKIP_REC_ = FALSE.

FORM _CONVERT_0002_.
*— RECEIVER: NOAPPLLOG
PERFORM _RULE_MOVE_OP
USING
_WA_VI0001_NOAPPLLOG-NOAPPLLOG
‘X’.
ENDFORM.
FORM _CONVERT_0003_.
*— RECEIVER: FUNCTION
PERFORM _RULE_MOVE_OP
USING
_WA_T01_HEADDATA-FUNCTION
‘INS’.
*— RECEIVER: IND_SECTOR
PERFORM _RULE_CVT_MBRSH_S
USING
_WA_T01_HEADDATA-IND_SECTOR
_WA_S_MARA-MBRSH.
*— RECEIVER: MATL_TYPE
PERFORM _RULE_CVT_MTART_S
USING
_WA_T01_HEADDATA-MATL_TYPE
_WA_S_MARA-MTART.
*— RECEIVER: BASIC_VIEW
PERFORM _RULE_SET_X_IF_NOT_INIT_S
USING
_WA_T01_HEADDATA-BASIC_VIEW
_WA_S_MARA_CUST-INDICATOR_K.
*— RECEIVER: SALES_VIEW
PERFORM _RULE_SET_X_IF_NOT_INIT_S
USING
_WA_T01_HEADDATA-SALES_VIEW
_WA_S_MARA_CUST-INDICATOR_V.
*— RECEIVER: PURCHASE_VIEW
PERFORM _RULE_SET_X_IF_NOT_INIT_S
USING
_WA_T01_HEADDATA-PURCHASE_VIEW
_WA_S_MARA_CUST-INDICATOR_E.
*— RECEIVER: MRP_VIEW
PERFORM _RULE_SET_X_IF_NOT_INIT_S
USING
_WA_T01_HEADDATA-MRP_VIEW
_WA_S_MARA_CUST-INDICATOR_D.
*— RECEIVER: FORECAST_VIEW
PERFORM _RULE_SET_X_IF_NOT_INIT_S
USING
_WA_T01_HEADDATA-FORECAST_VIEW
_WA_S_MARA_CUST-INDICATOR_P.
*— RECEIVER: WORK_SCHED_VIEW
PERFORM _RULE_SET_X_IF_NOT_INIT_S
USING
_WA_T01_HEADDATA-WORK_SCHED_VIEW
_WA_S_MARA_CUST-INDICATOR_A.
*— RECEIVER: PRT_VIEW
PERFORM _RULE_SET_X_IF_NOT_INIT_S

 

 

 

FUNCTION /1LT/S4HOLO_500000000000003.
*”——————————————————————–
*”*”Lokale Schnittstelle:
*”  IMPORTING
*”     VALUE(IM_TEST_MODE) LIKE  EDITSTRUC-CHANGED OPTIONAL
*”     VALUE(IM_BEHAVIOUR) TYPE  NUM1 DEFAULT                    1
*”  EXPORTING
*”     VALUE(ET_MESSAGES) TYPE  DMC_FM_MESSAGES_T
*”  CHANGING
*”     VALUE(CT_PAYLOAD) TYPE  DMC_PAYLOAD_TAB
*”     VALUE(XT_RUN_STAT) TYPE  DMC_T_RUN_STAT OPTIONAL
*”  EXCEPTIONS
*”      COMMUNICATION_FAILURE
*”      SYSTEM_FAILURE
*”      NO_AUTHORIZATION
*”——————————————————————–
* Project          : ZSIN_MIG_001
* Subproject       : ZSIN_MIG_001
* Migration Object : Z_MATERIAL_001
* Layer            : Outer layer out (Function Module)
* Generated        : 13.02.2017 07:53:34 by SENS_MM
*
Job-Controller Functions: (for Debugging purposes)

FORM    EXECUTE_LOAD SAPLDMC_DTL                 LDMC_DTLU25

METHOD             START_ACTIVITY              CL_DMC_WDA_MIG_JOBS===========CP                          CL_DMC_WDA_MIG_JOBS===========CM003

 

further Tips

Structure XXXX: Number of recipient records generated 0000000000 (or less than in input file)

reason:

the Migration Cockpit is storing all created objects in Table DMC_FM_RESTART, so if your object number, for example material number, is in this table, it will be skipped and not imported again.

you can delete the entry with transaction code se16

 

 

also if a job with the name /1LT/LOAD… is scheduled or already running, the import will not start

(but shows no error message)

verify with SE37

Check from ABAP Coding

START_DATA_LOAD (CL_DMC_WDA_MIG_CONTR) CHECK cl_dmc_act_rec=>get_active_and_scheduled_jobs( iv_ext_id        = lv_ext_id
iv_activity_type = cl_dmc_act_rec=>…

 

for Material Views Check Note

2145027 – FAQ: Maintenance status in data transfer

 

 

Open Items

Export Data from R/3 Source System? in the online help there is a remark: In the ABAP-based SAP source system, you have installed the DMIS add-on. You can download the add-on from the SAP Software Download Center at http://support.sap.com/swdc using the following path: Installations and Upgrades  A – Z Index  L  SAP LT Replication Server  SAP LT Replication Server 2.0 .

how can i export the data for the Migration Cockpit?

 

Best-Practice how to fill the Excel/XML Files with legacy data

 

The Excel-Templates are very nice, Examples with Best-Practice Data would help understanding how to fill the values.

 

how to create Additional Mapping Rules like we know this from LSMW?

Create Additional Migration Objects

 

Create Contact Persons for Customers (i could assign them to the Customer, but i had to to a workaround to create the Contact Person’s Business Partner Number)

 

Mass/Data, Performance, parallel Processing, memory consumption, limitations…

 

strangely i could not find any oss notes, nor any blogs, is nobody using the tool yet?

 

so maybe i will write another Blog…

 

 

 

 

 

 

 

To report this post you need to login first.

14 Comments

You must be Logged on to comment or reply to a post.

  1. Patrik Sundeborn

    Hi Jörg,

    Thank you for sharing your knowledge. I´m also trying to figure out this tool, so it is nice to verify some of my own findings and also catch some of yours.

    An issue I´m now facing is how to add a new “TAB” of data to an object. For example, If you look at the Customer Master Object you will see that none of the fields within “TAB” Customer Loading is pre mapped. To map the regular fields with in this TAB I see no problem with, but how do you map “CVI Run ID…”?

    For other pre mapped TABs it look like this:

    Any Idea how to perform the assignment?

     

    Br Patrik

    (0) 
    1. Jörg Knaus Post author

      hi Patrik

      the node ‘Customer Loading’ also has no mapping to an Input structure, so you can’t even assign fields to unloading Point etc, currently it looks like you can only Display the structure mapping and not Change it, i expect this will be a Feature for the future, we’re currently patching to fps1 i will check if something changes there

      i think at the Moment you will have to find a Workaround (modfiy generated mapping function or enhancement of the function RFC_CVI_EI_INBOUND_MAIN or separate program to load the Customer Loading

       

      regards

      Jörg

       

       

       

       

      (0) 
      1. Ruta Londhe

        Hello Jörg,

        First of all, thanks a lot for such an informative article..!

         

        Question – Could you please guide us through the steps to modify/enhance existing Migration Objects using LTMOM?

        Client Requirement – In Functional Location migration object (Migration of Functional locations (FILE2S4)), we don’t have ‘Functional Location Description (IFLOTX-PLTXT)’ field and client has requested to add this field in the Migration Object.

        I have added this field in Source Structure, however, I am not able to modify Target Structure.

        Request you to please let me know how should I proceed.

         

        Thanking in advance,

        Ruta

         

        (0) 
  2. Sergiu Apostol

    Hi Jörg,

     

    Great post and thank you for sharing the information. Like Patrik, I am also trying to figure out this tool.

    Were you able to find out if there is a standard available way to export the data for the migration cockpit so far ?

     

    Best regards,

    Sergiu

    (0) 
  3. James Gardner

    Hi Jörg,

    Thanks for your blog, it was most helpful.  I noticed on the list of objects that you have Pricing Conditions (SIF_CONDITIONS). On our version of S/4HANA 1610 we don’t have this one.  Was this list from FPS1?

    Thanks

    James

    (0) 
    1. Jörg Knaus Post author

      the customer and vendor object are creating Business Partners, i think you also can add additional roles. the used function module RFC_CVI_EI_INBOUND_MAIN  can do all Kind of Business Partners, but the mapping for customer/vendor object seems kind of hardcoded (so far) and don’t provide all fields available. we used enhancements in the function RFC_CVI_EI_INBOUND_MAIN  to perform additional mappings, or you better create an individual abap Report or lsmw object if.

       

      (0) 
  4. Ramesh Babu Nagarajan

    Thx  Jorg Knaus for this informative blog.

    As you obviously pointed out this new tool is infancy and will get developed as further versions come out. Particularly the presence of excel templates was a good addition.

    Now for customers who already use migration tools which takes care of all the mapping, validation and other migration requirements and load ready data is made available. Can LTMC be used only as an upload tool? Looks like it is possible.

    Also in a typical migration project we have lot of data changes as well as loading of data in multiple steps. Are those supported in this tool?

    (0) 
  5. Ruta Londhe

    Hello Jörg,

    First of all, thanks a lot for such an informative article..!

     

    Question – Could you please guide us through the steps to modify/enhance existing Migration Objects using LTMOM?

    Client Requirement – In Functional Location migration object (Migration of Functional locations (FILE2S4)), we don’t have ‘Functional Location Description (IFLOTX-PLTXT)’ field and client has requested to add this field in the Migration Object.

    I have added this field in Source Structure, however, I am not able to modify Target Structure.

    Request you to please let me know how should I proceed.

     

    Thanking in advance,

    Ruta

     

    (0) 
  6. Chirag Gupta

    Hello Jörg,

     

    I am trying to load GL_Open_Item to S4H system. After finishing migration project, I get the following error for object Migration of G/L open items (FILE2S4):

    1. Error while generating runtime objects for Z_GL_OPEN_ITEM_03I
    2. Function group S4J910000000000058 could not be created

    Can you please help me out?

    Thanking in advance.

    Chirag

    (0) 
  7. Nilesh Hatkar

    Hi Jorg

    The blog is very informative. Thanks for this !

    I can see an open item already regarding “Create Additional Migration Objects”. I had couple of questions around this.

    – Is it possible in current version or will it be possible in future version to configure and migrate your own object ?

    – If not , then more information about which additional objects are being planned by SAP in next release and  approximate timeline ?

    Thanks

    Best regards

    Nilesh

     

     

    (0) 

Leave a Reply