Oracle Human Capital Management (HCM) cloud provides several ways to extract changes to propagate to other systems, such as EBS or another coexisting application. These alternatives are compared in depth in documentation at this link. Using atom feeds is a quick and least resource-intensive approach. Refer documentation at this link for more information on HCM Atom feeds and the resources (objects) supported. In this post, let’s take a look at how to consume Atom feeds in Integration Cloud Service (ICS).
Here is an A-team article that describes how to use HCM Atom feeds, with another Oracle iPaaS solution. The basics covered in that post are applicable for this post as well, hence not repeated. A possible design to synchronize HCM changes to EBS is shown in figure 1.
Figure 1
Atom endpoint should be invoked with “updated-min” parameter to avoid updates already processed during previous invocations. The value for this parameter should be the time of the last update processed in atom feed in previous run. ICS provides schedule parameter feature to store values between runs of a scheduled orchestrations. In the orchestration, the last observed date and time of update should be stored before orchestration ends. Figures 2 & 3 below show steps to access schedule parameters page and adding a schedule parameter.
Figure 3
Final point to note is the JSON content embedded inside the XML output from Atom endpoint. This JSON content could be parsed using substring function or using a custom JavaScript function stored under Libraries.
<feed xmlns="http://www.w3.org/2005/Atom"> <id>atomserver:empassignment:feed</id> <title type="text">Person's Assignment Changed</title> <link href="https://ucf5-fap0337-hcm.oracledemos.com/hcmCoreApi/atomservlet/employee/empassignment" rel="self"/> <updated>2013-12-11T04:20:41.306Z</updated> <entry> <link href="https://ucf5-fap0337-hcm.oracledemos.com/hcmCoreApi/atomservlet/employee/empassignment/EMP300000150010928" rel="edit"/> <id>atomservlet:empassignment:EMP300000150010928</id> <title type="text">Parker, Erica's Assignment Updated</title> <updated>2017-09-12T13:01:36.000Z</updated> <author> <name>RICHARD.MACINTYRE</name> </author> <summary type="text">Person Manager Updated</summary> <published>2017-09-12T13:01:36.000Z</published> <link href="https://ucf5-fap0337-hcm.oracledemos.com:443/hcmCoreApi/resources/latest/emps?q=PersonId=300000049070165&effectiveDate=2015-04-20" rel="related"/> <content type="text">{ "Context" : [ { "PrimaryPhoneNumber" : "44 20 6501879", "AssignmentId" : "300000049071707", "PersonId" : "300000049070165", "PersonName" : "Parker, Erica", "EffectiveDate" : "2015-04-20", "WorkerType" : "EMP", "PeriodType" : "E", "PersonNumber" : "514", "WorkEmail" : "fap0337-Erica.Parker@oracleads.com" } ], "Changed Attributes" : [ { "ManagerId" : { "old" : "300000048939614", "new" : "300000048933115" } }, { "ManagerAssignmentId" : { "old" : "300000048939703", "new" : "300000048933232" } } ] }</content> </entry>
This post discussed enabling consumption of atom feeds in ICS and preventing duplicate updates in the feed. It referred to another blog for more details about HCM Atom feeds.
A-team blog on Atom feeds:
http://www.ateam-oracle.com/hcm-atom-feed-subscriber-using-soa-cloud-service/
HCM cloud documentation (data extraction):
https://docs.oracle.com/cloud/latest/globalcs_gs/FARWS/Atom_Feeds.html
HCM cloud documentation (Atom feed):
https://docs.oracle.com/cloud/farel9/common/FAIHM/F1434037AN217EE.htm#F1400560AN219EA#FAIHM1400560
Previous Post
Next Post