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:
- SuccessFactors untuk provisi pengguna Active Directory lokal
- SuccessFactors untuk provisi pengguna Microsoft Entra
- SuccessFactors Writeback
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:
- Unduh Rentang IP terbaru untuk Azure Public Cloud
- Buka file dan cari tag MICROSOFT Entra ID
- Salin semua rentang alamat IP yang tercantum dalam elemen addressPrefixes dan gunakan rentang untuk menyusun daftar pembatasan alamat IP.
- Terjemahkan nilai CIDR ke rentang IP.
- 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
, , personIdExternal
firstname
, lastname
dan startDate
tersedia. Agar berhasil memproses prapekerjaan, prasyarat berikut harus dipenuhi:
- 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. - Atribut
startDate
harus tersedia dan JSONPath-nya harus diatur ke$.employmentNav.results[0].startDate
atau$.employmentNav.results[-1:].startDate
. - 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:
Telusuri Enterprise Applications ->SuccessFactors App ->Provisi ->Edit Provisi ->halaman atribut-pemetaan.
Gulir ke bawah dan klik Tampilkan opsi lanjutan.
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.
Kolom Ekspresi API dalam tampilan ini menampilkan ekspresi JSONPath yang digunakan oleh konektor.
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
- Mengambil atribut kustom
- Memetakan status pekerjaan ke status akun
- Menangani konversi pekerja dan skenario peremajaan
- Mengambil catatan pekerjaan aktif saat ini
- Menangani skenario penugasan global
- Menangani skenario pekerjaan secara bersamaan
- Mengambil detail posisi
- Memprovisikan pengguna dalam modul Onboarding
- Mengaktifkan log Audit API OData di SuccessFactors
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:
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
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.
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 bagianemploymentNav
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
- Contoh 1: Katakanlah Anda ingin menambahkan atribut
Simpan skema.
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:
- Edit daftar atribut SuccessFactors untuk menambahkan atribut baru yang disebut empJobNavCustomString35.
- Atur ekspresi JSONPath API untuk atribut ini sebagai:
$.employmentNav.results[0].jobInfoNav.results[0].customString35
- Simpan dan muat ulang perubahan pemetaan di pusat admin Microsoft Entra.
- Di bilah pemetaan atribut, petakan empJobNavCustomString35 ke physicalDeliveryOfficeName.
- 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.
- Ada masalah yang diketahui di mana konektor dapat menonaktifkan akun pekerja yang dihentikan satu hari sebelum penghentian pada hari terakhir kerja.
PersonEmpTerminationInfo
Jika objek diatur ke null, selama penghentian, pennonaktifkanan akun AD tidak berfungsi karena mesin provisi memfilter rekaman tempatpersonEmpTerminationInfoNav
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.
Buka bilah pemetaan atribut aplikasi provisi SuccessFactors.
Di bawah Perlihatkan opsi tingkat lanjut, klik Edit daftar atribut SuccessFactors.
Temukan atribut
emplStatus
dan perbarui JSONPath ke$.employmentNav.results[0].jobInfoNav.results[0].emplStatusNav.externalCode
. Pembaruan membuat konektor mengambil kode status pekerjaan dalam tabel.Simpan perubahan.
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")
Simpan perubahan.
Uji konfigurasi menggunakan provisi sesuai permintaan.
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:
Buka bilah pemetaan atribut aplikasi provisi SuccessFactors.
Gulir ke bawah dan klik Tampilkan opsi lanjutan.
Klik tautan Tinjau skema Anda di sini untuk membuka editor skema.
Klik tautan Unduh untuk menyimpan salinan skema sebelum mengedit.
Di editor skema, tekan tombol Ctrl-H untuk membuka kontrol cari-ganti.
Dalam kotak teks cari, salin, dan tempelkan nilai
$.employmentNav.results[0]
Dalam kotak teks ganti, salin, dan tempelkan nilai
$.employmentNav.results[-1:]
. Ekspresi JSONPath ini menampilkan data EmpEmployment terbaru.Klik opsi "ganti semua" untuk memperbarui skema.
Simpan skema.
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
- JSONPath lama:
Uji konfigurasi menggunakan provisi sesuai permintaan.
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.
Buka bilah pemetaan atribut aplikasi provisi SuccessFactors.
Gulir ke bawah dan klik Tampilkan opsi lanjutan.
Klik tautan Tinjau skema Anda di sini untuk membuka editor skema.
Klik tautan Unduh untuk menyimpan salinan skema sebelum mengedit.
Di editor skema, tekan tombol Ctrl-H untuk membuka kontrol cari-ganti.
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. Simpan skema.
Proses di atas memperbarui semua ekspresi JSONPath.
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 atributstartDate
dan atur ke nilai$.employmentNav.results[-1:].startDate
Simpan skema.
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")
Simpan perubahan. 1.
Uji konfigurasi menggunakan provisi sesuai permintaan.
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:
Buka bilah pemetaan atribut aplikasi provisi SuccessFactors.
Gulir ke bawah dan klik Tampilkan opsi lanjutan.
Klik tautan Tinjau skema Anda di sini untuk membuka editor skema.
Klik tautan Unduh untuk menyimpan salinan skema sebelum mengedit.
Di editor skema, tekan tombol Ctrl-H untuk membuka kontrol cari-ganti.
Dalam kotak teks cari, salin, dan tempelkan nilai
$.employmentNav.results[0]
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.Klik opsi "ganti semua" untuk memperbarui skema.
Simpan skema.
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
- JSONPath lama:
Muat ulang bilah pemetaan atribut aplikasi.
Gulir ke bawah dan klik Tampilkan opsi lanjutan.
Klik Edit daftar atribut untuk SuccessFactors.
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
.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])
Simpan pemetaan.
Uji konfigurasi menggunakan provisi sesuai permintaan.
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:
- Buka bilah pemetaan atribut aplikasi provisi SuccessFactors.
- Gulir ke bawah dan klik Tampilkan opsi lanjutan.
- Klik Edit daftar atribut untuk SuccessFactors.
- 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
- Kini Anda dapat mengalirkan kedua nilai departemen ke atribut Active Directory atau secara selektif mengalirkan nilai menggunakan pemetaan ekspresi.
- Simpan pemetaan.
- Uji konfigurasi menggunakan provisi sesuai permintaan.
- 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
, , inactive
active_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:
- Buka bilah pemetaan atribut aplikasi provisi SuccessFactors.
- Di bawah tampilkan opsi tingkat lanjut, edit daftar atribut SuccessFactors untuk menambahkan atribut baru bernama
userStatus
. - Atur ekspresi JSONPath API untuk atribut ini sebagai:
$.employmentNav.results[0].userNav.status
- Simpan skema untuk kembali ke bilah pemetaan atribut.
- Mengedit cakupan Objek Sumber untuk menerapkan filter cakupan
userStatus NOT EQUALS
- 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.
- Buka aplikasi provisi pengguna SuccessFactors ke Microsoft Entra atau SuccessFactors ke aplikasi provisi pengguna AD lokal.
- Pastikan bahwa
extensionAttribute[1-15]
di MICROSOFT Entra ID selalu menyimpanuserId
catatan pekerjaan aktif setiap pekerja. Rekaman memetakan atribut SuccessFactorsuserId
keextensionAttribute[1-15]
di MICROSOFT Entra ID. - 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.
- Simpan pemetaan.
- 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.
- Buka aplikasi Writeback SuccessFactors di portal Microsoft Azure.
- Petakan extensionAttribute berisi nilai userId yang diinginkan ke atribut userId SuccessFactors.
- Simpan pemetaan.
- Buka Pemetaan atribut -> Tingkat Lanjut -> Tinjau Skema untuk membuka editor skema JSON.
- Unduh salinan skema sebagai cadangan.
- Di editor skema, tekan Ctrl-F dan cari simpul JSON yang berisi pemetaan userId, tempat simpul tersebut dipetakan ke atribut Microsoft Entra sumber.
- Perbarui atribut flowBehavior dari "FlowWhenChanged" ke "FlowAlways" seperti yang ditunjukkan.
- 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.