Интеграция подготовки Microsoft Entra с SAP SuccessFactors
Служба подготовки пользователей Microsoft Entra интегрируется с SAP SuccessFactors Employee Central для управления жизненным циклом удостоверений пользователей. Идентификатор Microsoft Entra предлагает три предварительно созданных интеграции:
- Подготовка пользователей из SuccessFactors в локальной среде Active Directory
- SuccessFactors для подготовки пользователей Microsoft Entra
- Обратная запись из SuccessFactors
В этой статье описывается, как работает интеграция и как настраивается логика подготовки для различных сценариев работы с кадрами.
Microsoft Entra также поддерживает единый вход в SuccessFactors. Дополнительные сведения см. в статье об интеграции единого входа Microsoft Entra с SuccessFactors.
Установка подключения
Служба подготовки Microsoft Entra использует базовую проверку подлинности для подключения к конечным точкам API OData Employee Central. При настройке приложения для подготовки SuccessFactors задайте URL-адрес центра обработки данных API в поле Tenant URL (URL-адрес клиента) раздела Admin Credentials (Учетные данные администратора).
Чтобы защитить подключение между службой подготовки Microsoft Entra и SuccessFactors, добавьте диапазоны IP-адресов Microsoft Entra в список разрешений IP-адресов SuccessFactors:
- Скачайте файл с актуальными диапазонами IP-адресов общедоступного облака Azure.
- Откройте файл и найдите тег
AzureActiveDirectory
. - Скопируйте все диапазоны IP-адресов, перечисленные в элементе addressPrefixes, и на их основе создайте список запрещенных IP-адресов.
- Преобразуйте значения CIDR в диапазоны IP-адресов.
- Войдите на портал администрирования SuccessFactors и добавьте эти диапазоны в список разрешенных IP-адресов. См. статью 2253200 базы знаний технической поддержки SAP. Теперь в этом средстве можно вводить диапазоны IP-адресов.
Поддерживаемые сущности
Для каждого пользователя в SuccessFactors служба подготовки Microsoft Entra извлекает следующие сущности. Каждая сущность расширяется с помощью параметра запроса API OData $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 отправляет следующий запрос API OData GET для получения эффективных данных всех активных и завершенных рабочих ролей.
Параметр | Описание |
---|---|
Узел API OData | URL-адрес клиента с префиксом HTTPS. Пример: https://api4.successfactors.com |
Конечная точка API OData | /odata/v2/PerPerson |
Параметр запроса $format OData | json |
Параметр запроса $filter OData | (personEmpTerminationInfoNav/activeEmploymentsCount ne null) and (lastModifiedDateTime le <CurrentExecutionTime>) |
Параметр запроса $expand OData | Значение этого параметра зависит от сопоставленных атрибутов. Пример: employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav,phoneNav,emailNav,employmentNav/jobInfoNav/companyNav/countryOfRegistrationNav,employmentNav/jobInfoNav/divisionNav,employmentNav/jobInfoNav/departmentNav |
Параметр запроса customPageSize OData | 100 |
Примечание.
Во время полной начальной синхронизации извлекаются активные и завершенные рабочие роли из SAP SuccessFactors.
Для каждого пользователя SuccessFactors служба подготовки ищет учетную запись в целевом объекте (идентификатор Microsoft Entra ID/локальная служба Active Directory) с помощью соответствующего атрибута, определенного в сопоставлении. Например, если атрибут personIdExternal соответствует атрибуту EmployeeID и определен в сопоставлении, служба подготовки использует значение personIdExternal для поиска пользователя с фильтром employeeId. Если найден совпадающий пользователь, целевые атрибуты обновляются. Если совпадений не найдено, соответствующая запись в создается целевом объекте.
Чтобы проверить данные, возвращаемые конечной точкой API OData для определенной personIdExternal
точки, обновите SuccessFactorsAPIEndpoint
запрос API с URL-адресом сервера центра обработки данных API и используйте средство, например cURL или Graph Explorer, для вызова запроса. Если фильтр 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
и использует ее для создания разностных запросов для получения добавочных изменений. Для атрибутов метки времени, присутствующих в каждой сущности SuccessFactors (например lastModifiedDateTime
, startDate
, endDate
и latestTerminationDate
), проверяется, попадает ли рассматриваемое изменение в диапазон от LastExecutionTimestamp
до CurrentExecutionTime
. Если да, до запись об этом изменении считается действующей и обрабатывается для синхронизации.
Ниже приведен шаблон запроса API OData, который идентификатор Microsoft Entra id использует для запроса SuccessFactors для добавочных изменений. Переменные SuccessFactorsAPIEndpoint
можно обновить, LastExecutionTimestamp
а CurrentExecutionTime
в шаблоне запроса используйте средство, например cURL или Graph Explorer, чтобы проверить, какие данные возвращаются. Кроме того, вы можете получить фактические полезные данные запроса из SuccessFactors, включив журналы аудита 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
Как работает обработка предварительного найма
В этом разделе объясняется, как соединитель SAP SuccessFactors обрабатывает предварительно нанимаемые записи (рабочие с датой найма и датой начала в будущем).
Предположим, что в SuccessFactors Employee Central с датой начала 1-го июня 2023 года есть предварительная дата найма с помощью employeeId "1234". Предположим, что эта предварительная запись была создана либо в Employee Central, либо в модуле подключения 15-мая 2023 года. Когда служба подготовки сначала наблюдает эту запись 15-май-2023 (как часть полной синхронизации или добавочной синхронизации), эта запись по-прежнему находится в состоянии предварительного найма. Из-за этого SuccessFactors не отправляет службе подготовки все атрибуты (например, userNav/username), связанные с пользователем. Доступны только минимальные данные о пользователе, например companyName
, personIdExternal
и firstname
lastname
startDate
доступны. Для успешной обработки предварительного найма необходимо выполнить следующие предварительные требования:
- Атрибут
personIdExternal
должен быть задан в качестве основного идентификатора сопоставления (присоединение свойства). Если вы настроите другой атрибут (например, userName) в качестве свойства присоединения, служба подготовки не сможет получить сведения о предварительной работе. - Атрибут
startDate
должен быть доступен, и его JSONPath должен иметь значение$.employmentNav.results[0].startDate
или$.employmentNav.results[-1:].startDate
. - Запись предварительного найма должна находиться в одном из следующих состояний в Employee Central: "активный" (t), "неактивный" (f) или "active_external_suite" (e). Дополнительные сведения об этих состояниях см. в заметке о поддержке SAP 2736579.
Примечание.
Для предварительного найма, у которого нет истории с организацией, индекс [0] и [-1:] будет работать для startDate
. Для предварительного найма, который является повторно нанимать или преобразовать, мы не можем детерминированно сообщить заказу, и это может привести к тому, что некоторые повторное получение или преобразованные работники обрабатываются по фактической дате начала. Это известное ограничение в соединителе.
Во время полной синхронизации или добавочной синхронизации или подготовки по запросу, когда служба подготовки сталкивается с записью предварительного найма, она отправляет следующий запрос OData в SuccessFactors с фильтром asOfDate, заданным для запускаDate пользователя (например,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 для запроса экземпляра SuccessFactors, заменив конечную точку API, personIdExternal
и asOfDate
отфильтровать значения, соответствующие вашему сценарию тестирования.
Чтение данных атрибутов
Когда служба подготовки Microsoft Entra запрашивает SuccessFactors, она извлекает результирующий набор JSON. Результирующий набор JSON содержит множество атрибутов, хранящихся в Employee Central. По умолчанию схема подготовки настроена для получения лишь некоторого подмножества этих атрибутов.
Чтобы получить дополнительные атрибуты, выполните указанные ниже действия.
Последовательно выберите Корпоративные приложения >Приложение SuccessFactors >Подготовка >Изменить параметры подготовки >страница сопоставления атрибутов.
Прокрутите вниз и щелкните " Показать расширенные параметры".
Щелкните Изменить список атрибутов для SuccessFactors.
Примечание.
Если параметр "Изменить атрибут" для SuccessFactors не отображается в Центре администрирования Microsoft Entra, используйте URL-адрес https://portal.azure.com/?Microsoft_AAD_IAM_forceSchemaEditorEnabled=true для доступа к странице.
В столбце Выражение API этого представления отображаются используемые соединителем выражения пути JSONPath.
Можно либо изменить существующее значение JSONPath, либо добавить в схему атрибут с допустимым выражением JSONPath.
В следующем разделе приведен список распространенных сценариев, предполагающих изменение значений JSONPath.
Сценарии работы с кадрами
JSONPath — это язык запросов для JSON, похожий на XPath для XML. Как и XPath, JSONPath позволяет извлекать данные из структуры JSON и фильтровать их.
С помощью преобразования JSONPath можно настроить поведение приложения подготовки Microsoft Entra для получения пользовательских атрибутов и обработки таких сценариев, как повторное получение, преобразование рабочей роли и глобальное назначение.
В этом разделе описывается, как настроить приложение для подготовки в расчете на следующие сценарии работы с кадрами:
- Получение дополнительных атрибутов
- получение настраиваемых атрибутов;
- Сопоставление состояния занятности с состоянием учетной записи
- Обработка сценариев преобразования и повторного подбора рабочих ролей
- Получение активной записи о занятости
- зарубежное назначение;
- совмещение должностей.
- Получение сведений о позиции
- Подготовка пользователей в модуле подключения
- Включение журналов аудита API OData в SuccessFactors
Получение дополнительных атрибутов
Схема приложения подготовки Microsoft Entra SuccessFactors по умолчанию поставляется с 90+ предопределенными атрибутами. Чтобы добавить дополнительные атрибуты SuccessFactors в схему подготовки, выполните указанные ниже действия.
Используйте запрос 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
Определите, какая сущность Employee Central связана с нужным атрибутом:
- Если атрибут относится к сущности EmpEmployment, его следует искать в узле employmentNav.
- Если атрибут относится к сущности User, его следует искать в узле employmentNav/userNav.
- Если атрибут относится к сущности EmpJob, его следует искать в узле employmentNav/jobInfoNav.
Сконструируйте выражение JSONPath для этого нового атрибута и добавьте его в список атрибутов SuccessFactors.
- Пример 1. Предположим, что вы хотите добавить атрибут
okToRehire
, который является частью сущностиemploymentNav
, а затем использовать JSONPath$.employmentNav.results[0].okToRehire
- Пример 2. Если нужно добавить атрибут timeZone, относящийся к сущности userNav, используйте выражение JSONPath
$.employmentNav.results[0].userNav.timeZone
. - Пример 3. Если нужно добавить атрибут flsaStatus, относящийся к сущности jobInfoNav, используйте выражение JSONPath
$.employmentNav.results[0].jobInfoNav.results[0].flsaStatus
.
- Пример 1. Предположим, что вы хотите добавить атрибут
Сохраните схему.
Перезапустите подготовку.
Получение настраиваемых атрибутов
По умолчанию в приложении подготовки Microsoft Entra SuccessFactors предопределяются следующие настраиваемые атрибуты:
- custom01–custom15 — из сущности User (userNav);
- customString1–customString15 — из сущности EmpEmployment (employmentNav) с именем empNavCustomString1–empNavCustomString15;
- customString1–customString15 — из сущности EmpJobInfo (jobInfoNav) с именем empJobNavCustomString1–empNavJobCustomString15.
Пусть в вашем экземпляре Employee Central атрибут customString35 в составе сущности EmpJobInfo содержит описание местоположения организации. Требуется передать это значение в атрибут physicalDeliveryOfficeName Active Directory. Чтобы настроить сопоставление атрибутов для этого сценария, выполните следующие действия.
- Добавьте атрибут с именем empJobNavCustomString35 в список атрибутов SuccessFactors.
- Задайте для этого атрибута следующее выражение API JSONPath:
$.employmentNav.results[0].jobInfoNav.results[0].customString35
. - Сохраните и перезагрузите изменение сопоставления в Центре администрирования Microsoft Entra.
- В колонке сопоставления атрибутов сопоставьте атрибут empJobNavCustomString35 с атрибутом physicalDeliveryOfficeName.
- Сохраните сопоставление.
Расширим этот сценарий.
- Если требуется задать сопоставление для атрибута custom35 из сущности User, используйте выражение JSONPath
$.employmentNav.results[0].userNav.custom35
. - Если требуется задать сопоставление для атрибута customString35 из сущности EmpEmployment, используйте выражение JSONPath
$.employmentNav.results[0].customString35
.
Сопоставление состояния занятности с состоянием учетной записи
По умолчанию соединитель Microsoft Entra SuccessFactors использует activeEmploymentsCount
поле объекта для задания состояния учетной PersonEmpTerminationInfo
записи. С этим атрибутом может возникнуть одна из следующих проблем.
- Существует известная проблема, из-за которой соединитель может отключить учетную запись завершенной рабочей роли один день до окончания последнего дня работы.
PersonEmpTerminationInfo
Если объект получает значение NULL, во время завершения учетная запись AD отключена, так как подсистема подготовки фильтрует записи, в которыхpersonEmpTerminationInfoNav
объект имеет значение NULL.
Если вы работаете с любым из этих проблем или предпочитаете сопоставление состояния занятости с состоянием учетной записи, можно обновить сопоставление, чтобы развернуть emplStatus
поле и использовать код состояния занятости, представленный в поле emplStatus.externalCode
. На основе заметки о поддержке SAP 2505526 ниже приведен список кодов состояния занятости, которые можно получить в приложении подготовки.
- A = активный
- D = бездействующий
- U = неоплачиваемый отпуск
- P = оплачиваемый отпуск
- S = отстранен
- F = отпуск
- O = запись удалена
- R = на пенсии
- T = уволен
Чтобы получить эти коды, выполните действия по обновлению сопоставления.
Откройте колонку сопоставления атрибутов в приложении для подготовки SuccessFactors.
В разделе Показать дополнительные параметры щелкните Изменить список атрибутов SuccessFactors.
Найдите атрибут
emplStatus
и измените JSONPath на$.employmentNav.results[0].jobInfoNav.results[0].emplStatusNav.externalCode
. Обновление делает соединитель получать коды состояния занятости в таблице.Сохраните изменения.
В колонке сопоставления атрибутов обновите сопоставление выражений для флага состояния учетной записи.
Задание подготовки Атрибут состояния учетной записи Выражение сопоставления Подготовка пользователей из 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")
Сохраните изменения.
Протестируйте конфигурацию с помощью подготовки по запросу.
Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.
Обработка сценариев преобразования и повторного подбора рабочих ролей
О сценарии преобразования рабочих ролей: преобразование рабочей роли — это процесс преобразования существующего сотрудника полного времени в подрядчик или подрядчика в полный рабочий день сотрудника. В этом сценарии в Employee Central добавляются две новых сущности — EmpEmployment и User — для той же самой сущности Person. Для сущности User, вложенной в предыдущую сущность EmpEmployment, задается значение null.
О сценариях повторного подбора: в SuccessFactors существует два варианта обработки повторного подбора сотрудников:
- Вариант 1. Создание нового профиля пользователя в Employee Central.
- Вариант 2. Повторное использование профиля пользователя в Employee Central.
Если ваш кадровый регламент предполагает использование варианта 1, то схема подготовки не требует изменений. Если же у вас используется вариант 2, в Employee Central добавляются две новых сущности — EmpEmployment и User — для той же самой сущности Person.
Вы можете обрабатывать оба сценария, чтобы новые данные о занятости отображались при преобразовании или повторном образовании. Массовое обновление схемы приложения подготовки с помощью перечисленных действий.
Откройте колонку сопоставления атрибутов в приложении для подготовки SuccessFactors.
Прокрутите вниз и щелкните " Показать расширенные параметры".
Щелкните ссылку Проверьте схему, чтобы открыть редактор схемы.
Щелкните ссылку для Скачать, чтобы сохранить копию схемы перед ее изменением.
В редакторе схемы нажмите клавиши CTRL+H, чтобы открыть элемент управления для поиска и замены.
Скопируйте значение
$.employmentNav.results[0]
и вставьте его в текстовое поле "Найти".Скопируйте значение
$.employmentNav.results[-1:]
и вставьте его в текстовое поле "Заменить". Это выражение JSONPath возвращает последнюю запись EmpEmployment.Нажмите "заменить все", чтобы обновить схему.
Сохраните схему.
В результате описанных выше действий все выражения JSONPath изменяются следующим образом:
- Старое выражение JSONPath:
$.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized
. - Новое выражение JSONPath:
$.employmentNav.results[-1:].jobInfoNav.results[0].departmentNav.name_localized
.
- Старое выражение JSONPath:
Протестируйте конфигурацию с помощью подготовки по запросу.
Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.
Примечание.
Описанный выше подход работает только в том случае, если SAP SuccessFactors возвращает объекты занятости в порядке возрастания, где последняя запись о занятости всегда является последней записью в массиве результатов employmentNav. Порядок возврата нескольких записей о занятости не гарантируется SuccessFactors. Если экземпляр SuccessFactors содержит несколько записей о занятости одного сотрудника и вы хотите всегда получать атрибуты, связанные с активной записью о занятости, выполните действия, описанные в следующем разделе.
Получение активной записи о занятости
Для получения записей о занятости в большинстве сценариев и простоты настройки можно использовать корень JSONPath $.employmentNav.results[0]
или $.employmentNav.results[-1:]
. Но в зависимости от настройки экземпляра SuccessFactors может потребоваться обновить эту конфигурацию, чтобы соединитель получал последнюю активную запись о занятости.
В этом разделе описывается, как обновить параметры JSONPath, чтобы гарантированно получить активную запись о занятости пользователя. Он также обрабатывает сценарии преобразования и повторного подбора рабочих ролей.
Откройте колонку сопоставления атрибутов в приложении для подготовки SuccessFactors.
Прокрутите вниз и щелкните " Показать расширенные параметры".
Щелкните ссылку Проверьте схему, чтобы открыть редактор схемы.
Щелкните ссылку для Скачать, чтобы сохранить копию схемы перед ее изменением.
В редакторе схемы нажмите клавиши CTRL+H, чтобы открыть элемент управления для поиска и замены.
Выполните следующие операции поиска и замены. Убедитесь, что при выполнении операций поиска и замены нет места в начале или в конечных местах. Если вместо индекса используется
[-1:]
индекс[0]
, обновите поле для поиска строки соответствующим образом.Строка для поиска Строка замены Целевые назначения $.employmentNav.results[0].jobInfoNav.results[0].emplStatus
$.employmentNav..jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P' )].emplStatusNav.externalCode
С помощью этой функции find-replace мы добавляем возможность расширения объекта emplStatusNav OData. $.employmentNav.results[0].jobInfoNav.results[0]
$.employmentNav..jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')]
С помощью этой функции поиска и замены мы укажем соединителю всегда получать атрибуты, связанные с активной записью EmpJobInfo в SuccessFactors. Атрибуты, связанные с прерванными или неактивными записями в SuccessFactors, игнорируются. $.employmentNav.results[0]
$.employmentNav..results[?(@.jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')])]
С помощью этой функции поиска и замены мы укажем соединителю всегда получать атрибуты, связанные с активной записью Employment в SuccessFactors. Атрибуты, связанные с прерванными или неактивными записями в SuccessFactors, игнорируются. Сохраните схему.
В результате описанных выше действий все выражения JSONPath будут обновлены.
Для предварительной обработки для работы JSONPath, связанного с
startDate
атрибутом, должен использовать либо[-1:]
[0]
индекс. В разделе Показать дополнительные параметры щелкните Изменить список атрибутов SuccessFactors. Найдите атрибутstartDate
и присвойте ему значение$.employmentNav.results[-1:].startDate
.Сохраните схему.
Чтобы убедиться, что завершения обрабатываются должным образом, вы можете использовать один из следующих параметров в разделе сопоставления атрибутов.
Задание подготовки Атрибут состояния учетной записи Выражение, используемое в случае, если состояние учетной записи основано на 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")
Сохранение изменений. 1.
Протестируйте конфигурацию с помощью подготовки по запросу.
Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.
Обработка сценария с зарубежным назначением
Чтобы отразить в Employee Central зарубежное назначение пользователя, в SuccessFactors добавляется новая сущность EmpEmployment и для атрибута assignmentClass устанавливается значение "GA". Кроме того, создается новая сущность User. Таким образом, у пользователя теперь есть:
- сущность EmpEmployment + User, которая соответствует назначению внутри страны (атрибуту assignmentClass, присвоено значение "ST");
- другая сущность EmpEmployment + User, которая соответствует зарубежному назначению (атрибуту assignmentClass, присвоено значение "GA").
Чтобы получить атрибуты, принадлежащие к стандартному назначению и профилю пользователя глобального назначения, выполните указанные ниже действия.
Откройте колонку сопоставления атрибутов в приложении для подготовки SuccessFactors.
Прокрутите вниз и щелкните " Показать расширенные параметры".
Щелкните ссылку Проверьте схему, чтобы открыть редактор схемы.
Щелкните ссылку для Скачать, чтобы сохранить копию схемы перед ее изменением.
В редакторе схемы нажмите клавиши CTRL+H, чтобы открыть элемент управления для поиска и замены.
Скопируйте значение
$.employmentNav.results[0]
и вставьте его в текстовое поле "Найти".Скопируйте значение
$.employmentNav.results[?(@.assignmentClass == 'ST')]
и вставьте его в текстовое поле "Заменить". Обратите внимание на пробелы, окружающие оператор "==", так как они важны для успешной обработки выражения JSONPath.Нажмите "заменить все", чтобы обновить схему.
Сохраните схему.
В результате описанных выше действий все выражения JSONPath изменяются следующим образом:
- Старое выражение JSONPath:
$.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized
. - Новое выражение JSONPath:
$.employmentNav.results[?(@.assignmentClass == 'ST')].jobInfoNav.results[0].departmentNav.name_localized
.
- Старое выражение JSONPath:
Перезагрузите колонку сопоставления атрибутов в приложении.
Прокрутите вниз и щелкните " Показать расширенные параметры".
Щелкните Изменить список атрибутов для SuccessFactors.
Добавьте атрибуты для выборки данных о зарубежном назначении. Например, если требуется получить название отдела, связанное с профилем зарубежного назначения, можно добавить атрибут globalAssignmentDepartment с выражением JSONPath
$.employmentNav.results[?(@.assignmentClass == 'GA')].jobInfoNav.results[0].departmentNav.name_localized
.Теперь можно либо передать оба значения названия отдела в атрибуты Active Directory, либо выборочно перенести значение, используя сопоставляющее выражение. Пример: выражение задает значение атрибута отдела AD для globalAssignmentDepartment, если оно присутствует, в противном случае оно задает значение для отдела, связанного со стандартным назначением.
IIF(IsPresent([globalAssignmentDepartment]),[globalAssignmentDepartment],[department])
Сохраните сопоставление.
Протестируйте конфигурацию с помощью подготовки по запросу.
Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.
Обработка сценария с совмещением должностей
Когда у пользователя в Employee Central есть две совмещаемые должности, они представляются двумя сущностями EmpEmployment и User с атрибутом assignmentClass, которому присвоено значение "ST". Чтобы получить атрибуты, принадлежащие обоим заданиям, выполните указанные ниже действия.
- Откройте колонку сопоставления атрибутов в приложении для подготовки SuccessFactors.
- Прокрутите вниз и щелкните " Показать расширенные параметры".
- Щелкните Изменить список атрибутов для SuccessFactors.
- Пускай требуется получить название отдела, относящегося к должности 1 и должности 2. Предварительно определенный отдел атрибутов уже получает значение отдела для первого задания. Можно определить новый атрибут с именем secondJobDepartment и задать для него выражение JSONPath
$.employmentNav.results[1].jobInfoNav.results[0].departmentNav.name_localized
. - Теперь можно либо передать оба значения названия отдела в атрибуты Active Directory, либо выборочно перенести значение, используя сопоставляющее выражение.
- Сохраните сопоставление.
- Протестируйте конфигурацию с помощью подготовки по запросу.
- Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.
Получение сведений о позиции
Соединитель 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 ТЕПЕРЬ поддерживает предварительную подготовку предустановок, присутствующих в модуле SAP SuccessFactors Onboarding 2.0. Когда служба подготовки Microsoft Entra встречает новый профиль найма с будущей датой начала, он запрашивает SAP SuccessFactors, чтобы получить новых сотрудников с одним из следующих кодов состояния: active
, , inactive
. active_external_suite
Код active_external_suite
состояния соответствует предварительным представлениям в модуле SAP SuccessFactors Onboarding 2.0. Описание этих кодов состояния есть в примечании о поддержке SAP 2736579.
Поведение службы подготовки по умолчанию — обработка предварительных выборок в модуле подключения.
Если вы хотите исключить обработку предустановок в модуле подключения, обновите конфигурацию задания подготовки следующим образом:
- Откройте колонку сопоставления атрибутов в приложении для подготовки SuccessFactors.
- В разделе дополнительных параметров измените список атрибутов SuccessFactors, добавив в него новый атрибут с именем
userStatus
. - Задайте для этого атрибута следующее выражение API JSONPath:
$.employmentNav.results[0].userNav.status
. - Сохраните схему, чтобы вернуться в колонку сопоставления атрибутов.
- Измените область исходного объекта (Source Object), чтобы применить фильтр области
userStatus NOT EQUALS
. - Сохраните сопоставление и убедитесь, что фильтр области применяется для подготовки по запросу.
Включение журналов аудита API OData в SuccessFactors
Соединитель Microsoft Entra SuccessFactors использует API OData SuccessFactors для получения изменений и подготовки пользователей. Если вы наблюдаете проблемы со службой подготовки и хотите подтвердить, какие данные были получены из SuccessFactors, можно включить журналы аудита API OData в SuccessFactors. Получение полезных данных запроса, отправляемых идентификатором Microsoft Entra, из журналов аудита. Чтобы устранить неполадки, можно скопировать полезные данные этого запроса в инструменте, например cURL или Graph Explorer, настроить его для использования того же пользователя API, который используется соединителем, и узнать, возвращает ли он нужные изменения из SuccessFactors.
Сценарии с обратной записью
В этом разделе рассматриваются различные сценарии с обратной записью и приводятся рекомендации по настройке в зависимости от того, как заданы электронный адрес и номер телефона в SuccessFactors.
Поддерживаемые сценарии с обратной записью номера телефона и электронного адреса
# | Требования сценария | Основной адрес электронной почты является основным (значение флага) |
Бизнес-телефон является основным (значение флага) |
Сотовый телефон является основным (значение флага) |
Бизнес-телефон mapping |
Сотовый телефон mapping |
---|---|---|---|---|---|---|
1 | * Задавать в качестве основного только рабочий электронный адрес. * Не задавать номера телефонов. |
true | true | false | [Не задано] | [Не задано] |
2 | * В SuccessFactors, бизнес-электронная почта и бизнес-телефон являются основными * Всегда поток телефонного номера Microsoft Entra для бизнеса и мобильного телефона на мобильный телефон. |
true | true | false | telephoneNumber | мобильный |
3 | * В SuccessFactors, бизнес-электронная почта и мобильный телефон являются основными * Всегда поток телефонного номера Microsoft Entra для бизнеса и мобильного телефона на мобильный телефон |
true | false | true | telephoneNumber | мобильный |
4 | * В бизнес-сообщении SuccessFactors основной. * В идентификаторе Microsoft Entra проверьте, присутствует ли рабочий номер телефона, если он присутствует, а затем проверьте, присутствует ли номер мобильного телефона. Помечайте рабочий номер телефона в качестве основного, только если номер мобильного телефона отсутствует. |
true | Использовать сопоставляющее выражение: IIF(IsPresent([telephoneNumber]), IIF(IsPresent([mobile]),"false", "true"), "false") |
Использовать сопоставляющее выражение: IIF(IsPresent([mobile]),"false", "true") |
telephoneNumber | мобильный |
5 | * В SuccessFactors основными являются рабочий электронный адрес и рабочий номер телефона. * В идентификаторе Microsoft Entra, если мобильные устройства доступны, а затем задайте его в качестве бизнес-телефона, а затем используйте номер телефона. |
true | true | false | IIF(IsPresent([mobile]), [mobile], [telephoneNumber]) |
[Не задано] |
- Если в сопоставлении атрибутов обратной записи нет сопоставления телефонов, в обратной записи будет включена только электронная почта.
- На этапе введения в должность нового сотрудника в Employee Central могут отсутствовать электронный адрес и номер телефона. Если настройка бизнес-электронной почты и бизнес-телефона в качестве основного является обязательным во время подключения, вы можете задать фиктивное значение для бизнес-телефона и электронной почты во время создания нового найма. Через некоторое время приложение обратной записи обновляет значение.
Включение обратной записи с помощью UserID
Приложение SuccessFactors Writeback использует следующую логику для обновления атрибутов объекта User:
- В качестве первого шага он ищет атрибут userId в наборе изменений. Если он присутствует, он использует UserId для вызова API SuccessFactors.
- Если идентификатор пользователя не найден, по умолчанию используется значение атрибута PersonIdExternal .
Обычно значение атрибута personIdExternal в SuccessFactors совпадает со значением атрибута userId. Однако в таких сценариях, как повторное получение и преобразование рабочей роли, сотрудник в SuccessFactors может иметь две записи о занятости, один активный и один неактивный. В таких сценариях, чтобы обеспечить обновление активного профиля пользователя для обратной записи, обновите конфигурацию приложений для подготовки SuccessFactors, как описано. Эта конфигурация гарантирует, что идентификатор пользователя всегда присутствует в наборе изменений, видимом соединителю, и используется в вызове API SuccessFactors.
- Откройте приложение подготовки пользователей SuccessFactors к Microsoft Entra или SuccessFactors в локальном приложении подготовки пользователей AD.
- Убедитесь, что
extensionAttribute[1-15]
в идентификаторе Microsoft Entra всегда хранитсяuserId
активная запись о занятости каждого работника. Запись сопоставляет атрибут SuccessFactorsuserId
сextensionAttribute[1-15]
идентификатором Microsoft Entra. - Инструкции по параметрам JSONPath см. в разделе "Обработка рабочих преобразований и повторного подбора рабочих элементов", чтобы убедиться , что значение userId активной записи о занятости передается в идентификатор Microsoft Entra.
- Сохраните сопоставление.
- Запустите задание подготовки, чтобы убедиться, что значения userId будут передаваться в идентификатор Microsoft Entra.
Примечание.
Если вы используете SuccessFactors для локальная служба Active Directory подготовки пользователей, настройте Microsoft Entra Connect для синхронизации значения атрибута userId из локальная служба Active Directory с идентификатором Microsoft Entra.
- Откройте приложение SuccessFactors Writeback на портале Azure.
- Сопоставьте нужный атрибут extensionAttribute со значением userId с атрибутом userId в SuccessFactors.
- Сохраните сопоставление.
- Выберите Сопоставление атрибутов > Дополнительно > Просмотреть схему, чтобы открыть редактор схем JSON.
- Скачайте копию схемы в виде резервной копии.
- В редакторе схем нажмите клавиши CTRL-F и найдите узел JSON, содержащий сопоставление userId, где он сопоставлен с исходным атрибутом Microsoft Entra.
- Обновите атрибут flowBehavior от FlowWhenChanged до FlowAlways, как показано ниже.
- Сохраните сопоставление и протестируйте сценарий обратной записи с помощью подготовки по запросу.
Неподдерживаемые сценарии с обратной записью номера телефона и электронного адреса
- При введении в должность личный электронный адрес и личный телефон сотрудника устанавливаются в качестве основных в Employee Central. Приложение обратной записи не может переключить этот параметр и задать бизнес-электронную почту и бизнес-телефон в качестве основного.
- Рабочий телефон установлен как основной в Employee Central. Приложение обратной записи не может изменить это и задать мобильный телефон в качестве основного.
- Приложение обратной записи не может считывать текущие параметры основного флага и использовать те же значения для операции записи. Значения флагов, настроенные в сопоставлении атрибутов, всегда используются.