Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Служба подготовки пользователей 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 |
| двадцать один | EmploymentType Picklist |
employmentNav/jobInfoNav/employmentTypeNav |
Только если сопоставление содержит атрибут employmentType |
| двадцать два | EmployeeClass Picklist |
employmentNav/jobInfoNav/employeeClassNav |
Только если сопоставление содержит атрибут employeeClass |
| двадцать три | EmplStatus Picklist |
employmentNav/jobInfoNav/emplStatusNav |
Только если сопоставление содержит атрибут emplStatus |
| двадцать четыре | AssignmentType Picklist |
employmentNav/empGlobalAssignmentNav/assignmentTypeNav |
Только если сопоставление содержит атрибут assignmentType |
| двадцать пять | 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 доступны. Для успешной обработки предварительного найма необходимо выполнить следующие предварительные требования:
- Атрибут
personIdExternalдолжен быть задан в качестве основного идентификатора сопоставления (присоединение свойства). Если вы настроите другой атрибут (например, userName) в качестве свойства присоединения, служба подготовки не сможет получить сведения о предварительной работе. - Атрибут
startDateдолжен быть доступен, и его JSONPath должен иметь значение$.employmentNav.results[0].startDateили$.employmentNav.results[-1:].startDate. - Запись предварительного найма должна находиться в одном из следующих состояний в Employee Central: "активный" (t), "неактивный" (f) или "active_external_suite" (e). Дополнительные сведения об этих состояниях см. в заметке о поддержке SAP 2736579.
Примечание.
Для предварительного найма, у которого нет истории с организацией, индекс [0] и [-1:] будет работать для startDate. Для предварительного найма, который является повторно нанимать или преобразовать, мы не можем детерминированно сообщить заказу, и это может привести к тому, что некоторые повторное получение или преобразованные работники обрабатываются по фактической дате начала. Это известное ограничение в соединителе.
Во время полной синхронизации или добавочной синхронизации или подготовки по запросу, когда служба подготовки сталкивается с записью предварительного найма, она отправляет следующий запрос OData в SuccessFactors с фильтром asOfDate, заданным для запускаDate пользователя (например,OfDate=2023-06-01).
https://[SuccessFactorsAPIEndpoint]/odata/v2/PerPerson?$format=json&$
filter=(personIdExternal in '1234' and employmentNav/userNav/status in 't','f','e')&asOfDate=2023-06-01&$
expand=employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav,phoneNav,emailNav,employmentNav/userNav/manager/empInfo,employmentNav/jobInfoNav/companyNav,employmentNav/jobInfoNav/costCenterNav,employmentNav/jobInfoNav/divisionNav,employmentNav/jobInfoNav/departmentNav,employmentNav/
Если вы наблюдаете проблемы с предварительной обработкой, вы можете использовать приведенный выше формат запроса OData для запроса экземпляра SuccessFactors, заменив конечную точку API, personIdExternal и asOfDate отфильтровать значения, соответствующие вашему сценарию тестирования.
Чтение данных атрибутов
Когда служба подготовки Microsoft Entra запрашивает SuccessFactors, она извлекает результирующий набор JSON. Результирующий набор JSON содержит множество атрибутов, хранящихся в Employee Central. По умолчанию схема подготовки настроена для получения лишь некоторого подмножества этих атрибутов.
Чтобы получить дополнительные атрибуты, выполните указанные ниже действия.
Перейдите настраницу сопоставления атрибутов для >SuccessFactorsДля>> приложений>.
Прокрутите вниз и нажмите кнопку "Показать дополнительные параметры".
Щелкните "Изменить список атрибутов" для SuccessFactors.
Примечание.
Если параметр "Изменить атрибут" для SuccessFactors не отображается в Центре администрирования Microsoft Entra, используйте URL-адрес https://portal.azure.com/?Microsoft_AAD_IAM_forceSchemaEditorEnabled=true для доступа к странице.
В столбце выражений API в этом представлении отображаются выражения JSONPath, используемые соединителем.
Можно либо изменить существующее значение JSONPath, либо добавить в схему атрибут с допустимым выражением JSONPath.
В следующем разделе приведен список распространенных сценариев, предполагающих изменение значений JSONPath.
Сценарии работы с кадрами
JSONPath — это язык запросов для JSON, похожий на XPath для XML. Как и XPath, JSONPath позволяет извлекать данные из структуры JSON и фильтровать их.
С помощью преобразования JSONPath можно настроить поведение приложения подготовки Microsoft Entra для получения пользовательских атрибутов и обработки таких сценариев, как повторное получение, преобразование рабочей роли и глобальное назначение.
В этом разделе описывается, как настроить приложение для подготовки в расчете на следующие сценарии работы с кадрами:
-
Как интеграция Microsoft Entra с SAP SuccessFactors
- Установление транспортной связи
- Поддерживаемые организации
- Как работает полная синхронизация
- Как работает инкрементальная синхронизация
- Как работает обработка перед наймом
- Чтение атрибутных данных
-
Работа с разными HR-ситуациями
- Получение дополнительных атрибутов
- Получение настраиваемых атрибутов
- Сопоставление состояния занятости с состоянием учетной записи
- Обработка сценариев преобразования и повторного подбора рабочих ролей
- Получение текущей активной записи о занятости
- Обработка сценария глобального назначения
- Обработка сценария параллельных заданий
- Получение сведений о позиции
- Подготовка пользователей в модуле подключения
- Включение журналов аудита 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 .
Сконструируйте выражение 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
- Пример 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 = бездействующий
- U = неоплачиваемый отпуск
- P = оплачиваемый отпуск
- S = отстранен
- F = отпуск
- O = запись удалена
- R = на пенсии
- T = уволен
Чтобы получить эти коды, выполните действия по обновлению сопоставления.
Откройте колонку сопоставления атрибутов в приложении для подготовки SuccessFactors.
В разделе "Показать дополнительные параметры" щелкните список атрибутов Edit SuccessFactors.
Найдите атрибут
emplStatusи измените JSONPath на$.employmentNav.results[0].jobInfoNav.results[0].emplStatusNav.externalCode. Обновление делает соединитель получать коды состояния занятости в таблице.Сохраните изменения.
В колонке сопоставления атрибутов обновите сопоставление выражений для флага состояния учетной записи.
Задание подготовки Атрибут состояния учетной записи Выражение сопоставления Подготовка пользователей из SuccessFactors в Active Directory accountDisabledSwitch([emplStatus], "True", "A", "False", "U", "False", "P", "False")SuccessFactors для подготовки пользователей Microsoft Entra accountEnabledSwitch([emplStatus], "False", "A", "True", "U", "True", "P", "True")Сохраните изменения.
Проверьте конфигурацию с помощью подготовки по запросу.
Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.
Обработка сценариев преобразования и повторного подбора рабочих ролей
О сценарии преобразования рабочих ролей: Преобразование рабочей роли — это процесс преобразования существующего сотрудника полного времени в подрядчика или подрядчика в полный рабочий день сотрудника. В этом сценарии Employee Central добавляет новую сущность EmpEmployment вместе с новой сущностью User для той же сущности Person . Сущность User , вложенная в предыдущую сущность EmpEmployment , имеет значение NULL.
О сценариях повторного подбора: В SuccessFactors существует два варианта обработки повторного подбора сотрудников:
- Вариант 1. Создание нового профиля пользователя в Employee Central.
- Вариант 2. Повторное использование профиля пользователя в Employee Central.
Если ваш кадровый регламент предполагает использование варианта 1, то схема подготовки не требует изменений. Если в процессе управления персоналом используется вариант 2, Employee Central добавляет новую сущность EmpEmployment вместе с новой сущностью User для той же сущности Person .
Вы можете обрабатывать оба сценария, чтобы новые данные о занятости отображались при преобразовании или повторном образовании. Массовое обновление схемы приложения подготовки с помощью перечисленных действий.
Откройте колонку сопоставления атрибутов в приложении для подготовки SuccessFactors.
Прокрутите вниз и нажмите кнопку "Показать дополнительные параметры".
Щелкните ссылку Проверить схему здесь , чтобы открыть редактор схем.
Щелкните ссылку "Скачать ", чтобы сохранить копию схемы перед редактированием.
В редакторе схемы нажмите клавиши CTRL+H, чтобы открыть элемент управления для поиска и замены.
Скопируйте значение
$.employmentNav.results[0]и вставьте его в текстовое поле "Найти".Скопируйте значение
$.employmentNav.results[-1:]и вставьте его в текстовое поле "Заменить". Это выражение JSONPath возвращает последнюю запись EmpEmployment .
Нажмите "заменить все", чтобы обновить схему.
Сохраните схему.
В результате описанных выше действий все выражения JSONPath изменяются следующим образом:
- Старое выражение JSONPath:
$.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized. - Новое выражение JSONPath:
$.employmentNav.results[-1:].jobInfoNav.results[0].departmentNav.name_localized.
- Старое выражение JSONPath:
Проверьте конфигурацию с помощью подготовки по запросу.
Убедившись, что синхронизация работает должным образом, перезапустите задание подготовки.
Примечание.
Описанный выше подход работает только в том случае, если SAP SuccessFactors возвращает объекты занятости в порядке возрастания, где последняя запись о занятости всегда является последней записью в массиве результатов employmentNav . Порядок возврата нескольких записей о занятости не гарантируется SuccessFactors. Если экземпляр SuccessFactors содержит несколько записей о занятости одного сотрудника и вы хотите всегда получать атрибуты, связанные с активной записью о занятости, выполните действия, описанные в следующем разделе.
Получение активной записи о занятости
Для получения записей о занятости в большинстве сценариев и простоты настройки можно использовать корень JSONPath $.employmentNav.results[0] или $.employmentNav.results[-1:]. Но в зависимости от настройки экземпляра SuccessFactors может потребоваться обновить эту конфигурацию, чтобы соединитель получал последнюю активную запись о занятости.
В этом разделе описывается, как обновить параметры JSONPath, чтобы гарантированно получить активную запись о занятости пользователя. Он также обрабатывает сценарии преобразования и повторного подбора рабочих ролей.
Откройте колонку сопоставления атрибутов в приложении для подготовки SuccessFactors.
Прокрутите вниз и нажмите кнопку "Показать дополнительные параметры".
Щелкните ссылку Проверить схему здесь , чтобы открыть редактор схем.
Щелкните ссылку "Скачать ", чтобы сохранить копию схемы перед редактированием.
В редакторе схемы нажмите клавиши CTRL+H, чтобы открыть элемент управления для поиска и замены.
Выполните следующие операции поиска и замены. Убедитесь, что при выполнении операций поиска и замены нет места в начале или в конечных местах. Если вместо индекса используется
[-1:]индекс[0], обновите поле для поиска строки соответствующим образом.Строка для поиска Строка, используемая для замены Цель $.employmentNav.results[0].jobInfoNav.results[0].emplStatus$.employmentNav..jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P' )].emplStatusNav.externalCodeС помощью этой функции find-replace мы добавляем возможность расширения объекта emplStatusNav OData. $.employmentNav.results[0].jobInfoNav.results[0]$.employmentNav..jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')]С помощью этой функции поиска и замены мы укажем соединителю всегда получать атрибуты, связанные с активной записью EmpJobInfo в SuccessFactors. Атрибуты, связанные с прерванными или неактивными записями в SuccessFactors, игнорируются. $.employmentNav.results[0]$.employmentNav..results[?(@.jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')])]С помощью этой функции поиска и замены мы укажем соединителю всегда получать атрибуты, связанные с активной записью Employment в SuccessFactors. Атрибуты, связанные с прерванными или неактивными записями в SuccessFactors, игнорируются. Сохраните схему.
В результате описанных выше действий все выражения JSONPath будут обновлены.
Для предварительной обработки для работы JSONPath, связанного с
startDateатрибутом, должен использовать либо[0][-1:]индекс. В разделе "Показать дополнительные параметры" щелкните список атрибутов Edit SuccessFactors. Найдите атрибутstartDateи присвойте ему значение$.employmentNav.results[-1:].startDate.Сохраните схему.
Чтобы убедиться, что завершения обрабатываются должным образом, вы можете использовать один из следующих параметров в разделе сопоставления атрибутов.
Задание подготовки Атрибут состояния учетной записи Выражение, используемое в случае, если состояние учетной записи основано на activeEmploymentsCount Выражение, используемое в случае, если состояние учетной записи основано на значении emplStatus Подготовка пользователей из SuccessFactors в Active Directory accountDisabledSwitch([activeEmploymentsCount], "False", "0", "True")Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")SuccessFactors для подготовки пользователей Microsoft Entra accountEnabledSwitch([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, чтобы открыть элемент управления для поиска и замены.
Скопируйте значение
$.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 поддерживает развертывание объекта позиции. Чтобы развернуть и получить атрибуты объекта позиции, такие как уровень задания или имена позиций на определенном языке, можно использовать выражения 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.
Поведение службы подготовки по умолчанию — обработка предварительных выборок в модуле подключения.
Если вы хотите исключить обработку предустановок в модуле подключения, обновите конфигурацию задания подготовки следующим образом:
- Откройте колонку сопоставления атрибутов в приложении для подготовки SuccessFactors.
- В разделе дополнительных параметров измените список атрибутов SuccessFactors, добавив в него новый атрибут с именем
userStatus. - Задайте для этого атрибута следующее выражение API JSONPath:
$.employmentNav.results[0].userNav.status. - Сохраните схему, чтобы вернуться в колонку сопоставления атрибутов.
- Измените область исходного объекта (Source Object), чтобы применить фильтр области
userStatus NOT EQUALS. - Сохраните сопоставление и убедитесь, что фильтр области применяется для подготовки по запросу.
Примечание.
В настоящее время разъём не поддерживает получение пользователей Onboarding, находящихся в состоянии inactive_external_suite. Эти состояния пользователей возникают, когда новые сотрудники начинают адаптацию, но позже отзывают своё предложение, требуя отмены процесса адаптации. Для этого сценария нет никакого обходного пути; Для деактивации пользователей, у которых отменяется онбординг, требуется внеполосная обработка.
Включение журналов аудита 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. Приложение обратной записи не может изменить это и задать мобильный телефон в качестве основного.
- Приложение обратной записи не может считывать текущие параметры основного флага и использовать те же значения для операции записи. Значения флагов, настроенные в сопоставлении атрибутов, всегда используются.
- Соединители подготовки SuccessFactors, включая соединитель обратной записи, не поддерживаются в клиентах Майкрософт, управляемых 21Vianet (Китай).