Skip to Content

PI.SFSF Integration.DOC – Integration between Non-SAP System and Successfactors BizX. – Part III

This document is in continuation to my previous blog PI.DOC- Integration between Non-SAP System and SFSF BizX. – Part II


Screenshot below shows Configuration [ Integration Directory] object for update user data scenario.


PI Configuration Overview

Sender and Receiver logical business component representing source and Target System.



Image 18.JPG

The business component contains sender interfaces and sender connector.

Outbound Interface : UpdateRequest_Sync_Out

Connector Sender : CC_SOAPUISessionCreate

Image 19.JPG

The business component contains receiver interfaces and receiver connector.

Inbound Interface : UpdateRequest_Sync_Out

Connector1 : CC_SOAP_Receive_SessionCreate

Connector 2: CC_SOAP_Axis_Receive_DataSend

Image 20.JPG

SOAP Sender Communication channel – Getting data from source system.

Connector Sender : CC_SOAPUISessionCreate

Image 21.JPG

SOAP Receiver Communication channel – Used to call login Operation to get session ID.

Connector1 : CC_SOAP_Receive_SessionCreate

[  Image ]

Image 33.JPG


SOAP-AXIS Receiver communication channel along with axis Module config:

Sending xml data to SFSF SOAP UpdateOperation API with Session ID in HTTP header.

Connector 2: CC_SOAP_Axis_Receive_DataSend

Image 22.JPG

Integrated configuration Object : Check Screenshot Tab by Tab.

Image 23.JPG

Testing Scenario:

Updating email address to SFSF from third Party.

Updating with

Image 24.JPG

1.       Log in into Successfactor frontend

2.       Go to Admin tool

3.       Open API Data dictionary

4.       Search User Entity details.

Image 25.JPG

Downloading WSDL to desktop from SAP PI Integration Directory :

1.       Log in into SAP PI Integration Directory

2.       Open Integrated Configuration Object

3.       Go to Integrated Configuration

4.       Hit Display and generate WSDL.

5.       Result : Downloaded WSDL to Desktop.

Image 26.JPG

Sender System Application: SOAP UI Tool

1.       Upload Downloaded WSDL here in SOAP UI.

2.       Populate Sender data in appropriate fields.

3.       Choose correct endpoint.

4.       Enter SAP PI Username and Password Detail.

5.       Hit Send Response data

6.       Result : Here Sent Response data to SAP PI System and Receive Success response.

Image 27.JPG

Middleware – Message Monitoring :-

1.       Go to SAP PIMON

2.       Choose Message Monitoring

3.       Fill appropriate filter criteria and Shows Message

4.       Result : Here successfully received and delivered to SF SOAP API.

Image 28.JPG

SAP PIMON Message Monitoring log details.

Image 29.JPG

Target System : Successfactor Biz X.

1.       Log in into Successfactor frontend

2.       Go to Admin

3.       Open API Audit Log Details.

4.       Result : Here Shows Request and Response data received from SAP PI.

Image 30.JPG

Image 31.JPG

Successfactor frontend screen showing updated email ID. – Successful.

Image 34.JPG

Thanks ……

Please share comments and review.

You must be Logged on to comment or reply to a post.
  • Excellent post. I´m gonna try to replicate the scenario.

    Could you upload the image for:

    SOAP Receiver Communication channel – Used to call login Operation to get session ID.

    Connector1 : CC_SOAP_Receive_SessionCreate

    that is missing.

    Thanks a lot.



  • Thanks for Sharing!

    Do we need to create a seperate sessionID for each message. Does it has any peroformance issue if we have new sessionID’s for each message.



  • Good post.

    I am going to integrate SAP ERP HCM add-on 2.0 and Success Factors using SAP PI as middleware. I have downloaded the standard components SFIHCM01 and SFIHCM02 from service market place into ESR.

    To start with…. Can you please give me a idea that a pi developer should do ( in both ESR and ID ) at a glance.

  • Hi Everyone,

    We are configuring an integration scenario between ECC and SF through PI and I can see the version of the PI components we have imported already have the objects maintained for each of the Service Interfaces.

    We are now trying to make a call to the Login Service and the same is not returning a proper SessionID

    <?xml version=”1.0″ encoding=”UTF-8″ ?>

    <ns1:loginResponse xmlns:ns1=”“>






    You mention we should not the AXIS Adapter for the Login, but the most recent admin guide provided by SAP and SF says we should use it, Also, the Communication Channel templates they provide use this adapter.


    Would you be able to provide some guidance on this configuration. When I test with SoapUI, I am getting a proper session ID.




    • Hi Ricardo,

      Were you able to solve this issue of Invalid SFAPI session ID. For me on SF side it shows as 3A195469F8F662EE2A6F9968342AE498.dc4salesapi03, but when I check in PI it looks like $Version=0; BIGipServerdc4-salesdemo-web=2182349834.20480.0000; $path=/.

      Any help will be highly appreciated.


      Yashu Vyas

    • Yes Recent Content is using SOAP Axis for both interface – Login and other operations.

      So no worries . Go ahead use it as you like old way or new way.

      No issues in any case,

      • Hello, guys.

        I have created an integration ECC/SF following the step from this excellent tutorial.

        Unfortunately I am getting the SFAPI Session Invalid error.

        SOAP Lookup is working fine. In mapping, if I test it, it gets me a session id.

        I also used SOAPUI then, in PIMON, I see on Message Attribute tab the Cookie and Session Id. What could be the problem?



          • I did. I don´t know why SoapLookup returns 2 session ids.

            I created a graphical mapping for Login(Request/ Response), then, using XSLT, I passed sessionId to Dyn Conf, as you can see below:

            <?xml version=”1.0″ encoding=”UTF-8″?>

            <xsl:stylesheet version=”1.0″ xmlns:xsl=”” xmlns:map=”java:java.util.Map” xmlns:dyn=”” xmlns:key=”” xmlns:ns0=”http://vc.successfactors.api“>

            <xsl:output indent=”no”/>

            <xsl:param name=”inputparam”/>

            <xsl:template match=”/”>

              <xsl:param name=”new-value”>

               <xsl:value-of select=”ns0:MT_OPERATION_REQUEST/sessionId”/>



              <!– change dynamic configuration –>

              <xsl:variable name=”dynamic-conf” select=”map:get($inputparam, ‘DynamicConfiguration’)”/>

              <xsl:variable name=”dynamic-key” select=”key:create(‘‘, ‘Cookie’)”/>

              <xsl:variable name=”jsessionid” select=”‘JSESSIONID='”/>

              <xsl:variable name=”cookieSession” select=”concat($jsessionid, $new-value)”/>

              <xsl:variable name=”dummy” select=”dyn:put($dynamic-conf, $dynamic-key, $cookieSession)”/>

              <!– copy payload –>

              <xsl:copy-of select=”.”/>


            <xsl:template match=”ns0:MT_OPERATION_REQUEST/sessionId”>




            I created a field for other operations(insert, update, etc) to store sessionId returned from Login.

            Now it Works fine.

            Hope it helps you too.

  • Hello Sharma,

    I noticed  that  you create 2 communication channels of receiving(SOAP,SOAP Axis), how to use them? How to communicated with SF. Thank you for your response in advance.

    Thanks & best regards,


    • SOAP I used for Login and Logout

      SOAP Axis I used for Query and Update – Reason – because here we are sending SessionID also  in SOAP HTTP Header ( JSessionID).

      • Hi Prabhat,

        We are looking for SF Compensation Data –> PI –>ECC but here we need to pass only less than 5 fields so could you please let me know how to achieve and same time there is another requirement is that ECC –>PI–>SF Compensation. So could you please guide me.