Поделиться через


Интеграция подготовки 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-адреса клиента в разделе "Учетные данные администратора" для настройки URL-адреса центра обработки данных API.

Чтобы защитить подключение между службой подготовки Microsoft Entra и SuccessFactors, добавьте диапазоны IP-адресов Microsoft Entra в список разрешений IP-адресов SuccessFactors:

  1. Скачайте последние диапазоны IP-адресов для общедоступного облака Azure.
  2. Откройте файл и найдите тег AzureActiveDirectory.
  3. Скопируйте все диапазоны IP-адресов, перечисленные в адресе элементаPrefixes, и используйте диапазон для создания списка ограничений IP-адресов.
  4. Перевод значений CIDR в диапазоны IP-адресов.
  5. Войдите на портал администрирования SuccessFactors, чтобы добавить диапазоны IP-адресов в список разрешений. Обратитесь к заметке о поддержке SAP 2253200. Теперь вы можете ввести диапазоны 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 Добавляет https к URL-адресу клиента. Пример: https://api4.successfactors.com
Конечная точка API OData /odata/v2/PerPerson
Параметр запроса OData $format json
Параметр запроса OData $filter (personEmpTerminationInfoNav/activeEmploymentsCount ne null) and (lastModifiedDateTime le <CurrentExecutionTime>)
Параметр запроса OData $expand Это значение параметра зависит от сопоставленных атрибутов. Пример: employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav,phoneNav,emailNav,employmentNav/jobInfoNav/companyNav/countryOfRegistrationNav,employmentNav/jobInfoNav/divisionNav,employmentNav/jobInfoNav/departmentNav
Параметр запроса OData customPageSize 100

Заметка

Во время полной начальной синхронизации извлекаются активные и завершенные рабочие роли из SAP SuccessFactors.

Для каждого пользователя SuccessFactors служба подготовки ищет учетную запись в целевом объекте (идентификатор Microsoft Entra ID/локальная служба Active Directory) с помощью соответствующего атрибута, определенного в сопоставлении. Например, если 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и endDatelatestTerminationDate, оцениваются, чтобы определить, падает ли изменение между 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и firstnamelastname startDate доступны. Для успешной обработки предварительного найма необходимо выполнить следующие предварительные требования:

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

Заметка

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

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

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

  1. Перейдите на страницу "Корпоративные приложения ->SuccessFactors App -Provisioning ->>Edit Provisioning ->attribute-mapping page".

  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 , найдите атрибут в узле jobNav/jobInfoNav .
  3. Создайте путь JSON, связанный с атрибутом, и добавьте этот новый атрибут в список атрибутов SuccessFactors.

    • Пример 1. Предположим, что вы хотите добавить атрибут okToRehire, который является частью сущности employmentNav , а затем использовать JSONPath $.employmentNav.results[0].okToRehire
    • Пример 2. Предположим, что вы хотите добавить часовой пояс атрибута, который является частью сущности 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 хранит описание расположения. Вы хотите передавать это значение в атрибут Active Directory physicalDeliveryOfficeName . Чтобы настроить сопоставление атрибутов для этого сценария, выполните следующие действия.

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

Расширение этого сценария:

  • Если вы хотите сопоставить настраиваемый атрибут35 из сущности 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 = Dormant
  • U = неоплаченный отпуск
  • P = платный отпуск
  • S = приостановлено
  • F = Furlough
  • O = отменено
  • R = отставлено
  • T = завершено

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

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

  2. В разделе "Показать дополнительные параметры" щелкните список атрибутов Edit 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, чтобы открыть элемент управления find-replace.

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

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

    Find-replace-conversion

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

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

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

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

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

Заметка

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

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

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

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

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

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

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

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

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

  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')] С помощью этой функции find-replace мы поручаем соединителю всегда получать атрибуты, связанные с активной записью SuccessFactors EmpJobInfo. Атрибуты, связанные с прерванными или неактивными записями в SuccessFactors, игнорируются.
    $.employmentNav.results[0] $.employmentNav..results[?(@.jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')])] С помощью этой функции find-replace мы поручаем соединителю всегда получать атрибуты, связанные с активной записью о занятости SuccessFactors. Атрибуты, связанные с прерванными или неактивными записями в SuccessFactors, игнорируются.
  7. Сохраните схему.

  8. Приведенный выше процесс обновляет все выражения JSONPath.

  9. Для предварительной обработки для работы JSONPath, связанного с startDate атрибутом, должен использовать либо [-1:] [0] индекс. В разделе "Показать дополнительные параметры" щелкните список атрибутов Edit 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 и задает класс присвоения "GA". Он также создает новую сущность пользователя . Таким образом, у пользователя теперь есть:

  • Одна сущность пользователя EmpEmployment + , соответствующая домашнему назначению с присвоением класса присваивания, для параметра ST и
  • Другая сущность пользователя EmpEmployment, соответствующая глобальному назначению с присвоением класса "GA" +

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

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

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

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

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

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

  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. Добавьте новые атрибуты для получения глобальных данных назначения. Например, если вы хотите получить имя отдела, связанное с глобальным профилем назначения, можно добавить атрибут globalAssignmentDepartmentDepartment с набором $.employmentNav.results[?(@.assignmentClass == 'GA')].jobInfoNav.results[0].departmentNav.name_localizedвыражений JSONPath.

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

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

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

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

Обработка сценария параллельных заданий

Если пользователь в Employee Central имеет одновременное или несколько заданий, существует два сущности EmpEmployment и User с присвоением класса "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 поддерживает расширение объекта position. Чтобы развернуть и получить атрибуты объекта позиции, такие как уровень задания или имена позиций на определенном языке, можно использовать выражения JSONPath, как показано ниже.

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

Подготовка пользователей в модуле подключения

Подготовка входящих пользователей из 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. Изменение области исходного объекта для применения фильтра области области userStatus NOT EQUALS
  6. Сохраните сопоставление и убедитесь, что фильтр области работает с помощью подготовки по требованию.

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

Соединитель Microsoft Entra SuccessFactors использует API OData SuccessFactors для получения изменений и подготовки пользователей. Если вы наблюдаете проблемы со службой подготовки и хотите подтвердить, какие данные были получены из SuccessFactors, можно включить журналы аудита API OData в SuccessFactors. Получение полезных данных запроса, отправляемых идентификатором Microsoft Entra, из журналов аудита. Чтобы устранить неполадки, можно скопировать полезные данные этого запроса в инструменте, например cURL или Graph Explorer, настроить его для использования того же пользователя API, который используется соединителем, и узнать, возвращает ли он нужные изменения из SuccessFactors.

Сценарии обратной записи

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

Поддерживаемые сценарии для обратной записи по телефону и электронной почте

# Требование сценария Основной адрес электронной почты
Значение флага
Бизнес-телефон
значение первичного флага
Сотовый телефон
значение первичного флага
Бизнес-телефон
отображение
Сотовый телефон
отображение
1 * Задайте только бизнес-электронную почту в качестве основной.
* Не устанавливайте номера телефонов.
истинный истинный ложный [Не задано] [Не задано]
2 * В SuccessFactors, бизнес-электронная почта и бизнес-телефон являются основными
* Всегда поток телефонного номера Microsoft Entra для бизнеса и мобильного телефона на мобильный телефон.
истинный истинный ложный номер телефона мобильный
3 * В SuccessFactors, бизнес-электронная почта и мобильный телефон являются основными
* Всегда поток телефонного номера Microsoft Entra для бизнеса и мобильного телефона на мобильный телефон
истинный ложный истинный номер телефона мобильный
4 * В бизнес-сообщении SuccessFactors основной.
* В идентификаторе Microsoft Entra проверьте, присутствует ли рабочий номер телефона, если он присутствует, а затем проверьте, присутствует ли номер мобильного телефона. Помечайте рабочий номер телефона в качестве основного, только если номер мобильного телефона отсутствует.
истинный Используйте сопоставление выражений: IIF(IsPresent([telephoneNumber]), IIF(IsPresent([mobile]),"false", "true"), "false") Используйте сопоставление выражений: IIF(IsPresent([mobile]),"false", "true") номер телефона мобильный
5 * В successFactors бизнес-электронная почта и бизнес-телефон является основным.
* В идентификаторе Microsoft Entra, если мобильные устройства доступны, а затем задайте его в качестве бизнес-телефона, а затем используйте номер телефона.
истинный истинный ложный 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.

    Сопоставление атрибутов Inbound UserID

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

    Заметка

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

  6. Откройте приложение SuccessFactors Writeback в портал Azure.
  7. Сопоставляйте требуемое расширениеAttribute , содержащее значение userId с атрибутом SuccessFactors userId .

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

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

    Обновление поведения потока сопоставления

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

Неподдерживаемые сценарии для обратной записи по телефону и электронной почте

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

Дальнейшие действия