Интеграция подготовки Microsoft Entra с SAP SuccessFactors
Служба подготовки пользователей Microsoft Entra интегрируется с SAP SuccessFactors Employee Central для управления жизненным циклом удостоверений пользователей. Идентификатор Microsoft Entra предлагает три предварительно созданных интеграции:
- SuccessFactors для локальная служба Active Directory подготовки пользователей
- SuccessFactors для подготовки пользователей Microsoft Entra
- Обратная запись SuccessFactors
В этой статье объясняется, как работает интеграция и как можно настроить поведение подготовки для различных сценариев управления персоналом.
Microsoft Entra также поддерживает единый вход в SuccessFactors. Дополнительные сведения см. в статье об интеграции единого входа Microsoft Entra с SuccessFactors.
Установка подключения
Служба подготовки Microsoft Entra использует базовую проверку подлинности для подключения к конечным точкам API OData Employee Central. При настройке приложения подготовки SuccessFactors используйте параметр URL-адреса клиента в разделе "Учетные данные администратора" для настройки URL-адреса центра обработки данных API.
Чтобы защитить подключение между службой подготовки Microsoft Entra и SuccessFactors, добавьте диапазоны IP-адресов Microsoft Entra в список разрешений IP-адресов SuccessFactors:
- Скачайте последние диапазоны IP-адресов для общедоступного облака Azure.
- Откройте файл и найдите тег
AzureActiveDirectory
. - Скопируйте все диапазоны IP-адресов, перечисленные в адресе элементаPrefixes, и используйте диапазон для создания списка ограничений IP-адресов.
- Перевод значений CIDR в диапазоны IP-адресов.
- Войдите на портал администрирования 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
и endDate
latestTerminationDate
, оцениваются, чтобы определить, падает ли изменение между LastExecutionTimestamp
и CurrentExecutionTime
. Если да, то изменение записи считается эффективным и обработано для синхронизации.
Ниже приведен шаблон запроса API OData, который идентификатор Microsoft Entra id использует для запроса SuccessFactors для добавочных изменений. Переменные SuccessFactorsAPIEndpoint
можно обновить, LastExecutionTimestamp
а CurrentExecutionTime
в шаблоне запроса используйте средство, например cURL или Graph Explorer, чтобы проверить, какие данные возвращаются. Кроме того, можно получить фактические полезные данные запроса из SuccessFactors , включив журналы аудита API OData.
https://[SuccessFactorsAPIEndpoint]/odata/v2/PerPerson/$count?$format=json&$filter=(personEmpTerminationInfoNav/activeEmploymentsCount ne null) and
((lastModifiedDateTime ge datetimeoffset'<LastExecutionTimestamp>' and lastModifiedDateTime le datetimeoffset'<CurrentExecutionTime>') or
(personalInfoNav/startDate ge datetimeoffset'<LastExecutionTimestamp>' and personalInfoNav/startDate le datetimeoffset'<CurrentExecutionTime>') or
((personalInfoNav/lastModifiedDateTime ge datetimeoffset'<LastExecutionTimestamp>' and personalInfoNav/lastModifiedDateTime le datetimeoffset'<CurrentExecutionTime>') and (personalInfoNav/startDate le datetimeoffset'<CurrentExecutionTime>' and (personalInfoNav/endDate ge datetimeoffset'<CurrentExecutionTime>' or personalInfoNav/endDate eq null))) or
(employmentNav/startDate ge datetimeoffset'<LastExecutionTimestamp>' and employmentNav/startDate le datetimeoffset'<CurrentExecutionTime>') or
((employmentNav/lastModifiedDateTime ge datetimeoffset'<LastExecutionTimestamp>' and employmentNav/lastModifiedDateTime le datetimeoffset'<CurrentExecutionTime>') and (employmentNav/startDate le datetimeoffset'<CurrentExecutionTime>' and (employmentNav/endDate ge datetimeoffset'<CurrentExecutionTime>' or employmentNav/endDate eq null)))
(employmentNav/jobInfoNav/startDate ge datetimeoffset'<LastExecutionTimestamp>' and employmentNav/jobInfoNav/startDate le datetimeoffset'<CurrentExecutionTime>') or
((employmentNav/jobInfoNav/lastModifiedDateTime ge datetimeoffset'<LastExecutionTimestamp>' and employmentNav/jobInfoNav/lastModifiedDateTime le datetimeoffset'<CurrentExecutionTime>') and (employmentNav/jobInfoNav/startDate le datetimeoffset'<CurrentExecutionTime>' and (employmentNav/jobInfoNav/endDate ge datetimeoffset'<CurrentExecutionTime>' or employmentNav/jobInfoNav/endDate eq null))) or
(phoneNav/lastModifiedDateTime ge datetimeoffset'<LastExecutionTimestamp>' and phoneNav/lastModifiedDateTime le datetimeoffset'<CurrentExecutionTime>') or
(emailNav/lastModifiedDateTime ge datetimeoffset'<LastExecutionTimestamp>' and emailNav/lastModifiedDateTime le datetimeoffset'<CurrentExecutionTime>') or
(personEmpTerminationInfoNav/latestTerminationDate ge datetimeoffset'<previousDayDateStartTime24hrs>' and personEmpTerminationInfoNav/latestTerminationDate le datetimeoffset'<previousDayDateTime24hrs>') or
(employmentNav/userNav/lastModifiedDateTime ge datetimeoffset'<LastExecutionTimestamp>' and employmentNav/userNav/lastModifiedDateTime le datetimeoffset'<CurrentExecutionTime>'))
&$expand=employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav,phoneNav,emailNav,employmentNav/userNav/manager/empInfo,employmentNav/jobInfoNav/companyNav,employmentNav/jobInfoNav/departmentNav,employmentNav/jobInfoNav/locationNav,employmentNav/jobInfoNav/locationNav/addressNavDEFLT,employmentNav/jobInfoNav/locationNav/addressNavDEFLT/stateNav&customPageSize=100
Как работает обработка предварительного найма
В этом разделе объясняется, как соединитель SAP SuccessFactors обрабатывает предварительно нанимаемые записи (рабочие с датой найма и датой начала в будущем).
Предположим, что в SuccessFactors Employee Central с датой начала 1-го июня 2023 года есть предварительная дата найма с помощью employeeId "1234". Предположим, что эта предварительная запись была создана либо в Employee Central, либо в модуле подключения 15-мая 2023 года. Когда служба подготовки сначала наблюдает эту запись 15-май-2023 (как часть полной синхронизации или добавочной синхронизации), эта запись по-прежнему находится в состоянии предварительного найма. Из-за этого SuccessFactors не отправляет службе подготовки все атрибуты (например, userNav/username), связанные с пользователем. Доступны только минимальные данные о пользователе, например companyName
, personIdExternal
и firstname
lastname
startDate
доступны. Для успешной обработки предварительного найма необходимо выполнить следующие предварительные требования:
- Атрибут
personIdExternal
должен быть задан в качестве основного идентификатора сопоставления (присоединение свойства). Если вы настроите другой атрибут (например, userName) в качестве свойства присоединения, служба подготовки не сможет получить сведения о предварительной работе. - Атрибут
startDate
должен быть доступен, и его JSONPath должен иметь значение$.employmentNav.results[0].startDate
или$.employmentNav.results[-1:].startDate
. - Запись предварительного найма должна находиться в одном из следующих состояний в Employee Central: "активный" (t), "неактивный" (f) или "active_external_suite" (e). Дополнительные сведения об этих состояниях см. в заметке о поддержке SAP 2736579.
Заметка
Для предварительного найма, у которого нет истории с организацией, индекс [0] и [-1:] будет работать для startDate
. Для предварительного найма, который является повторно нанимать или преобразовать, мы не можем детерминированно сообщить заказу, и это может привести к тому, что некоторые повторное получение или преобразованные работники обрабатываются по фактической дате начала. Это известное ограничение в соединителе.
Во время полной синхронизации или добавочной синхронизации или подготовки по запросу, когда служба подготовки сталкивается с записью предварительного найма, она отправляет следующий запрос OData в SuccessFactors с фильтром asOfDate, заданным для запускаDate пользователя (например,OfDate=2023-06-01).
https://[SuccessFactorsAPIEndpoint]/odata/v2/PerPerson?$format=json&$
filter=(personIdExternal in '1234' and employmentNav/userNav/status in 't','f','e')&asOfDate=2023-06-01&$
expand=employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav,phoneNav,emailNav,employmentNav/userNav/manager/empInfo,employmentNav/jobInfoNav/companyNav,employmentNav/jobInfoNav/costCenterNav,employmentNav/jobInfoNav/divisionNav,employmentNav/jobInfoNav/departmentNav,employmentNav/
Если вы наблюдаете проблемы с предварительной обработкой, вы можете использовать приведенный выше формат запроса OData для запроса экземпляра SuccessFactors, заменив конечную точку API, personIdExternal
и asOfDate
отфильтровать значения, соответствующие вашему сценарию тестирования.
Чтение данных атрибута
Когда служба подготовки Microsoft Entra запрашивает SuccessFactors, она извлекает результирующий набор JSON. Результирующий набор JSON содержит множество атрибутов, хранящихся в Employee Central. По умолчанию схема подготовки настроена для получения только подмножества этих атрибутов.
Чтобы получить дополнительные атрибуты, выполните указанные ниже действия.
Перейдите на страницу "Корпоративные приложения ->SuccessFactors App -Provisioning ->>Edit Provisioning ->attribute-mapping page".
Прокрутите вниз и нажмите кнопку "Показать дополнительные параметры".
Щелкните "Изменить список атрибутов" для SuccessFactors.
Заметка
Если параметр "Изменить атрибут" для SuccessFactors не отображается в Центре администрирования Microsoft Entra, используйте URL-адрес https://portal.azure.com/?Microsoft_AAD_IAM_forceSchemaEditorEnabled=true для доступа к странице.
В столбце выражений API в этом представлении отображаются выражения JSONPath, используемые соединителем.
Можно изменить существующее значение JSONPath или добавить новый атрибут с допустимым выражением JSONPath в схему.
В следующем разделе представлен список распространенных сценариев для редактирования значений JSONPath.
Обработка различных сценариев управления персоналом
JSONPath — это язык запросов для JSON, аналогичный XPath для XML. Как и XPath, JSONPath позволяет извлекать и фильтровывать данные из полезных данных JSON.
С помощью преобразования JSONPath можно настроить поведение приложения подготовки Microsoft Entra для получения пользовательских атрибутов и обработки таких сценариев, как повторное получение, преобразование рабочей роли и глобальное назначение.
В этом разделе описывается, как настроить приложение подготовки для следующих сценариев управления персоналом:
- Получение дополнительных атрибутов
- Получение настраиваемых атрибутов
- Сопоставление состояния занятости с состоянием учетной записи
- Обработка сценариев преобразования и повторного подбора рабочих ролей
- Получение текущей активной записи о занятости
- Обработка сценария глобального назначения
- Обработка сценария параллельных заданий
- Получение сведений о позиции
- Подготовка пользователей в модуле подключения
- Включение журналов аудита API OData в SuccessFactors
Получение дополнительных атрибутов
Схема приложения подготовки Microsoft Entra SuccessFactors по умолчанию поставляется с 90+ предопределенными атрибутами. Чтобы добавить дополнительные атрибуты SuccessFactors в схему подготовки, выполните указанные ниже действия.
Используйте запрос OData для получения данных для допустимого тестового пользователя из Employee Central.
https://[SuccessFactorsAPIEndpoint]/odata/v2/PerPerson?$format=json& $filter=(personIdExternal in '[personIdExternalValue]')& $expand=employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav, phoneNav,phoneNav/phoneTypeNav,emailNav,employmentNav/jobInfoNav/businessUnitNav,employmentNav/jobInfoNav/companyNav, employmentNav/jobInfoNav/companyNav/countryOfRegistrationNav,employmentNav/jobInfoNav/costCenterNav, employmentNav/jobInfoNav/divisionNav,employmentNav/jobInfoNav/departmentNav,employmentNav/jobInfoNav/jobCodeNav, employmentNav/jobInfoNav/locationNav,employmentNav/jobInfoNav/locationNav/addressNavDEFLT,employmentNav/jobInfoNav/payGradeNav, employmentNav/empGlobalAssignmentNav,employmentNav/empGlobalAssignmentNav/assignmentTypeNav,employmentNav/jobInfoNav/emplStatusNav, employmentNav/jobInfoNav/employmentTypeNav,employmentNav/jobInfoNav/employeeClassNav,employmentNav/jobInfoNav/eventReasonNav
Определение сущности Employee Central, связанной с атрибутом
- Если атрибут является частью сущности EmpEmployment , найдите атрибут в узле employmentNav .
- Если атрибут является частью сущности User , найдите атрибут в узле employmentNav/userNav .
- Если атрибут является частью сущности EmpJob , найдите атрибут в узле jobNav/jobInfoNav .
Создайте путь 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
- Пример 1. Предположим, что вы хотите добавить атрибут
Сохраните схему.
Перезапустите подготовку.
Получение настраиваемых атрибутов
По умолчанию в приложении подготовки 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 . Чтобы настроить сопоставление атрибутов для этого сценария, выполните следующие действия.
- Измените список атрибутов SuccessFactors, чтобы добавить новый атрибут с именем empJobNavCustomString35.
- Задайте выражение API JSONPath для этого атрибута следующим образом:
$.employmentNav.results[0].jobInfoNav.results[0].customString35
- Сохраните и перезагрузите изменение сопоставления в Центре администрирования Microsoft Entra.
- В колонке сопоставления атрибутов сопоставьте empJobNavCustomString35 с physicalDeliveryOfficeName.
- Сохраните сопоставление.
Расширение этого сценария:
- Если вы хотите сопоставить настраиваемый атрибут35 из сущности user, используйте JSONPath
$.employmentNav.results[0].userNav.custom35
- Если вы хотите сопоставить атрибут customString35 из сущности EmpEmployment , используйте JSONPath
$.employmentNav.results[0].customString35
Сопоставление состояния занятости с состоянием учетной записи
По умолчанию соединитель Microsoft Entra SuccessFactors использует activeEmploymentsCount
поле объекта для задания состояния учетной PersonEmpTerminationInfo
записи. С этим атрибутом может возникнуть одна из следующих проблем.
- Существует известная проблема, из-за которой соединитель может отключить учетную запись завершенной рабочей роли один день до окончания последнего дня работы.
PersonEmpTerminationInfo
Если объект получает значение NULL, во время завершения учетная запись AD отключена, так как подсистема подготовки фильтрует записи, в которыхpersonEmpTerminationInfoNav
объект имеет значение NULL.
Если вы работаете с любым из этих проблем или предпочитаете сопоставление состояния занятости с состоянием учетной записи, можно обновить сопоставление, чтобы развернуть emplStatus
поле и использовать код состояния занятости, представленный в поле emplStatus.externalCode
. На основе заметки о поддержке SAP 2505526 ниже приведен список кодов состояния занятости, которые можно получить в приложении подготовки.
- A = активный
- D = Dormant
- U = неоплаченный отпуск
- P = платный отпуск
- S = приостановлено
- F = Furlough
- O = отменено
- R = отставлено
- T = завершено
Чтобы получить эти коды, выполните действия по обновлению сопоставления.
Откройте колонку сопоставления атрибутов приложения подготовки SuccessFactors.
В разделе "Показать дополнительные параметры" щелкните список атрибутов Edit SuccessFactors.
Найдите атрибут
emplStatus
и обновите JSONPath до$.employmentNav.results[0].jobInfoNav.results[0].emplStatusNav.externalCode
. Обновление делает соединитель получать коды состояния занятости в таблице.Сохраните изменения.
В колонке сопоставления атрибутов обновите сопоставление выражений для флага состояния учетной записи.
Задание подготовки Атрибут состояния учетной записи Выражение сопоставления SuccessFactors для подготовки пользователей Active Directory accountDisabled
Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")
SuccessFactors для подготовки пользователей Microsoft Entra accountEnabled
Switch([emplStatus], "False", "A", "True", "U", "True", "P", "True")
Сохраните изменения.
Проверьте конфигурацию с помощью подготовки по запросу.
Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.
Обработка сценариев преобразования и повторного подбора рабочих ролей
О сценарии преобразования рабочих ролей: преобразование рабочей роли — это процесс преобразования существующего сотрудника полного времени в подрядчик или подрядчика в полный рабочий день сотрудника. В этом сценарии Employee Central добавляет новую сущность EmpEmployment вместе с новой сущностью User для той же сущности Person . Сущность User , вложенная в предыдущую сущность EmpEmployment , имеет значение NULL.
О сценариях повторного подбора: в SuccessFactors существует два варианта обработки повторного подбора сотрудников:
- Вариант 1. Создание профиля пользователя в Employee Central
- Вариант 2. Повторное использование существующего профиля пользователя в Employee Central
Если в процессе управления персоналом используется вариант 1, изменения в схеме подготовки не требуются. Если в процессе управления персоналом используется вариант 2, Employee Central добавляет новую сущность EmpEmployment вместе с новой сущностью User для той же сущности Person .
Вы можете обрабатывать оба сценария, чтобы новые данные о занятости отображались при преобразовании или повторном образовании. Массовое обновление схемы приложения подготовки с помощью перечисленных действий.
Откройте колонку сопоставления атрибутов приложения подготовки SuccessFactors.
Прокрутите вниз и нажмите кнопку "Показать дополнительные параметры".
Щелкните ссылку Проверить схему здесь , чтобы открыть редактор схем.
Щелкните ссылку "Скачать ", чтобы сохранить копию схемы перед редактированием.
В редакторе схем нажмите клавиши CTRL-H, чтобы открыть элемент управления find-replace.
В текстовом поле поиска скопируйте и вставьте значение
$.employmentNav.results[0]
В текстовом поле замены скопируйте и вставьте значение
$.employmentNav.results[-1:]
. Это выражение JSONPath возвращает последнюю запись EmpEmployment .Нажмите кнопку "Заменить все", чтобы обновить схему.
Сохраните схему.
Приведенный выше процесс обновляет все выражения JSONPath следующим образом:
- Старый JSONPath:
$.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized
- Новый JSONPath:
$.employmentNav.results[-1:].jobInfoNav.results[0].departmentNav.name_localized
- Старый JSONPath:
Проверьте конфигурацию с помощью подготовки по запросу.
Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.
Заметка
Описанный выше подход работает только в том случае, если SAP SuccessFactors возвращает объекты занятости в порядке возрастания, где последняя запись о занятости всегда является последней записью в массиве результатов employmentNav . Порядок возврата нескольких записей о занятости не гарантируется SuccessFactors. Если экземпляр SuccessFactors содержит несколько записей о занятости, соответствующих рабочей роли, и вы всегда хотите получить атрибуты, связанные с активной записью о занятости, выполните действия, описанные в следующем разделе.
Получение текущей активной записи о занятости
Использование корневого $.employmentNav.results[0]
каталога JSONPath или $.employmentNav.results[-1:]
получения записей о занятости работает в большинстве сценариев и обеспечивает простоту конфигурации. Однако в зависимости от настройки экземпляра SuccessFactors может потребоваться обновить эту конфигурацию, чтобы убедиться, что соединитель всегда получает последнюю активную запись о занятости.
В этом разделе описывается, как обновить параметры JSONPath, чтобы определенно получить текущую активную запись о занятости пользователя. Он также обрабатывает сценарии преобразования и повторного подбора рабочих ролей.
Откройте колонку сопоставления атрибутов приложения подготовки SuccessFactors.
Прокрутите вниз и нажмите кнопку "Показать дополнительные параметры".
Щелкните ссылку Проверить схему здесь , чтобы открыть редактор схем.
Щелкните ссылку "Скачать ", чтобы сохранить копию схемы перед редактированием.
В редакторе схем нажмите клавиши CTRL-H, чтобы открыть элемент управления find-replace.
Выполните следующие операции замены. Убедитесь, что при выполнении операций поиска и замены нет места в начале или в конечных местах. Если вместо индекса используется
[-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, игнорируются. Сохраните схему.
Приведенный выше процесс обновляет все выражения JSONPath.
Для предварительной обработки для работы JSONPath, связанного с
startDate
атрибутом, должен использовать либо[-1:]
[0]
индекс. В разделе "Показать дополнительные параметры" щелкните список атрибутов Edit SuccessFactors. Найдите атрибутstartDate
и задайте для него значение.$.employmentNav.results[-1:].startDate
Сохраните схему.
Чтобы убедиться, что завершения обрабатываются должным образом, можно использовать один из следующих параметров в разделе сопоставления атрибутов.
Задание подготовки Атрибут состояния учетной записи Выражение для использования, если состояние учетной записи основано на "activeEmploymentsCount" Выражение для использования, если состояние учетной записи основано на значении emplStatus SuccessFactors для подготовки пользователей Active Directory accountDisabled
Switch([activeEmploymentsCount], "False", "0", "True")
Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")
SuccessFactors для подготовки пользователей Microsoft Entra accountEnabled
Switch([activeEmploymentsCount], "True", "0", "False")
Switch([emplStatus], "False", "A", "True", "U", "True", "P", "True")
Сохраните изменения. 1.
Проверьте конфигурацию с помощью подготовки по запросу.
Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.
Обработка сценария глобального назначения
Когда пользователь в Employee Central обрабатывается для глобального назначения, SuccessFactors добавляет новую сущность EmpEmployment и задает класс присвоения "GA". Он также создает новую сущность пользователя . Таким образом, у пользователя теперь есть:
- Одна сущность пользователя EmpEmployment + , соответствующая домашнему назначению с присвоением класса присваивания, для параметра ST и
- Другая сущность пользователя EmpEmployment, соответствующая глобальному назначению с присвоением класса "GA" +
Чтобы получить атрибуты, принадлежащие к стандартному назначению и профилю пользователя глобального назначения, выполните указанные ниже действия.
Откройте колонку сопоставления атрибутов приложения подготовки SuccessFactors.
Прокрутите вниз и нажмите кнопку "Показать дополнительные параметры".
Щелкните ссылку Проверить схему здесь , чтобы открыть редактор схем.
Щелкните ссылку "Скачать ", чтобы сохранить копию схемы перед редактированием.
В редакторе схем нажмите клавиши CTRL-H, чтобы открыть элемент управления find-replace.
В текстовом поле поиска скопируйте и вставьте значение
$.employmentNav.results[0]
В текстовом поле замены скопируйте и вставьте значение
$.employmentNav.results[?(@.assignmentClass == 'ST')]
. Обратите внимание на пробелы, окружающие оператор == , что важно для успешной обработки выражения JSONPath.Нажмите кнопку "Заменить все", чтобы обновить схему.
Сохраните схему.
Приведенный выше процесс обновляет все выражения JSONPath следующим образом:
- Старый JSONPath:
$.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized
- Новый JSONPath:
$.employmentNav.results[?(@.assignmentClass == 'ST')].jobInfoNav.results[0].departmentNav.name_localized
- Старый JSONPath:
Перезагрузите колонку сопоставления атрибутов приложения.
Прокрутите вниз и нажмите кнопку "Показать дополнительные параметры".
Щелкните "Изменить список атрибутов" для SuccessFactors.
Добавьте новые атрибуты для получения глобальных данных назначения. Например, если вы хотите получить имя отдела, связанное с глобальным профилем назначения, можно добавить атрибут globalAssignmentDepartmentDepartment с набором
$.employmentNav.results[?(@.assignmentClass == 'GA')].jobInfoNav.results[0].departmentNav.name_localized
выражений JSONPath.Теперь можно передавать оба значения отдела в атрибуты Active Directory или выборочно передавать значение с помощью сопоставления выражений. Пример: выражение задает значение атрибута отдела AD для globalAssignmentDepartment, если оно присутствует, в противном случае оно задает значение для отдела, связанного со стандартным назначением.
IIF(IsPresent([globalAssignmentDepartment]),[globalAssignmentDepartment],[department])
Сохраните сопоставление.
Проверьте конфигурацию с помощью подготовки по запросу.
Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.
Обработка сценария параллельных заданий
Если пользователь в Employee Central имеет одновременное или несколько заданий, существует два сущности EmpEmployment и User с присвоением класса "ST". Чтобы получить атрибуты, принадлежащие обоим заданиям, выполните указанные ниже действия.
- Откройте колонку сопоставления атрибутов приложения подготовки SuccessFactors.
- Прокрутите вниз и нажмите кнопку "Показать дополнительные параметры".
- Щелкните "Изменить список атрибутов" для SuccessFactors.
- Предположим, вы хотите вытащить отдел, связанный с заданием 1 и заданием 2. Предварительно определенный отдел атрибутов уже получает значение отдела для первого задания. Можно определить новый атрибут, называемый secondJobDepartment , и задать для выражения JSONPath значение
$.employmentNav.results[1].jobInfoNav.results[0].departmentNav.name_localized
- Теперь можно передавать оба значения отдела в атрибуты Active Directory или выборочно передавать значение с помощью сопоставления выражений.
- Сохраните сопоставление.
- Проверьте конфигурацию с помощью подготовки по запросу.
- Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.
Получение сведений о позиции
Соединитель 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.
Поведение службы подготовки по умолчанию — обработка предварительных выборок в модуле подключения.
Если вы хотите исключить обработку предустановок в модуле подключения, обновите конфигурацию задания подготовки следующим образом:
- Откройте колонку сопоставления атрибутов приложения подготовки SuccessFactors.
- В разделе "Показать расширенные параметры" измените список атрибутов SuccessFactors, чтобы добавить новый атрибут
userStatus
. - Задайте выражение API JSONPath для этого атрибута следующим образом:
$.employmentNav.results[0].userNav.status
- Сохраните схему, чтобы вернуться в колонку сопоставления атрибутов.
- Изменение области исходного объекта для применения фильтра области области
userStatus NOT EQUALS
- Сохраните сопоставление и убедитесь, что фильтр области работает с помощью подготовки по требованию.
Включение журналов аудита 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.
- Откройте приложение подготовки пользователей SuccessFactors к Microsoft Entra или SuccessFactors в локальном приложении подготовки пользователей AD.
- Убедитесь, что
extensionAttribute[1-15]
в идентификаторе Microsoft Entra всегда хранитсяuserId
активная запись о занятости каждого работника. Запись сопоставляет атрибут SuccessFactorsuserId
сextensionAttribute[1-15]
идентификатором Microsoft Entra. - Инструкции по параметрам JSONPath см. в разделе "Обработка рабочих преобразований и повторного подбора рабочих элементов", чтобы убедиться , что значение userId активной записи о занятости передается в идентификатор Microsoft Entra.
- Сохраните сопоставление.
- Запустите задание подготовки, чтобы убедиться, что значения userId будут передаваться в идентификатор Microsoft Entra.
Заметка
Если вы используете SuccessFactors для локальная служба Active Directory подготовки пользователей, настройте Microsoft Entra Connect для синхронизации значения атрибута userId из локальная служба Active Directory с идентификатором Microsoft Entra.
- Откройте приложение SuccessFactors Writeback в портал Azure.
- Сопоставляйте требуемое расширениеAttribute , содержащее значение userId с атрибутом SuccessFactors userId .
- Сохраните сопоставление.
- Перейдите к сопоставлению атрибутов —> расширенная> проверка схемы , чтобы открыть редактор схем JSON.
- Скачайте копию схемы в качестве резервной копии.
- В редакторе схем нажмите клавиши CTRL-F и найдите узел JSON, содержащий сопоставление userId, где он сопоставлен с исходным атрибутом Microsoft Entra.
- Обновите атрибут flowBehavior от FlowWhenChanged до FlowAlways, как показано ниже.
- Сохраните сопоставление и проверьте сценарий обратной записи с помощью подготовки по запросу.
Неподдерживаемые сценарии для обратной записи по телефону и электронной почте
- В Employee Central во время подключения личной электронной почты и личного телефона устанавливается в качестве основного. Приложение обратной записи не может переключить этот параметр и задать бизнес-электронную почту и бизнес-телефон в качестве основного.
- В Employee Central бизнес-телефон устанавливается как основной. Приложение обратной записи не может изменить это и задать мобильный телефон в качестве основного.
- Приложение обратной записи не может считывать текущие параметры основного флага и использовать те же значения для операции записи. Значения флагов, настроенные в сопоставлении атрибутов, всегда используются.