Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
I057028
Explorer


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.

7 Comments