Skip to Content
Author's profile photo Kayla Toelle

Syncing your Onboarding Corporate Structure & Relationships Using the Integration Center – Part Two

Recently, I’ve had several questions about syncing your corporate structure relationships.  When I saw the Import Relations xslt file in Super Admin, I had the same question. Like I said in my previous post, I have been the one to maintain the onboarding structure before, so I am always looking for a way to improve a user’s experience and decrease the level of maintenance required to support the module.

The below example will walk you through the steps for syncing your corporate structure relationships.

Determine Corporate Structure Levels

In Onboarding, go to Onboarding > Reference Files > Corporate Structure

OR

In Super Admin, go to See Also > Corporate Structure

Creating the Integration Center Report

1. Go to Admin Tools > Company Settings > Integration Center and select click My Integrations

2. Click the Create button and then select Scheduled Flat File Output Integration

3. Search for “Department” and select Department (FODepartment)
4. Select Department (externalCode) and the parent code. (It could be under Navigations)
5. Uncheck Start Date
6. Click Select

7. Enter Integration Details

  • Integration Name: Onboarding Relations Export
  • Output File Type: csv
  • Header Type: Simple

8. Click Next
9. Click the child code and change the label to ChildID
10. Click the parent code and change the label to ParentID

11. Click ChildID and select Insert Field > Insert Fixed Value Field (You can create a calculated field to calculate count but for demo purposes, we will use a fixed value field)

  • Label: ChildOrgLevel
  • Default Value: 3 (Your child corporate structure level)

12. Click OK

13. Repeat steps to create ParentOrgLevel

  • Label: ParentOrgLevel
  • Default Value: Your Parent Level (In this demo, it’s 2)

14. Click OK

Your report should now look like this:

15. Click Next
16. Expand the Advanced Filters section and click Browse
17. Search and select ‘Status (status) in Department (FODepartment)’
18. Click Change Association to “Status”

19. Enter A in the Value field to only include Active Departments
20. Click Next

21. Enter Destination Settings

  • Enter SFTP Server Host Address, username, and password
  • File Name Prefix: <case sensitive Company ID>_Relations_Sync
  • Date Suffix Format: yyyyMMdd
  • File Extension: csv
  • File Folder: /ONB/Inbound

22. Click Save

Modify the Foundation Import File

1. In Super Admin, Go to Integration > Import/Export Settings
2. Under the Integration section, export the FoundationImport file.
3. Save a backup of the file
4. Add the below code right above the last </FoundationImportConfiguration>

5. Save as a new file
6. Return to Import/Export Settings in Super Admin and import the new foundation import file
Modify the Foundation Import Field Mappings

1. In Super Admin, Go to Integration > Import/Export Settings
2. Under the Integration section, export the FoundationImportFieldMapping file.
3. Save a backup of the file
4. Add the below code right above the last </FoundationImportFieldMapping>

5. Save as a new file
6. Return to Import/Export Settings in Super Admin and import the new foundation import field mapping file

Run the Integration Center Reports

1. In Provisioning, go to Manage Scheduled Jobs
2. Find your Relations Sync Report and select Run Now from the Actions drop down

Check Import Status in Onboarding Audit Report

1. Once your report has been picked up from the ftp site, the file should no longer be listed in the       inbound folder.

2. Other than checking your corporate structure, you can determine the status of the import by           going to Onboarding > Settings > Audit Report

3. Select the blank option from the Type dropdown, enter INTEGRATION in the Event Code                 textbox and click filter

4. Find the import file and see if it is complete

Once your report runs successfully and is processed by Onboarding, your corporate structure relations will be available in Onboarding


Once again, I hope this post will make managing your Onboarding Corporate Structure a little easier. Please stay tuned for part three on syncing position and additional attributes.

Assigned Tags

      11 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Hi Kayla

      I saw that you mentioned in the part one of the post. That you were going to provide instructions on how to manage position information. Sorry to ask but is that something you will publish soon, I am working on a config at the moment, and right in the middle of the struggle with the positions in ONB.

      Thank you very much for your help!

      Cyntia

      Author's profile photo Kayla Toelle
      Kayla Toelle
      Blog Post Author

      Hi Cyntia,

      I don't have a planned date yet, but I will try to publish it as soon as possible.

      Kayla

      Author's profile photo Kayla Toelle
      Kayla Toelle
      Blog Post Author

      Hi Cyntia,

      Part 3 is now posted here... https://blogs.sap.com/2016/12/29/syncing-your-onboarding-corporate-structure-integrating-position-management-with-onboarding-part-three/

      Hope it helps!

      Kayla

      Author's profile photo Samantha Robinson
      Samantha Robinson

      This is awesome.  Thanks so much for the helpful blogs and contribution to the community.

      Quick question.  My client is implementing SF Recruiting and Onboarding but not EC, they're keeping their SAP ERP HCM.  Are any of the blogs (other than the first one since it is from EC) helpful to integrate their Org Structure, relationships and Position Management to Onboarding?

       

      Author's profile photo Kayla Toelle
      Kayla Toelle
      Blog Post Author

      Hi Samantha,

      Tecnhically, all 3 of the blogs will work for SAP as well. You’ll still do all of the changes in super admin to the import files but instead of the report coming from the integration center, it would come from SAP. You would just need to setup the same report in SAP and send it to the sftp site for onboarding to pick up and import.

      Author's profile photo Former Member
      Former Member

      Hello Kayla,

       

      Would this automate the corporate structure syncing? for example new location was added in ec, if we run this report would it update the corp structure in onboarding?

       

      Thank you so much for you answer.

      Author's profile photo Kayla Toelle
      Kayla Toelle
      Blog Post Author

      Hi,

      Yes, it would automate it. It will update existing and add new but not delete old ones so they'll be there for history. Part one of this blog covers syncing the levels and then part 3 covers syncing attributes from the objects. Hopefully it'll help!

      Thanks,

      Kayla

      Author's profile photo Former Member
      Former Member

      Thank you Kayla.

      This will help a lot

      Author's profile photo Former Member
      Former Member

      Hi Kalya,

       

      Please Share the position sync blog, and also please confirm position sync is possible from EC to ONB ?

       

      Thanks,

      Abdul

      Author's profile photo Faraz Siddiqui
      Faraz Siddiqui

      Hi Team

       

      When I am adding the below code in the import foundation import file getting the error as

      "Failed to validate configuration file."

       

      below code I have added

      <FoundationImportConfiguration id="SuccessFactorsRelations">
      <ImportType>CorpStructure</ImportType>
      <FileMask>{AccountName}_Relations*.csv</FileMask>
      <HasHeader>Yes</HasHeader>
      <Delimiter>,</Delimiter>
      <ImportXslt>ImportRelations.xslt</ImportXslt>
      <DataTable>
      <Field name="@ChildOrgLevel@" type="String" />
      <Field name="@ChildID@" type="String" />
      <Field name="@ParentOrgLevel@" type="String" />
      <Field name="@ParentID@" type="String" />
      </DataTable>
      </FoundationImportConfigurations>

      -------------Below is my complete foundation import file-------------

      <FoundationImportConfigurations>
      <FoundationImportConfiguration id="SuccessFactorsDepartment">
      <ImportType>CorpStructure</ImportType>
      <FileMask>{AccountName}_Department*.csv</FileMask>
      <HasHeader>Yes</HasHeader>
      <Delimiter>,</Delimiter>
      <ImportXslt>ImportDepartment.xslt</ImportXslt>
      <DataTable>
      <Field name="@ClientID@" type="String" />
      <Field name="@Name@" type="String" />
      </DataTable>
      </FoundationImportConfiguration>
      <FoundationImportConfiguration id="SuccessFactorsDivision">
      <ImportType>CorpStructure</ImportType>
      <FileMask>{AccountName}_Division*.csv</FileMask>
      <HasHeader>Yes</HasHeader>
      <Delimiter>,</Delimiter>
      <ImportXslt>ImportDivision.xslt</ImportXslt>
      <DataTable>
      <Field name="@ClientID@" type="String" />
      <Field name="@Name@" type="String" />
      </DataTable>
      </FoundationImportConfiguration>
      <FoundationImportConfiguration id="SuccessFactorsLocation">
      <ImportType>CorpStructure</ImportType>
      <FileMask>{AccountName}_Location*.csv</FileMask>
      <HasHeader>Yes</HasHeader>
      <Delimiter>,</Delimiter>
      <ImportXslt>ImportLocation.xslt</ImportXslt>
      <DataTable>
      <Field name="@ClientID@" type="String" />
      <Field name="@Name@" type="String" />
      </DataTable>
      </FoundationImportConfiguration>
      <FoundationImportConfiguration id="SuccessFactorsCompany">
      <ImportType>CorpStructure</ImportType>
      <FileMask>{AccountName}_Company*.csv</FileMask>
      <HasHeader>Yes</HasHeader>
      <Delimiter>,</Delimiter>
      <ImportXslt>ImportLegalEntity.xslt</ImportXslt>
      <DataTable>
      <Field name="@ClientID@" type="String" />
      <Field name="@Name@" type="String" />
      </DataTable>
      </FoundationImportConfiguration>
      <FoundationImportConfiguration id="SuccessFactorsBusinessUnit">
      <ImportType>CorpStructure</ImportType>
      <FileMask>{AccountName}_BusinessUnit*.csv</FileMask>
      <HasHeader>Yes</HasHeader>
      <Delimiter>,</Delimiter>
      <ImportXslt>ImportBusinessUnit.xslt</ImportXslt>
      <DataTable>
      <Field name="@ClientID@" type="String" />
      <Field name="@Name@" type="String" />
      </DataTable>
      </FoundationImportConfiguration>
      <FoundationImportConfiguration id="SuccessFactorsBusinessSubUnit">
      <ImportType>CorpStructure</ImportType>
      <FileMask>{AccountName}_BusinessSubUnit*.csv</FileMask>
      <HasHeader>Yes</HasHeader>
      <Delimiter>,</Delimiter>
      <ImportXslt>ImportBusinessSubUnit.xslt</ImportXslt>
      <DataTable>
      <Field name="@ClientID@" type="String" />
      <Field name="@Name@" type="String" />
      </DataTable>
      </FoundationImportConfiguration>
      <FoundationImportConfiguration id="SuccessFactorsLocation">
      <ImportType>CorpStructure</ImportType>
      <FileMask>{AccountName}_Position*.csv</FileMask>
      <HasHeader>Yes</HasHeader>
      <Delimiter>,</Delimiter>
      <ImportXslt>ImportLocation.xslt</ImportXslt>
      <DataTable>
      <Field name="@ClientID@" type="String" />
      <Field name="@Name@" type="String" />
      </DataTable>
      </FoundationImportConfiguration>
      <FoundationImportConfiguration id="SuccessFactorsUserImport">
      <ImportType>UsersInfoOnly</ImportType>
      <FileMask>{AccountName}_User*.csv</FileMask>
      <HasHeader>Yes</HasHeader>
      <Delimiter>,</Delimiter>
      <ImportXslt>ImportUsers.xslt</ImportXslt>
      <DataTable>
      <Field name="@UserSysId@" type="String" index="yes" />
      <Field name="@FirstName@" type="String" />
      <Field name="@LastName@" type="String" />
      <Field name="@Email@" type="String" />
      <Field name="@Department@" type="String" />
      <Field name="@Location@" type="String" />
      <Field name="@LocalDivision@" type="String" />
      <Field name="@Company@" type="String" />
      <Field name="@ManagerUserSysID@" type="String" />
      <Field name="@HRManagerUserSysID@" type="String" />
      <Field name="@StartDateIfApplicable@" type="String" />
      <Field name="@Country@" type="String" />
      <Field name="@LockedOut@" type="String" />
      <Field name="@PersonGUID@" type="String" />
      <Field name="@PersonExternalId@" type="String" />
      </DataTable>
      </FoundationImportConfiguration>
      <FoundationImportConfiguration id="SuccessFactorsUserGroupImport">
      <ImportType>Permission</ImportType>
      <FileMask>{AccountName}_Permission_Sync*.csv</FileMask>
      <HasHeader>Yes</HasHeader>
      <UseDiff>No</UseDiff>
      <Delimiter>,</Delimiter>
      <ImportXslt>ImportUserGroups.xslt</ImportXslt>
      <DataTable>
      <Field name="@UserID@" type="String" />
      <Field name="@RoleName@" type="String" />
      </DataTable>
      </FoundationImportConfiguration>
      <FoundationImportConfiguration id="SuccessFactorsDeltaUserImport">
      <ImportType>UsersInfoOnly</ImportType>
      <FileMask>{AccountName}_Delta_User*.csv</FileMask>
      <HasHeader>Yes</HasHeader>
      <UseDiff>No</UseDiff>
      <Delimiter>,</Delimiter>
      <ImportXslt>ImportDeltaUsers.xslt</ImportXslt>
      <BizXDeltaContent>Yes</BizXDeltaContent>
      <DataTable>
      <Field name="@UserSysId@" type="String" index="yes" />
      <Field name="@FirstName@" type="String" />
      <Field name="@LastName@" type="String" />
      <Field name="@Email@" type="String" />
      <Field name="@Department@" type="String" />
      <Field name="@Location@" type="String" />
      <Field name="@LocalDivision@" type="String" />
      <Field name="@ManagerUserSysID@" type="String" />
      <Field name="@HRManagerUserSysID@" type="String" />
      <Field name="@StartDateIfApplicable@" type="String" />
      <Field name="@Country@" type="String" />
      <Field name="@LockedOut@" type="String" />
      <Field name="@PersonGUID@" type="String" />
      <Field name="@PersonExternalId@" type="String" />
      </DataTable>
      </FoundationImportConfiguration>
      <FoundationImportConfiguration id="SuccessFactorsRelations">
      <ImportType>CorpStructure</ImportType>
      <FileMask>{AccountName}_Relations*.csv</FileMask>
      <HasHeader>Yes</HasHeader>
      <Delimiter>,</Delimiter>
      <ImportXslt>ImportRelations.xslt</ImportXslt>
      <DataTable>
      <Field name="@ChildOrgLevel@" type="String" />
      <Field name="@ChildID@" type="String" />
      <Field name="@ParentOrgLevel@" type="String" />
      <Field name="@ParentID@" type="String" />
      </DataTable>
      </FoundationImportConfigurations>
      </FoundationImportConfigurations>

      Thanks
      Faraz

      Author's profile photo Parul Dubey
      Parul Dubey

      Hi Kayla,

       

      Thank you for the wonderful post . I just have one question in my mind that

      1. While creating Relations Job for all the Org units ( Location , Division , Department , Company ) should the file name for all the job should be same . <CompanyID>_Relations_Sync.csv

      Please advice.

       

      Thanks and Regards,

      Parul