cancel
Showing results for 
Search instead for 
Did you mean: 

Question on SFSF Adapter : Delta sync to fetch only changed records.

Former Member
0 Kudos

Hi All ,


As per the SAP Document on SFSF Communication channel, one of the feature supported by SP00 release of the connectivity add-on 1.0 is :-


1. Delta sync to fetch only changed records

 

SFSF Adapter: Delta Sync

The delta sync features enables you to fetch only the records that were modified after the last successful data fetch from the SuccessFactors system.

This increases the efficiency of query operation.


So below are my question accross Successfull run date feature :


Is it SAP PI Connector internally maintains this last successful run date ?

what would be Time-Zone of Successful run date : Is it where SF DC is located or where PI Box is Located ?

what is it mean from successful run date ? - is it process successful run date or is it just communication channel successful run date ?
For Delta extraction - This Successful Run Date - Is it maintained internally for  Interface wise or Communication Channel wise ?

eg. If i have 5 Delta Interface - will SAP PI maintain 5 Successfull run dates w.r.t to each connector or w.r.t each Process ?


for more information please open below URL.

http://help.sap.com/saphelp_nw-connectivity-addon100/helpdata/en/1e/22aaf0780d4b78b6f889157f6a8035/f...

Regards

Prabhat Sharma



 


 


 


 


Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi Prabhat,

Have you been able to perform a Delta Sync (Query) using SFSF OData?  If so, can you please let me know how you were able to do this?

Thanks so much!

Cheers,

Dave

arijitkumardas
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi there

You have to add it as a filter condition when you are modelling the EDMX using Eclipse.

In the Filter criteria select the lastModifiedDate field then use the >= operation DeltaSync maxDateFromLastRun and click Add.

This will work for both the SOAP and OData adapters.

Regards

Arijit

Former Member
0 Kudos

I can only work with the java gui for integration builder and I tried a lot of versions. I simply cannot make it work.

Can you tell me how the generated query looks like when executing?

What I can see is, that it somehow should work like this:

  • You insert ${deltasync.maxDateFromLastRun} somewhere in your querystring
  • During runtime it will be replaced by the datetime of the last run

  • You can set the advanced parameter deltasync.maxDateFromLastRun to preset the time for the first run. Otherwise, it will take 01/01/1970.

But for the SOAP adapter, I always get a "failed to query" back from SF.

I tried a lot of different versions of the select - Still no luck.

Although, the replacing of the date is working perfectly.

In the ODATA Channel, it even does not send the select.

If I do the filter without quotes, PI interprets the date as a "property" which cannot be found.

When I use quotes, PI tells me that you cannot compare a date and a string.

Would be nice if anyone got this working on without NWDS and could share!

Cheers, Heiko

arijitkumardas
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Heiko

Your query looks fine. However, are you using deltasync.maxDateFromLastRun in the OData adapter or in the SFAPI adapter? I believe it is meant to be used only in the SFAPI adpater (for Compound Employee etc.). User is an OData entity.

Have you raised an incident with SuccessFactors? They are very prompt with their support.

I am looping in and who are SFSF Gurus for clarification.

Regards

Arijit

arijitkumardas
Product and Topic Expert
Product and Topic Expert
0 Kudos

Also just remembered - for OData entities (like User) if you want delta only then you will need to implement it. This involves the below steps -

store the last_run_date in a custom entity (that is one way to do it);

read the last_run_data; and

pass it in your message mapping for your channel to read it.

Regards

Arijit

Former Member
0 Kudos

Yes!

Thanks to the post and thanks to @Kevin Laevers and @Arijit Das, I found out what my problem was...

Now I'm able to perform delta queries on all SFAPI entities that contain a lastModifiedDate.

For everyone, who's looking for this, here is what to do:

1. Set the where clause in the query to: WHERE lastModified < to_datetime('${deltasync.maxDateFromLastRun}')

2. Set the additional parameter deltasync.maxDateFromLastRun to someting like 2016-06-01T01:02:03Z

Still, I could not get this running with ODATA, because you cannot use "to_datetime" and no string in the ressource path.

Now, there is one mystery to solve: Where is this last run date stored?

From what I can read in the Java Coding, it creates a unique-id from @SFSF+ party + service + channelName + channel.objectId

After successfully retrieving the results, the current system date is passed to a "MessageIDMapper", that seems to store it somewhere.

From what I could see, the date is even not modified, if there are no results.

Cheers, Heiko

bhavesh_kantilal
Active Contributor
0 Kudos

Anybody been able to crack this?Any help appreciated.

Regards,

Bhavesh

former_member187587
Contributor
0 Kudos

I know I know ! 

Former Member
0 Kudos

Um, can you tell us?

former_member187587
Contributor
0 Kudos

Do you have a  specific question in regards?

Please contact me on nimrodg@gmail.com   

Former Member
0 Kudos

I'm wondering how the Deltalogic works because there is no description how to do it.

We are thinking at the moment about a good architecture for some interfaces to / from SF.

What I know so far is, that the Add-On in the HCM system has a working delta logic for Employee profile and reqisitions.

But is there also some kind of logic in the SF-API adapters on PI itself?

E.g. Could I create a query on PI to get all changed requisitions to a third party system?

Are there any detailed configuration examples yet?

former_member187587
Contributor
0 Kudos

HI there Konert

the SFSF adapter , SOAP and OData supports delta-sync functionality as part of the query statement send to the SFSF adapter.

As this adapter is fairly new expect some implementation challenges but from my experiance the support given by SAP team is outstanding. I have a very good expreriance working with them.

Former Member
0 Kudos

Hello all,

I have the same question : in the "official" documentation () is mentioned this :

  1. Delta Sync - The delta sync features enables you to fetch only the records that were modified after the last successful data fetch from the SuccessFactors system. This increases the efficiency of the query operation.

Anyway I cant find any specification on how to use this feature. Do you have any suggestion on how to implement it or any reference to an existing documentation?

Do I need to write you an email to get the info?

Regards

former_member187587
Contributor
0 Kudos

Hi Damien,

Sorry for the late response.

The Delta sync functionality only relevant to SF entities which are not of type Adhoc.

In order to have this fucntionality implemented (If I try to rememeber..its been a while)

you need to model your scenario in the Juno modeler there you will find the Delta Sync checkbox \drop box funciton to mark the process as a delta Sync one.

Good luck.

Nimrod.G