다음을 통해 공유


Microsoft Entra 프로비전이 SAP SuccessFactors와 통합되는 방법

Microsoft Entra 사용자 프로비전 서비스SAP SuccessFactors Employee Central과 통합되어 사용자의 ID 수명 주기를 관리합니다. Microsoft Entra ID는 세 가지 미리 빌드된 통합을 제공합니다.

이 문서에서는 통합이 작동하는 방식과 여러 HR 시나리오에 대한 프로비저닝 동작을 사용자 지정하는 방법을 설명합니다.

Microsoft Entra는 SuccessFactors에 대한 Single Sign-On도 지원합니다. 자세한 내용은 SuccessFactors와 Microsoft Entra SSO(Single Sign-On) 통합을 참조 하세요.

연결 설정

Microsoft Entra 프로비전 서비스는 기본 인증을 사용하여 Employee Central OData API 엔드포인트에 연결합니다. SuccessFactors 프로비저닝 앱을 설정할 때 '관리자 자격 증명' 섹션의 '테넌트 URL' 매개 변수를 사용하여 API 데이터 센터 URL을 구성합니다.

Microsoft Entra 프로비전 서비스와 SuccessFactors 간의 연결을 더욱 안전하게 보호하려면 SuccessFactors IP 허용 목록에 Microsoft Entra IP 범위를 추가합니다.

  1. Azure 퍼블릭 클라우드의 최신 IP 범위를 다운로드합니다.
  2. 파일을 열고 Microsoft Entra ID 태그를 검색합니다.
  3. addressPrefixes 요소 내에 나열된 모든 IP 주소 범위를 복사하고 범위를 사용하여 IP 주소 제한 목록을 작성합니다.
  4. CIDR 값을 IP 범위로 변환합니다.
  5. SuccessFactors 관리 포털에 로그인하여 허용 목록에 IP 범위를 추가합니다. SAP 지원 노트 2253200을 참조하세요. 이제 이 도구에 IP 범위를 입력할 수 있습니다.

지원되는 엔터티

SuccessFactors의 모든 사용자에 대해 Microsoft Entra 프로비전 서비스는 다음 엔터티를 검색합니다. 각 엔터티는 검색 규칙 열에 설명된 대로 OData API $expand 쿼리 매개 변수를 사용하여 확장됩니다. 일부 엔터티는 기본적으로 확장되지만 일부 엔터티는 매핑에 특정 특성이 있는 경우에만 확장됩니다.

# SuccessFactors 엔터티 OData 노드 검색 규칙
1 PerPerson *root node* 항상 표시
2 PerPersonal personalInfoNav 항상 표시
3 PerPhone phoneNav 항상 표시
4 PerEmail emailNav 항상 표시
5 EmpEmployment employmentNav 항상 표시
6 User employmentNav/userNav 항상 표시
7 EmpJob employmentNav/jobInfoNav 항상 표시
8 EmpEmploymentTermination activeEmploymentsCount 항상 표시
9 User's manager employmentNav/userNav/manager/empInfo 항상 표시
10 FOCompany employmentNav/jobInfoNav/companyNav company 또는 companyId 특성이 매핑된 경우에만
11 FODepartment employmentNav/jobInfoNav/departmentNav department 또는 departmentId 특성이 매핑된 경우에만
12 FOBusinessUnit employmentNav/jobInfoNav/businessUnitNav businessUnit 또는 businessUnitId 특성이 매핑된 경우에만
13 FOCostCenter employmentNav/jobInfoNav/costCenterNav costCenter 또는 costCenterId 특성이 매핑된 경우에만
14 FODivision employmentNav/jobInfoNav/divisionNav division 또는 divisionId 특성이 매핑된 경우에만
15 FOJobCode employmentNav/jobInfoNav/jobCodeNav jobCode 또는 jobCodeId 특성이 매핑된 경우에만
16 FOPayGrade employmentNav/jobInfoNav/payGradeNav payGrade 특성이 매핑된 경우에만
17 FOLocation employmentNav/jobInfoNav/locationNav location 특성이 매핑된 경우에만
18 FOCorporateAddressDEFLT employmentNav/jobInfoNav/addressNavDEFLT 매핑에 다음 특성 중 하나가 포함되는 경우: officeLocationAddress, officeLocationCity, officeLocationZipCode
19 FOEventReason employmentNav/jobInfoNav/eventReasonNav eventReason 특성이 매핑된 경우에만
20 EmpGlobalAssignment employmentNav/empGlobalAssignmentNav assignmentType가 매핑된 경우에만
21 EmploymentType Picklist employmentNav/jobInfoNav/employmentTypeNav employmentType가 매핑된 경우에만
22 EmployeeClass Picklist employmentNav/jobInfoNav/employeeClassNav employeeClass가 매핑된 경우에만
23 EmplStatus Picklist employmentNav/jobInfoNav/emplStatusNav emplStatus가 매핑된 경우에만
24 AssignmentType Picklist employmentNav/empGlobalAssignmentNav/assignmentTypeNav assignmentType가 매핑된 경우에만
25 Position employmentNav/jobInfoNav/positionNav positioNav가 매핑된 경우에만
26 Manager User employmentNav/jobInfoNav/managerUserNav managerUserNav가 매핑된 경우에만

전체 동기화 방식

특성 매핑을 기반으로 전체 동기화 중에 Microsoft Entra 프로비전 서비스는 다음 "GET" OData API 쿼리를 보내 모든 활성 및 종료된 작업자의 유효 데이터를 가져옵니다.

매개 변수 설명
OData API 호스트 테넌트 URL에 https를 추가합니다. 예: https://api4.successfactors.com
OData API 엔드포인트 /odata/v2/PerPerson
OData $format 쿼리 매개 변수 json
OData $filter 쿼리 매개 변수 (personEmpTerminationInfoNav/activeEmploymentsCount ne null) and (lastModifiedDateTime le <CurrentExecutionTime>)
OData $expand 쿼리 매개 변수 이 매개 변수 값은 매핑된 특성에 따라 다릅니다. 예: employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav,phoneNav,emailNav,employmentNav/jobInfoNav/companyNav/countryOfRegistrationNav,employmentNav/jobInfoNav/divisionNav,employmentNav/jobInfoNav/departmentNav
OData customPageSize 쿼리 매개 변수 100

참고 항목

전체 초기 동기화 중에 SAP SuccessFactors의 활성 작업자와 종료된 작업자를 모두 가져옵니다.

각 SuccessFactors 사용자에 대해 프로비저닝 서비스는 매핑에 정의된 일치 특성을 사용하여 대상(Microsoft Entra ID/온-프레미스 Active Directory)의 계정을 찾습니다. 예: personIdExternalemployeeId에 매핑되고 일치 특성으로 설정된 경우 프로비저닝 서비스는 personIdExternal 값을 사용하여 employeeId 필터가 포함된 사용자를 검색합니다. 사용자 일치 항목이 발견되면 대상 특성을 업데이트합니다. 일치 항목을 찾을 수 없는 경우 대상에 새 항목을 만듭니다.

특정 personIdExternal에 대해 OData API 엔드포인트에서 반환된 데이터의 유효성을 검사하려면 데이터 센터 서버 URL을 사용하여 API 쿼리의 SuccessFactorsAPIEndpoint를 업데이트하고 Postman과 같은 도구를 사용하여 쿼리를 호출합니다. “in” 필터가 작동하지 않으면 “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

증분 동기화 방식

전체 동기화 후 Microsoft Entra 프로비전 서비스는 LastExecutionTimestamp를 유지하고 이를 사용하여 증분 변경 내용을 쿼리하기 위한 델타 쿼리를 만듭니다. lastModifiedDateTime, startDate, endDate, latestTerminationDate 등 각 SuccessFactors 엔터티에 있는 타임스탬프 특성은 변경 내용이 LastExecutionTimestampCurrentExecutionTime 사이에 속하는지 여부를 확인하기 위해 평가됩니다. 예일 경우 항목 변경 내용이 유효한 것으로 간주되고 동기화를 위해 처리됩니다.

다음은 Microsoft Entra ID가 SuccessFactors의 증분 변경 내용을 쿼리하는 데 사용하는 OData API 요청 템플릿입니다. 요청 템플릿에서 SuccessFactorsAPIEndpoint, LastExecutionTimestamp, CurrentExecutionTime 변수를 업데이트할 수 있습니다. Postman과 같은 도구를 사용하여 반환되는 데이터를 확인할 수 있습니다. 또는 OData API 감사 로그를 사용하도록 설정하여 SuccessFactors에서 실제 요청 페이로드를 검색할 수도 있습니다.

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

고용 전 처리 방식

이 섹션에서는 SAP SuccessFactors 커넥터에서 고용 전 레코드(채용 날짜/시작 날짜가 미래인 작업자)를 처리하는 방법을 설명합니다. SuccessFactors Employee Central에 시작 날짜가 2023년 6월 1일이고 직원 ID가 “1234”인 고용 전 인력이 있다고 가정해 보겠습니다. 또한 이 고용 전 레코드가 Employee Central 또는 온보딩 모듈에서 2023년 5월 15일에 처음 만들어졌다고 가정해 보겠습니다. 프로비전 서비스가 2023년 5월 15일에 해당 레코드를 처음 관찰하는 경우(전체 동기화 또는 증분 동기화의 일환) 해당 레코드는 여전히 고용 전 상태입니다. 이로 인해 SuccessFactors는 사용자와 관련된 모든 특성(예: userNav/사용자 이름)을 프로비전 서비스에 보내지 않습니다. 사용자에 대한 최소한의 데이터(예: companyName, personIdExternal, firstname, lastname, startDate)만 사용할 수 있습니다. 고용 전 인력을 성공적으로 처리하려면 다음 필수 구성 요소가 충족되어야 합니다.

  1. personIdExternal 특성은 기본 일치 식별자(조인 속성)로 설정해야 합니다. 다른 속성(예: userName)을 조인 속성으로 구성하면 프로비전 서비스가 고용 전 정보를 검색할 수 없습니다.
  2. startDate 특성을 사용할 수 있어야 하며 해당 JSONPath를 둘 중 하나 $.employmentNav.results[0].startDate 또는 $.employmentNav.results[-1:].startDate로 설정해야 합니다.
  3. 고용 전 레코드는 Employee Central에서 ‘활성’(t), ‘비활성’(f) 또는 ‘active_external_suite’(e) 상태 중 하나여야 합니다. 해당 상태에 대한 자세한 내용은 SAP 지원 참고 2736579를 참조하세요.

참고 항목

조직에 대한 기록이 없는 고용 전 인력의 경우 [0] 및 [-1:] 인덱스 모두 startDate에 대해 작동합니다. 재고용 또는 전환인 고용 전 인력의 경우 결정적으로 순서를 알 수 없으며 이로 인해 특정 재고용/전환 작업자가 실제 시작 날짜에 처리될 수 있습니다. 이는 커넥터의 알려진 제한 사항입니다.

전체 동기화 또는 증분 동기화 또는 주문형 프로비저닝 중에 프로비전 서비스가 사전 고용 레코드를 발견하면 "asOfDate" 필터가 사용자의 startDate로 설정된 SuccessFactors에 다음 OData 쿼리를 보냅니다(예:OfDate=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/

고용 전 처리 관련 이슈를 관찰하는 경우 위의 OData 요청 형식을 사용하여 API 엔드포인트, personIdExternalasOfDate 필터를 테스트 시나리오에 해당하는 값으로 바꾸는 SuccessFactors 인스턴스를 쿼리할 수 있습니다.

특성 데이터 읽기

Microsoft Entra 프로비전 서비스는 SuccessFactors를 쿼리할 때 JSON 결과 집합을 쿼리합니다. JSON 결과 집합에는 Employee Central에 저장된 많은 특성이 포함되어 있습니다. 기본적으로 프로비저닝 스키마는 해당 특성의 하위 집합만 검색하도록 구성됩니다.

더 많은 특성을 검색하려면 나열된 단계를 수행합니다.

  1. 엔터프라이즈 애플리케이션 ->SuccessFactors 앱 ->프로비저닝 ->프로비저닝 편집 ->특성 매핑 페이지로 이동합니다.

  2. 아래로 스크롤하여 고급 옵션 표시를 클릭합니다.

  3. SuccessFactors 특성 목록 편집을 클릭합니다.

    참고 항목

    Microsoft Entra 관리 센터에 SuccessFactors 특성 목록 편집 옵션이 표시되지 않으면 URL https://portal.azure.com/?Microsoft_AAD_IAM_forceSchemaEditorEnabled=true을 사용하여 페이지에 액세스합니다.

  4. 이 보기의 API 식 열에 커넥터가 사용하는 JSONPath 식이 표시됩니다.

    API 식

  5. 기존 JSONPath 값을 편집하거나 유효한 JSONPath 식으로 새 특성을 스키마에 추가할 수 있습니다.

다음 섹션에서는 JSONPath 값을 편집하는 일반적인 시나리오의 목록을 제공합니다.

여러 HR 시나리오 처리

JSONPath는 XML에 대한 XPath처럼 JSON에 대한 쿼리 언어입니다. XPath와 마찬가지로 JSONPath를 사용하여 JSON 페이로드에서 데이터를 추출하고 필터링할 수 있습니다.

JSONPath 변환을 사용하여 Microsoft Entra 프로비전 앱의 동작을 사용자 지정하여 사용자 지정 특성을 검색하고 재고용, 작업자 전환, 전역 할당과 같은 시나리오를 처리할 수 있습니다.

이 섹션에서는 다음과 같은 HR 시나리오에 대해 프로비저닝 앱을 사용자 지정할 수 있는 방법을 설명합니다.

더 많은 특성 검색

기본 Microsoft Entra SuccessFactors 프로비전 앱 스키마는 90개 이상의 미리 정의된 특성과 함께 제공됩니다. 프로비전 스키마에 더 많은 SuccessFactors 특성을 추가하려면 다음에 나열된 단계를 사용합니다.

  1. OData 쿼리를 사용하여 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. 특성과 연결된 Employee Central 엔터티를 확인합니다.

    • 특성이 EmpEmployment 엔터티의 일부인 경우 employmentNav node 아래에서 특성을 찾습니다.
    • 특성이 User 엔터티의 일부인 경우 employmentNav/userNav 노드 아래에서 특성을 찾습니다.
    • 특성이 EmpJob 엔터티의 일부인 경우 employmentNav/jobInfoNav 노드 아래에서 특성을 찾습니다.
  3. 특성과 연결된 JSON 경로를 생성하고 이 새 특성을 SuccessFactors 특성 목록에 추가합니다.

    • 예제 1: employmentNav 엔터티의 일부인 okToRehire 특성을 추가한 다음 JSONPath $.employmentNav.results[0].okToRehire을(를) 사용하려는 경우
    • 예제 2: userNav 엔터티의 일부인 timeZone 특성을 추가한 다음 JSONPath $.employmentNav.results[0].userNav.timeZone을 사용하려는 경우
    • 예제 3: jobInfoNav 엔터티의 일부인 flsaStatus 특성을 추가한 다음 JSONPath $.employmentNav.results[0].jobInfoNav.results[0].flsaStatus을 사용하려는 경우
  4. 스키마를 저장합니다.

  5. 프로비저닝을 다시 시작합니다.

사용자 지정 특성 검색

기본적으로 다음 사용자 지정 특성은 Microsoft Entra SuccessFactors 프로비전 앱에 미리 정의되어 있습니다.

  • User(userNav) 엔터티의 custom01-custom15
  • empNavCustomString1-empNavCustomString15라는 EmpEmployment(employmentNav) 엔터티의 customString1-customString15
  • empJobNavCustomString1-empNavJobCustomString15라는 EmpJobInfo(jobInfoNav) 엔터티의 customString1-customString15

예를 들어 Employee Central에서 EmpJobInfocustomString35 특성이 위치 설명을 저장합니다. 이 값을 Active Directory physicalDeliveryOfficeName 특성으로 이동하려고 합니다. 이 시나리오에 대해 특성 매핑을 구성하려면 다음 단계를 사용합니다.

  1. SuccessFactors 특성 목록을 편집하여 empJobNavCustomString35라는 새 특성을 추가합니다.
  2. 이 특성에 대한 JSONPath API 식을 다음과 같이 설정합니다. $.employmentNav.results[0].jobInfoNav.results[0].customString35
  3. Microsoft Entra 관리 센터에서 매핑 변경 내용을 저장하고 다시 로드합니다.
  4. 특성 매핑 블레이드에서 empJobNavCustomString35physicalDeliveryOfficeName에 매핑합니다.
  5. 변경 내용을 저장합니다.

이 시나리오를 확장합니다.

  • User 엔터티에서 custom35 특성을 매핑하려면 JSONPath $.employmentNav.results[0].userNav.custom35를 사용합니다.
  • EmpEmployment 엔터티에서 customString35 특성을 매핑하려면 JSONPath $.employmentNav.results[0].customString35를 사용합니다.

고용 상태를 계정 상태에 매핑

기본적으로 Microsoft Entra SuccessFactors 커넥터는 PersonEmpTerminationInfo 개체의 activeEmploymentsCount 필드를 사용하여 계정 상태를 설정합니다. 이 특성에는 다음 문제 중 하나가 발생할 수 있습니다.

  1. 커넥터가 근무 마지막 날인 근무 종료 하루 전에 근무가 종료된 작업자의 계정을 비활성화할 수 있다는 알려진 이슈가 있습니다.
  2. PersonEmpTerminationInfo 개체가 종료 중에 null로 설정되면 프로비전 엔진이 personEmpTerminationInfoNav 개체가 null로 설정된 레코드를 필터링하므로 AD 계정 사용 안 함 설정이 작동하지 않습니다.

이러한 이슈가 발생하거나 고용 상태를 계정 상태에 매핑하는 것을 선호하는 경우 emplStatus 필드를 확장하고 emplStatus.externalCode 필드에 있는 고용 상태 코드를 사용하도록 매핑을 업데이트할 수 있습니다. SAP 지원 참고 2505526에 따라 프로비전 앱에서 검색할 수 있는 고용 상태 코드 목록은 다음과 같습니다.

  • A = 활성
  • D = 유휴 상태
  • U = 무급 휴가
  • P = 유급 휴가
  • S = 일시 보류
  • F = 휴가
  • O = 폐기
  • R = 정년 퇴직
  • T = 해고

단계에 따라 해당 코드를 검색하도록 매핑을 업데이트합니다.

  1. SuccessFactors 프로비저닝 앱의 특성 매핑 블레이드를 엽니다.

  2. 고급 옵션 표시 아래에서 SuccessFactors 특성 목록 편집을 클릭합니다.

  3. emplStatus 특성을 찾아 JSONPath를 $.employmentNav.results[0].jobInfoNav.results[0].emplStatusNav.externalCode로 업데이트합니다. 업데이트하면 커넥터가 테이블에서 고용 상태 코드를 검색합니다.

  4. 변경 내용을 저장합니다.

  5. 특성 매핑 블레이드에서 계정 상태 플래그에 대한 식 매핑을 업데이트합니다.

    프로비전 작업 계정 상태 특성 매핑 식
    SuccessFactors에서 Active Directory로 사용자 프로비저닝 accountDisabled Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")
    SuccessFactors에서 Microsoft Entra 사용자 프로비전 accountEnabled Switch([emplStatus], "False", "A", "True", "U", "True", "P", "True")
  6. 변경 내용을 저장합니다.

  7. 주문형 프로비전을 사용하여 구성을 테스트합니다.

  8. 동기화가 예상대로 작동하는지 확인한 후 프로비전 작업을 다시 시작합니다.

작업자 전환 및 재고용 시나리오 처리

작업자 전환 시나리오 정보: 작업자 전환은 기존 상근 직원을 계약직 작업자로 또는 계약직 작업자를 상근 직원으로 전환하는 프로세스입니다. 이 시나리오에서 Employee Central은 동일한 Person 엔터티에 대해 새 User 엔터티와 함께 새 EmpEmployment 엔터티를 추가합니다. 이전 EmpEmployment 엔터티 아래에 중첩된 User 엔터티는 Null로 설정됩니다.

재고용 시나리오 정보: SuccessFactors에는 직원 재고용을 처리하는 두 가지 옵션이 있습니다.

  • 옵션 1: Employee Central에서 새 사용자 프로필 만들기
  • 옵션 2: Employee Central에서 기존 사용자 프로필 다시 사용

HR 프로세스에서 옵션 1을 사용하는 경우 프로비저닝 스키마를 변경할 필요가 없습니다. HR 프로세스에서 옵션 2를 사용하는 경우 Employee Central은 동일한 Person 엔터티에 대한 새 User 엔터티와 함께 새 EmpEmployment 엔터티를 추가합니다.

전환이나 재고용이 발생할 때 새 고용 데이터가 표시되도록 두 시나리오를 모두 처리할 수 있습니다. 나열된 단계를 사용하여 프로비전 앱 스키마를 대량 업데이트합니다.

  1. SuccessFactors 프로비저닝 앱의 특성 매핑 블레이드를 엽니다.

  2. 아래로 스크롤하여 고급 옵션 표시를 클릭합니다.

  3. 여기에서 스키마 검토 링크를 클릭하여 스키마 편집기를 엽니다.

    스크린샷은 스키마 편집기를 여는 여기 링크의 스키마 검토를 보여줍니다.

  4. 다운로드 링크를 클릭하여 편집하기 전에 스키마 복사본을 저장합니다.

    스키마 복사본을 저장하기 위해 다운로드가 선택된 스키마 편집기를 보여 주는 스크린샷

  5. 스키마 편집기에서 Ctrl + H 키를 눌러 찾기-바꾸기 컨트롤을 엽니다.

  6. 찾기 텍스트 상자에서 값 $.employmentNav.results[0]를 복사하여 붙여넣습니다.

  7. 바꾸기 텍스트 상자에서 값 $.employmentNav.results[-1:]를 복사하여 붙여넣습니다. 이 JSONPath 식은 최신 EmpEmployment 레코드를 반환합니다.

    find-replace-conversion

  8. '모두 바꾸기' 옵션을 클릭하여 스키마를 업데이트합니다.

  9. 스키마를 저장합니다.

  10. 위의 프로세스는 다음과 같이 모든 JSONPath 식을 업데이트합니다.

    • 이전 JSONPath: $.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized
    • 새 JSONPath: $.employmentNav.results[-1:].jobInfoNav.results[0].departmentNav.name_localized
  11. 주문형 프로비전을 사용하여 구성을 테스트합니다.

  12. 동기화가 예상대로 작동하는지 확인한 후 프로비전 작업을 다시 시작합니다.

참고 항목

위에서 설명한 방법은 SAP SuccessFactors에서 고용 개체를 오름차순으로 반환하는 경우에만 작동합니다. 여기서 최신 고용 레코드는 항상 employmentNav 결과 배열의 마지막 레코드입니다. 여러 고용 레코드가 반환되는 순서는 SuccessFactors에서 보장되지 않습니다. 작업자에 해당하는 여러 고용 레코드가 SuccessFactors 인스턴스에 있고 항상 활성 고용 레코드와 연결된 특성을 검색하려는 경우 다음 섹션에서 설명하는 단계를 사용합니다.

현재 활성 고용 레코드 검색

$.employmentNav.results[0] 또는 $.employmentNav.results[-1:]의 JSONPath 루트를 사용하여 고용 레코드를 가져오는 것은 대부분의 시나리오에서 작동하며 구성을 단순하게 유지합니다. 그러나 SuccessFactors 인스턴스가 구성되는 방법에 따라 커넥터에서 항상 최신 활성 고용 레코드를 가져오도록 이 구성을 업데이트해야 할 수도 있습니다.

이 섹션에서는 사용자의 현재 활성 고용 레코드를 확실히 검색하는 방법을 설명하도록 JSONPath 설정을 업데이트합니다. 또한 작업자 전환 및 재고용 시나리오를 처리합니다.

  1. SuccessFactors 프로비저닝 앱의 특성 매핑 블레이드를 엽니다.

  2. 아래로 스크롤하여 고급 옵션 표시를 클릭합니다.

  3. 여기에서 스키마 검토 링크를 클릭하여 스키마 편집기를 엽니다.

  4. 다운로드 링크를 클릭하여 편집하기 전에 스키마 복사본을 저장합니다.

  5. 스키마 편집기에서 Ctrl + H 키를 눌러 찾기-바꾸기 컨트롤을 엽니다.

  6. 다음 찾기 바꾸기 작업을 수행합니다. 찾기-바꾸기 작업을 수행하는 경우 선행 또는 후행 공백이 없는지 확인합니다. [0] 대신 [-1:] 인덱스를 사용하는 경우 이에 따라 string-to-find 필드를 업데이트합니다.

    찾을 문자열 바꾸는 데 사용할 문자열 용도
    $.employmentNav.results[0].jobInfoNav.results[0].emplStatus $.employmentNav..jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P' )].emplStatusNav.externalCode 찾기-바꾸기를 사용하여 emplStatusNav OData 개체를 확장하는 기능을 추가합니다.
    $.employmentNav.results[0].jobInfoNav.results[0] $.employmentNav..jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')] 이 찾기-바꾸기를 사용하는 경우 항상 활성 SuccessFactors EmpJobInfo 레코드와 연결된 특성을 검색하도록 커넥터에 지시합니다. SuccessFactors의 종료/비활성 레코드와 연결된 특성은 무시됩니다.
    $.employmentNav.results[0] $.employmentNav..results[?(@.jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')])] 이 찾기-바꾸기를 사용하는 경우 항상 활성 SuccessFactors Employment 레코드와 연결된 특성을 검색하도록 커넥터에 지시합니다. SuccessFactors의 종료/비활성 레코드와 연결된 특성은 무시됩니다.
  7. 스키마를 저장합니다.

  8. 위의 프로세스에서 모든 JSONPath 식을 업데이트합니다.

  9. 고용 전 처리가 작동하려면 startDate 특성과 연결된 JSONPath에서 [0] 또는 [-1:] 인덱스를 사용해야 합니다. 고급 옵션 표시 아래에서 SuccessFactors 특성 목록 편집을 클릭합니다. startDate 특성을 찾아 $.employmentNav.results[-1:].startDate 값으로 설정합니다.

  10. 스키마를 저장합니다.

  11. 해고가 예상대로 처리되도록 하려면 특성 매핑 섹션에서 다음 설정 중 하나를 사용할 수 있습니다.

    프로비전 작업 계정 상태 특성 계정 상태가 "activeEmploymentsCount"를 기반으로 하는 경우 사용할 식 계정 상태가 "emplStatus" 값을 기반으로 하는 경우 사용할 식
    SuccessFactors에서 Active Directory로 사용자 프로비저닝 accountDisabled Switch([activeEmploymentsCount], "False", "0", "True") Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")
    SuccessFactors에서 Microsoft Entra 사용자 프로비전 accountEnabled Switch([activeEmploymentsCount], "True", "0", "False") Switch([emplStatus], "False", "A", "True", "U", "True", "P", "True")
  12. 변경 내용을 저장합니다. 1.

  13. 주문형 프로비전을 사용하여 구성을 테스트합니다.

  14. 동기화가 예상대로 작동하는지 확인한 후 프로비전 작업을 다시 시작합니다.

글로벌 배치 시나리오 처리

Employee Central의 사용자가 글로벌 배치를 위해 처리되면 SuccessFactors는 새 EmpEmployment 엔터티를 추가하고 assignmentClass를 'GA'로 설정합니다. 또한 새 User 엔터티를 만듭니다. 따라서 이제 사용자에게 다음이 포함됩니다.

  • assignmentClass가 'ST'로 설정된 국내 배치에 해당하는 1개의 EmpEmployment + User 엔터티 및
  • assignmentClass가 'GA'로 설정된 글로벌 배치에 해당하는 또 다른 1개의 EmpEmployment + User 엔터티

표준 할당 및 전역 할당 사용자 프로필에 속하는 특성을 가져오려면 나열된 단계를 사용합니다.

  1. SuccessFactors 프로비저닝 앱의 특성 매핑 블레이드를 엽니다.

  2. 아래로 스크롤하여 고급 옵션 표시를 클릭합니다.

  3. 여기에서 스키마 검토 링크를 클릭하여 스키마 편집기를 엽니다.

  4. 다운로드 링크를 클릭하여 편집하기 전에 스키마 복사본을 저장합니다.

  5. 스키마 편집기에서 Ctrl + H 키를 눌러 찾기-바꾸기 컨트롤을 엽니다.

  6. 찾기 텍스트 상자에서 값 $.employmentNav.results[0]를 복사하여 붙여넣습니다.

  7. 바꾸기 텍스트 상자에서 값 $.employmentNav.results[?(@.assignmentClass == 'ST')]를 복사하여 붙여넣습니다. == 연산자 주위의 공백은 JSONPath 식을 성공적으로 처리하는 데 중요합니다.

  8. '모두 바꾸기' 옵션을 클릭하여 스키마를 업데이트합니다.

  9. 스키마를 저장합니다.

  10. 위의 프로세스는 다음과 같이 모든 JSONPath 식을 업데이트합니다.

    • 이전 JSONPath: $.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized
    • 새 JSONPath: $.employmentNav.results[?(@.assignmentClass == 'ST')].jobInfoNav.results[0].departmentNav.name_localized
  11. 앱의 특성 매핑 블레이드를 다시 로드합니다.

  12. 아래로 스크롤하여 고급 옵션 표시를 클릭합니다.

  13. SuccessFactors 특성 목록 편집을 클릭합니다.

  14. 새 특성을 추가하여 글로벌 배치 데이터를 가져옵니다. 예를 들어 글로벌 배치 프로필에 연결된 부서 이름을 가져오려는 경우 JSONPath 식이 $.employmentNav.results[?(@.assignmentClass == 'GA')].jobInfoNav.results[0].departmentNav.name_localized로 설정된 globalAssignmentDepartment 특성을 추가할 수 있습니다.

  15. 이제 두 부서 값을 Active Directory 특성으로 전달하거나 식 매핑을 사용하여 선택적으로 값을 전달할 수 있습니다. 예: 식은 AD department 특성의 값을 globalAssignmentDepartment(있는 경우)로 설정하고, 다른 값은 표준 할당과 연결된 department로 설정합니다.

    • IIF(IsPresent([globalAssignmentDepartment]),[globalAssignmentDepartment],[department])
  16. 변경 내용을 저장합니다.

  17. 주문형 프로비전을 사용하여 구성을 테스트합니다.

  18. 동기화가 예상대로 작동하는지 확인한 후 프로비전 작업을 다시 시작합니다.

동시 직무 처리 시나리오

Employee Central의 사용자에게 동시/다중 직무가 있는 경우 assignmentClass가 'ST'로 설정된 두 개의 EmpEmploymentUser 엔터티가 있습니다. 두 직무가 모두 속하는 특성을 가져오려면 나열된 단계를 사용합니다.

  1. SuccessFactors 프로비저닝 앱의 특성 매핑 블레이드를 엽니다.
  2. 아래로 스크롤하여 고급 옵션 표시를 클릭합니다.
  3. SuccessFactors 특성 목록 편집을 클릭합니다.
  4. 직무 1 및 직무 2와 연결된 부서를 풀하려 한다고 가정해 보겠습니다. 미리 정의된 department 특성은 이미 첫 번째 직무의 부서 값을 가져옵니다. secondJobDepartment라는 새 특성을 정의하고 JSONPath 식을 $.employmentNav.results[1].jobInfoNav.results[0].departmentNav.name_localized로 설정할 수 있습니다.
  5. 이제 두 부서 값을 Active Directory 특성으로 전달하거나 식 매핑을 사용하여 선택적으로 값을 전달할 수 있습니다.
  6. 변경 내용을 저장합니다.
  7. 주문형 프로비전을 사용하여 구성을 테스트합니다.
  8. 동기화가 예상대로 작동하는지 확인한 후 프로비전 작업을 다시 시작합니다.

위치 세부 정보 검색

SuccessFactors 커넥터는 위치 개체의 확장을 지원합니다. 특정 언어에서 작업 수준 또는 위치 이름과 같은 위치 개체 특성을 확장하고 검색하려면 표시된 것처럼 JSONPath 식을 사용할 수 있습니다.

특성 이름 JSONPath 식
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

Onboarding 모듈에서 사용자 프로비저닝

SAP SuccessFactors에서 온-프레미스 Active Directory 및 Microsoft Entra ID로의 인바운드 사용자 프로비전은 이제 SAP SuccessFactors Onboarding 2.0 모듈에 있는 사전 고용의 사전 프로비전을 지원합니다. Microsoft Entra 프로비전 서비스는 시작 날짜가 향후인 새 고용 프로필을 발견하면 SAP SuccessFactors에 쿼리하여 상태 코드 active, inactive, active_external_suite 중 하나를 사용하여 신규 고용을 가져옵니다. 상태 코드 active_external_suite은 SAP SuccessFactors Onboarding 2.0 모듈에 있는 고용 전 인력에 해당합니다. 이러한 상태 코드에 대한 설명은 SAP 지원 참고 2736579를 참조하세요.

프로비전 서비스의 기본 동작은 Onboarding 모듈에서 고용 전 인력을 처리하는 것입니다.

온보딩 모듈에서 고용 전 인력의 처리를 제외하려면 다음과 같이 프로비전 작업 구성을 업데이트합니다.

  1. SuccessFactors 프로비저닝 앱의 특성 매핑 블레이드를 엽니다.
  2. 고급 옵션 표시에서 userStatus라는 새 특성을 추가하여 SuccessFactors 특성 목록을 편집합니다.
  3. 이 특성에 대한 JSONPath API 식을 다음과 같이 설정합니다. $.employmentNav.results[0].userNav.status
  4. 특성 매핑 블레이드로 돌아가려면 스키마를 저장합니다.
  5. 원본 개체 범위를 편집하여 범위 지정 필터 userStatus NOT EQUALS 적용
  6. 매핑을 저장하고 주문형 프로비전을 사용하여 범위 지정 필터가 작동하는지 유효성을 검사합니다.

SuccessFactors에서 OData API 감사 로그 사용

Microsoft Entra SuccessFactors 커넥터는 SuccessFactors OData API를 사용하여 변경 내용을 검색하고 사용자를 프로비전합니다. 프로비전 서비스와 관련된 문제를 관찰하고 SuccessFactors에서 검색된 데이터를 확인하려는 경우 SuccessFactors에서 OData API 감사 로그를 사용하도록 설정할 수 있습니다. 감사 로그에서 Microsoft Entra ID가 보낸 요청 페이로드를 검색합니다. 문제를 해결하려면 Postman과 같은 도구에서 이 요청 페이로드를 복사하고, 커넥터에서 사용하는 것과 동일한 API 사용자를 사용하도록 설정하고, SuccessFactors에서 원하는 변경 내용을 반환하는지 확인할 수 있습니다.

쓰기 저장 시나리오

이 섹션에서는 다양한 쓰기 저장 시나리오에 대해 설명합니다. SuccessFactors에서 이메일 및 전화 번호를 설정하는 방법을 기반으로 하는 방법이 권장됩니다.

전화 및 이메일 쓰기 저장에 지원되는 시나리오

# 시나리오 요구 사항 이메일 기본
플래그 값
회사 전화
기본 플래그 값
휴대폰
기본 플래그 값
회사 전화
매핑
휴대폰
매핑
1 * 회사 이메일만 기본으로 설정합니다.
* 전화 번호를 설정하지 않습니다.
true true false [설정 안 됨] [설정 안 됨]
2 * SuccessFactors에서 회사 이메일 및 회사 전화는 기본입니다.
* 항상 Microsoft Entra 전화번호를 회사 전화에 전달하고 모바일을 휴대폰에 전달합니다.
true true false telephoneNumber mobile
3 * SuccessFactors에서 회사 이메일 및 휴대폰은 기본입니다.
* 항상 Microsoft Entra 전화번호를 회사 전화에 전달하고 모바일을 휴대폰에 전달합니다.
true false true telephoneNumber mobile
4 * SuccessFactors에서 회사 이메일은 기본입니다.
* Microsoft Entra ID에 회사 전화번호가 있는지 확인하고, 있으면 모바일 번호도 있는지 확인합니다. 휴대폰 번호가 없는 경우에만 직장 전화 번호를 기본 번호로 표시합니다.
true 식 매핑 사용: IIF(IsPresent([telephoneNumber]), IIF(IsPresent([mobile]),"false", "true"), "false") 식 매핑 사용: IIF(IsPresent([mobile]),"false", "true") telephoneNumber mobile
5 * SuccessFactors에서 회사 이메일 및 회사 전화는 기본입니다.
* Microsoft Entra ID에서 모바일이 가능한 경우 회사 전화로 설정하고, 그렇지 않은 경우에는 telephoneNumber를 사용합니다.
true true false IIF(IsPresent([mobile]), [mobile], [telephoneNumber]) [설정 안 됨]
  • 쓰기 저장 특성 매핑에 전화 번호 매핑이 없는 경우에는 메일만 쓰기 저장에 포함됩니다.
  • Employee Central에서 신입 직원을 등록할 때는 회사 이메일 및 전화 번호를 사용할 수 없습니다. 온보딩 중에 회사 메일 및 회사 전화를 기본으로 설정하는 것이 필수인 경우 신규 직원을 설정하는 동안 회사 전화 및 메일에 대한 더미 값을 설정할 수 있습니다. 잠시 후 쓰기 저장 앱이 값을 업데이트합니다.

UserID를 사용하여 쓰기 저장을 사용하도록 설정

SuccessFactors 쓰기 저장 앱은 다음 논리를 사용하여 사용자 개체 특성을 업데이트합니다.

  • 첫 번째 단계로 변경 집합에서 userId 특성을 찾습니다. 이 특성이 있는 경우 SuccessFactors API 호출을 위해 “UserId”를 사용합니다.
  • userId가 없는 경우 기본적으로 personIdExternal 특성 값을 사용합니다.

일반적으로 SuccessFactors의 personIdExternal 특성 값은 userId 특성 값과 일치합니다. 그러나 재고용 및 작업자 전환과 같은 시나리오에서 SuccessFactors의 직원에게 두 개의 고용 레코드(하나는 활성이고 하나는 비활성)가 있을 수 있습니다. 이러한 시나리오에서 쓰기 저장이 활성 사용자 프로필을 업데이트하도록 하려면 설명된 대로 SuccessFactors 프로비전 앱의 구성을 업데이트하세요. 이 구성은 userId가 커넥터에 표시되는 변경 집합에 항상 존재하고 SuccessFactors API 호출에 사용되도록 합니다.

  1. Microsoft Entra 사용자 프로비전 앱에 대한 SuccessFactors 또는 온-프레미스 AD 사용자 프로비전 앱에 대한 SuccessFactors를 엽니다.
  2. Microsoft Entra ID의 extensionAttribute[1-15]가 항상 모든 작업자의 활성 고용 기록의 userId를 저장하는지 확인합니다. 레코드는 SuccessFactors userId 특성을 Microsoft Entra ID의 extensionAttribute[1-15]에 매핑합니다.

    인바운드 UserID 특성 매핑

  3. JSONPath 설정에 대한 참고 자료는 작업자 전환 및 재고용 시나리오 처리 섹션을 참조하여 활성 고용 레코드의 userId 값이 Microsoft Entra ID로 흐르는지 확인하세요.
  4. 변경 내용을 저장합니다.
  5. 프로비전 작업을 실행하여 userId 값이 Microsoft Entra ID로 유입되는지 확인합니다.

    참고 항목

    온-프레미스 Active Directory 사용자 프로비전에 SuccessFactors를 사용하는 경우 온-프레미스 Active Directory의 userId 특성 값을 Microsoft Entra ID로 동기화하도록 Microsoft Entra Connect를 구성합니다.

  6. Azure Portal에서 SuccessFactors 쓰기 저장 앱을 엽니다.
  7. userId 값을 포함하는 원하는 extensionAttribute를 SuccessFactors userId 특성에 매핑합니다.

    쓰기 저장 UserID 특성 매핑

  8. 변경 내용을 저장합니다.
  9. 특성 매핑 -> 고급 -> 스키마 검토로 이동하여 JSON 스키마 편집기를 엽니다.
  10. 스키마 복사본을 백업으로 다운로드합니다.
  11. 스키마 편집기에서 Ctrl-F를 누르고 userId 매핑이 포함된 JSON 노드를 검색합니다. 여기서 원본 Microsoft Entra 특성에 매핑됩니다.
  12. flowBehavior 특성을 “FlowWhenChanged”에서 “FlowAlways”로 업데이트합니다.

    매핑 흐름 동작 업데이트

  13. 주문형 프로비저닝을 사용하여 변경 내용을 저장하고 쓰기 저장 시나리오를 테스트합니다.

전화 및 이메일 쓰기 저장에 대해 지원하지 않는 시나리오

  • Employee Central에서 등록하는 동안 개인 이메일 및 개인 전화는 기본으로 설정됩니다. 쓰기 저장 앱은 이 설정을 변경하고 회사 메일 및 회사 전화를 기본으로 설정할 수 없습니다.
  • Employee Central에서 회사 전화는 기본으로 설정됩니다. 쓰기 저장 앱은 이 설정을 변경하고 휴대폰을 기본으로 설정할 수 없습니다.
  • 쓰기 저장 앱은 현재 기본 플래그 설정을 읽고 쓰기 작업에 동일한 값을 사용할 수 없습니다. 특성 매핑에 구성된 플래그 값이 항상 사용됩니다.

다음 단계