Synchronize User Information

Usually, user information is created and maintained in the Oracle Applications Cloud. However, sometimes, it may be created or updated in Oracle Applications Cloud but maintained with an external identity management system. When that happens, there's a need to synchronize user information between the Oracle Applications Cloud and the external identity management system. In such a scenario, Oracle Applications Cloud becomes the source of user information that must be imported into a target external system. The process of synchronizing information is called 'Reconciliation'. In this use case, let's look at two different examples of reconciliation.

Initial Reconciliation Process for Onboarded Users

Use this process to create users in Oracle Applications Cloud and then synchronize the user information with an external identity management system.

  1. Create users in Oracle Applications Cloud using the user name generation rule. A username is generated for each new user. See user name generation rule.
  2. Use cURL with date filter parameters and send a GET request to the userRequests Atom feed to retrieve the newly created users.

    You can specify a date range to get users that were created after a certain date (2016-11-28T07:50:00.000Z) but before another date (2016-11-28T07:55:00.000Z).

    curl -i -u "<username>:<password>" -X GET https://servername.fa.us2.oraclecloud.com/hcmRestApi/atomservlet/user/userRequests?updated-min=2016-11-28T07:50:00.000Z&updated-max=2016-11-28T07:55:00.000Z 

    Sample Response Payload

    <?xml version='1.0' encoding='UTF-8'?>
    <entry xmlns="http://www.w3.org/2005/Atom">
        <link href="https://servername.fa.us2.oraclecloud.com/hcmRestApi/atomservlet/user/userRequests/userRequests300100089891619" rel="edit"></link>
        <id>atomservlet:userRequests:userRequests300100089891619</id>
        <title type="text">SOD.User 64102016Nov28_0848 User CREATE</title>
        <updated>2016-11-28T07:52:27.000Z</updated>
        <author>
            <name>FAAdmin</name>
        </author>
        <summary type="text"></summary>
        <published>2016-11-28T07:52:27.000Z</published>
        <content type="text">{"id":"300100089888912","schemas":["urn:oracle:apps:scim:schemas:fa:1.0:userRequest"],"employeeNumber":"955160008185297","user":{"id":"41C78D2719753027E050F50A5A0B07CE","name":{"familyName":"User 64102016Nov28_0848","givenName":"SOD"},"active":true,"userName":"SODUser64102016Nov28_0848","emails":[{"primary":true,"value":"anjali.gandhi@oracle.com","type":"work"}],"displayName":"SOD User 64102016Nov28_0848","preferredLanguage":"en"},"meta":{"lastModified":"2016-11-28T07:49:46Z","created":"2016-11-28T07:49:46Z"},"userType":"EMP","userRequestType":"CREATE"}</content>
        <source>
            <id>atomserver:userRequests:feed</id>
            <title type="text">User Requests</title>
            <link href="https://servername.fa.us2.oraclecloud.com/hcmRestApi/atomservlet/user/userRequests/userRequests300100089891619" rel="self"></link>
            <updated>2014-08-11T17:15:57.000Z</updated>
        </source>
    </entry>
    
  3. Follow the importing procedures of the external identity management system and import the specific users into it to complete the synchronization process.

Incremental Reconciliation Process for Onboarded Users

Use this process when you have updated details for existing users in Oracle Applications Cloud and then have to synchronize them with the existing information in the external identity management system.

Example 1

This example is about synchronizing updates made to an attribute, such as the last name.

  1. Use cURL with date filter parameters and send a GET request to the userRequests Atom feed to retrieve the details of updates made to users between a given period.

    curl -i -u "<username>:<password>" -X GET https://servername.fa.us2.oraclecloud.com/hcmRestApi/atomservlet/user/userRequests?updated-min=2016-11-29T16:20:00.000Z&updated-max=2016-11-29T16:25:00.000Z

    Sample Response Payload

    <?xml version='1.0' encoding='UTF-8'?>
    <feed xmlns="http://www.w3.org/2005/Atom">
        <id>atomserver:serRequests:feed</id>
        <title type="text">User Requests</title>
        <link href="https://servername.fa.us2.oraclecloud.com/hcmRestApi/atomservlet/user/userRequests?updated-min=2016-11-29T16:20:00.000Z&amp;updated-max=2016-11-29T16:25:00.000Z" rel="self"></link>
        <updated>2014-08-11T17:15:57.000Z</updated>
        <entry>
            <link href="https://servername.fa.us2.oraclecloud.com/hcmRestApi/atomservlet/user/userRequests/userRequests300100089902022" rel="edit"></link>
            <id>atomservlet:userRequests:userRequests300100089902022</id>
            <title type="text">Matt.Hooper User UPDATE</title>
            <updated>2016-11-29T16:23:38.000Z</updated>
            <author>
                <name>MHoope</name>
            </author>
            <summary type="text"></summary>
            <published>2016-11-29T16:23:38.000Z</published>
            <content type="text">{"id":"300100089909847","schemas":["urn:oracle:apps:scim:schemas:fa:1.0:UserRequest"],"employeeNumber":"10037454104","user":{"id":"352E980CE9686C4EF1E2CD35987EF86C","name":{"familyName":"Hooper","givenName":"Matt"},"active":true,"userName":"MHoope","emails":[{"primary":true,"value":"sendmail-test-discard@oracle.com","type":"work"}],"displayName":"Matt Hooper"},"meta":{"lastModified":"2016-11-29T16:20:46Z","created":"2016-11-29T16:20:46Z"},"userType":"EMP","userRequestType":"UPDATE"}</content>
        </entry>
    </feed>
    
  2. Follow the importing procedures of the external identity management system and import the retrieved information into it to complete the synchronization process.

Example 2

This example is about synchronizing the user information when an employee is marked as terminated in Oracle Applications Cloud.

  1. Use cURL with date filter parameters and send a GET request to the userRequests Atom feed to retrieve the details of updates made to users between a given period.

    curl -i -u "<username>:<password>" -X GET https://servername.fa.us2.oraclecloud.com/hcmRestApi/atomservlet/user/userRequests?updated-min=2016-12-01T17:55:00.000Z&updated-max=2016-12-01T18:00:00.000Z

    Sample Response Payload

    <?xml version='1.0' encoding='UTF-8'?>
    <feed xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app">
        <author>
            <name>SEED_DATA_FROM_APPLICATION</name>
        </author>
        <subtitle type="text">User Requests</subtitle>
        <title type="text">User Requests</title>
        <id>urn:uuid:336512d57b735708e053f000f40a4a93</id>
        <updated>2016-12-01T17:56:54.994Z</updated>
        <link rel="self" href="https://servername.fa.us2.oraclecloud.com/hcmRestApi/atomservlet/user/userRequests?updated-min=2016-12-01T17:55:00.000Z&amp;updated-max=2016-12-01T18:00:00.000Z"></link>
        <entry>
            <title type="text">Chlastname User UPDATE</title>
            <content type="text">{"id":"300100124192067","schemas":["urn:oracle:apps:scim:schemas:fa:1.0:UserRequest"],"employeeNumber":"955160008187808","user":{"id":"42537B10A2845CC7E050F00A79D327A1","name":{"familyName":"Chlastname"},"active":false,"userName":"Chlastname","displayName":"Chlastname","preferredLanguage":"en"},"meta":{"lastModified":"2016-12-01T17:56:54Z","created":"2016-12-01T17:56:54Z"},"userType":"EMP","userRequestType":"UPDATE"}</content>
            <author>
                <name>FUSION_APPS_HCM_SOA_APPID</name>
            </author>
            <updated>2016-12-01T17:56:54.994Z</updated>
            <id>urn:uuid:4294F549498C24A9E05379D3F00A3B16</id>
            <published>2016-12-01T17:56:54.000Z</published>
            <link rel="self" href="https://servername.fa.us2.oraclecloud.com/hcmRestApi/atomservlet/user/userRequests/4294F549498C24A9E05379D3F00A3B16"></link>
            <link rel="edit" href="https://servername.fa.us2.oraclecloud.com/hcmRestApi/atomservlet/user/userRequests/4294F549498C24A9E05379D3F00A3B16"></link>
        </entry>
    </feed>
    
  2. Follow the importing procedures of the external identity management system and import the retrieved information into it to complete the synchronization process.