Okay – so I’m supposed to be doing something else right now, but a) I’m procrastinating, b) I just got off a call with a whole bunch of SuccessFactors integration “experts” and I want to show that I haven’t completely lost touch!
So, I thought I’d share a teeny tiny simple integration that I helped a customer build the other day. Yep – I didn’t build it – I helped the customer do it (a functional SuccessFactors admin).
Updating data in SF WITHOUT using a workflow just simple integration
It came about because we had just updated from old and honestly less than perfect Boomi integrations to newer (and still not perfect, but better) SAP Cloud Platform Integration based integrations. One of the things that was “fixed” was that leave records in SF and SAP were now being kept in sync. So an old process that they had running in SAP that was updating SAP leave records without updating the SF record was no longer working. Well, truthfully, it did work, right up until the next sync run happened and then the record got updated back to the SF state.
The functional requirement was based on a process this customer has. They allow managers to enter a “unexplained” absence type for employees into SuccessFactors in the case that an employee is a no-show for a given day. When the employee returns to work, they have the option to change that absence type to a personal leave (sick leave or carers leave) or mark it as annual leave, or however it needs to be handled. But if they don’t update the record within 14 days the leave type is automatically changed to personal leave without medical certificate.
On the basis that “Any sufficiently advanced technology is indistinguishable from magic”
I present how we got it to work again in my bad whiteboard drawing style. NB payroll is shown as a little black box because you really don’t want to look in there, and I clearly do not have enough skills with drawing to represent Pandora’s box.
So I’d like to take the time to explain how we got the “Magic aka Integration Center” bit to work.
Making the Magic happen
In Integration Center we created a new integration:
And then chose Scheduled SuccessFactors to SuccessFactors OData v2
Chose the Employee Time entity
Then simply dragged and dropped the external code from source to destination, fixed the time type to 0200 (Personal Leave)
And set the operation to “Update/Merge” (which is a personal bugbear of mine since the HTTP operation should really by “Patch” not “Merge” but that’s OData v2… <sigh>)
Now if we were to run this now it would transform all leave record in the system to time type 0200 – which would be bad… (with great power comes great responsibility Peter!)
So next up let’s restrict which records should be selected…
I’ve only set up one “Unexplained” absence in the system – has time type of 6666
Now we only want to update entries that are time type 6666 and creation date is 14 days in past (I’ve used 14 minutes for this example because waiting 14 days seems a bit excessive for such an unpolished blog post)
Note that date filters have a very useful “relative date” option.
Now jumping back to the configure fields screen and you should see only one entry… (NB if you choose created DATE rather than created DATETIME, just taking 1 min off actually takes you to previous day so be careful what you choose!)
Now if I wanted, I could schedule the job to run daily:
Then just set the schedule and go for it!
But to be sure it’s working, I can actually just run it in preview:
And it works!
Entry updated to personal leave
So simple, yet so powerful!
Usual disclaimers apply – and especially so given the whole Spidey superpower unleashed here. You can really muck up your data doing stuff like this… DO NOT TEST IN PRODUCTION!
I may or may not get around to answering any questions if posted here. So I’d advise, just go out try it. You learn so much more that way rather than asking other people to figure things out for you!
Cross posted from my own website https://www.wombling.com as I wanted to see how easy posting here would be and if there would be any views… lets see!