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


Интеграция подготовки 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
двадцать один EmploymentType Picklist employmentNav/jobInfoNav/employmentTypeNav Только если сопоставление содержит атрибут employmentType
двадцать два EmployeeClass Picklist employmentNav/jobInfoNav/employeeClassNav Только если сопоставление содержит атрибут employeeClass
двадцать три EmplStatus Picklist employmentNav/jobInfoNav/emplStatusNav Только если сопоставление содержит атрибут emplStatus
двадцать четыре 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
Параметр запроса $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и 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 пользователя (например,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Дляподготовки>> приложений>>.

  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. Сконструируйте выражение JSONPath для этого нового атрибута и добавьте его в список атрибутов 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 = бездействующий
  • U = неоплачиваемый отпуск
  • P = оплачиваемый отпуск
  • S = отстранен
  • F = отпуск
  • 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, чтобы открыть элемент управления для поиска и замены.

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

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

Для получения записей о занятости в большинстве сценариев и простоты настройки можно использовать корень 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 атрибутом, должен использовать либо [0][-1:] индекс. В разделе "Показать дополнительные параметры" щелкните список атрибутов 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, чтобы открыть элемент управления для поиска и замены.

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

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

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