You might have seen this kind of approach blogs in SDN, but may be not exactly related to same requirement.
have a little complex requirement and achieved through ccBPM (Database(Jdbc)<–> PI<—>SAP RFC)
Steps on Requirement:
- PI uses select query and get data from Database.
- Select query gets multiple data sets to PI ( for ex: 10 data sets)
- Based upon select query data from Database, PI needs to call RFC 10 times and get the response back on 10 times.
- PI sends RFC response back to Database for 10 times.
Recommend to check: Based upon the data volume from Database, if high volume of data sets, takes time to finish the whole process, This approach only best for less volume of data.
Note: You may use same kind of approach to use to call web service instead of RFC
This blog only shows you message mapping, Operational Mapping and ccBPM steps (between Database and RFC), this information will help you to achieve on.
In this ‘Signatures’ tab of message mapping you must be changed to (0 … Unbound) of your RFC target message type. This setting will help to call multiple times through ccBPM.
After you changed you actual mapping look like this.
In the Operational Mapping also the target service interface occurrence should be 0 .. unbounded
5 Important steps to achieve on this logic
- Transformation step
- Container Operation Step
- Block Step
- Send step
- Multi line- multi line container element is a table comprising elements of the same type.
Map between JDBC Select Query res To RFC request,
In the container list, I specified RFC request enable the ‘Multi line’
Container Operation Step:
In the container Specify the target and use APPEND operation for add expression to the Target.
See here in the screen shot of Expression and Target has used same Abstract Interface and enable the multi line option and operation mode in properties is Append.
Block step is used for Loop in RFC call and mode is ‘For Each’
In the Block step, Properties tab “you specify the multi line container element in the Multi line Element attribute. In the Current Line field, specify a container element that takes the value of the multi line container element for which the block will run”.
Please check also multi line Element and Current Line filed should have same kind of Abstract Interface.
Send the Request to RFC, and get the response back from RFC.
In the properties Tab of ‘Send step’ the request message should be of current line element that you have already specified in the Block step.
In these steps I have only specified you up to get the response back from RFC, the remaining all other steps continue in the block (like send RFC response back to database. Etc).
Hope this blog help you achieve on multiple requests from PI through ccBPM