OData Adapter and SFSF Adapter (extensions) for SAP Process Integration
Update: New blog on how to configure SFSF adapter with REST Protocol: HowTo: Configure Communication Channel with SFSF Adapter (with REST Message Protocol) for SAP Process Integration
I am pleased to announce that today we released SP1 of the “SAP Process Integration, connectivity add-on 1.0”. This release of the add-on consists of
- a new “OData Adapter“
- and extensions to the existing “SFSF Adapter”
Overview
The OData adapter enables integration with OData service providers. It currently focuses on the consumption of OData services. It supports synchronous as well as asynchronous modes of operations. All OData operations are supported and you can choose the desired operation within the channel configuration itself.
The SFSF Adapter has been extended to support SuccessFactors Adhoc and OData API’s along with several other features. Within the channel configuration, by switching the message protocol from SOAP to ODATA, you can communicate with the OData API’s exposed by the SuccessFactors system.
For your reference, here are some example scenarios of OData API integration between SAP ERP HCM and SuccessFactors Employee Central using the SFSF Adapter:
1. Employee Central Employee Data Replication to ERP HCM Employee Replication 2. ERP HCM Employee Replication to Employee Central Employee Data Replication
3. ERP Employee Data Replication Confirmation to EC Employee Data Replication Confirmation
Capabilities of OData Adapter
- OData Operations – The OData adapter provides Query, Read, Create, Update, Merge & Delete operations.
- Authentication Methods – The adapter supports Basic Authentication (Username & Password) and Client Certificate based authentication.
- HTTP Proxy Settings – The OData adapter supports the usage of HTTP proxies.
- HTTPS Communication – OData adapter supports secure communication by using SSL certificates.
- Using HTTP Destinations – The adapter supports use of HTTP destinations created in NetWeaver Administrator, within the channel configuration. This reduces the effort of manually entering HTTP connection details during channel configuration.
- Pagination – The OData adapter handles server side pagination. It merges the response from the server in the form of multiple pages into one single payload. It also supports client side pagination using query parameters.
- Integration with Channel Ping – The adapter is integrated with channel ping, which enables validation of channel configuration.
Capabilities of SFSF Adapter
- OData API – The SFSF adapter can now be used to communicate with the SuccessFactors OData API’s. The OData operations supported by the SFSF adapter are Query, Read, Create, Update, Merge & Delete.
- Adhoc Entities – The adapter enables querying Adhoc entities from SuccessFactors system. You can also specify the maximum time the adapter should wait for the query results (timeout).
- HTTP Proxy Settings – The adapter supports the usage of HTTP proxies.
- HTTPS Communication – SFSF adapter supports secure communication using SSL certificates.
- Using HTTP Destinations – The adapter supports use of HTTP destinations created in NetWeaver Administrator, within the channel configuration. This reduces the effort of manually entering HTTP connection details during channel configuration.
- Optimized Message Processing – The adapter enables optimized message processing by packaging the SuccessFactors query results into less number of XI messages.
- Integration with Channel Ping – The adapter is integrated with channel ping, which enables validation of channel configuration.
- Integration with Alerting – The adapter is integrated with alerting and can raise alerts for these error situations; Inactive channel, Error during channel initialization, Authentication failure and Message processing failure.
- Operate Sender Channel using Web Services – The adapter supports usage of web services for controlling the sender channel.
Compatibility Matrix
SAP NetWeaver Process Integration, connectivity add-on 1.0, SP1 is compatible with:
- SAP NW PI 711 >=SP12
- SAP NW PI 730 >=SP10
- SAP NW PI 731 >=SP09
- SAP NW PI 740 >=SP04
The connectivity add-on runs fully in the Java stack and supports all valid deployment options of SAP NetWeaver Process Integration (ABAP + Java, Java only). The add-on is included in your SAP Process Integration license and you do not need any further license to use the adapters.
Documentation & Download Link
- Help Documentation: http://help.sap.com/nw-connectivity-addon101/
- FAQ’s Note – 1964868
- Software Download Link: Software Downloads | SAP Support Portal > Support Packages and Patches > Browse our Download Catalog > SAP NetWeaver and complementary products > SAP NW PI CONNECTIVITY ADDON > PI CONNECTIVITY ADDON 1.0
Additional Resources
- For information on SP0 of the add-on, refer the blog: SuccessFactors (SFSF) Adapter for SAP NetWeaver Process Integration
- HowTo: Configure Communication Channel with SFSF Adapter for SAP Process Integration (PI)
- HowTo: Configure Communication Channel with SFSF Adapter (with REST Message Protocol) for SAP Process Integration
Thanks for this most awaited feature.
I have following follow-up questions.
1. Does OData Supports Queries with $expand Feature of SFOData.
e.g Such as below query will it work in Odata SFSF Adapter ?
https://api5.successfactors.eu/odata/v2/PerPerson?$format=json&
$expand=personRelationshipNav/relPersonNav,personRerlationshipNav/relPersonalNav
2. So I want to understand How is the Conversion done in Channel - PI will send OData Query ( such as above ) to SFSF Receiver adapter and in response it will return us the XML data ? ( So JSON/Atom format to XML converison was done by channel itself ) ??
3. Does Modelling is supported by Odata Quaries also ?? ( such as above quary ) ?
Regards
Prabhat Sharma.
Hi Prabhat
Thanks. Please find my replies to your queries below:
1. Yes, $expand is supported. But $format is not supported as yet and the channel requires the format to be Atom.
2. Yes
3. Yes, the modelling is supported.
Regards
Finny
this is a great start.
When can we expect, OData sender side support and a plain REST adapter?
Thanks Shabarish.
Plain REST adapter is already planned and is currently under development. We are working hard and hopefully will release it sometime this year.
Same Question - Finny . Can OData be used for Dynaimically build query ??
Exceptional Work !!!!!!!!!!11
Thank you Finny Babu for the most awaited release of ODATA adapter. I have following query.
In order to work around, where can i find the use cases....
Regards
Koti Reddy
Hi Koti
The SFSF and OData adapters which comes as part of the Connectivity add-on, do not have any pre-shipped content as yet. You will have to build your own content based on your scenario.
Is this the part of the future SAP API Platform?
Hello Finny,
Is RDS available for ESR content and ECC developments ? I mean the Proxy implementation available on ECC similar to what was available for communication using File or Axis adapter ?
The current implementation in ECC for File / Axis adapter is very much tied to the communication technologies ( Doing Login / Logout request from ABAP itself) which is not reusable for any other adapter type.. Is there any plan to make it more independent to protocol being used ? As it seems that SAP is releasing new communication protocol more often for SuccessFactor ( Started with File then Axis Then SFSF (SOAP) and now SFSF (OData)).
Thanks & Regards,
Dijesh Tanna
Hi Dijesh
The SFSF and OData adapters on PI do not have any pre-shipped content as yet.
SuccessFactors exposes SOAP, ODATA & REST API's for its modules and hence the SFSF adapter had to/have to support them.
Great job.. Thanks for sharing this info..
Regards.,
V.Rangarajan
Thanks Ranga.
Do you have any advice on the best method for applying this add on,
I have a new version of PO 7.4 SP4 what is the best approach to applying this add on? Is it still to use SUM or could I use NWDS?
Thanks,
Jon
Using SUM tool is the preferred option.
Ok thanks, this worked great.
Hi,
Our Basis team recently installed the adapter pack on our 7.11 SP12 system and reported no installation issues. I tried to created a test channel (struggling a bit as the documentation is light). after activating without any error in Integration Builder, the comms channels show the following:
Status: ????
Short Log: No adapter registered for this channel.
Has something been missed in the deployment...?
thanks
Brian
Hi Brian
Are you using the OData adapter on 7.11? If yes, we are having a technical restriction on using OData in 7.11 and this is also mentioned in the FAQ note - 1964868.
We are looking into this issue but do not have an estimate as to how this can be solved and when this will be available. Once we have a solution we will release a patch for this restriction.
Hi Finny,
i have configured a end to end scenario between PI(7.3.1)->Success Factors
IN ESR i have created the data structure according to Success factors RestFul webservices.
i have used a SOAP sender channel and a tried with ODATA & SFSF adapter at the receiver side,
i have the following doubts & Errors
1. what do we have to enter in Resource path field in both the adpaters, I have read about the HCI(HANA Cloud Integration), but dont have a clear idea it,
can we use something else in place of it for configuring the RESOURCE PATH field, please through some light on this.
2. the error that i am facing for both the adapters in the channel monitoring is as follows :
Connection to the OData endpoint was not successful.The error is com.sap.aii.adapter.lib.component.odata.exception.OsciException: Request processing not possible, problme in getting edmx file
i am testing the scenario from test tab in RWB in PI
regards,
sushant
1. You do not need to understand everything in HCI (even though it is good to know :-)) to model the resource path. You just need to use the HCI's eclipse based query modeler to generate the Resource path, and then copy it from there into your channel configuration. Please refer the documentation for more details:
Modeling OData Operations - Creating HTTP Destination - SAP Library
2. Can you please try by using HTTP proxy in the channel configuration?
Hello Finny,
thanks for the reply, it proved really helpful.
can you please suggest which JAVA juno tool (www.eclipse.org/downloads/packages/release/Juno/SR2) would be most suitable for the for modelling the operation.
regards,
Sushant
Hi Sushant
You can use any version of eclipse juno, but make sure you get the latest version of the plugin. Installing the Operations Modeler - Update and Installation Guide: Overview - SAP Library
Hello Finny Babu,
1) As per my understanding, Eclipse is a client software, it is to be installed on a pc/end computing system But, let me know whether Eclipse is to be installed on Server or not.
2) How to deploy the iflow diagram from pc to remote server so that the configurations automatically reflect in ID (i mean if we install eclipse on pc then without any backend connections how can it be deployed into SAP PI server ).
3) Can provide any useful links for the same ?
Hi Koti
1. The eclipse client is required just to model your query, you can put it anywhere you want. To model the query you can create a dummy iflow and once modeled copy the query to your channel configuration in PI.
2. No need for this. The eclipse client is required just to model the query.
3. Modeling OData Operations - Creating HTTP Destination - SAP Library
Installing the Operations Modeler - Update and Installation Guide: Overview - SAP Library
Hi Finny Babu,
Thanks for your reply.
After modeling receiver comm channeI I have generated, imported XSD file into ESR and used the same structure fro sync outbound & inbound service interfaces and configured end to end scenario(SOAP->SFSF-Odataprotocol). When i test it from SOAP UI it says that Request processing not possible, error in getting EDMX file in comm channel monitoring.
Please let me know
1)Where to place the EDMX file downloaded from Eclipse so that the PI system can access it during runtime.
2)Is it necessary to model the query for sender SOAP channel from iflow diagram ? because the system shows 407 proxy error only for sender side and moreover we don't have have the QUERY option in sender SOAP comm channel.
3)As the imported XSD file gives only one structure, which doesnt contain request n response fields; how to differentiate the req n reponse field tags in the entity.
Note: Eclipse n modeling is done on external system and just imported the XSD into ESR and EDMX file location is given as Resource path in receiver SFSF comm channel.
Regards
Koti Reddy
Hi Koti,
1. The EDMX file need not be used at all. You can ignore the file. This will be downloaded automatically by PI.
2. No, it is not necessary to model for sender soap channel. If you are doing only a query operation then any dummy payload you send should work.
3. The imported XSD is the exact response that will be received by the adapter. As you are sending a dummy payload from the sender, you can choose anything you want.
You are getting the error because you are providing edmx path as the resource path. The resource path should be an SFSF entity (User etc). When you do query modeling, you will get the resource path in the channel after finishing the wizard.
You can see the resource path in the below screenshot.
Best regards,
Bikash
Hi Bikash,
Still i am facing the same error even after replacing the resource path as my entity (Position).
I have installed the eclipse and operation modeler outside my system landscape say my pc. When i modeled i the scenario, EDMX file got automatically generated as shown below.
Later i have transported XSD and EDMX to my landscape and configured the end to end scenario importing the XSD.
1) Should we maintain any connection between the external client system & pi system ? bcoz without any connection how can pi access the auomatically generated edmx file
2) Can u reply to my post Consuming OData API in SAP PI 7.3.1 dual stack
Regards
Koti Reddy
Hi Koti,
The EDMX file will be automatically downloaded by PI. The adapter knows how to do it.
Is the proxy settings set in the channel? If it does not work then mail me the nwa logs at bikash.prakash.mishra@sap.com
Best regards,
Bikash
Hello Koty, I'm facing the same problem,
after having configured the flow when I call the data i get the error message "Request processing not possible, problem in getting edmx file".
Can you please tell me how you solved it?
Thanks in advance
Damien
Hello Damien,
Usually this issue is related to the http proxy configuration. Are the proxy details filled in the channel?
Best regards,
Bikash
The proxy configuration was filled. Anyway it was a networking problem solved by the client side.
Hi Bikash,
While using query in the Sender SFSF adapter(Compound Employee entity), would the outbound interface have to be synchronous? If so, then what would the request structure be cause the request I believe would be generated by the adapter itself, right?
Regards,
Amith
Hi Amith,
It NEED NOT be synchronous. You can configure it as Async as well. Use eclipse based tools like kepler/luna/juno etc and model your scenario. As you select the operation, provide the URL and credentials, you can select the entity(C.E in your case) and select the fields you want to query. XSD gets generated automatically and you can import it in ESR. So you don't have to worry about creating your source structure.
Hi Bikash,
We have lookup scenario with OData Entities also. ( Syncronous Scenario - Request OData Query and in response data ).
So Here is our requirement :-
We need to build OData Query dynamically/ run time in message mapping and then we pass it to SFSF Receiver adapter – OData Protocol.
Does it even supported using SFSF OData Receiver channel ?
if Yes – What should be sample request message for OData Dynamic Query
and how would it give response back?
Does it give all the records in single go? Or with Odata
also we have same limitation like query/ and queryMore calls like in case of
Simple SOAP Request-Response Message??
Regards
Prabhat Sharma
Thank you very much the most awaited information.Very helpful babu...
HTH
Naveen
Hi
regarding the installation. I have downloaded the Documention, Installation and Support Pakages and Patches into 3 folders.
The Documention folder contains "50125335 SAP NW Process Integration Connectivity addon 1.0 SP01 Docu.zip".
The Installation folder contains "51047915 SAP NetWeaver Process Integration, connectivity add-on 1.0.zip" - and buried deep inside (amongst other files) this is a PICOASUF00_0.SCA and a XI7_11_CONNECTIVITY_ADD_ON_1.0_0_00_00.TPZ
The Support Packages and Patches contains 3 zip files
The SAP master and install guide gives me no clear idea on how to install them.
So how do I install them? What order so I install them and do I need to unpack them to get at the SDA and TPZ etc for installation by the SUM tool.
..........
Well I have installed the first part. From the installation folder unpacked the ZIP file and "pointed" SUM at the subfolder that contains the .SCA file. Installed this - once that completed (about 1hour) I then unpacked the other ZIP file that contains the .TPZ and imported that into the Integration Builder. I could then open up the Integation Configuration and choose SFSF as an Adapter. I guess I will just follow the same type of process for the patches.
..........
The patches \PI CONNECTIVITY ADDON 1.0\Support Packages and Patches\CONNECTIVITY1001_1-10013356.zip contains the TPZ and once imported this then allow me to choose the ODATA as an Adapter.
I will now unzip the other 2 patch files to access the .SDA in there into a new folder eg. D:/newSDA. Then launch via D:\usr\sap\<sid>\J01\j2ee\console\textconsole.bat and deploy each .SDA in turn e.g. deploy D:\newSDA\com.sap.aii.adapter.picao.util.app.sda version_rule=all
...........
Also if you intend to use the SFSF with ODATA msg protocol then the Eclipse Juno Operation Modeller should also be installed to properly form your queries etc.
Hope this helps people !.
Thanks Finny!
Are there any plans for Salesforce adapter by SAP. I know we have third party adapters, but really looking from SAP 🙂
Thanks,
Krishna.
Hi Finny Babu,
We configured Receiver OData adapter in PI and getting below error. Using same user and pwd I was able to connect using Juno tool. Where can I pass Company ID in receiver OData adapter ? without company ID how do I connect my account in Success factor. Please confirm.
Message could not be forwarded to the JCA adapter. Reason: Permanent error: Adapter call failed. Reason: com.sap.aii.af.lib.ra.cci.XIAdapterException:
Thanks for your help.
Regads,
Venu
Hi Venu,
Please use successfactors adapter with odata as message protocol. You would be able to do odata calls with that.
Best regards,
Bikash
Thanks Bikash. Now it's working with that.
Can we test same query whatever we are using Odata Resource path in SOAP UI or any other test tool, first if we can test query using tool then we can see what response is coming, Pls let me know what is the testing client we can use for ODATA API's.
Regards,
Venu
yes you can use various chrome extensions available. Advanced rest client and postman are few of them.
Best regards,
Bikash
Hi Finny and Team,
Can you please clarify below points
1) Whether it is possible to have synchronous communication with SuccessFactors using SFSF Receiver Adapter
2) Operate Sender Channel using Web Services - The adapter supports usage of web services for controlling the sender channel.
How do we achieve the above fucntionality, can you share more details on this capability.
Thanks & Regards,
Prakash
Hi Prakash,
1) Yes it is possible to have synchronous communication through SFSF receiver adapter.
2) This is the ability to control the channel externally. Below link describes the usage.
https://help.sap.com/saphelp_nwpi71/helpdata/en/45/0c86aab4d14dece10000000a11466f/content.htm
On every start stop through the service call, the polling will happen.
Best regards,
Bikash
Hi Bikash,
Thanks.
1) Regarding Synchronous communication in SFSF adapter
How to get XSD for the Request and Response structure for the SFAPI? Can we download XSD from Success Factors Cloud System?
Example Scenario: To query API and get the response back to the calling application
Please provide the details.
Thanks & Regards,
Prakash
The request xsd is exactly same as the request xsd for asynchronous messages. The response xsd is not shipped in the content. You will have to get one created. The format is exactly same as the response given back when you invoke the web services from e.g. SOAP UI directly.
Best regards,
Bikash
Hi Bikash,
Thanks for your inputs, need some more clarifications for below points
1) For generating XSD whether we can use NWDS or only Kepler is the recommended tool?
2) In sender adapter Delta Synch for ADHOC_XXX entities will have support in future?,
as we have requirement to pull only delta records but as you updated in thread already that it is not enabled for ADHOC entities. So if there is any workaround without BPM for this kind of requirement kindly share.
Thanks & Regards,
Prakash
Hi Bikash,
Can you please provide update for the above queries and also need inputs for below points
In Kepler tool when we model Iflow to generate ODATA query for Sender ODATA protocol is not displaying but in PI Sender Channel ODATA protocol is available .? Please clarify.
Also in Help it is mentioned Delta Sync is possible for ODATA entities, so what is the syntax for delta sync which need to be specified in the query. Please provide more details on this functionality.
Thanks & Regards,
Prakash
Is the delete functionality enabled? I've tried to delete PerEmail or PerPhone without success. What is required?
Hi Finny,
I implemented an end to end scenario with SF in the receiver to query using SFSF adapter.
Worked like a charm. But when i tried the same for delete operation, the XML message that is sent to PI looks fine, but the XML sent by SFSF adapter to SF system looks jumbled and invalid. Hence I get an error as Invalid XML Schema.
I tried the same scenario with Soap Axis adapter, and it is working fine. Is it a product bug in SFSF adapter?
Hi Finny
Nice blog .I have one question.
Do we have ODATA sender adapter available ? Or planned?
Thanks,
Dhanish
Hi Finny,
How do we achieve this in the Odata Adapter?
I have seen multiple calls made from the SFSF Sender adapter but since the OData adapter is limited to being the receiver, how can set it to bring back all pages as one payload?
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
Hi Finny Babu,
I am currently doing the design for Cost center replication from SAP to EC. The service interface available in the package ODTFINCC 600 is OODTF_CCTR_ODTF_CCTR01_OUT which is synchronous while I am planning to update the Cost centers through the ODATA API FO_COSTCENTER but not sure how to make it work synchronously. Not sure about the nature of SFSF adapter and what response will be received when I do the UPSERT within the adapter. Can you please throw some light on this design.
thanks
Ambrish
Hello Colleagues,
We have a requirement to use SAP PI as a middleware to integrate with successfactors. Currently SAP PI version is 7.11 SP12 Java 5 running on dual stack. But when we tried to Integrate with by using SFSF adapter ODATA message protocol, getting error "Java slang mismatch version 5".
By this we noticed that current version is not supported to integrate with ODATA message protocol.
will this issue resolved by upgrading only the SAP PI Java version from 5 to 7 ? Or do we need to upgrade the total system to latest patch level ?
We requested your support in guiding us to resolve the issue
Thanks & regards,
Pradeep J
Hi Finny,
I have tried to create the SFSF ODATA sender channel using ODATA but am facing issues with connection.
I have already asked my question yesterday in the community but so far have not received any response.
https://answers.sap.com/questions/750111/odata-sfsf-sender-adapter-odata-calling-errorodata.html?childToView=749333&answerPublished=true#answer-749333
There is a POC ongoing to test the new ODATA functionality and for this we are trying to make a connection to the free ODATA services provided to confirm the configuration. Using the below service –
https://services.odata.org/TripPinRESTierService/People?$top=2
We have created a new HTTP destination as well as trying out all the configuration options and have tried to ping the destination with various above URL permutations but every time the error is thrown-
Error during ping operation: Error while silently connecting: org.w3c.www.protocol.http.HttpException: Connection reset
Tried with below-
https://services.odata.org
https://services.odata.org/TripPinRESTierService
With HTTP option the error is raised as-
java.util.NoSuchElementException
[EXCEPTION]
java.util.NoSuchElementException
at java.util.StringTokenizer.nextToken(StringTokenizer.java:332)
at com.sap.aii.adapter.sfsf.ra.xi.sfapi.ConnectionInfo.initFromDestination(ConnectionInfo.java:224)
at com.sap.aii.adapter.sfsf.ra.xi.sfapi.ConnectionInfo.<init>(ConnectionInfo.java:123)
at com.sap.aii.adapter.sfsf.ra.xi.sfapi.ODataAPICaller.createODATAAPICaller(ODataAPICaller.java:79)
at com.sap.aii.adapter.sfsf.ra.xi.module.SenderTask.init(SenderTask.java:93)
at com.sap.aii.adapter.sfsf.ra.xi.module.SenderTask.invoke(SenderTask.java:224)
at com.sap.aii.af.lib.scheduler.JobBroker$Worker.run(JobBroker.java:529)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:185)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:302)
I am getting the below error when not using HTTP option-
2/6/19 2:38:07 PM Ended polling.
Error 2/6/19 2:38:07 PM java.lang.NullPointerException: while trying to invoke the method javax.net.ssl.SSLSocketFactory.createSocket(java.lang.String, int, java.net.InetAddress, int) of an object loaded from field com.sap.aii.adapter.picao.auth.ProtocalSocketFactoryImpl.sslSocketFactory of an object loaded from local variable ‘this’
Error 2/6/19 2:38:07 PM ODATA_CALLING_ERROR:OData call failed com.sap.engine.interfaces.messaging.api.exception.MessagingException: ODATA_CALLING_ERROR:OData call failed {0}..
2/6/19 2:38:07 PM Query: /People?$top=2
2/6/19 2:38:07 PM Started polling.
2/6/19 2:36:39 PM Ended polling.
Can you please give any pointers on what configuration is missing?
Regards,
Archana