SuccessFactors Deltasync – Option 1
Of late there have been a few discussion topics raised on how does Deltasync work in SuccessFactors.
Now Deltasync is only available for SFAPI entities – Compound Employee, FO_objects. For OData there are custom options available.
Out-of-the-box
A sender adapter polls SuccessFactors periodically (this could be hourly or daily or could be even based on a schedule you set up for the Sender Communications Channel to poll at 7 AM then 12 PM and then again towards close of day at 6 PM – totally up to requirements and business hours). This will then fetch all the changes to the Entity via the Deltasync option (which is based on the last_modified_on element).
For example, the following is the select statement from SuccessFactors for the Location Foundation Object –
SELECT address_state, end_date, externalCode, last_modified_on, name, start_date, status FROM FO_location WHERE last_modified_on > to_datetime(‘${deltasync.maxDateFromLastRun}’)
In the Advanced tab of the Sender Communications Channel, switch on Use Additional Settings and enter the parameter deltasync.maxDateFromLastRun and a value from where you want the fetch to happen from (thanks to Heiko Konert for posting the below picture on another discussion).
And that is it!
A lot of Integration aficionados (including myself) have wondered where is this data held at? It is a parameter that cannot be modifiable! And perhaps for a good reason too.
The only way you can “change” it is by creating a totally new Communications Channel for your scenario. So that tells me that the Communications Channel name must be a part of the key here. Thanks to Heiko Konert for diligently finding out the parameters SFSF + Party + Service + Communications Channel Name + Channel Object Id.
This is the most basic scenario supported by SuccessFactors. What if for some reason the query needs to be executed at a different time (earlier time) from the value set in deltasync.maxDateFromLastRun?
We will take a look at potential solutions in another blog.
Kevin Laevers you may find this blog useful!
Regards
Arijit
Hi Arijit, Good to see that you have compiled a blog on deltasync option.
I have a query. I am trying to replicate User as SFAPI entity and want to delta sync but the lastModified option does not work.
WHERE lastModified > to_datetime('${deltasync.maxDateFromLastRun}').
The error is java.text.ParseException: Unparseable date: "2012-01-11T17:2419.000Z". Probably the date format is incorrect? Can you please suggest
Hi
I don't know if you still have this issue or found a workaround. We had the same issue an we opened a ticket for it. It was a program error
See note 2541573 for the fix.
Regards
Stéphane
Hi Stéphane,
apologies for late response.
WHERE lastModified > datetime(‘${deltasync.maxDateFromLastRun}’) worked.
Cheers,
Ambrish
Did you fiind the way to get deltasync working??
I am having exact same problem but i am getting a different error.
&$filter=lastModifiedDateTime ge datetimeoffset'${deltasync.maxDateFromLastRun}'
Query succesfully got executed in SF system but in PI i am getting the below error for responce.
Error:SENDERTASK_NO_LMT:Last modified date was not found in the query results. This is needed for delta sync.
Hi Suneel,
Include this field in your select ....
You can use..&$filter=lastModified gt datetime'${deltasync.maxDateFromLastRun}'. It should work!
Cheers!
Hi Ambrish
I want to fetch SF data in HCI based on last_modified_date = system date. What query I can use?
Kunal
Hi Kunal,
I don't immediately know the right syntax for current date but I would use a trick. Use the same query and run the interface once daily at a specified time like 11.59 PM in the night. It will fetch all the changes for that day.
Hope it helps!
Ambrish
Hello Ambrish,
The date format mentioned by you is wrong. Please give the you are suppose to mention the time only till seconds and must not include milliseconds. Please go through the screenshot again for more info.
Regards,
Nitin Deshpande