Dela via


Så integreras Microsoft Entra-etablering med SAP SuccessFactors

Microsoft Entra-tjänsten för användaretablering integreras med SAP SuccessFactors Employee Central för att hantera användarnas identitetslivscykel. Microsoft Entra ID erbjuder tre fördefinierade integreringar:

Den här artikeln förklarar hur integreringen fungerar och hur du kan anpassa etableringsbeteendet för olika HR-scenarier.

Microsoft Entra har också stöd för enkel inloggning till SuccessFactors. Mer information finns i Microsoft Entra-integrering med enkel inloggning (SSO) med SuccessFactors.

Upprätta anslutning

Microsoft Entra-etableringstjänsten använder grundläggande autentisering för att ansluta till slutpunkter för Employee Central OData API. När du konfigurerar etableringsappen SuccessFactors använder du parametern Klient-URL i avsnittet Administratörsautentiseringsuppgifter för att konfigurera URL:en för API-datacentret.

Om du vill skydda anslutningen ytterligare mellan Microsoft Entra-etableringstjänsten och SuccessFactors lägger du till Microsoft Entra IP-intervallen i listan Över tillåtna SuccessFactors IP-adresser:

  1. Ladda ned de senaste IP-intervallen för det offentliga Azure-molnet
  2. Öppna filen och sök efter taggen Microsoft Entra ID
  3. Kopiera alla IP-adressintervall som anges i elementadressenPrefixes och använd intervallet för att skapa listan över begränsningar för IP-adresser.
  4. Översätt CIDR-värdena till IP-intervall.
  5. Logga in på SuccessFactors-administratörsportalen för att lägga till IP-intervall i listan över tillåtna. Se SAP-supportanteckning 2253200. Du kan nu ange IP-intervall i det här verktyget.

Entiteter som stöds

För varje användare i SuccessFactors hämtar Microsoft Entra-etableringstjänsten följande entiteter. Varje entitet expanderas med hjälp av OData API $expand frågeparameter enligt beskrivningen i kolumnen Hämtningsregel . Vissa entiteter expanderas som standard, medan vissa entiteter endast expanderas om ett specifikt attribut finns i mappningen.

# SuccessFactors-entitet OData-nod Hämtningsregel
1 PerPerson *root node* Alltid
2 PerPersonal personalInfoNav Alltid
3 PerPhone phoneNav Alltid
4 PerEmail emailNav Alltid
5 EmpEmployment employmentNav Alltid
6 User employmentNav/userNav Alltid
7 EmpJob employmentNav/jobInfoNav Alltid
8 EmpEmploymentTermination activeEmploymentsCount Alltid
9 User's manager employmentNav/userNav/manager/empInfo Alltid
10 FOCompany employmentNav/jobInfoNav/companyNav Endast om company eller companyId attributet mappas
11 FODepartment employmentNav/jobInfoNav/departmentNav Endast om department eller departmentId attributet mappas
12 FOBusinessUnit employmentNav/jobInfoNav/businessUnitNav Endast om businessUnit eller businessUnitId attributet mappas
13 FOCostCenter employmentNav/jobInfoNav/costCenterNav Endast om costCenter eller costCenterId attributet mappas
14 FODivision employmentNav/jobInfoNav/divisionNav Endast om division eller divisionId attributet mappas
15 FOJobCode employmentNav/jobInfoNav/jobCodeNav Endast om jobCode eller jobCodeId attributet mappas
16 FOPayGrade employmentNav/jobInfoNav/payGradeNav Endast om payGrade attributet mappas
17 FOLocation employmentNav/jobInfoNav/locationNav Endast om location attributet mappas
18 FOCorporateAddressDEFLT employmentNav/jobInfoNav/addressNavDEFLT Om mappningen innehåller något av följande attribut: officeLocationAddress, officeLocationCity, officeLocationZipCode
19 FOEventReason employmentNav/jobInfoNav/eventReasonNav Endast om eventReason attributet mappas
20 EmpGlobalAssignment employmentNav/empGlobalAssignmentNav Endast om assignmentType mappas
21 EmploymentType Picklist employmentNav/jobInfoNav/employmentTypeNav Endast om employmentType mappas
22 EmployeeClass Picklist employmentNav/jobInfoNav/employeeClassNav Endast om employeeClass mappas
23 EmplStatus Picklist employmentNav/jobInfoNav/emplStatusNav Endast om emplStatus mappas
24 AssignmentType Picklist employmentNav/empGlobalAssignmentNav/assignmentTypeNav Endast om assignmentType mappas
25 Position employmentNav/jobInfoNav/positionNav Endast om positioNav mappas
26 Manager User employmentNav/jobInfoNav/managerUserNav Endast om managerUserNav mappas

Så här fungerar fullständig synkronisering

Baserat på attributmappningen skickar Microsoft Entra-etableringstjänsten följande "GET" OData API-fråga för att hämta effektiva data för alla aktiva och avslutade arbetare.

Parameter Description
OData API-värd Lägger till https till klient-URL :en. Exempel: https://api4.successfactors.com
OData API-slutpunkt /odata/v2/PerPerson
Frågeparametern OData $format json
Frågeparametern OData $filter (personEmpTerminationInfoNav/activeEmploymentsCount ne null) and (lastModifiedDateTime le <CurrentExecutionTime>)
Frågeparametern OData $expand Det här parametervärdet beror på de attribut som mappas. Exempel: employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav,phoneNav,emailNav,employmentNav/jobInfoNav/companyNav/countryOfRegistrationNav,employmentNav/jobInfoNav/divisionNav,employmentNav/jobInfoNav/departmentNav
OData customPageSize-frågeparameter 100

Kommentar

Under den fullständiga inledande synkroniseringen hämtas både aktiva och avslutade arbetare från SAP SuccessFactors.

För varje SuccessFactors-användare söker etableringstjänsten efter ett konto i målet (Microsoft Entra-ID/lokal Active Directory) med hjälp av det matchande attribut som definierats i mappningen. Exempel: om personIdExternal mappar till employeeId och anges som matchande attribut använder etableringstjänsten värdet personIdExternal för att söka efter användaren med employeeId-filtret . Om en användarmatchning hittas uppdateras målattributen. Om ingen matchning hittas skapar den en ny post i målet.

Om du vill verifiera data som returneras av OData API-slutpunkten för en specifik personIdExternaluppdaterar SuccessFactorsAPIEndpoint du i API-frågan med API-datacentrets server-URL och använder ett verktyg som Postman för att anropa frågan. Om in-filtret inte fungerar kan du prova filtret "eq".

https://[SuccessFactorsAPIEndpoint]/odata/v2/PerPerson?$format=json&
$filter=(personIdExternal in '[personIdExternalValue]')&
$expand=employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav,
phoneNav,phoneNav/phoneTypeNav,emailNav,employmentNav/jobInfoNav/businessUnitNav,employmentNav/jobInfoNav/companyNav,
employmentNav/jobInfoNav/companyNav/countryOfRegistrationNav,employmentNav/jobInfoNav/costCenterNav,
employmentNav/jobInfoNav/divisionNav,employmentNav/jobInfoNav/departmentNav,employmentNav/jobInfoNav/jobCodeNav,
employmentNav/jobInfoNav/locationNav,employmentNav/jobInfoNav/locationNav/addressNavDEFLT,employmentNav/jobInfoNav/payGradeNav,
employmentNav/empGlobalAssignmentNav,employmentNav/empGlobalAssignmentNav/assignmentTypeNav,employmentNav/jobInfoNav/emplStatusNav,
employmentNav/jobInfoNav/employmentTypeNav,employmentNav/jobInfoNav/employeeClassNav,employmentNav/jobInfoNav/eventReasonNav

Så här fungerar inkrementell synkronisering

Efter fullständig synkronisering underhåller och använder Microsoft Entra-etableringstjänsten LastExecutionTimestamp den för att skapa deltafrågor för att hämta inkrementella ändringar. Tidsstämpelattributen som finns i varje SuccessFactors-entitet, till exempel , , och latestTerminationDate, utvärderas för att se om ändringen faller mellan LastExecutionTimestamp och CurrentExecutionTime. endDatestartDatelastModifiedDateTime Om ja anses poständringen vara effektiv och bearbetad för synkronisering.

Här är mallen för OData API-begäran som Microsoft Entra-ID använder för att fråga SuccessFactors om inkrementella ändringar. Du kan uppdatera variablerna SuccessFactorsAPIEndpointoch LastExecutionTimestampCurrentExecutionTime i begärandemallen använder du ett verktyg som Postman för att kontrollera vilka data som returneras. Du kan också hämta den faktiska nyttolasten för begäran från SuccessFactors genom att aktivera OData API-granskningsloggar.

https://[SuccessFactorsAPIEndpoint]/odata/v2/PerPerson/$count?$format=json&$filter=(personEmpTerminationInfoNav/activeEmploymentsCount ne null) and
((lastModifiedDateTime ge datetimeoffset'<LastExecutionTimestamp>' and lastModifiedDateTime le datetimeoffset'<CurrentExecutionTime>') or
(personalInfoNav/startDate ge datetimeoffset'<LastExecutionTimestamp>' and personalInfoNav/startDate le datetimeoffset'<CurrentExecutionTime>') or
((personalInfoNav/lastModifiedDateTime ge datetimeoffset'<LastExecutionTimestamp>' and personalInfoNav/lastModifiedDateTime le datetimeoffset'<CurrentExecutionTime>') and (personalInfoNav/startDate le datetimeoffset'<CurrentExecutionTime>' and (personalInfoNav/endDate ge datetimeoffset'<CurrentExecutionTime>' or  personalInfoNav/endDate eq null))) or
(employmentNav/startDate ge datetimeoffset'<LastExecutionTimestamp>' and employmentNav/startDate le datetimeoffset'<CurrentExecutionTime>') or
((employmentNav/lastModifiedDateTime ge datetimeoffset'<LastExecutionTimestamp>' and employmentNav/lastModifiedDateTime le datetimeoffset'<CurrentExecutionTime>') and (employmentNav/startDate le datetimeoffset'<CurrentExecutionTime>' and (employmentNav/endDate ge datetimeoffset'<CurrentExecutionTime>' or employmentNav/endDate eq null))) 
(employmentNav/jobInfoNav/startDate ge datetimeoffset'<LastExecutionTimestamp>' and employmentNav/jobInfoNav/startDate le datetimeoffset'<CurrentExecutionTime>') or
((employmentNav/jobInfoNav/lastModifiedDateTime ge datetimeoffset'<LastExecutionTimestamp>' and employmentNav/jobInfoNav/lastModifiedDateTime le datetimeoffset'<CurrentExecutionTime>') and (employmentNav/jobInfoNav/startDate le datetimeoffset'<CurrentExecutionTime>' and (employmentNav/jobInfoNav/endDate ge datetimeoffset'<CurrentExecutionTime>' or employmentNav/jobInfoNav/endDate eq null))) or
(phoneNav/lastModifiedDateTime ge datetimeoffset'<LastExecutionTimestamp>' and phoneNav/lastModifiedDateTime le datetimeoffset'<CurrentExecutionTime>') or
(emailNav/lastModifiedDateTime ge datetimeoffset'<LastExecutionTimestamp>' and emailNav/lastModifiedDateTime le datetimeoffset'<CurrentExecutionTime>') or
(personEmpTerminationInfoNav/latestTerminationDate ge datetimeoffset'<previousDayDateStartTime24hrs>' and personEmpTerminationInfoNav/latestTerminationDate le datetimeoffset'<previousDayDateTime24hrs>') or
(employmentNav/userNav/lastModifiedDateTime ge datetimeoffset'<LastExecutionTimestamp>' and employmentNav/userNav/lastModifiedDateTime le datetimeoffset'<CurrentExecutionTime>'))
&$expand=employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav,phoneNav,emailNav,employmentNav/userNav/manager/empInfo,employmentNav/jobInfoNav/companyNav,employmentNav/jobInfoNav/departmentNav,employmentNav/jobInfoNav/locationNav,employmentNav/jobInfoNav/locationNav/addressNavDEFLT,employmentNav/jobInfoNav/locationNav/addressNavDEFLT/stateNav&customPageSize=100

Så här fungerar förinhyrningsbearbetning

I det här avsnittet beskrivs hur SAP SuccessFactors-anslutningsappen bearbetar poster för föruthyrning (arbetare med anställningsdatum/startdatum i framtiden). Anta att det finns en föruthyrning med employeeId "1234" i SuccessFactors Employee Central med startdatum den 1 juni-2023. Vi antar vidare att den här förhyrningsposten först skapades antingen i Employee Central eller i onboarding-modulen den 15 maj-2023. När etableringstjänsten först observerar den här posten den 15 maj-2023 (antingen som en del av fullständig synkronisering eller inkrementell synkronisering) är den här posten fortfarande i förhandstillstånd. På grund av detta skickar SuccessFactors inte etableringstjänsten alla attribut (exempel: userNav/username) som är associerade med användaren. Endast minimala data om användaren, till exempel companyName, personIdExternalfirstname, lastname och startDate är tillgängliga. För att kunna bearbeta förhyrningar måste följande förutsättningar uppfyllas:

  1. Attributet personIdExternal måste anges som primär matchande identifierare (sammanfogningsegenskap). Om du konfigurerar ett annat attribut (exempel: userName) som anslutningsegenskap kommer etableringstjänsten inte att kunna hämta information om förhandsanställning.
  2. Attributet startDate måste vara tillgängligt och dess JSONPath måste vara inställt på antingen $.employmentNav.results[0].startDate eller $.employmentNav.results[-1:].startDate.
  3. Förhyrningsposten måste finnas i något av följande tillstånd i Employee Central: "active" (t), "inactive" (f) eller "active_external_suite" (e). Mer information om dessa tillstånd finns i SAP-supportanteckningen 2736579.

Kommentar

För en förinställd som inte har någon historik med organisationen fungerar både indexet [0] och [-1:] för startDate. För en förhyrare som är en omanställning eller konvertering kan vi inte deterministiskt meddela ordern och detta kan leda till att vissa återanvända/konverterade arbetare bearbetas på deras faktiska startdatum. Detta är en känd begränsning i anslutningsappen.

Under fullständig synkronisering eller inkrementell synkronisering eller etablering på begäran skickar den följande OData-fråga till SuccessFactors med "asOfDate"-filtret inställt på startDate för användaren (till exempel asOfDate=2023-06-01).

https://[SuccessFactorsAPIEndpoint]/odata/v2/PerPerson?$format=json&$
filter=(personIdExternal in '1234' and employmentNav/userNav/status in 't','f','e')&asOfDate=2023-06-01&$
expand=employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav,phoneNav,emailNav,employmentNav/userNav/manager/empInfo,employmentNav/jobInfoNav/companyNav,employmentNav/jobInfoNav/costCenterNav,employmentNav/jobInfoNav/divisionNav,employmentNav/jobInfoNav/departmentNav,employmentNav/

Om du ser problem med bearbetning före anställning kan du använda ovanstående OData-begärandeformat för att fråga din SuccessFactors-instans som ersätter API-slutpunkten personIdExternal och asOfDate filtrera med värden som motsvarar ditt testscenario.

Läsa attributdata

När Microsoft Entra-etableringstjänsten frågar SuccessFactors hämtar den en JSON-resultatuppsättning. JSON-resultatuppsättningen innehåller många attribut som lagras i Employee Central. Som standard är etableringsschemat konfigurerat för att endast hämta en delmängd av dessa attribut.

Om du vill hämta fler attribut följer du stegen i listan:

  1. Bläddra till sidan Enterprise Applications ->SuccessFactors App ->Provisioning ->Edit Provisioning ->attribute-mapping.

  2. Rulla nedåt och klicka på Visa avancerade alternativ.

  3. Klicka på Redigera attributlista för SuccessFactors.

    Kommentar

    Om alternativet Redigera attributlista för SuccessFactors inte visas i administrationscentret för Microsoft Entra använder du URL:en https://portal.azure.com/?Microsoft_AAD_IAM_forceSchemaEditorEnabled=true för att komma åt sidan.

  4. Kolumnen API-uttryck i den här vyn visar JSONPath-uttryck som används av anslutningsappen.

    API-uttryck

  5. Du kan antingen redigera ett befintligt JSONPath-värde eller lägga till ett nytt attribut med ett giltigt JSONPath-uttryck i schemat.

Nästa avsnitt innehåller en lista över vanliga scenarier för att redigera JSONPath-värdena.

Hantera olika HR-scenarier

JSONPath är ett frågespråk för JSON som liknar XPath för XML. Precis som med XPath möjliggör JSONPath extrahering och filtrering av data från en JSON-nyttolast.

Genom att använda JSONPath-transformering kan du anpassa beteendet för Microsoft Entra-etableringsappen för att hämta anpassade attribut och hantera scenarier som återanställning, arbetskonvertering och global tilldelning.

Det här avsnittet beskriver hur du kan anpassa etableringsappen för följande HR-scenarier:

Hämta fler attribut

Standardschemat för Microsoft Entra SuccessFactors-etableringsappen levereras med över 90 fördefinierade attribut. Om du vill lägga till fler SuccessFactors-attribut i etableringsschemat använder du stegen i listan:

  1. Använd OData-frågan för att hämta data för en giltig testanvändare från Employee Central.

     https://[SuccessFactorsAPIEndpoint]/odata/v2/PerPerson?$format=json&
     $filter=(personIdExternal in '[personIdExternalValue]')&
     $expand=employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav,
     phoneNav,phoneNav/phoneTypeNav,emailNav,employmentNav/jobInfoNav/businessUnitNav,employmentNav/jobInfoNav/companyNav,
     employmentNav/jobInfoNav/companyNav/countryOfRegistrationNav,employmentNav/jobInfoNav/costCenterNav,
     employmentNav/jobInfoNav/divisionNav,employmentNav/jobInfoNav/departmentNav,employmentNav/jobInfoNav/jobCodeNav,
     employmentNav/jobInfoNav/locationNav,employmentNav/jobInfoNav/locationNav/addressNavDEFLT,employmentNav/jobInfoNav/payGradeNav,
     employmentNav/empGlobalAssignmentNav,employmentNav/empGlobalAssignmentNav/assignmentTypeNav,employmentNav/jobInfoNav/emplStatusNav,
     employmentNav/jobInfoNav/employmentTypeNav,employmentNav/jobInfoNav/employeeClassNav,employmentNav/jobInfoNav/eventReasonNav
    
  2. Fastställa entiteten Employee Central som är associerad med attributet

    • Om attributet är en del av Entiteten EmpEmployment letar du efter attributet under employmentNav-noden .
    • Om attributet är en del av entiteten Användare letar du efter attributet under employmentNav/userNav-noden .
    • Om attributet är en del av Entiteten EmpJob letar du efter attributet under noden employmentNav/jobInfoNav .
  3. Skapa JSON-sökvägen som är associerad med attributet och lägg till det nya attributet i listan över SuccessFactors-attribut.

    • Exempel 1: Anta att du vill lägga till attributet okToRehire, som är en del av employmentNav entiteten och sedan använda JSONPath $.employmentNav.results[0].okToRehire
    • Exempel 2: Anta att du vill lägga till attributet timeZone, som är en del av userNav-entiteten , och sedan använda JSONPath $.employmentNav.results[0].userNav.timeZone
    • Exempel 3: Anta att du vill lägga till attributet flsaStatus, som är en del av entiteten jobInfoNav , och sedan använda JSONPath $.employmentNav.results[0].jobInfoNav.results[0].flsaStatus
  4. Spara schemat.

  5. Starta om etablering.

Hämtar anpassade attribut

Som standard är följande anpassade attribut fördefinierade i microsoft Entra SuccessFactors-etableringsappen:

  • custom01-custom15 från entiteten User (userNav)
  • customString1-customString15 från entiteten EmpEmployment (employmentNav) med namnet empNavCustomString1-empNavCustomString15
  • customString1-customString15 från entiteten EmpJobInfo (jobInfoNav) med namnet empJobNavCustomString1-empNavJobCustomString15

Anta att customString35-attributet i EmpJobInfo lagrar platsbeskrivningen i din Employee Central-instans. Du vill flöda det här värdet till attributet Active Directory physicalDeliveryOfficeName . Använd stegen för att konfigurera attributmappning för det här scenariot:

  1. Redigera attributlistan SuccessFactors för att lägga till ett nytt attribut med namnet empJobNavCustomString35.
  2. Ange JSONPath API-uttrycket för det här attributet som: $.employmentNav.results[0].jobInfoNav.results[0].customString35
  3. Spara och ladda om mappningsändringen i administrationscentret för Microsoft Entra.
  4. På bladet attributmappning mappar du empJobNavCustomString35 till physicalDeliveryOfficeName.
  5. Spara mappning.

Utökar det här scenariot:

  • Om du vill mappa custom35-attribut från entiteten Användare använder du JSONPath $.employmentNav.results[0].userNav.custom35
  • Om du vill mappa attributet customString35 från entiteten EmpEmployment använder du JSONPath $.employmentNav.results[0].customString35

Mappa anställningsstatus till kontostatus

Som standard använder Microsoft Entra SuccessFactors-anslutningsappen activeEmploymentsCount objektets PersonEmpTerminationInfo fält för att ange kontostatus. Du kan stöta på något av följande problem med det här attributet.

  1. Det finns ett känt problem där anslutningsappen kan inaktivera kontot för en avslutad arbetare en dag före uppsägningen den sista arbetsdagen.
  2. PersonEmpTerminationInfo Om objektet anges till null fungerar inte AD-kontots inaktivering under avslutningen eftersom etableringsmotorn filtrerar bort poster där personEmpTerminationInfoNav objektet är inställt på null.

Om du stöter på något av dessa problem eller föredrar att mappa anställningsstatus till kontostatus kan du uppdatera mappningen för att expandera emplStatus fältet och använda den anställningsstatuskod som finns i fältet emplStatus.externalCode. Här är en lista över anställningsstatuskoder som du kan hämta i etableringsappen baserat på SAP-supportanteckningen 2505526.

  • A = Aktiv
  • D = Vilande
  • U = Obetald ledighet
  • P = Betald ledighet
  • S = pausad
  • F = Furlough
  • O = Ignorerad
  • R = Pensionerad
  • T = Avslutad

Använd stegen för att uppdatera mappningen för att hämta dessa koder.

  1. Öppna bladet för attributmappning i din SuccessFactors-etableringsapp.

  2. Under Visa avancerade alternativ klickar du på Redigera successfactors-attributlista.

  3. Leta upp attributet emplStatus och uppdatera JSONPath till $.employmentNav.results[0].jobInfoNav.results[0].emplStatusNav.externalCode. Uppdateringen gör att anslutningsappen hämtar anställningsstatuskoderna i tabellen.

  4. Spara ändringarna.

  5. Uppdatera uttrycksmappningen för kontostatusflaggan på bladet attributmappning.

    Etableringsjobb Kontostatusattribut Mappningsuttryck
    SuccessFactors till Active Directory User Provisioning accountDisabled Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")
    SuccessFactors till Microsoft Entra-användaretablering accountEnabled Switch([emplStatus], "False", "A", "True", "U", "True", "P", "True")
  6. Spara ändringarna.

  7. Testa konfigurationen med hjälp av etablering på begäran.

  8. När du har bekräftat att synkroniseringen fungerar som förväntat startar du om etableringsjobbet.

Hantera scenarier för konvertering och återanställning av arbetare

Om scenario för arbetskonvertering: Arbetskonvertering är processen att konvertera en befintlig heltidsanställd till en entreprenör eller en entreprenör till en heltidsanställd. I det här scenariot lägger Employee Central till en ny EmpEmployment-entitet tillsammans med en ny användarentitet för samma personentitet . Entiteten Användare kapslad under den tidigare EmpEmployment-entiteten är inställd på null.

Om återanställningsscenarier: I SuccessFactors finns det två alternativ för att bearbeta återanställning av anställda:

  • Alternativ 1: Skapa en ny personprofil i Employee Central
  • Alternativ 2: Återanvänd befintlig personprofil i Employee Central

Om hr-processen använder alternativ 1 krävs inga ändringar i etableringsschemat. Om hr-processen använder alternativ 2 lägger Employee Central till en ny EmpEmployment-entitet tillsammans med en ny användarentitet för samma personentitet .

Du kan hantera båda scenarierna så att nya anställningsdata visas när en konvertering eller återanställning sker. Massuppdatering av schemat för etableringsappen med hjälp av stegen i listan:

  1. Öppna bladet för attributmappning i din SuccessFactors-etableringsapp.

  2. Rulla nedåt och klicka på Visa avancerade alternativ.

  3. Klicka på länken Granska schemat här för att öppna schemaredigeraren.

    Skärmbild som visar länken Granska schemat här som öppnar schemaredigeraren.

  4. Klicka på länken Ladda ned för att spara en kopia av schemat innan du redigerar.

    Skärmbild som visar schemaredigeraren med Download select (Ladda ned) för att spara en kopia av schemat.

  5. Öppna kontrollen find-replace genom att trycka på Ctrl-H i schemaredigeraren.

  6. I söktextrutan kopierar du och klistrar in värdet $.employmentNav.results[0]

  7. I textrutan ersätt kopierar du och klistrar in värdet $.employmentNav.results[-1:]. Det här JSONPath-uttrycket returnerar den senaste EmpEmployment-posten .

    find-replace-conversion

  8. Klicka på alternativet "ersätt alla" för att uppdatera schemat.

  9. Spara schemat.

  10. Ovanstående process uppdaterar alla JSONPath-uttryck på följande sätt:

    • Gammal JSONPath: $.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized
    • Ny JSONPath: $.employmentNav.results[-1:].jobInfoNav.results[0].departmentNav.name_localized
  11. Testa konfigurationen med hjälp av etablering på begäran.

  12. När du har bekräftat att synkroniseringen fungerar som förväntat startar du om etableringsjobbet.

Kommentar

Metoden som beskrivs ovan fungerar bara om SAP SuccessFactors returnerar anställningsobjekten i stigande ordning, där den senaste anställningsposten alltid är den sista posten i employmentNav-resultatmatrisen. Ordningen i vilken flera anställningsposter returneras garanteras inte av SuccessFactors. Om din SuccessFactors-instans har flera anställningsposter som motsvarar en arbetare och du alltid vill hämta attribut som är associerade med den aktiva anställningsposten använder du stegen som beskrivs i nästa avsnitt.

Hämtar aktuell aktiv anställningspost

Att använda JSONPath-roten för $.employmentNav.results[0] eller $.employmentNav.results[-1:] för att hämta anställningsposter fungerar i de flesta scenarier och håller konfigurationen enkel. Beroende på hur din SuccessFactors-instans har konfigurerats kan det dock finnas ett behov av att uppdatera den här konfigurationen för att säkerställa att anslutningsappen alltid hämtar den senaste aktiva anställningsposten.

I det här avsnittet beskrivs hur du kan uppdatera JSONPath-inställningarna för att definitivt hämta användarens aktuella aktiva anställningspost. Den hanterar även scenarier för arbetskonvertering och återanställning.

  1. Öppna bladet för attributmappning i din SuccessFactors-etableringsapp.

  2. Rulla nedåt och klicka på Visa avancerade alternativ.

  3. Klicka på länken Granska schemat här för att öppna schemaredigeraren.

  4. Klicka på länken Ladda ned för att spara en kopia av schemat innan du redigerar.

  5. Öppna kontrollen find-replace genom att trycka på Ctrl-H i schemaredigeraren.

  6. Utför följande sökåtgärder för att ersätta. Se till att det inte finns något inledande eller avslutande utrymme när du utför åtgärderna find-replace. Om du använder [-1:] index i stället för [0]uppdaterar du fältet string-to-find i enlighet med detta.

    Sträng att hitta Sträng som ska användas som ersättning Syfte
    $.employmentNav.results[0].jobInfoNav.results[0].emplStatus $.employmentNav..jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P' )].emplStatusNav.externalCode Med den här find-replace lägger vi till möjligheten att expandera emplStatusNav OData-objektet.
    $.employmentNav.results[0].jobInfoNav.results[0] $.employmentNav..jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')] Med den här find-replace instruerar vi anslutningsappen att alltid hämta attribut som är associerade med den aktiva SuccessFactors EmpJobInfo-posten. Attribut som är associerade med avslutade/inaktiva poster i SuccessFactors ignoreras.
    $.employmentNav.results[0] $.employmentNav..results[?(@.jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')])] Med den här find-replace instruerar vi anslutningsappen att alltid hämta attribut som är associerade med den aktiva SuccessFactors Employment-posten. Attribut som är associerade med avslutade/inaktiva poster i SuccessFactors ignoreras.
  7. Spara schemat.

  8. Ovanstående process uppdaterar alla JSONPath-uttryck.

  9. För att förbearbetning ska fungera måste JSONPath som är associerad med startDate attributet använda antingen [0] eller [-1:] index. Under Visa avancerade alternativ klickar du på Redigera successfactors-attributlista. Leta upp attributet startDate och ange det till värdet $.employmentNav.results[-1:].startDate

  10. Spara schemat.

  11. För att säkerställa att avslutningar bearbetas som förväntat kan du använda någon av följande inställningar i avsnittet för attributmappning.

    Etableringsjobb Kontostatusattribut Uttryck som ska användas om kontostatus baseras på "activeEmploymentsCount" Uttryck som ska användas om kontostatus baseras på värdet "emplStatus"
    SuccessFactors till Active Directory User Provisioning accountDisabled Switch([activeEmploymentsCount], "False", "0", "True") Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")
    SuccessFactors till Microsoft Entra-användaretablering accountEnabled Switch([activeEmploymentsCount], "True", "0", "False") Switch([emplStatus], "False", "A", "True", "U", "True", "P", "True")
  12. Spara dina ändringar. 1.

  13. Testa konfigurationen med hjälp av etablering på begäran.

  14. När du har bekräftat att synkroniseringen fungerar som förväntat startar du om etableringsjobbet.

Hantera scenario för global tilldelning

När en användare i Employee Central bearbetas för global tilldelning lägger SuccessFactors till en ny EmpEmployment-entitet och anger tilldelningsklassen till "GA". Den skapar också en ny användarentitet . Användaren har nu följande:

  • En EmpEmployment-användarentitet + som motsvarar hemtilldelning med assignmentClass inställd på "ST" och
  • En annan EmpEmployment-användarentitet + som motsvarar den globala tilldelningen med assignmentClass inställd på "GA"

Om du vill hämta attribut som tillhör standardtilldelningen och användarprofilen för global tilldelning använder du stegen i listan:

  1. Öppna bladet för attributmappning i din SuccessFactors-etableringsapp.

  2. Rulla nedåt och klicka på Visa avancerade alternativ.

  3. Klicka på länken Granska schemat här för att öppna schemaredigeraren.

  4. Klicka på länken Ladda ned för att spara en kopia av schemat innan du redigerar.

  5. Öppna kontrollen find-replace genom att trycka på Ctrl-H i schemaredigeraren.

  6. I söktextrutan kopierar du och klistrar in värdet $.employmentNav.results[0]

  7. I textrutan ersätt kopierar du och klistrar in värdet $.employmentNav.results[?(@.assignmentClass == 'ST')]. Observera blanksteget som omger operatorn ==, vilket är viktigt för att JSONPath-uttrycket ska kunna bearbetas.

  8. Klicka på alternativet "ersätt alla" för att uppdatera schemat.

  9. Spara schemat.

  10. Ovanstående process uppdaterar alla JSONPath-uttryck på följande sätt:

    • Gammal JSONPath: $.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized
    • Ny JSONPath: $.employmentNav.results[?(@.assignmentClass == 'ST')].jobInfoNav.results[0].departmentNav.name_localized
  11. Ladda in bladet för attributmappning igen för appen.

  12. Rulla nedåt och klicka på Visa avancerade alternativ.

  13. Klicka på Redigera attributlista för SuccessFactors.

  14. Lägg till nya attribut för att hämta globala tilldelningsdata. Om du till exempel vill hämta avdelningsnamnet som är associerat med en global tilldelningsprofil kan du lägga till attributet globalAssignmentDepartment med JSONPath-uttrycket inställt på $.employmentNav.results[?(@.assignmentClass == 'GA')].jobInfoNav.results[0].departmentNav.name_localized.

  15. Nu kan du antingen flöda båda avdelningsvärdena till Active Directory-attribut eller selektivt flöda ett värde med hjälp av uttrycksmappning. Exempel: uttrycket anger värdet för AD-avdelningsattributet till globalAssignmentDepartment om det finns, annars anges värdet till avdelning som är associerad med standardtilldelning.

    • IIF(IsPresent([globalAssignmentDepartment]),[globalAssignmentDepartment],[department])
  16. Spara mappning.

  17. Testa konfigurationen med hjälp av etablering på begäran.

  18. När du har bekräftat att synkroniseringen fungerar som förväntat startar du om etableringsjobbet.

Hantera scenario för samtidiga jobb

När en användare i Employee Central har samtidiga/flera jobb finns det två EmpEmployment - och Användarentiteter med assignmentClass inställt på "ST". Om du vill hämta attribut som hör till båda jobben använder du stegen i listan:

  1. Öppna bladet för attributmappning i din SuccessFactors-etableringsapp.
  2. Rulla nedåt och klicka på Visa avancerade alternativ.
  3. Klicka på Redigera attributlista för SuccessFactors.
  4. Anta att du vill hämta den avdelning som är associerad med jobb 1 och jobb 2. Den fördefinierade attributavdelningen hämtar redan värdet för avdelning för det första jobbet. Du kan definiera ett nytt attribut med namnet secondJobDepartment och ange JSONPath-uttrycket till $.employmentNav.results[1].jobInfoNav.results[0].departmentNav.name_localized
  5. Nu kan du antingen flöda båda avdelningsvärdena till Active Directory-attribut eller selektivt flöda ett värde med hjälp av uttrycksmappning.
  6. Spara mappning.
  7. Testa konfigurationen med hjälp av etablering på begäran.
  8. När du har bekräftat att synkroniseringen fungerar som förväntat startar du om etableringsjobbet.

Hämtar positionsinformation

SuccessFactors-anslutningsappen stöder expansion av positionsobjektet. Om du vill expandera och hämta objektattribut för position, till exempel jobbnivå eller befattningsnamn på ett visst språk, kan du använda JSONPath-uttryck som du ser.

Attributnamn JSONPath-uttryck
positionJobLevel $.employmentNav.results[0].jobInfoNav.results[0].positionNav.jobLevel
positionNameFR $.employmentNav.results[0].jobInfoNav.results[0].positionNav.externalName_fr_FR
positionNameDE $.employmentNav.results[0].jobInfoNav.results[0].positionNav.externalName_de_DE

Etablera användare i onboarding-modulen

Inkommande användaretablering från SAP SuccessFactors till lokal Active Directory och Microsoft Entra-ID stöder nu förhandsetablering av förhandsanvändarna som finns i MODULen SAP SuccessFactors Onboarding 2.0. När Microsoft Entra-etableringstjänsten stöter på en ny anställningsprofil med ett framtida startdatum, frågar den SAP SuccessFactors om att få nya anställningar med någon av följande statuskoder: active, inactive, active_external_suite. Statuskoden active_external_suite motsvarar prehires som finns i MODULen SAP SuccessFactors Onboarding 2.0. En beskrivning av dessa statuskoder finns i SAP-supportanteckningen 2736579.

Standardbeteendet för etableringstjänsten är att bearbeta förbeställda enheter i onboarding-modulen.

Om du vill exkludera bearbetning av prehires i onboarding-modulen uppdaterar du konfigurationen av etableringsjobbet på följande sätt:

  1. Öppna bladet för attributmappning i din SuccessFactors-etableringsapp.
  2. Under Visa avancerade alternativ redigerar du attributlistan SuccessFactors för att lägga till ett nytt attribut med namnet userStatus.
  3. Ange JSONPath API-uttrycket för det här attributet som: $.employmentNav.results[0].userNav.status
  4. Spara schemat för att återgå till bladet för attributmappning.
  5. Redigera källobjektomfånget för att tillämpa ett omfångsfilter userStatus NOT EQUALS
  6. Spara mappningen och kontrollera att omfångsfiltret fungerar med etablering på begäran.

Aktivera OData API-granskningsloggar i SuccessFactors

Microsoft Entra SuccessFactors-anslutningsappen använder SuccessFactors OData API för att hämta ändringar och etablera användare. Om du ser problem med etableringstjänsten och vill bekräfta vilka data som hämtades från SuccessFactors kan du aktivera OData API-granskningsloggar i SuccessFactors. Hämta nyttolasten för begäran som skickas av Microsoft Entra-ID från granskningsloggarna. För att felsöka kan du kopiera den här nyttolasten för begäran i ett verktyg som Postman, konfigurera den så att den använder samma API-användare som används av anslutningsappen och se om den returnerar önskade ändringar från SuccessFactors.

Tillbakaskrivningsscenarier

Det här avsnittet beskriver olika tillbakaskrivningsscenarier. Den rekommenderar konfigurationsmetoder baserat på hur e-post och telefonnummer konfigureras i SuccessFactors.

Scenarier som stöds för tillbakaskrivning av telefon och e-post

# Scenariokrav Primär e-post
flaggvärde
Företagstelefon
primärt flaggvärde
Mobiltelefon
primärt flaggvärde
Företagstelefon
mapping
Mobiltelefon
mapping
1 * Ange endast e-post för företag som primär.
* Ange inte telefonnummer.
true true falskt [Inte inställt] [Inte inställt]
2 * I SuccessFactors är företagets e-post och företagstelefon primär
* Flöda alltid Microsoft Entra telefonnummer till företagstelefon och mobil till mobiltelefon.
true true falskt telephoneNumber Mobil
3 * I SuccessFactors är företagets e-post och mobiltelefon primär
* Skicka alltid Microsoft Entra-telefonnummer till företagstelefon och mobil till mobiltelefon
true falskt true telephoneNumber Mobil
4 * I SuccessFactors affärs-e-post är primär.
* I Microsoft Entra-ID kontrollerar du om arbetstelefonnumret finns, om det finns, och kontrollera sedan om mobilnumret också finns. Markera endast telefonnummer för arbete som primärt om mobilnumret inte finns.
true Använd uttrycksmappning: IIF(IsPresent([telephoneNumber]), IIF(IsPresent([mobile]),"false", "true"), "false") Använd uttrycksmappning: IIF(IsPresent([mobile]),"false", "true") telephoneNumber Mobil
5 * I SuccessFactors är e-post och företagstelefon primär.
* Om mobilen är tillgänglig i Microsoft Entra-ID anger du den som företagstelefon, annars använder du phoneNumber.
true true falskt IIF(IsPresent([mobile]), [mobile], [telephoneNumber]) [Inte inställt]
  • Om det inte finns någon mappning för telefonnummer i attributmappningen för tillbakaskrivning ingår endast e-post i tillbakaskrivningen.
  • Under registrering av nyanställda i Employee Central kanske företagets e-post och telefonnummer inte är tillgängliga. Om det är obligatoriskt att ange företags-e-post och företagstelefon som primär under registrering kan du ange ett dummyvärde för företagstelefon och e-post när nyanställda skapas. Efter en tid uppdaterar tillbakaskrivningsappen värdet.

Aktivera tillbakaskrivning med UserID

Tillbakaskrivningsappen SuccessFactors använder följande logik för att uppdatera attributen för användarobjekt:

  • Som ett första steg letar det efter userId-attribut i ändringsuppsättningen. Om den finns använder den "UserId" för att göra SuccessFactors API-anropet.
  • Om userId inte hittas används standardvärdet för attributet personIdExternal .

Vanligtvis matchar attributet personIdExternal i SuccessFactors attributet userId. Men i scenarier som återanställning och arbetskonvertering kan en anställd i SuccessFactors ha två anställningsposter, en aktiv och en inaktiv. I sådana scenarier uppdaterar du konfigurationen av SuccessFactors-etableringsapparna enligt beskrivningen för att säkerställa att tillbakaskrivningen uppdaterar den aktiva användarprofilen. Den här konfigurationen säkerställer att userId alltid finns i ändringsuppsättningen som är synlig för anslutningsappen och används i Api-anropet SuccessFactors.

  1. Öppna SuccessFactors till Microsoft Entra-användaretableringsappen eller SuccessFactors till den lokala AD-användaretableringsappen.
  2. Se till att extensionAttribute[1-15] i Microsoft Entra-ID:t lagras userId alltid alla arbetares aktiva anställningsposter. Posten mappar SuccessFactors-attribut userId till extensionAttribute[1-15] i Microsoft Entra-ID.

    Mappning av inkommande UserID-attribut

  3. Vägledning om JSONPath-inställningar finns i avsnittet Hantera arbetskonverterings- och återanställningsscenarier för att säkerställa userId-värdet för de aktiva jobbpostflödena till Microsoft Entra-ID.
  4. Spara mappning.
  5. Kör etableringsjobbet för att säkerställa att userId-värdena flödar till Microsoft Entra-ID.

    Kommentar

    Om du använder SuccessFactors för att lokal Active Directory användaretablering konfigurerar du Microsoft Entra Anslut för att synkronisera attributet userId från lokal Active Directory till Microsoft Entra-ID.

  6. Öppna appen SuccessFactors Writeback i Azure-portalen.
  7. Mappa det önskade tilläggetAttribute som innehåller userId-värdet till attributet SuccessFactors userId .

    Mappning av UserID-attribut för tillbakaskrivning

  8. Spara mappning.
  9. Gå till Attributmappning –> Avancerat –> Granska schema för att öppna JSON-schemaredigeraren.
  10. Ladda ned en kopia av schemat som säkerhetskopia.
  11. I schemaredigeraren trycker du på Ctrl-F och söker efter JSON-noden som innehåller userId-mappningen, där den mappas till ett Microsoft Entra-källattribut.
  12. Uppdatera attributet flowBehavior från "FlowWhenChanged" till "FlowAlways" enligt bilden.

    Uppdatering av flödesbeteende för mappning

  13. Spara mappningen och testa tillbakaskrivningsscenariot med provisioning-on-demand.

Scenarier som inte stöds för tillbakaskrivning av telefon och e-post

  • I Employee Central anges personlig e-post och personlig telefon som primär under registreringen. Tillbakaskrivningsappen kan inte växla den här inställningen och ange företagets e-post och företagstelefon som primär.
  • I Employee Central anges företagstelefonen som primär. Tillbakaskrivningsappen kan inte ändra detta och ange mobiltelefonen som primär.
  • Tillbakaskrivningsappen kan inte läsa de aktuella primära flagginställningarna och använda samma värden för skrivåtgärden. De flaggvärden som konfigurerats i attributmappningen används alltid.

Nästa steg