Интеграция подготовки Microsoft Entra с SAP SuccessFactors

Служба подготовки пользователей Microsoft Entra интегрируется с SAP SuccessFactors Employee Central для управления жизненным циклом удостоверений пользователей. Идентификатор Microsoft Entra предлагает три предварительно созданных интеграции:

В этой статье описывается, как работает интеграция и как настраивается логика подготовки для различных сценариев работы с кадрами.

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:

  1. Скачайте файл с актуальными диапазонами IP-адресов общедоступного облака Azure.
  2. Откройте файл и выполните поиск тега Microsoft Entra ID
  3. Скопируйте все диапазоны IP-адресов, перечисленные в элементе addressPrefixes, и на их основе создайте список запрещенных IP-адресов.
  4. Преобразуйте значения CIDR в диапазоны IP-адресов.
  5. Войдите на портал администрирования 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 и используйте средство, например Postman , чтобы вызвать запрос. Если фильтр in не работает, можно попробовать фильтр eq.

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

Как работает добавочная синхронизация

После полной синхронизации служба подготовки Microsoft Entra поддерживает LastExecutionTimestamp и использует ее для создания разностных запросов для получения добавочных изменений. Для атрибутов метки времени, присутствующих в каждой сущности SuccessFactors (например lastModifiedDateTime, startDate, endDate и latestTerminationDate), проверяется, попадает ли рассматриваемое изменение в диапазон от LastExecutionTimestamp до CurrentExecutionTime. Если да, до запись об этом изменении считается действующей и обрабатывается для синхронизации.

Ниже приведен шаблон запроса API OData, который идентификатор Microsoft Entra id использует для запроса SuccessFactors для добавочных изменений. Переменные SuccessFactorsAPIEndpointможно обновить, LastExecutionTimestamp а CurrentExecutionTime в шаблоне запроса используйте средство, например Postman, чтобы проверка возвращаемых данных. Кроме того, вы можете получить фактические полезные данные запроса из 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и firstnamelastnamestartDate доступны. Для успешной обработки предварительного найма необходимо выполнить следующие предварительные требования:

  1. Атрибут personIdExternal должен быть задан в качестве основного идентификатора сопоставления (присоединение свойства). Если вы настроите другой атрибут (например, userName) в качестве свойства присоединения, служба подготовки не сможет получить сведения о предварительной работе.
  2. Атрибут startDate должен быть доступен, и его JSONPath должен иметь значение $.employmentNav.results[0].startDate или $.employmentNav.results[-1:].startDate.
  3. Запись предварительного найма должна находиться в одном из следующих состояний в Employee Central: "активный" (t), "неактивный" (f) или "active_external_suite" (e). Дополнительные сведения об этих состояниях см. в заметке о поддержке SAP 2736579.

Примечание.

Для предварительного найма, у которого нет истории с организацией, индекс [0] и [-1:] будет работать для startDate. Для предварительного найма, который является повторно нанимать или преобразовать, мы не можем детерминированно сообщить заказу, и это может привести к тому, что некоторые повторное получение или преобразованные работники обрабатываются по фактической дате начала. Это известное ограничение в соединителе.

Во время полной синхронизации или добавочной синхронизации или подготовки по запросу, когда служба подготовки сталкивается с предварительной записью, она отправляет следующий запрос OData в SuccessFactors с фильтром asOfDate, заданным для началаDate пользователя (например, 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/

Если вы наблюдаете проблемы с предварительной обработкой, вы можете использовать приведенный выше формат запроса OData для запроса экземпляра SuccessFactors, заменив конечную точку API, personIdExternal и asOfDate отфильтровать значения, соответствующие вашему сценарию тестирования.

Чтение данных атрибутов

Когда служба подготовки Microsoft Entra запрашивает SuccessFactors, она извлекает результирующий набор JSON. Результирующий набор JSON содержит множество атрибутов, хранящихся в Employee Central. По умолчанию схема подготовки настроена для получения лишь некоторого подмножества этих атрибутов.

Чтобы получить дополнительные атрибуты, выполните указанные ниже действия.

  1. Последовательно выберите Корпоративные приложения>Приложение SuccessFactors>Подготовка>Изменить параметры подготовки>страница сопоставления атрибутов.

  2. Прокрутите вниз и щелкните " Показать расширенные параметры".

  3. Щелкните Изменить список атрибутов для SuccessFactors.

    Примечание.

    Если параметр "Изменить атрибут" для SuccessFactors не отображается в Центре администрирования Microsoft Entra, используйте URL-адрес https://portal.azure.com/?Microsoft_AAD_IAM_forceSchemaEditorEnabled=true для доступа к странице.

  4. В столбце Выражение API этого представления отображаются используемые соединителем выражения пути JSONPath.

    API-Expression

  5. Можно либо изменить существующее значение JSONPath, либо добавить в схему атрибут с допустимым выражением JSONPath.

В следующем разделе приведен список распространенных сценариев, предполагающих изменение значений JSONPath.

Сценарии работы с кадрами

JSONPath — это язык запросов для JSON, похожий на XPath для XML. Как и XPath, JSONPath позволяет извлекать данные из структуры JSON и фильтровать их.

С помощью преобразования JSONPath можно настроить поведение приложения подготовки Microsoft Entra для получения пользовательских атрибутов и обработки таких сценариев, как повторное получение, преобразование рабочей роли и глобальное назначение.

В этом разделе описывается, как настроить приложение для подготовки в расчете на следующие сценарии работы с кадрами:

Получение дополнительных атрибутов

Схема приложения подготовки Microsoft Entra SuccessFactors по умолчанию поставляется с 90+ предопределенными атрибутами. Чтобы добавить дополнительные атрибуты SuccessFactors в схему подготовки, выполните указанные ниже действия.

  1. Используйте запрос OData для получения данных для допустимого тестового пользователя из Employee Central.

     https://[SuccessFactorsAPIEndpoint]/odata/v2/PerPerson?$format=json&
     $filter=(personIdExternal in '[personIdExternalValue]')&
     $expand=employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav,
     phoneNav,phoneNav/phoneTypeNav,emailNav,employmentNav/jobInfoNav/businessUnitNav,employmentNav/jobInfoNav/companyNav,
     employmentNav/jobInfoNav/companyNav/countryOfRegistrationNav,employmentNav/jobInfoNav/costCenterNav,
     employmentNav/jobInfoNav/divisionNav,employmentNav/jobInfoNav/departmentNav,employmentNav/jobInfoNav/jobCodeNav,
     employmentNav/jobInfoNav/locationNav,employmentNav/jobInfoNav/locationNav/addressNavDEFLT,employmentNav/jobInfoNav/payGradeNav,
     employmentNav/empGlobalAssignmentNav,employmentNav/empGlobalAssignmentNav/assignmentTypeNav,employmentNav/jobInfoNav/emplStatusNav,
     employmentNav/jobInfoNav/employmentTypeNav,employmentNav/jobInfoNav/employeeClassNav,employmentNav/jobInfoNav/eventReasonNav
    
  2. Определите, какая сущность Employee Central связана с нужным атрибутом:

    • Если атрибут относится к сущности EmpEmployment, его следует искать в узле employmentNav.
    • Если атрибут относится к сущности User, его следует искать в узле employmentNav/userNav.
    • Если атрибут относится к сущности EmpJob, его следует искать в узле employmentNav/jobInfoNav.
  3. Сконструируйте выражение 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.
  4. Сохраните схему.

  5. Перезапустите подготовку.

Получение настраиваемых атрибутов

По умолчанию в приложении подготовки 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. Чтобы настроить сопоставление атрибутов для этого сценария, выполните следующие действия.

  1. Добавьте атрибут с именем empJobNavCustomString35 в список атрибутов SuccessFactors.
  2. Задайте для этого атрибута следующее выражение API JSONPath: $.employmentNav.results[0].jobInfoNav.results[0].customString35.
  3. Сохраните и перезагрузите изменение сопоставления в Центре администрирования Microsoft Entra.
  4. В колонке сопоставления атрибутов сопоставьте атрибут empJobNavCustomString35 с атрибутом physicalDeliveryOfficeName.
  5. Сохраните сопоставление.

Расширим этот сценарий.

  • Если требуется задать сопоставление для атрибута custom35 из сущности User, используйте выражение JSONPath $.employmentNav.results[0].userNav.custom35.
  • Если требуется задать сопоставление для атрибута customString35 из сущности EmpEmployment, используйте выражение JSONPath $.employmentNav.results[0].customString35.

Сопоставление состояния занятности с состоянием учетной записи

По умолчанию соединитель Microsoft Entra SuccessFactors использует activeEmploymentsCount поле объекта для задания состояния учетной PersonEmpTerminationInfo записи. С этим атрибутом может возникнуть одна из следующих проблем.

  1. Существует известная проблема, из-за которой соединитель может отключить учетную запись завершенной рабочей роли один день до окончания последнего дня работы.
  2. PersonEmpTerminationInfo Если объект получает значение NULL, во время завершения учетная запись AD отключена, так как подсистема подготовки фильтрует записи, в которых personEmpTerminationInfoNav объект имеет значение NULL.

Если вы работаете с любым из этих проблем или предпочитаете сопоставление состояния занятости с состоянием учетной записи, можно обновить сопоставление, чтобы развернуть emplStatus поле и использовать код состояния занятости, представленный в поле emplStatus.externalCode. На основе заметки о поддержке SAP 2505526 ниже приведен список кодов состояния занятости, которые можно получить в приложении подготовки.

  • A = активный
  • D = бездействующий
  • U = неоплачиваемый отпуск
  • P = оплачиваемый отпуск
  • S = отстранен
  • F = отпуск
  • O = запись удалена
  • R = на пенсии
  • T = уволен

Чтобы получить эти коды, выполните действия по обновлению сопоставления.

  1. Откройте колонку сопоставления атрибутов в приложении для подготовки SuccessFactors.

  2. В разделе Показать дополнительные параметры щелкните Изменить список атрибутов SuccessFactors.

  3. Найдите атрибут emplStatus и измените JSONPath на $.employmentNav.results[0].jobInfoNav.results[0].emplStatusNav.externalCode. Обновление делает соединитель получать коды состояния занятости в таблице.

  4. Сохраните изменения.

  5. В колонке сопоставления атрибутов обновите сопоставление выражений для флага состояния учетной записи.

    Задание подготовки Атрибут состояния учетной записи Выражение сопоставления
    Подготовка пользователей из SuccessFactors в Active Directory accountDisabled Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")
    SuccessFactors для подготовки пользователей Microsoft Entra accountEnabled Switch([emplStatus], "False", "A", "True", "U", "True", "P", "True")
  6. Сохраните изменения.

  7. Протестируйте конфигурацию с помощью подготовки по запросу.

  8. Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.

Обработка сценариев преобразования и повторного подбора рабочих ролей

О сценарии преобразования рабочих ролей: преобразование рабочей роли — это процесс преобразования существующего сотрудника полного времени в подрядчик или подрядчика в полный рабочий день сотрудника. В этом сценарии в Employee Central добавляются две новых сущности — EmpEmployment и User — для той же самой сущности Person. Для сущности User, вложенной в предыдущую сущность EmpEmployment, задается значение null.

О сценариях повторного подбора: в SuccessFactors существует два варианта обработки повторного подбора сотрудников:

  • Вариант 1. Создание нового профиля пользователя в Employee Central.
  • Вариант 2. Повторное использование профиля пользователя в Employee Central.

Если ваш кадровый регламент предполагает использование варианта 1, то схема подготовки не требует изменений. Если же у вас используется вариант 2, в Employee Central добавляются две новых сущности — EmpEmployment и User — для той же самой сущности Person.

Вы можете обрабатывать оба сценария, чтобы новые данные о занятости отображались при преобразовании или повторном образовании. Массовое обновление схемы приложения подготовки с помощью перечисленных действий.

  1. Откройте колонку сопоставления атрибутов в приложении для подготовки SuccessFactors.

  2. Прокрутите вниз и щелкните " Показать расширенные параметры".

  3. Щелкните ссылку Проверьте схему, чтобы открыть редактор схемы.

    На снимке экрана показана ссылка

  4. Щелкните ссылку для Скачать, чтобы сохранить копию схемы перед ее изменением.

    На снимке экрана показан редактор схемы с выбранной командой

  5. В редакторе схемы нажмите клавиши CTRL+H, чтобы открыть элемент управления для поиска и замены.

  6. Скопируйте значение $.employmentNav.results[0] и вставьте его в текстовое поле "Найти".

  7. Скопируйте значение $.employmentNav.results[-1:] и вставьте его в текстовое поле "Заменить". Это выражение JSONPath возвращает последнюю запись EmpEmployment.

    Изменение схемы с помощью поиска и замены

  8. Нажмите "заменить все", чтобы обновить схему.

  9. Сохраните схему.

  10. В результате описанных выше действий все выражения JSONPath изменяются следующим образом:

    • Старое выражение JSONPath: $.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized.
    • Новое выражение JSONPath: $.employmentNav.results[-1:].jobInfoNav.results[0].departmentNav.name_localized.
  11. Протестируйте конфигурацию с помощью подготовки по запросу.

  12. Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.

Примечание.

Описанный выше подход работает только в том случае, если SAP SuccessFactors возвращает объекты занятости в порядке возрастания, где последняя запись о занятости всегда является последней записью в массиве результатов employmentNav. Порядок возврата нескольких записей о занятости не гарантируется SuccessFactors. Если экземпляр SuccessFactors содержит несколько записей о занятости одного сотрудника и вы хотите всегда получать атрибуты, связанные с активной записью о занятости, выполните действия, описанные в следующем разделе.

Получение активной записи о занятости

Для получения записей о занятости в большинстве сценариев и простоты настройки можно использовать корень JSONPath $.employmentNav.results[0] или $.employmentNav.results[-1:]. Но в зависимости от настройки экземпляра SuccessFactors может потребоваться обновить эту конфигурацию, чтобы соединитель получал последнюю активную запись о занятости.

В этом разделе описывается, как обновить параметры JSONPath, чтобы гарантированно получить активную запись о занятости пользователя. Он также обрабатывает сценарии преобразования и повторного подбора рабочих ролей.

  1. Откройте колонку сопоставления атрибутов в приложении для подготовки SuccessFactors.

  2. Прокрутите вниз и щелкните " Показать расширенные параметры".

  3. Щелкните ссылку Проверьте схему, чтобы открыть редактор схемы.

  4. Щелкните ссылку для Скачать, чтобы сохранить копию схемы перед ее изменением.

  5. В редакторе схемы нажмите клавиши CTRL+H, чтобы открыть элемент управления для поиска и замены.

  6. Выполните следующие операции поиска и замены. Убедитесь, что при выполнении операций поиска и замены нет места в начале или в конечных местах. Если вместо индекса используется [-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, игнорируются.
  7. Сохраните схему.

  8. В результате описанных выше действий все выражения JSONPath будут обновлены.

  9. Для предварительной обработки для работы JSONPath, связанного с startDate атрибутом, должен использовать либо [-1:][0] индекс. В разделе Показать дополнительные параметры щелкните Изменить список атрибутов SuccessFactors. Найдите атрибут startDate и присвойте ему значение $.employmentNav.results[-1:].startDate.

  10. Сохраните схему.

  11. Чтобы убедиться, что завершения обрабатываются должным образом, вы можете использовать один из следующих параметров в разделе сопоставления атрибутов.

    Задание подготовки Атрибут состояния учетной записи Выражение, используемое в случае, если состояние учетной записи основано на activeEmploymentsCount Выражение, используемое в случае, если состояние учетной записи основано на значении emplStatus
    Подготовка пользователей из SuccessFactors в Active Directory accountDisabled Switch([activeEmploymentsCount], "False", "0", "True") Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")
    SuccessFactors для подготовки пользователей Microsoft Entra accountEnabled Switch([activeEmploymentsCount], "True", "0", "False") Switch([emplStatus], "False", "A", "True", "U", "True", "P", "True")
  12. Сохранение изменений. 1.

  13. Протестируйте конфигурацию с помощью подготовки по запросу.

  14. Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.

Обработка сценария с зарубежным назначением

Чтобы отразить в Employee Central зарубежное назначение пользователя, в SuccessFactors добавляется новая сущность EmpEmployment и для атрибута assignmentClass устанавливается значение "GA". Кроме того, создается новая сущность User. Таким образом, у пользователя теперь есть:

  • сущность EmpEmployment + User, которая соответствует назначению внутри страны (атрибуту assignmentClass, присвоено значение "ST");
  • другая сущность EmpEmployment + User, которая соответствует зарубежному назначению (атрибуту assignmentClass, присвоено значение "GA").

Чтобы получить атрибуты, принадлежащие к стандартному назначению и профилю пользователя глобального назначения, выполните указанные ниже действия.

  1. Откройте колонку сопоставления атрибутов в приложении для подготовки SuccessFactors.

  2. Прокрутите вниз и щелкните " Показать расширенные параметры".

  3. Щелкните ссылку Проверьте схему, чтобы открыть редактор схемы.

  4. Щелкните ссылку для Скачать, чтобы сохранить копию схемы перед ее изменением.

  5. В редакторе схемы нажмите клавиши CTRL+H, чтобы открыть элемент управления для поиска и замены.

  6. Скопируйте значение $.employmentNav.results[0] и вставьте его в текстовое поле "Найти".

  7. Скопируйте значение $.employmentNav.results[?(@.assignmentClass == 'ST')] и вставьте его в текстовое поле "Заменить". Обратите внимание на пробелы, окружающие оператор "==", так как они важны для успешной обработки выражения JSONPath.

  8. Нажмите "заменить все", чтобы обновить схему.

  9. Сохраните схему.

  10. В результате описанных выше действий все выражения JSONPath изменяются следующим образом:

    • Старое выражение JSONPath: $.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized.
    • Новое выражение JSONPath: $.employmentNav.results[?(@.assignmentClass == 'ST')].jobInfoNav.results[0].departmentNav.name_localized.
  11. Перезагрузите колонку сопоставления атрибутов в приложении.

  12. Прокрутите вниз и щелкните " Показать расширенные параметры".

  13. Щелкните Изменить список атрибутов для SuccessFactors.

  14. Добавьте атрибуты для выборки данных о зарубежном назначении. Например, если требуется получить название отдела, связанное с профилем зарубежного назначения, можно добавить атрибут globalAssignmentDepartment с выражением JSONPath $.employmentNav.results[?(@.assignmentClass == 'GA')].jobInfoNav.results[0].departmentNav.name_localized.

  15. Теперь можно либо передать оба значения названия отдела в атрибуты Active Directory, либо выборочно перенести значение, используя сопоставляющее выражение. Пример: выражение задает значение атрибута отдела AD для globalAssignmentDepartment, если оно присутствует, в противном случае оно задает значение для отдела, связанного со стандартным назначением.

    • IIF(IsPresent([globalAssignmentDepartment]),[globalAssignmentDepartment],[department])
  16. Сохраните сопоставление.

  17. Протестируйте конфигурацию с помощью подготовки по запросу.

  18. Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.

Обработка сценария с совмещением должностей

Когда у пользователя в Employee Central есть две совмещаемые должности, они представляются двумя сущностями EmpEmployment и User с атрибутом assignmentClass, которому присвоено значение "ST". Чтобы получить атрибуты, принадлежащие обоим заданиям, выполните указанные ниже действия.

  1. Откройте колонку сопоставления атрибутов в приложении для подготовки SuccessFactors.
  2. Прокрутите вниз и щелкните " Показать расширенные параметры".
  3. Щелкните Изменить список атрибутов для SuccessFactors.
  4. Пускай требуется получить название отдела, относящегося к должности 1 и должности 2. Предварительно определенный отдел атрибутов уже получает значение отдела для первого задания. Можно определить новый атрибут с именем secondJobDepartment и задать для него выражение JSONPath $.employmentNav.results[1].jobInfoNav.results[0].departmentNav.name_localized.
  5. Теперь можно либо передать оба значения названия отдела в атрибуты Active Directory, либо выборочно перенести значение, используя сопоставляющее выражение.
  6. Сохраните сопоставление.
  7. Протестируйте конфигурацию с помощью подготовки по запросу.
  8. Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.

Получение сведений о позиции

Соединитель SuccessFactors поддерживает развертывание объекта позиции. Чтобы развернуть и получить атрибуты объекта позиции, такие как уровень задания или имена позиций на определенном языке, можно использовать выражения JSONPath, как показано ниже.

Имя атрибута Выражение JSONPath
positionJobLevel $.employmentNav.results[0].jobInfoNav.results[0].positionNav.jobLevel
positionNameFR $.employmentNav.results[0].jobInfoNav.results[0].positionNav.externalName_fr_FR
positionNameDE $.employmentNav.results[0].jobInfoNav.results[0].positionNav.externalName_de_DE

Подготовка пользователей в модуле Onboarding

Подготовка входящих пользователей из SAP SuccessFactors в локальную среду Active Directory и идентификатор Microsoft Entra ТЕПЕРЬ поддерживает предварительную подготовку предустановок, присутствующих в модуле SAP SuccessFactors Onboarding 2.0. Когда служба подготовки Microsoft Entra встречает новый профиль найма с будущей датой начала, он запрашивает SAP SuccessFactors, чтобы получить новых сотрудников с одним из следующих кодов состояния: active, , inactive. active_external_suite Код active_external_suite состояния соответствует предварительным представлениям в модуле SAP SuccessFactors Onboarding 2.0. Описание этих кодов состояния есть в примечании о поддержке SAP 2736579.

Поведение службы подготовки по умолчанию — обработка предварительных выборок в модуле подключения.

Если вы хотите исключить обработку предустановок в модуле подключения, обновите конфигурацию задания подготовки следующим образом:

  1. Откройте колонку сопоставления атрибутов в приложении для подготовки SuccessFactors.
  2. В разделе дополнительных параметров измените список атрибутов SuccessFactors, добавив в него новый атрибут с именем userStatus.
  3. Задайте для этого атрибута следующее выражение API JSONPath: $.employmentNav.results[0].userNav.status.
  4. Сохраните схему, чтобы вернуться в колонку сопоставления атрибутов.
  5. Измените область исходного объекта (Source Object), чтобы применить фильтр области userStatus NOT EQUALS.
  6. Сохраните сопоставление и убедитесь, что фильтр области применяется для подготовки по запросу.

Включение журналов аудита API OData в SuccessFactors

Соединитель Microsoft Entra SuccessFactors использует API OData SuccessFactors для получения изменений и подготовки пользователей. Если вы наблюдаете проблемы со службой подготовки и хотите подтвердить, какие данные были получены из SuccessFactors, можно включить журналы аудита API OData в SuccessFactors. Получение полезных данных запроса, отправляемых идентификатором Microsoft Entra, из журналов аудита. Чтобы устранить неполадки, можно скопировать полезные данные этого запроса в инструменте, например Postman, настроить его для использования того же пользователя 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.

  1. Откройте приложение подготовки пользователей SuccessFactors к Microsoft Entra или SuccessFactors в локальном приложении подготовки пользователей AD.
  2. Убедитесь, что extensionAttribute[1-15] в идентификаторе Microsoft Entra всегда хранится userId активная запись о занятости каждого работника. Запись сопоставляет атрибут SuccessFactors userId с extensionAttribute[1-15] идентификатором Microsoft Entra.

    Сопоставление входящего атрибута UserID

  3. Инструкции по параметрам JSONPath см. в разделе "Обработка рабочих преобразований и повторного подбора рабочих элементов", чтобы убедиться , что значение userId активной записи о занятости передается в идентификатор Microsoft Entra.
  4. Сохраните сопоставление.
  5. Запустите задание подготовки, чтобы убедиться, что значения userId будут передаваться в идентификатор Microsoft Entra.

    Примечание.

    Если вы используете SuccessFactors для локальная служба Active Directory подготовки пользователей, настройте Microsoft Entra Подключение для синхронизации значения атрибута userId из локальная служба Active Directory с идентификатором Microsoft Entra.

  6. Откройте приложение SuccessFactors Writeback на портале Azure.
  7. Сопоставьте нужный атрибут extensionAttribute со значением userId с атрибутом userId в SuccessFactors.

    Сопоставление атрибутов UserID для обратной записи

  8. Сохраните сопоставление.
  9. Выберите Сопоставление атрибутов > Дополнительно > Просмотреть схему, чтобы открыть редактор схем JSON.
  10. Скачайте копию схемы в виде резервной копии.
  11. В редакторе схем нажмите клавиши CTRL-F и найдите узел JSON, содержащий сопоставление userId, где он сопоставлен с исходным атрибутом Microsoft Entra.
  12. Обновите атрибут flowBehavior от FlowWhenChanged до FlowAlways, как показано ниже.

    Изменение поведения потока сопоставления

  13. Сохраните сопоставление и протестируйте сценарий обратной записи с помощью подготовки по запросу.

Неподдерживаемые сценарии с обратной записью номера телефона и электронного адреса

  • При введении в должность личный электронный адрес и личный телефон сотрудника устанавливаются в качестве основных в Employee Central. Приложение обратной записи не может переключить этот параметр и задать бизнес-электронную почту и бизнес-телефон в качестве основного.
  • Рабочий телефон установлен как основной в Employee Central. Приложение обратной записи не может изменить это и задать мобильный телефон в качестве основного.
  • Приложение обратной записи не может считывать текущие параметры основного флага и использовать те же значения для операции записи. Значения флагов, настроенные в сопоставлении атрибутов, всегда используются.

Следующие шаги