Skip to Content

The SFSF adapter is a part of the Connectivity Add-on 1.0. It facilitates integration between SuccessFactors and ERP via SAP Process Integration (PI). As of SP01, the adapter supports SOAP and ODATA protocols for communicating with the SuccessFactors system. You can access the data exposed by the SuccessFactors system via SOAP and ODATA services.

You need to create operations for the SFSF adapter using an eclipse based tool called the Operations Modeler. You can use the Model Operation wizard in this tool to create operations and then use them in the adapter configuration to execute them.

This guide enables you to configure the SFSF adapter and modeling operations it using the eclipse based Operations Modeler tool.

Prerequisites

  • You have installed the latest version of Connectivity Add-on 1.0. For information on how to install the connectivity add-on, see Connectivity Add-On Installation Guide.
  • You have logged on to the Integration Builder and created a business component with the communication channel.
  • You have created the Integration Flow.

Configuring SFSF Communication Channel

1. When you launch the Model Configuration editor, the integration flow does not have adapters assigned to the communication channel.

/wp-content/uploads/2014/10/1_564643.png

2. You have to assign the SFSF adapter to a channel. Based on your requirement, assign the SFSF adapter to either the Sender Channel or the Receiver Channel. Double-click the channel (highlighted in yellow) in Model Configuration editor. System redirects you to the adapter selection window.

Note: Optionally, you can select the channel (highlighted in yellow) and choose the channel tab page (marked in red) to access the adapter selection screen.

3. In the choose adapter window, select the SFSF adapter by filtering for ‘SFSF’. Choose OK to assign the SFSF adapter to the relevant channel.

/wp-content/uploads/2014/10/3_564647.png

4. In the Message Protocol field, select SOAP or OData based on the message protocol you want to use.

/wp-content/uploads/2014/10/5_564648.png

5. You need to configure the SFSF adapter. Choose the Adapter-Specific tab page.

6. If you have created an HTTP destination and want to re-use it in this configuration, select Use HTTP Destination checkbox. You can assign the HTTP destination by choosing Browse and selecting the destination that you have created.

See Creating HTTP Destinations for details on how to create a process integration HTTP destination.

/wp-content/uploads/2014/10/6_564649.png

7. If you do not want to use the HTTP destination, then choose the SuccessFactors system that you want to connect to from the Endpoint URL field. The SFAPI URL Suffix field is automatically populated and doesn’t need to be modified. In the Login Credentials screen area, specify the Company, Username and Password.

/wp-content/uploads/2014/10/7_564656.png

8. If you want to use the SSL server certificate, select the Specify SSL Server Certificate checkbox. Specify the Keystore View and Keystore Entry by choosing Browse and selecting the appropriate entries in the selection window.

/wp-content/uploads/2014/10/8_564657.png

Note: You cannot specify SSL certificate if you use a preconfigured HTTP destination.


9. If you want to specify the proxy settings, select the Use HTTP Proxy checkbox and specify values for the proxy host, proxy port, and the authentication details for that proxy host.

/wp-content/uploads/2014/10/9_564658.png

10. Choose the Processing tab page.

/wp-content/uploads/2014/10/10_564664.png

Processing details for SFSF SOAP sender channel

/wp-content/uploads/2014/10/10_1_564665.png

Processing details for SFSF SOAP receiver channel

/wp-content/uploads/2014/10/10_2_564666.png

Processing details for SFSF OData sender

/wp-content/uploads/2014/10/10_3_564667.png

Processing details for SFSF OData receiver


11. Provide values for fields in processing tab based on description in table. You use the SAP HANA Cloud Integration eclipse based Operations Modeler to create an operation.

Processing Details for SFSF Sender Channel

Message Protocol Field Description
SOAP Specify AdHoc Query Select checkbox if you want to specify an Adhoc query
Query String Copy and paste the operation or query that you generated using the HCI operations modeler
OData OData Resource Path

Specify the OData resource that you want to use in your operation

Example: If you want to use the resource ‘User’, enter User. If you want to add filter conditions, enter User?<filter conditions>.

Operation Type OData operation that you want to execute
Common for SOAP and OData Poll Interval Specify the values to schedule a cycle for the SFSF adapter to fetch data from the SuccessFactors system
Maximum number of records per page (Batch Size) Specify the number of records that the SFSF adapter fetches in a single data polling cycle
Quality of Service Specify the quality of service for the operation. For more information, see Quality of Service
Maximum number of records per XI message Specify the maximum number of messages that you want to be packaged in a single XI message


12. If your entity name contains the ‘$’ character, you have to select the Select entity for channel processing (Optional) checkbox under Advanced tab and enter the entity name in Entity field.


Example: If your entity name is GoalTarget$1, you need to enter this name to enable channel processing.

If you are reusing this channel for processing multiple entities with names containing ‘$’ character, you need to enter all the entity names separated by ‘,’ (comma).

13. Save the configuration.

Modeling SFSF Operations using HCI Operations Modeler

The connectivity add-on uses the HCI’s eclipse based Operations Modeler tool. You use this tool to generate the XSD file that you need to import to the Enterprise Service Repository (ESR) for mapping operations.

Refer the Installation guide for installing the HCI Operation Modeler.

Note: Use Kepler version of eclipse to get for the latest updates on HCI Operation Modeler.

You can refer to this document on SCN for details on how to model an operation (or query) for the SFSF adapter.

Additional References


To report this post you need to login first.

19 Comments

You must be Logged on to comment or reply to a post.

  1. Sourabh Nirmal

    You have mentioned here that SFSF adapter could be configured using an eclipse based tool called the Operations Modeler. Can this adapter be configured using standard Integration Directory java client as well?

    (0) 
    1. Finny Babu

      Hi Sourabh

      The SFSF adapter can be configured like any other adapters in PI using Integration Directory. It is just the query that is generated via the Operations Modeler and then copied into the adapter configuration.

      (0) 
  2. Gaurav Agarwal

    Hi Finny,

    I am using SFSF adaptor for lets say Employee Data. Now as SFSF Adaptor handles Login and Logout request internally do we have to configure the interfaces for login and logout also or just we need to configure only one interface i.e  Upsert interface and include SFSF adaptor in receiver CC???

    Can you just help me here.

    Thanks,

    Gaurav

    (0) 
    1. Qingfeng Li

      Hi Gaurav,

      Just like you mentioned, login and logout handling internal. You can just create functional interface to SF.

      Thanks

      Leon

      (0) 
      1. Gaurav Agarwal

        Hi Finny,

        As per the above replies I have created only one ICO for Upsert operation. I haven’t created any ICO for login and logout. So now when I am triggering message from HCM system using RH_SFI_SYNCHRONIZE_EMPL_DATA program I am getting PARSING ERROR and when checked in SXMB_MONI of HCM system I am getting this error.

        <SAP:Code
        area
        =”PARSING>GENERAL</SAP:Code>

        <SAP:P1 />

        <SAP:P2 />

        <SAP:P3 />

        <SAP:P4 />

        <SAP:AdditionalText />

        <SAP:Stack>com.sap.aii.af.service.cpa.CPAObjectNotFoundException: Couldn’t
        retrieve inbound binding for the given P/S/A values:
        FP=;TP=;FS=MNGHRMCLNT300;TS=;AN=SFSFSessionHandlingLoginQueryResult_Out;ANS=http://sap.com/xi/SFIHCM01;
        at
        com.sap.aii.af.service.cpa.impl.lookup.CommonLookup.getInboundBinding(CommonLookup.java:250)
        at
        com.sap.aii.af.service.cpa.impl.lookup.CommonLookup.getInboundBinding(CommonLookup.java:171)
        at
        com.sap.aii.af.service.cpa.InboundRuntimeLookup.<init>(InboundRuntimeLookup.java:88)
        at
        com.sap.aii.af.service.cpa.impl.lookup.AbstractLookupManager.getBinding(AbstractLookupManager.java:597)
        at
        com.sap.aii.adapter.soap.web.MessageServlet.getBinding(MessageServlet.java:722)
        at com.sap.aii.adapter.soap.web.MessageServlet.doPost(MessageServlet.java:401)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) at
        javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at
        com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:202)
        at
        com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:103)
        at
        com.sap.engine.services.servlets_jsp.server.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:126)
        at
        com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:79)
        at
        com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:432)
        at
        com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:210)
        at
        com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:441)
        at
        com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:430)
        at
        com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)
        at
        com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
        at
        com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:81)
        at
        com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
        at
        com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:278)
        at
        com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
        at
        com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)
        at
        com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
        at
        com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
        at
        com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
        at
        com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
        at
        com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
        at
        com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
        at
        com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
        at
        com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
        at
        com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
        at
        com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
        at
        com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
        at
        com.sap.engine.services.httpserver.filters.SessionSizeFilter.process(SessionSizeFilter.java:26)
        at
        com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
        at
        com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
        at
        com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:57)
        at
        com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
        at
        com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
        at
        com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:43)
        at
        com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
        at
        com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
        at
        com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:475)
        at
        com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:269)
        at
        com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)
        at com.sap.engine.core.thread.execution.Executable.run(Executable.java:122) at
        com.sap.engine.core.thread.execution.Executable.run(Executable.java:101) at
        com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)
        </SAP:Stack>

        <SAP:Retry>M</SAP:Retry>
        </SAP:Error>

        Can you help me.

        (0) 
        1. Finny Babu

          Looks like you are using the standard integration content.

          This will not work, as SFSF doesn’t have any pre-shipped content available as yet. You will have to build your custom integration content.

          (0) 
          1. Gaurav Agarwal

            That means If I am using this standard program I wont be able to use SFSF adaptor. For this I have to use SOAP Axis only. And can you please explain what do you mean by custom Integration content in this scenario??

            (0) 
            1. Finny Babu

              Hi Gaurav

              If you want to use the standard integration content, this will work only using SOAP Axis adapter. SFSF adapter wont work if you are using standard integration content.

              What I meant with custom integration content, is your custom scenarios which you will have to create. And this doesn’t require configuring login, logout flows.

              (0) 
              1. Gaurav Agarwal

                Thanks a lot Finny for your response.

                Couple of things more I need to ask you.

                1) As you are saying that SFSF will not work with standard integration, Can you just provide me the link or document from SAP side where its says the same. I am not doubting you and please don’t take me otherwise , I just need to have the proof regarding this.

                2) Can you brief me with one scenario where we can use SFSF Adapter for SuccessFactor

                Help will be appreciated.

                Thanks & Regards,

                Gaurav Agarwal

                (0) 
  3. deepak jaiswal

    Hi,

    I have below queries:

    1) How to use SFSF Sender adapter with ODATA protocol to fetch data from multiple entities like Join operation used to fetch data from multiple table.

    2) How to create and pass dynamic filters for the query to be used in channel.

    Regards

    Deepak

    (0) 
  4. Monalisa Sikdar

     

    Hi,

    I am new in SAP PI .I try to create this.But can’t create

    • a business component with the communication channel.
    • Integration Flow.

    Please tell me the step by step process for these.

    Thanks

    Monalisa

    (0) 

Leave a Reply