Bagaimana provisi Microsoft Entra terintegrasi dengan SAP SuccessFactors

Layanan provisi pengguna Microsoft Entra terintegrasi dengan Pusat Karyawan SAP SuccessFactors untuk mengelola siklus hidup identitas pengguna. MICROSOFT Entra ID menawarkan tiga integrasi bawaan:

Artikel ini menjelaskan cara kerja integrasi dan bagaimana Anda dapat menyesuaikan perilaku provisi untuk skenario HM yang berbeda.

Microsoft Entra juga mendukung akses menyeluruh ke SuccessFactors. Untuk informasi selengkapnya, lihat Integrasi akses menyeluruh (SSO) Microsoft Entra dengan SuccessFactors.

Membangun konektivitas

Layanan provisi Microsoft Entra menggunakan autentikasi dasar untuk menyambungkan ke titik akhir EMPLOYEE Central OData API. Saat menyiapkan aplikasi provisi SuccessFactors, gunakan parameter URL Penyewa di bagian Info Masuk Admin untuk mengonfigurasi URL pusat data API.

Untuk lebih mengamankan konektivitas antara layanan provisi Microsoft Entra dan SuccessFactors, tambahkan rentang IP Microsoft Entra dalam daftar yang diizinkan IP SuccessFactors:

  1. Unduh Rentang IP terbaru untuk Azure Public Cloud
  2. Buka file dan cari tag MICROSOFT Entra ID
  3. Salin semua rentang alamat IP yang tercantum dalam elemen addressPrefixes dan gunakan rentang untuk menyusun daftar pembatasan alamat IP.
  4. Terjemahkan nilai CIDR ke rentang IP.
  5. Masuk ke portal admin SuccessFactors untuk menambahkan rentang IP ke daftar yang diizinkan. Lihat SAP catatan dukungan 2253200. Anda kini dapat memasukkan rentang IP di alat ini.

Entitas yang didukung

Untuk setiap pengguna di SuccessFactors, layanan provisi Microsoft Entra mengambil entitas berikut. Setiap entitas diperluas menggunakan API OData $expand parameter kueri seperti yang diuraikan dalam kolom Aturan pengambilan. Beberapa entitas diperluas secara default, sedangkan beberapa entitas diperluas hanya jika atribut tertentu ada dalam pemetaan.

# Entitas SuccessFactors OData Node Aturan pengambilan
1 PerPerson *root node* Selalu
2 PerPersonal personalInfoNav Selalu
3 PerPhone phoneNav Selalu
4 PerEmail emailNav Selalu
5 EmpEmployment employmentNav Selalu
6 User employmentNav/userNav Selalu
7 EmpJob employmentNav/jobInfoNav Selalu
8 EmpEmploymentTermination activeEmploymentsCount Selalu
9 User's manager employmentNav/userNav/manager/empInfo Selalu
10 FOCompany employmentNav/jobInfoNav/companyNav Hanya jika atribut company atau companyId dipetakan
11 FODepartment employmentNav/jobInfoNav/departmentNav Hanya jika atribut department atau departmentId dipetakan
12 FOBusinessUnit employmentNav/jobInfoNav/businessUnitNav Hanya jika atribut businessUnit atau businessUnitId dipetakan
13 FOCostCenter employmentNav/jobInfoNav/costCenterNav Hanya jika atribut costCenter atau costCenterId dipetakan
14 FODivision employmentNav/jobInfoNav/divisionNav Hanya jika atribut division atau divisionId dipetakan
15 FOJobCode employmentNav/jobInfoNav/jobCodeNav Hanya jika atribut jobCode atau jobCodeId dipetakan
16 FOPayGrade employmentNav/jobInfoNav/payGradeNav Hanya jika atribut payGrade dipetakan
17 FOLocation employmentNav/jobInfoNav/locationNav Hanya jika atribut location dipetakan
18 FOCorporateAddressDEFLT employmentNav/jobInfoNav/addressNavDEFLT Jika pemetaan berisi salah satu atribut berikut: officeLocationAddress, officeLocationCity, officeLocationZipCode
19 FOEventReason employmentNav/jobInfoNav/eventReasonNav Hanya jika atribut eventReason dipetakan
20 EmpGlobalAssignment employmentNav/empGlobalAssignmentNav Hanya jika assignmentType dipetakan
21 EmploymentType Picklist employmentNav/jobInfoNav/employmentTypeNav Hanya jika employmentType dipetakan
22 EmployeeClass Picklist employmentNav/jobInfoNav/employeeClassNav Hanya jika employeeClass dipetakan
23 EmplStatus Picklist employmentNav/jobInfoNav/emplStatusNav Hanya jika emplStatus dipetakan
24 AssignmentType Picklist employmentNav/empGlobalAssignmentNav/assignmentTypeNav Hanya jika assignmentType dipetakan
25 Position employmentNav/jobInfoNav/positionNav Hanya jika positioNav dipetakan
26 Manager User employmentNav/jobInfoNav/managerUserNav Hanya jika managerUserNav dipetakan

Cara kerja sinkronisasi penuh

Berdasarkan pemetaan atribut, selama sinkronisasi penuh layanan provisi Microsoft Entra mengirimkan kueri OData API "GET" berikut untuk mengambil data efektif dari semua pekerja aktif dan dihentikan.

Parameter Deskripsi
Host OData API Menambahkan https ke URL Penyewa. Contoh: https://api4.successfactors.com
Titik Akhir OData API /odata/v2/PerPerson
Parameter kueri $format OData json
Parameter kueri $filter OData (personEmpTerminationInfoNav/activeEmploymentsCount ne null) and (lastModifiedDateTime le <CurrentExecutionTime>)
Parameter kueri $expand OData Nilai parameter ini bergantung pada atribut yang dipetakan. Contoh: employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav,phoneNav,emailNav,employmentNav/jobInfoNav/companyNav/countryOfRegistrationNav,employmentNav/jobInfoNav/divisionNav,employmentNav/jobInfoNav/departmentNav
Parameter kueri customPageSize OData 100

Catatan

Selama sinkronisasi awal penuh, pekerja aktif dan dihentikan dari SAP SuccessFactors diambil.

Untuk setiap pengguna SuccessFactors, layanan provisi mencari akun di target (MICROSOFT Entra ID/Active Directory lokal) menggunakan atribut yang cocok yang ditentukan dalam pemetaan. Misalnya: jika personIdExternal dipetakan ke employeeId dan ditetapkan sebagai atribut pencocokan, maka layanan provisi akan menggunakan nilai personIdExternal untuk mencari pengguna dengan filter employeeId. Jika pencocokan pengguna ditemukan, atribut target akan diperbarui. Jika tidak ditemukan pencocokan, entri baru akan dibuat di target.

Untuk memvalidasi data yang dikembalikan oleh titik akhir OData API Anda untuk tertentu personIdExternal, perbarui SuccessFactorsAPIEndpoint di kueri API dengan URL server pusat data API Anda dan gunakan alat seperti Postman untuk memanggil kueri. Jika filter "masuk" tidak berfungsi, Anda dapat mencoba filter "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

Cara kerja sinkronisasi bertahap

Setelah sinkronisasi penuh, layanan provisi Microsoft Entra mempertahankan LastExecutionTimestamp dan menggunakannya untuk membuat kueri delta untuk mengambil perubahan inkremental. Atribut tanda waktu yang ada di setiap entitas SuccessFactors, seperti lastModifiedDateTime, startDate, endDate, dan latestTerminationDate, dievaluasi untuk melihat apakah perubahan berada di antara LastExecutionTimestamp dan CurrentExecutionTime. Jika ya, perubahan entri dianggap efektif dan diproses untuk disinkronkan.

Berikut adalah templat permintaan API OData yang digunakan MICROSOFT Entra ID untuk mengkueri SuccessFactors untuk perubahan bertahap. Anda dapat memperbarui variabel SuccessFactorsAPIEndpoint, LastExecutionTimestamp dan CurrentExecutionTime dalam templat permintaan menggunakan alat seperti Postman untuk memeriksa data apa yang dikembalikan. Atau, Anda juga dapat mengambil payload permintaan aktual dari SuccessFactors dengan mengaktifkan log Audit API OData.

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

Cara kerja pemrosesan pra-sewa

Bagian ini menjelaskan bagaimana konektor SAP SuccessFactors memproses rekaman pra-sewa (pekerja dengan tanggal sewa / tanggal mulai di masa mendatang). Katakanlah ada pra-sewa dengan employeeId "1234" di SuccessFactors Employee Central dengan tanggal mulai pada 1-Juni-2023. Mari kita asumsikan lebih lanjut bahwa catatan pra-sewa ini pertama kali dibuat baik di Pusat Karyawan atau dalam modul Onboarding pada 15-Mei-2023. Ketika layanan provisi pertama kali mengamati catatan ini pada 15-Mei-2023 (baik sebagai bagian dari sinkronisasi penuh atau sinkronisasi bertahap), rekaman ini masih dalam status pra-sewa. Karena itu, SuccessFactors tidak mengirim layanan provisi semua atribut (misalnya: userNav/username) yang terkait dengan pengguna. Hanya data minimum kosong tentang pengguna seperti companyName, , personIdExternalfirstname, lastname dan startDate tersedia. Agar berhasil memproses prapekerjaan, prasyarat berikut harus dipenuhi:

  1. Atribut personIdExternal harus ditetapkan sebagai pengidentifikasi pencocokan utama (properti gabungan). Jika Anda mengonfigurasi atribut yang berbeda (misalnya: userName) sebagai properti gabungan, maka layanan provisi tidak akan dapat mengambil informasi pra-sewa.
  2. Atribut startDate harus tersedia dan JSONPath-nya harus diatur ke $.employmentNav.results[0].startDate atau $.employmentNav.results[-1:].startDate.
  3. Catatan pra-sewa harus berada di salah satu status berikut di Employee Central: 'active' (t), 'inactive' (f), atau 'active_external_suite' (e). Untuk detail tentang status ini, lihat catatan dukungan SAP 2736579.

Catatan

Untuk prapekerjaan yang tidak memiliki riwayat dengan organisasi, indeks [0] dan [-1:] akan berfungsi untuk startDate. Untuk prapekerjaan yang merupakan rekrutan atau konversi, kami tidak dapat secara deterministik memberi tahu pesanan dan ini dapat menyebabkan pekerja tertentu yang dipekerjakan kembali/dikonversi diproses pada tanggal mulai aktual mereka. Ini adalah batasan yang diketahui dalam konektor.

Selama sinkronisasi penuh atau sinkronisasi bertambah bertahap atau provisi sesuai permintaan, ketika layanan provisi menemukan catatan pra-sewa, layanan mengirimkan kueri OData berikut ke SuccessFactors dengan filter "asOfDate" yang diatur ke startDate pengguna (misalnya, 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/

Jika Anda mengamati masalah dengan pemrosesan pra-sewa, Anda dapat menggunakan format permintaan OData di atas untuk mengkueri instans SuccessFactors Anda yang menggantikan titik akhir API, personIdExternal dan asOfDate memfilter dengan nilai yang sesuai dengan skenario pengujian Anda.

Membaca data atribut

Saat layanan provisi Microsoft Entra meminta SuccessFactors, layanan mengambil tataan hasil JSON. Kumpulan hasil JSON mencakup banyak atribut yang disimpan di Employee Central. Secara default, skema provisi dikonfigurasi untuk hanya mengambil subset atribut tersebut.

Untuk mengambil atribut lainnya, ikuti langkah-langkah yang tercantum:

  1. Telusuri Enterprise Applications ->SuccessFactors App ->Provisi ->Edit Provisi ->halaman atribut-pemetaan.

  2. Gulir ke bawah dan klik Tampilkan opsi lanjutan.

  3. Klik Edit daftar atribut untuk SuccessFactors.

    Catatan

    Jika opsi Edit daftar atribut untuk SuccessFactors tidak ditampilkan di pusat admin Microsoft Entra, gunakan URL https://portal.azure.com/?Microsoft_AAD_IAM_forceSchemaEditorEnabled=true untuk mengakses halaman.

  4. Kolom Ekspresi API dalam tampilan ini menampilkan ekspresi JSONPath yang digunakan oleh konektor.

    API-Expression

  5. Anda dapat mengedit nilai JSONPath yang ada atau menambahkan atribut baru dengan ekspresi JSONPath yang valid ke skema.

Bagian berikutnya menyediakan daftar skenario umum untuk mengedit nilai JSONPath.

Menangani skenario HR yang berbeda

JSONPath adalah bahasa pemrogram kueri untuk JSON yang mirip dengan JalurX untuk XML. Seperti JalurX, JSONPath memungkinkan ekstraksi dan penyaringan data di luar muatan JSON.

Dengan menggunakan transformasi JSONPath, Anda dapat menyesuaikan perilaku aplikasi provisi Microsoft Entra untuk mengambil atribut kustom dan menangani skenario seperti perekrutan ulang, konversi pekerja, dan penugasan global.

Bagian ini membahas cara menyesuaikan aplikasi provisi untuk skenario HR berikut:

Mengambil lebih banyak atribut

Skema aplikasi provisi Microsoft Entra SuccessFactors default dikirim dengan 90+ atribut yang telah ditentukan sebelumnya. Untuk menambahkan lebih banyak atribut SuccessFactors ke skema provisi, gunakan langkah-langkah yang tercantum:

  1. Gunakan kueri OData untuk mengambil data untuk pengguna uji yang valid dari 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. Tentukan entitas Employee Central yang terkait dengan atribut

    • Jika atributnya adalah bagian dari entitas EmpEmployment, cari atribut di bagian simpul employmentNav.
    • Jika atributnya adalah bagian dari entitas Pengguna, cari atribut di bagian simpul employmentNav/userNav.
    • Jika atributnya adalah bagian dari entitas EmpJob, cari atribut di bagian simpul employmentNav/jobInfoNav.
  3. Buat Jalur JSON yang terkait dengan atribut dan tambahkan atribut baru ini ke daftar atribut SuccessFactors.

    • Contoh 1: Katakanlah Anda ingin menambahkan atribut okToRehire, yang merupakan bagian employmentNav dari entitas, lalu gunakan JSONPath $.employmentNav.results[0].okToRehire
    • Contoh 2: Katakanlah Anda ingin menambahkan atribut timeZone, yang merupakan bagian dari entitas userNav, gunakan JSONPath $.employmentNav.results[0].userNav.timeZone
    • Contoh 3: Katakanlah Anda ingin menambahkan atribut flsaStatus, yang merupakan bagian dari entitas jobInfoNav, gunakan JSONPath $.employmentNav.results[0].jobInfoNav.results[0].flsaStatus
  4. Simpan skema.

  5. Memulai ulang provisi.

Mengambil atribut kustom

Secara default, atribut kustom berikut telah ditentukan sebelumnya di aplikasi provisi Microsoft Entra SuccessFactors:

  • custom01-custom15 dari entitas (userNav)
  • customString1-customString15 dari entitas EmpEmployment (employmentNav) yang disebut empNavCustomString1-empNavCustomString15
  • customString1-customString15 dari entitas EmpJobInfo (jobInfoNav) yang disebut empJobNavCustomString1-empNavJobCustomString15

Katakanlah, dalam contoh Employee Central Anda, atribut customString35 di EmpJobInfo menyimpan deskripsi lokasi. Anda ingin mengalirkan nilai ini ke atribut Active Directory physicalDeliveryOfficeName. Untuk mengonfigurasi pemetaan atribut untuk skenario ini, gunakan langkah-langkahnya:

  1. Edit daftar atribut SuccessFactors untuk menambahkan atribut baru yang disebut empJobNavCustomString35.
  2. Atur ekspresi JSONPath API untuk atribut ini sebagai: $.employmentNav.results[0].jobInfoNav.results[0].customString35
  3. Simpan dan muat ulang perubahan pemetaan di pusat admin Microsoft Entra.
  4. Di bilah pemetaan atribut, petakan empJobNavCustomString35 ke physicalDeliveryOfficeName.
  5. Simpan pemetaan.

Memperluas skenario ini:

  • Jika Anda ingin memetakan atribut custom35 dari entitas Pengguna, gunakan JSONPath $.employmentNav.results[0].userNav.custom35
  • Jika Anda ingin memetakan atribut customString35 dari entitas EmpEmployment, gunakan JSONPath $.employmentNav.results[0].customString35

Memetakan status pekerjaan ke status akun

Secara default, konektor Microsoft Entra SuccessFactors menggunakan activeEmploymentsCount bidang PersonEmpTerminationInfo objek untuk mengatur status akun. Anda mungkin mengalami salah satu masalah berikut dengan atribut ini.

  1. Ada masalah yang diketahui di mana konektor dapat menonaktifkan akun pekerja yang dihentikan satu hari sebelum penghentian pada hari terakhir kerja.
  2. PersonEmpTerminationInfo Jika objek diatur ke null, selama penghentian, pennonaktifkanan akun AD tidak berfungsi karena mesin provisi memfilter rekaman tempat personEmpTerminationInfoNav objek diatur ke null.

Jika Anda mengalami salah satu masalah ini atau lebih suka memetakan status pekerjaan ke status akun, Anda dapat memperbarui pemetaan untuk memperluas emplStatus bidang dan menggunakan kode status pekerjaan yang ada di bidang emplStatus.externalCode. Berdasarkan catatan dukungan SAP 2505526, berikut adalah daftar kode status pekerjaan yang dapat Anda ambil di aplikasi provisi.

  • A = Aktif
  • D = Tidak Aktif
  • U = Cuti Belum Dibayar
  • P = Cuti Berbayar
  • S = Ditangguhkan
  • F = Furlough
  • O = Dibuang
  • R = Pensiun
  • T = Dihentikan

Gunakan langkah-langkah untuk memperbarui pemetaan Anda untuk mengambil kode ini.

  1. Buka bilah pemetaan atribut aplikasi provisi SuccessFactors.

  2. Di bawah Perlihatkan opsi tingkat lanjut, klik Edit daftar atribut SuccessFactors.

  3. Temukan atribut emplStatus dan perbarui JSONPath ke $.employmentNav.results[0].jobInfoNav.results[0].emplStatusNav.externalCode. Pembaruan membuat konektor mengambil kode status pekerjaan dalam tabel.

  4. Simpan perubahan.

  5. Di bilah pemetaan atribut, perbarui pemetaan ekspresi untuk bendera status akun.

    Pekerjaan Provisi Atribut status akun Ekspresi pemetaan
    SuccessFactors untuk Provisi Pengguna Azure Active Directory accountDisabled Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")
    SuccessFactors untuk provisi pengguna Microsoft Entra accountEnabled Switch([emplStatus], "False", "A", "True", "U", "True", "P", "True")
  6. Simpan perubahan.

  7. Uji konfigurasi menggunakan provisi sesuai permintaan.

  8. Setelah mengonfirmasi bahwa sinkronisasi berfungsi seperti yang diharapkan, mulai ulang pekerjaan provisi.

Menangani konversi pekerja dan skenario peremajaan

Tentang skenario konversi pekerja: Konversi pekerja adalah proses konversi karyawan penuh waktu yang ada ke kontraktor atau kontraktor ke karyawan penuh waktu. Dalam skenario ini, Employee Central menambahkan entitas EmpEmployment baru bersama dengan entitas Pengguna baru untuk entitas Orang yang sama. Entitas Pengguna yang ditumpuk di dibagian entitas EmpEmployment sebelumnya diatur ke null.

Tentang skenario peremajaan: Di SuccessFactors, ada dua opsi untuk memproses perekaman kembali karyawan:

  • Opsi 1: Buat profil orang baru di Employee Central
  • Opsi 2: Gunakan kembali profil orang yang sudah ada di Employee Central

Jika proses HR menggunakan Opsi 1, tidak ada perubahan yang diperlukan untuk skema provisi. Jika proses HR menggunakan Opsi 2, Employee Central akan menambahkan entitas EmpEmployment baru bersama dengan entitas Pengguna baru untuk entitas Orang yang sama.

Anda dapat menangani kedua skenario sehingga data pekerjaan baru muncul saat konversi atau rehire terjadi. Perbarui skema aplikasi provisi secara massal menggunakan langkah-langkah yang tercantum:

  1. Buka bilah pemetaan atribut aplikasi provisi SuccessFactors.

  2. Gulir ke bawah dan klik Tampilkan opsi lanjutan.

  3. Klik tautan Tinjau skema Anda di sini untuk membuka editor skema.

    Cuplikan layar memperlihatkan tautan Tinjau skema di sini yang membuka editor skema.

  4. Klik tautan Unduh untuk menyimpan salinan skema sebelum mengedit.

    Cuplikan layar memperlihatkan editor Skema dengan pemilihan Unduh untuk menyimpan salinan skema.

  5. Di editor skema, tekan tombol Ctrl-H untuk membuka kontrol cari-ganti.

  6. Dalam kotak teks cari, salin, dan tempelkan nilai $.employmentNav.results[0]

  7. Dalam kotak teks ganti, salin, dan tempelkan nilai $.employmentNav.results[-1:]. Ekspresi JSONPath ini menampilkan data EmpEmployment terbaru.

    find-replace-conversion

  8. Klik opsi "ganti semua" untuk memperbarui skema.

  9. Simpan skema.

  10. Proses di atas memperbarui semua ekspresi JSONPath sebagai berikut:

    • JSONPath lama: $.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized
    • JSONPath baru: $.employmentNav.results[-1:].jobInfoNav.results[0].departmentNav.name_localized
  11. Uji konfigurasi menggunakan provisi sesuai permintaan.

  12. Setelah mengonfirmasi bahwa sinkronisasi berfungsi seperti yang diharapkan, mulai ulang pekerjaan provisi.

Catatan

Pendekatan yang dijelaskan di atas hanya berfungsi jika SAP SuccessFactors mengembalikan objek pekerjaan dalam urutan naik, di mana catatan pekerjaan terbaru selalu merupakan catatan terakhir dalam array hasil employmentNav. Urutan di mana beberapa catatan pekerjaan dikembalikan tidak dijamin oleh SuccessFactors. Jika instans SuccessFactors Anda memiliki beberapa catatan pekerjaan yang sesuai dengan pekerja dan Anda selalu ingin mengambil atribut yang terkait dengan catatan pekerjaan aktif, gunakan langkah-langkah yang dijelaskan di bagian berikutnya.

Mengambil rekaman pekerjaan aktif saat ini

Menggunakan akar JSONPath dari $.employmentNav.results[0] atau $.employmentNav.results[-1:] untuk mengambil catatan pekerjaan berfungsi di sebagian besar skenario dan menjaga konfigurasi tetap sederhana. Namun, tergantung pada bagaimana instans SuccessFactors Anda dikonfigurasi, mungkin ada kebutuhan untuk memperbarui konfigurasi ini untuk memastikan bahwa konektor selalu mengambil catatan pekerjaan aktif terbaru.

Bagian ini menjelaskan bagaimana Anda dapat memperbarui pengaturan JSONPath untuk pasti mengambil catatan pekerjaan aktif pengguna saat ini. Ini juga menangani konversi pekerja dan skenario peremajaan.

  1. Buka bilah pemetaan atribut aplikasi provisi SuccessFactors.

  2. Gulir ke bawah dan klik Tampilkan opsi lanjutan.

  3. Klik tautan Tinjau skema Anda di sini untuk membuka editor skema.

  4. Klik tautan Unduh untuk menyimpan salinan skema sebelum mengedit.

  5. Di editor skema, tekan tombol Ctrl-H untuk membuka kontrol cari-ganti.

  6. Lakukan operasi penggantian temukan berikut. Pastikan tidak ada ruang di depan atau di belakang saat melakukan operasi find-replace. Jika Anda menggunakan [-1:] indeks alih-alih [0], perbarui bidang string-to-find yang sesuai.

    String untuk ditemukan String yang digunakan untuk mengganti Tujuan
    $.employmentNav.results[0].jobInfoNav.results[0].emplStatus $.employmentNav..jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P' )].emplStatusNav.externalCode Dengan find-replace ini, kami menambahkan kemampuan untuk memperluas objek OData emplStatusNav.
    $.employmentNav.results[0].jobInfoNav.results[0] $.employmentNav..jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')] Dengan temukan ganti ini, kami menginstruksikan konektor untuk selalu mengambil atribut yang terkait dengan rekaman SuccessFactors EmpJobInfo aktif. Atribut yang terkait dengan rekaman yang dihentikan/tidak aktif di SuccessFactors diabaikan.
    $.employmentNav.results[0] $.employmentNav..results[?(@.jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')])] Dengan temukan ganti ini, kami menginstruksikan konektor untuk selalu mengambil atribut yang terkait dengan rekaman SuccessFactors Employment aktif. Atribut yang terkait dengan rekaman yang dihentikan/tidak aktif di SuccessFactors diabaikan.
  7. Simpan skema.

  8. Proses di atas memperbarui semua ekspresi JSONPath.

  9. Agar pemrosesan prasejarah berfungsi, JSONPath yang terkait dengan startDate atribut harus menggunakan atau [0][-1:] indeks. Di bawah Perlihatkan opsi tingkat lanjut, klik Edit daftar atribut SuccessFactors. Temukan atribut startDate dan atur ke nilai $.employmentNav.results[-1:].startDate

  10. Simpan skema.

  11. Untuk memastikan bahwa penghentian diproses seperti yang diharapkan, Anda dapat menggunakan salah satu pengaturan berikut di bagian pemetaan atribut.

    Pekerjaan Provisi Atribut status akun Ekspresi yang akan digunakan jika status akun didasarkan pada "activeEmploymentsCount" Ekspresi yang akan digunakan jika status akun didasarkan pada nilai "emplStatus"
    SuccessFactors untuk Provisi Pengguna Azure Active Directory accountDisabled Switch([activeEmploymentsCount], "False", "0", "True") Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")
    SuccessFactors untuk provisi pengguna Microsoft Entra accountEnabled Switch([activeEmploymentsCount], "True", "0", "False") Switch([emplStatus], "False", "A", "True", "U", "True", "P", "True")
  12. Simpan perubahan. 1.

  13. Uji konfigurasi menggunakan provisi sesuai permintaan.

  14. Setelah mengonfirmasi bahwa sinkronisasi berfungsi seperti yang diharapkan, mulai ulang pekerjaan provisi.

Menangani skenario penugasan global

Ketika pengguna di Employee Central diproses untuk penugasan global, SuccessFactors menambahkan entitas EmpEmployment baru dan mengatur assignmentClass ke "GA". Ini juga membuat entitas Pengguna baru. Dengan demikian, pengguna kini memiliki:

  • Satu entitas Pengguna + EmpEmployment yang sesuai dengan penugasan lokal assignmentClass diatur ke "ST" dan
  • Entitas Pengguna + EmpEmployment lain yang sesuai dengan penugasan global dengan assignmentClass diatur ke "GA"

Untuk mengambil atribut milik penugasan standar dan profil pengguna penetapan global, gunakan langkah-langkah yang tercantum:

  1. Buka bilah pemetaan atribut aplikasi provisi SuccessFactors.

  2. Gulir ke bawah dan klik Tampilkan opsi lanjutan.

  3. Klik tautan Tinjau skema Anda di sini untuk membuka editor skema.

  4. Klik tautan Unduh untuk menyimpan salinan skema sebelum mengedit.

  5. Di editor skema, tekan tombol Ctrl-H untuk membuka kontrol cari-ganti.

  6. Dalam kotak teks cari, salin, dan tempelkan nilai $.employmentNav.results[0]

  7. Dalam kotak teks ganti, salin, dan tempelkan nilai $.employmentNav.results[?(@.assignmentClass == 'ST')]. Perhatikan spasi putih di sekitar operator ==, yang penting untuk keberhasilan pemrosesan ekspresi JSONPath.

  8. Klik opsi "ganti semua" untuk memperbarui skema.

  9. Simpan skema.

  10. Proses di atas memperbarui semua ekspresi JSONPath sebagai berikut:

    • JSONPath lama: $.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized
    • JSONPath baru: $.employmentNav.results[?(@.assignmentClass == 'ST')].jobInfoNav.results[0].departmentNav.name_localized
  11. Muat ulang bilah pemetaan atribut aplikasi.

  12. Gulir ke bawah dan klik Tampilkan opsi lanjutan.

  13. Klik Edit daftar atribut untuk SuccessFactors.

  14. Tambahkan atribut baru untuk mengambil data penugasan global. Misalnya: jika Anda ingin mengambil nama departemen yang terkait dengan profil penugasan global, Anda dapat menambahkan atribut globalAssignmentDepartment dengan ekspresi JSONPath yang diatur ke $.employmentNav.results[?(@.assignmentClass == 'GA')].jobInfoNav.results[0].departmentNav.name_localized.

  15. Kini Anda dapat mengalirkan kedua nilai departemen ke atribut Active Directory atau secara selektif mengalirkan nilai menggunakan pemetaan ekspresi. Contoh: ekspresi menetapkan nilai atribut departemen AD ke globalAssignmentDepartment jika ada, jika tidak, ekspresi menetapkan nilai ke departemen yang terkait dengan penugasan standar.

    • IIF(IsPresent([globalAssignmentDepartment]),[globalAssignmentDepartment],[department])
  16. Simpan pemetaan.

  17. Uji konfigurasi menggunakan provisi sesuai permintaan.

  18. Setelah mengonfirmasi bahwa sinkronisasi berfungsi seperti yang diharapkan, mulai ulang pekerjaan provisi.

Menangani skenario pekerjaan secara bersamaan

Jika pengguna di Employee Central memiliki beberapa pekerjaan atau pekerjaan bersamaan, ada dua entitas EmpEmployment dan Pengguna dengan assignmentClass diatur ke "ST". Untuk mengambil atribut milik kedua pekerjaan, gunakan langkah-langkah yang tercantum:

  1. Buka bilah pemetaan atribut aplikasi provisi SuccessFactors.
  2. Gulir ke bawah dan klik Tampilkan opsi lanjutan.
  3. Klik Edit daftar atribut untuk SuccessFactors.
  4. Katakanlah Anda ingin menarik departemen yang terkait dengan pekerjaan 1 dan pekerjaan 2. Departemen atribut yang telah ditentukan sebelumnya sudah mengambil nilai departemen untuk pekerjaan pertama. Anda dapat menentukan atribut baru yang disebut secondJobDepartment dan mengatur ekspresi JSONPath ke $.employmentNav.results[1].jobInfoNav.results[0].departmentNav.name_localized
  5. Kini Anda dapat mengalirkan kedua nilai departemen ke atribut Active Directory atau secara selektif mengalirkan nilai menggunakan pemetaan ekspresi.
  6. Simpan pemetaan.
  7. Uji konfigurasi menggunakan provisi sesuai permintaan.
  8. Setelah mengonfirmasi bahwa sinkronisasi berfungsi seperti yang diharapkan, mulai ulang pekerjaan provisi.

Mengambil detail jabatan

Konektor SuccessFactors mendukung perluasan objek jabatan. Untuk memperluas dan mengambil atribut objek posisi seperti tingkat pekerjaan atau nama posisi dalam bahasa tertentu, Anda dapat menggunakan ekspresi JSONPath seperti yang ditunjukkan.

Nama Atribut Ekspresi 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

Menyediakan pengguna dalam modul Onboarding

Provisi pengguna masuk dari SAP SuccessFactors ke Active Directory lokal dan ID Microsoft Entra sekarang mendukung provisi awal pra-penyajian yang ada dalam modul SAP SuccessFactors Onboarding 2.0. Ketika layanan provisi Microsoft Entra menemukan profil sewa baru dengan tanggal mulai di masa mendatang, layanan ini meminta SAP SuccessFactors untuk mendapatkan karyawan baru dengan salah satu kode status berikut: active, , inactiveactive_external_suite. Kode active_external_suite status sesuai dengan prehires yang ada dalam modul SAP SuccessFactors Onboarding 2.0. Untuk mengetahui deskripsi kode status ini, lihat catatan dukungan SAP 2736579.

Perilaku default layanan provisi adalah memproses prehires dalam modul Onboarding.

Jika Anda ingin mengecualikan pemrosesan prehires dalam modul Onboarding, perbarui konfigurasi pekerjaan provisi Anda sebagai berikut:

  1. Buka bilah pemetaan atribut aplikasi provisi SuccessFactors.
  2. Di bawah tampilkan opsi tingkat lanjut, edit daftar atribut SuccessFactors untuk menambahkan atribut baru bernama userStatus.
  3. Atur ekspresi JSONPath API untuk atribut ini sebagai: $.employmentNav.results[0].userNav.status
  4. Simpan skema untuk kembali ke bilah pemetaan atribut.
  5. Mengedit cakupan Objek Sumber untuk menerapkan filter cakupan userStatus NOT EQUALS
  6. Simpan pemetaan dan validasi bahwa filter cakupan bekerja menggunakan penyediaan sesuai permintaan.

Mengaktifkan log Audit API OData di SuccessFactors

Konektor Microsoft Entra SuccessFactors menggunakan SuccessFactors OData API untuk mengambil perubahan dan memprovisikan pengguna. Jika Anda mengamati masalah dengan layanan provisi dan ingin mengonfirmasi data apa yang diambil dari SuccessFactors, Anda dapat mengaktifkan log Audit API OData di SuccessFactors. Ambil payload permintaan yang dikirim oleh ID Microsoft Entra dari log audit. Untuk memecahkan masalah, Anda dapat menyalin payload permintaan ini di alat seperti Postman, menyiapkannya untuk menggunakan pengguna API yang sama yang digunakan oleh konektor dan melihat apakah itu mengembalikan perubahan yang diinginkan dari SuccessFactors.

Skenario Writeback

Bagian ini mencakup skenario write-back yang berbeda. Skenario merekomendasikan pendekatan konfigurasi berdasarkan bagaimana email dan nomor telepon disiapkan di SuccessFactors.

Skenario yang didukung untuk write-back telepon dan email

# Persyaratan skenario Email primer
nilai bendera
Telepon bisnis
nilai bendera utama
Ponsel
nilai bendera utama
Telepon bisnis
mapping
Ponsel
mapping
1 * Hanya mengatur email bisnis sebagai email utama.
* Tidak mengatur nomor telepon.
benar benar salah [Tidak Diatur] [Tidak Diatur]
2 * Dalam SuccessFactors, email bisnis dan telepon bisnis adalah primer
* Selalu mengalirkan nomor telepon Microsoft Entra ke telepon bisnis dan ponsel ke ponsel.
benar benar salah telephoneNumber mobile
3 * Dalam SuccessFactors, email bisnis dan ponsel adalah primer
* Selalu mengalirkan nomor telepon Microsoft Entra ke telepon bisnis dan ponsel ke ponsel
benar salah benar telephoneNumber mobile
4 * Dalam email bisnis SuccessFactors adalah primer.
* Di ID Microsoft Entra, periksa apakah nomor telepon kerja ada, jika ada, lalu periksa apakah nomor ponsel juga ada. Tandai nomor telepon kantor sebagai utama hanya jika nomor ponsel tidak ada.
benar Gunakan pemetaan ekspresi: IIF(IsPresent([telephoneNumber]), IIF(IsPresent([mobile]),"false", "true"), "false") Gunakan pemetaan ekspresi: IIF(IsPresent([mobile]),"false", "true") telephoneNumber mobile
5 * Dalam SuccessFactors email bisnis dan telepon bisnis adalah utama.
* Di ID Microsoft Entra, jika ponsel tersedia, atur sebagai telepon bisnis, atau gunakan nomor telepon.
benar benar salah IIF(IsPresent([mobile]), [mobile], [telephoneNumber]) [Tidak Diatur]
  • Jika tidak ada pemetaan untuk nomor telepon dalam pemetaan atribut write-back, maka hanya email yang disertakan dalam write-back.
  • Selama orientasi rekrutan baru di Employee Central, email bisnis dan nomor telepon mungkin tidak tersedia. Jika mengatur email bisnis dan telepon bisnis sebagai primer adalah wajib selama orientasi, Anda dapat mengatur nilai dummy untuk telepon bisnis dan email selama pembuatan karyawan baru. Setelah beberapa waktu, aplikasi write-back memperbarui nilai.

Mengaktifkan tulis balik dengan UserID

Aplikasi Writeback SuccessFactors menggunakan logika berikut untuk memperbarui atribut objek Pengguna:

  • Sebagai langkah pertama, ia mencari atribut userId dalam set perubahan. Jika ada, maka menggunakan "UserId" untuk melakukan panggilan API SuccessFactors.
  • Jika userId tidak ditemukan, maka defaultnya menggunakan nilai atribut personIdExternal .

Biasanya nilai atribut personIdExternal di SuccessFactors cocok dengan nilai atribut userId. Namun, dalam skenario seperti perekrutan kembali dan konversi pekerja, karyawan di SuccessFactors mungkin memiliki dua catatan pekerjaan, satu aktif dan satu tidak aktif. Dalam skenario seperti itu, untuk memastikan bahwa write-back memperbarui profil pengguna aktif, perbarui konfigurasi aplikasi provisi SuccessFactors seperti yang dijelaskan. Konfigurasi ini memastikan bahwa userId selalu ada dalam set perubahan yang terlihat oleh konektor dan digunakan dalam panggilan API SuccessFactors.

  1. Buka aplikasi provisi pengguna SuccessFactors ke Microsoft Entra atau SuccessFactors ke aplikasi provisi pengguna AD lokal.
  2. Pastikan bahwa extensionAttribute[1-15] di MICROSOFT Entra ID selalu menyimpan userId catatan pekerjaan aktif setiap pekerja. Rekaman memetakan atribut SuccessFactors userId ke extensionAttribute[1-15] di MICROSOFT Entra ID.

    Pemetaan atribut UserID masuk

  3. Untuk panduan mengenai pengaturan JSONPath, lihat bagian Menangani konversi pekerja dan skenario pengulangan untuk memastikan nilai userId dari rekaman pekerjaan aktif mengalir ke ID Microsoft Entra.
  4. Simpan pemetaan.
  5. Jalankan pekerjaan provisi untuk memastikan bahwa nilai userId mengalir ke ID Microsoft Entra.

    Catatan

    Jika Anda menggunakan SuccessFactors untuk Active Directory lokal provisi pengguna, konfigurasikan Microsoft Entra Koneksi untuk menyinkronkan nilai atribut userId dari Active Directory lokal ke ID Microsoft Entra.

  6. Buka aplikasi Writeback SuccessFactors di portal Microsoft Azure.
  7. Petakan extensionAttribute berisi nilai userId yang diinginkan ke atribut userId SuccessFactors.

    Pemetaan atribut UserID Tulis Balik

  8. Simpan pemetaan.
  9. Buka Pemetaan atribut -> Tingkat Lanjut -> Tinjau Skema untuk membuka editor skema JSON.
  10. Unduh salinan skema sebagai cadangan.
  11. Di editor skema, tekan Ctrl-F dan cari simpul JSON yang berisi pemetaan userId, tempat simpul tersebut dipetakan ke atribut Microsoft Entra sumber.
  12. Perbarui atribut flowBehavior dari "FlowWhenChanged" ke "FlowAlways" seperti yang ditunjukkan.

    Pembaruan perilaku alur pemetaan

  13. Simpan pemetaan dan uji skenario tulis balik dengan provisi sesuai permintaan.

Skenario yang tidak didukung untuk write-back telepon dan email

  • Di Employee Central, selama orientasi email pribadi dan telepon pribadi ditetapkan sebagai utama. Aplikasi write-back tidak dapat mengalihkan pengaturan ini dan mengatur email bisnis dan telepon bisnis sebagai utama.
  • Di Employee Central, telepon bisnis diatur sebagai utama. Aplikasi write-back tidak dapat mengubah ini dan mengatur ponsel sebagai utama.
  • Aplikasi write-back tidak dapat membaca pengaturan bendera utama saat ini dan menggunakan nilai yang sama untuk operasi tulis. Nilai bendera yang dikonfigurasi dalam pemetaan atribut selalu digunakan.

Langkah berikutnya