Claim Check enhancements in SAP Process Orchestration
Introduction
The Claim Check pattern can be implemented with SAP NetWeaver Process Orchestration EhP1 for SAP NetWeaver 7.3 SP5 and higher. This article explains the enhancements to the Claim Check pattern, available with SAP NetWeaver 7.3 EhP1 SP14 or higher
It is easier to understand this with an example. Consider a scenario where an applicant needs to apply for a renewal of his passport, as his passport is about to expire. This application needs certain documents to be submitted. Examples of these documents are the proof of the applicant’s address, age, identity etc. The electronic copies of these documents are typically large, of the order of a few MB. For the passport renewal, the applicant only needs to enter minimal details and the rest of the details would be looked up by the Passport processing application.
SAP Process Orchestration Solution
Let’s see how to implement a solution for this scenario using Process Orchestration. The application for passport renewal can be submitted only after all the relevant documents have been uploaded. An integration centric process can be modeled in SAP Business Process Management with a Claim Check pattern so that the entire message containing the large payload(documents in this case) is not loaded into the BPM context, but only the minimal required data can be sent to BPM. The process can collect all the required documents and once we have the full set of documents to proceed, the application can be submitted.
Infrastructure delivered with SAP NetWeaver Process Orchestration for Claim check
Dedicated Message Store
- Stores the whole message externally of BPM
(available with SAP NetWeaver Process Orchestration EhP1 for SAP NetWeaver 7.3 SP5 or higher)
SCPMappingBean
- Extracts the large message and stores it in the Message Store
- The message ID will be used as key and is handed over to the BPM process
(available with SAP NetWeaver Process Orchestration EhP1 for SAP NetWeaver 7.3 SP5 or higher)
SCPMergingBean
- Retrieves the large message from message store given the messageID.
- Transforms the messages based on the defined mapping.
(New, available with SAP NetWeaver Process Orchestration EhP1 for SAP NetWeaver 7.3 SP14 or higher)
What’s new?
The enhancements for the Claim Check pattern are briefly summarized here:
- A large payload not loaded into BPM process context
With SAP NetWeaver Process Orchestration EhP1 for SAP NetWeaver 7.3 SP5, the aggregated large message was retrieved in the BPM process context itself. This step is now eliminated by using the new SCPMerging bean in the receiver channel of the IFlow, so that the Large payload gets retrieved only before delivering the message to the receiver. - Support of data enrichment in BPM process context
With SAP NetWeaver Process Orchestration EhP1 for SAP NetWeaver 7.3 SP5, data enrichment done to the small message in the BPM context will be lost as only the message IDs were collected in the BPM context . This issue has also been addressed with the enhancements.
Steps to implement the Claim Check pattern
Step 1: Interfaces
1) Define an interface in the Enterprise Service Repository(ESR), with the required fields as shown below. This will be referred to as the “Large” interface in this article.
- Note: The ‘PassportAttachment’ data type has an element BinaryData that stores the large files.
2) Define an interface in ESR which has only the minimal fields required for processing in the BPM context. This will be referred to as the “Lean” interface in this article. The interface will have one additional field to store the messageID, to be used in subsequent steps.
Step 2: Mappings
1) Define a message mapping to transform the Large message to Small message as shown below. Here, the messageId is a mandatory field with its value set to 0.
2) Define a multi mapping to transform the small messages to an aggregated message as shown. Here the Source mapping will have both the small message as well as the corresponding large message. The target message will be the aggregated message. (In this scenario the aggregated & large message are the same).
In case data is enriched in the BPM context, the mapping could be performed in such a way that the enriched content from the Small message is mapped to the target, while the other fields could be mapped from the large message as shown here.
Note: For both of the above message mappings, we need to define Operation mappings to be used in subsequent steps.
Step 3: Configuring the SCPMappingBean
The SCPMappingBean is used in the receiver channel of IFLOW1.
Parameters of the SCPMappingBean:
- mappingid: Object ID of the operation mapping in the ESR. Here we need provide the operation mapping defined for Large to small transformation of message.
- persistuntil: Time period in days for which the message is at least stored in the message store.
- xpath: Expression to the field of the lean interface in which the message ID will be placed by the bean
Step 4: Configuring the SCPMergingBean
The SCPMergingBean is used in the receiver channel of IFLOW2.
Parameters of the SCPMergingBean:
- mappingid: The Object ID of the operation mapping in the ESR. We need to provide the operation mapping defined for the multi mapping which transforms small messages to the aggregated message.
- messageidxpath: Expression to the field of the lean interface using which the bean will retrieve the corresponding large message.
Step 4: BPM Process model changes
Steps required in BPM process model:
- Import the Lean interface to be used in Start & Intermediate message events.
- The Output of the Start & Intermediate message events are mapped to a data object, to store the small messages.
- The automated activity ‘Get Applicant details’ is assigned to a custom webservice which returns the applicant details(Email ID, Place Of Birth, DateOf Birth) given the Passport Application Number. The content of the small message is enriched with this webservice call.
- Once all the required data for submitting the passport renewal application is collected, the data is sent to the Passport System using the automated activity “Submit Passport data”. The automated activity makes an Outbound call(XI3.0) to send the small messages to the Receiver.
Step 5: Solution
The solution is briefly explained here before we get into further details.
1) The Passport application along with the one or more attached documents is sent to IFLOW1. This message gets transformed to a small message(with very few fields) .
2) The small message will start a bpm process and the subsequent messages(containing the other documents ) whose correlation key(Passport Application Number) matches will be consumed by the Intermediate message event.
3) Once all the required data is collected by the process, the messages are sent to the Passport Application System using IFLOW2 which takes care oftransforming these messages to one aggregated message.The aggregated message contains the Passport Application with all the required documents.
no screenshot are visible.
missing images.
Are you still not able to view the images?
Hi Sandhya,
I have a scenario, where System1 is sending Big Data to the BPM and storing the same in the message store via SCPMappingBean. It carries out the Operation mapping mentioned as the parameter in the Module and the BPM receives the small data in the process. Then BPM enriches the small data and sending it to System2. While doing so, it is using SCPMergingBean.So, the Big Data stored in the message store will be retrieved, clubbed with the small enriched data as another source. Then as explained by you, a multi mapping converts both the source into final message. But, I am getting Mapping Error in the final step. I believe, there is some issue with the 2nd ICO configuration. Could you please advise, how the final ICO/IFlow looks like?
Regards,
S
Have anyone succeed in using the SCPMappingBean in a Sync flow?
we have an scenario where we are requesting data from a Database and the response we want to store. The flows seem to work fine and we get a message ID for the Merging claim, but the Operation mapping on the merging claim fails.
we tried the same objects an async methos and the flow workd, So the way that the SCPMappingBean work in a Synch flow seem to be the source of the issue.
Hi Juan, Did you get any response? We are about to try something like it.
Hi,
We have a sync scenario up and running fine.
The operation mapping interfaces for SCPMappingBean/SCPMergingBean has to be async xi 3.0 using the same Message type as the sync interface.
The order of the Message mapping is important on the Signature tab.
"Large" message should be "Message 2".
Parameter "mappingid" should look like this: ESV_OM_i123_211_Remove_Content(df102557ad5b3198929ec4e0d89b1f75)6257e340cde711de93f9f3330afd843c
mappingid = <Dummy text>(<operation mapping object id>)<software component version object id>