Problem Statement::· 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 |
 |