on 2023 Jul 13 11:07 AM
Hello All,
I am new to Successfactors adapter, I am looking for a logic to fetch the compound employee API data based on only 1 changed field (i.e shift code) which is present in the job information. It is a delta interface which runs on monthly basis. I want to populate the below fields to the CNUM,FirstName,LastName,Company,Band,StartDate,EndDate along with Shiftcode to the output CSV file.
Please find the below case,
1) If shift code is not changed then I don't have to consider that record for file generation.
2) If the shift code is changed then I should send the record with startDate and Enddate (on which the shiftcode is changed) and other fields to generate the CSV file.
I have used the parameter : "queryMode=delta;resultOptions=renderPreviousTags" and last_modified_on in my query so as to pull the delta records
I hoped that through "previous" tag i will be able to find the exact job information record in which shift code is changed out of many job information nodes. But i have seen the below behaviour
for ACTION= INSERT case
For this case , it will be not generate any "previous" tag, which is making it difficult to identify whether the Shift code is changed or not,if so in which job information node
for ACTION = CHANGE Case :
There will be multiple job information nodes generated, i observed that "previous" tag is occuring to the shiftcode <previous> tag is carry forwarding to the other job information nodes, though there is no change in the shiftcode.

Please help how to achieve this logic?
Request clarification before answering.
Hello,
Since the interface frequency is monthly, I think the queryMode can be periodDelta instead of Delta. This will not only give you records that have changed since your lastrun but will also return you records that have a Start_Date within your given range.
As far as the previous tags are concerned, you will only get the previous tags when a certain field is Changed. In case of INSERT you won't get the previous tags as INSERT action indicates that its a new records creation.
Now coming to the logic that might work for you would be as below:
IF action == 'CHANGE' AND custom_String19 != custom_String19_previous AND custom_String19_previous != '' then consider that record.
IF action == 'INSERT' AND custom_string19 exists (custom_string19) then consider the record.
Let me know if this works for you.
Thanks,
Pranav.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I think you'll need something like a message mapping before, where you want to check
IF the change made is after the last modified date of previous delta run (i.e. last run date) & previous tag for shift code is missing
THEN
TRUE
ELSE
IF the change made is after the last modified date of previous delta run (i.e. last run date) & previous tag for shift code is not the same as the most recent tag
THEN
TRUE
ELSE FALSE
This can then be placed in a tag and used in a router to filter out stuff that hasn't changed.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Jasper, Thanks for the response. The flow will run on a monthly basis. I am already fetching the changes in the records based on the last modified run date. In those records, I have a situation to identify only those job information records where only when shift code is changed (i.e Custom_String19) . As i said i have 2 cases here, INSERT and CHANGE. In INSERT, I am finding it difficult to identify the records where the change is occuring. Some times ,with in the same month there will be multiple changes for the same shift code. Need some suggestions on how to handle these cases. Any help is appreciated.
| User | Count |
|---|---|
| 7 | |
| 3 | |
| 3 | |
| 2 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.