SAP Cloud Integration version 5.23.**/6.15.** comes with enhancement on message mapping, where in you can create message mapping as artifact.
The forecasted SAP Cloud Integration customer tenant software updates/availability of this version is planned for calendar week 27/28’ 2021 as per the phased tenant update procedures, which may be subjected to change.
Know-how of SAP Cloud Integration Message Mapping and Integration Flow is required to understand this blog.
SAP Cloud Integration Message Mapping is one of the crucial data transformation component in SAP Cloud Integration scenarios. Till date, the message mapping component needed to get created as a local resource within Integration Flow projects. And with this, you might have noticed, this message mapping local resource was reusable within the integration flow, but not across different integration flows.
With introduction of SAP Cloud Integration Message Mapping as Artifact, you can now (re)use message mapping, by reference, across different integration flows within the same integration package.
This blogpost explains about this new enhancement.
Creating Message Mapping Artifact
Like any other artifact in SAP Cloud Integration, message mapping can be created inside integration package, as shown below with sample screenshot.
If you have required source and target schema files, you can create an empty message mapping artifact project and then upload them to define mappings.
Select Message Mapping Artifact
Message Mapping Artifact gets created
Clicking on the artifact, opens up the mapping editor, click on edit to upload resources and define mapping
Click on Upload under the left hand side Resources view to add required schema files
Select required schema files
Schema files get added into the Resource view
Select Add source message /Add target message and select the schema
Define the mappings and Save the mapping artifact
Create option helps you to create a Groovy Script to define and use User Defined Functions (UDFs)
If you have any existing Message Mapping artifact project, you can upload it. Also to simply the conversion of integration flow local message mappings to message mapping artifact, we have enabled the support, where-in you can upload a local message mapping zip, after downloading it from your integration flow project. Sample screenshot below.
Step 1: Download the existing message mapping of an integration flow
Step 2: Upload to message mapping artifact creation
Importing from ES Repository
If you have message mappings in your ES Repository, you can bring them in.
ES Repository settings will be read from SAP Cloud Integration Tenant Settings
Clicking on the Connect will list all the message mappings in your ESR System. Choose a required mapping and click on OK to create a Message Mapping Artifact out of it.
Features like Simulation, Display Queue and Groovy script based user defined functions (UDF) works similar to locally created message mapping.
Referencing In Integration Flow
To use the above created message mapping in an integration flow, you need to first declare the dependency/reference and then assign it to the message mapping flow step inside the integration flow editor. Sample screenshots given below.
In the Integration Flow Resource view, select References tab and select Add Reference - Message Mapping
Select required message mapping and add as reference
Message Mapping artifact will get added
Select Message Mapping Flow Step
Select Message Mapping from Referenced Resources tab
Message Mapping artifact will get assigned
As of now, there is no auto deployment of referenced message mapping when you deploy integration flow. You need to first deploy the message mapping, and then, integration flow.
Updating Message Mapping Artifact
You can update your message mapping artifact. And once the updates to message mapping are done, you can deploy the message mapping. The changes at runtime will get reflected in integration flow message processing. No need to deploy again the integration flow project.
Enabling cross-package consumption: As of now, you can only refer to the message mapping from integration flow within same package. An integration flow existing in one integration package, can’t refer the message mapping artifact which resides in another integration package. We are working on to enable cross-package consumption scenario.
Deploy Dependencies : as mentioned in the Deployment step above, you need to deploy both artifacts independently. We are working on the enable the auto deployment of referenced/dependent message mappings when an integration flow is deployed.
This enhancement in message mapping as artifact, would now help many of the scenario, where you have requirements of re-using the same message mapping across different integration flows.