Copy Mapping From One Flow to Another In SAP CPI
I have experience of about 4.6 years in SAP PI/PO/HCI. Currently working as an HCI Developer.
Hana Cloud Integration / Hana Cloud Platform – Integration Services provides Message Mapping for conversion from source to target structure. However, there are still some features missing in CPI which were there in SAP PI/PO message mapping like display queue or copy a field mapping etc. So whenever we have to reuse mapping we can’t do copy object,which we used to do earlier in SAP PI/PO. Mapping again the same logic becomes a time consuming task. Also, if we want to change the name of an existing mapping in CPI, we can change the name in General tab of Message Mapping but not the one in the Processing tab of SAP WEB UI .
In this blog we will look at how to make an exact copy of Message Mapping in Iflow with some other name or you may copy an existing message map to your own custom Iflow .
Case 1: Change the name of the Processing tab of Message Mapping Step
The workaround is to download the Iflow zip package and create a copy of the map file from ile\src\main\resources\mapping folder with some other name.
Double click on the zip file and move to path src\main\resources. Now click on mapping folder
I copied the map file and renamed it to _SC.
The name in Message Mapping general tab we can change anytime but not the one in the processing tab. For that we have to follow the above steps.
Now we have to upload the zip file in CPI WEB UI. For uploading zip file and changing Bundle Symbolic Name in META-INF/MANIFEST.MF file, please refer SAP Note 2479464 (https://launchpad.support.sap.com/#/notes/2479464). After that we have to assign the map to the Message Mapping step and the new window will show the new map file we placed in mapping folder of the zip file as below.
Now we have to click on the map which I renamed to _SC and this way we can change name of the map in processing tab also. Please check the screenshot below
Case 2: Now suppose you want to copy a message mapping step from another iflow to your own custom iflow
The workaround is to download the Iflow zip package of the Iflow whose mapping you want to copy. After downloading, copy the map file from zip file\src\main\resources\mapping, also copy relevant wsdl and xsd from location zip file\src\main\resources\wsdl or
Note: If your source or target structure is present in xsd folder then copy the structure in xsd folder of your target iflow. Similarly, if any source or target structure is present in wsdl folder then copy the structure in wsdl folder of your target iflow. Same is true for scripts.
After copying the map file, relevant wsdl and xsd’s in the folders of your target zip file’s iflow. We can import the zip file in the WEB UI. For uploading zip file and changing Bundle Symbolic Name in META-INF folder, please refer SAP Note 2479464 (https://launchpad.support.sap.com/#/notes/2479464)
After importing it looks as shown in the screenshot below :
Now, we have to assign the correct mapping to the message mapping step using assign option. The new window will show the new map file we placed in mapping folder of the zip file as below, which we have to select .
Now, the mapping is copied from source to target iflow.
The xsd’s, Mapping and scripts which are not used in the new iflow can be deleted by clicking outside the iflow steps and then click on Resources Tab, then under action section you will get a delete icon as shown below.
Note : We must keep in mind while copying the map file is that we should also copy relevant groovy script, wsdl and xsd file too, otherwise the copy will give error.
That is it for this blog.Try this in your scenarios!
I tried creating the same but I get an error 'Upload of the resource failed. Integration flow project must contain a manifest file' . I followed the SAP Note# 2479464 too and modified the MANIFEST.MF updated and the flow name changed. What might I missing?
This is too late but might be helpful for someone with with the same issue. I had the same error and figured I was selecting the main folder and creating the zip folder which is wrong. You need to select the individual files as below and then zip them to a new folder.
this helped, thanks
Is there any way to do this In WEB UI ?