· I would like to extend my current BPEL based SFDC integration flow to cater request from a newer Source application running on SAP – via OSB.
[ SAP(OSB)<====>(BPEL)<====>SFDC(salesforce) ]
· This raises a requirement of Mapping OSB incoming Message to BPEL Structre – where I would like to use familiar XSLT Transformation within OSB Flow
ProxyService - We have a Proxy Service built for SAP Application to consume and send the outbound request to middleware. – this is built out of a concrete WSDL structure
BusinessService - We have Connected this proxy to a Business Service build out a BPEL WSDL- obtained from a pre-deployed BPEL Composite application that in turn communicates with (SFDC-salesforce)
Solution:
We need to develop our XSLT file using Jdeveloper .and for this we create a dummy BPEL process say Project 1.
Download the required WSDL artifacts for transformation
· Download the OSB Proxy WSDL,this is invoked by SAP Source application, keep this handy -
http://host-name:port/myosb/SAP_SFDC_PPLPublish/ProxyService/SAPPPLPublish_PS?wsdl
· BPEL composite end point for SFDC comonent -
http://host-name:port/mysoa-infra/services/CRMASYNC/SFDCPPL_EventManager/sfdcppl_eventmanager_client_ep?WSDL
Connect this Dummy BPEL Service to actula intended target – which is nothing but our orginal BPEL Target Application for Salesforce
DO a simple XSL transform between the SAPPPLPublish_PS OSB ProxyService structure to actual target SFDCPPL_EventManager Structure. – call this as Transformation_1.xsl
Create a pipeline pair ,between your SAPPPLPublish_PS and Routenode SFDCPPL_EventManager.
Add stage1 to request pipeline pair node1.
Edit the Stage one with following Assignments
· 1st Assign the incoming content received by proxyService to inputVar – thus inputVar contains the exact payload with out <soap-env/> wrapper
-
-
· Use 2nd Assign and select XSLT Resource ,Browse and Select the XSLT Transformation_1.xsl file generated usin JdeveloperEditor,
- Use the $inputVar as the variable representing Input Document to the XSLT Transformation.
- Assign the result of this XSLT transformation to variable outputVar
· 3rd Replace everythingin body to routenode with the result of above transformation stored in outputVar
- Choose node content
Save the changes and , Activate the changes in change center.
Testing from Proxy Service and Verifying the Trace.:
Incoming Payload to OSB Proxy Service | Outgoing Transformed Message through routnode to BPEL Service |
No comments:
Post a Comment