Cómo se integra el aprovisionamiento de Microsoft Entra con SAP SuccessFactors
El servicio de aprovisionamiento de usuarios Microsoft Entra se integra con SAP SuccessFactors Employee Central para administrar el ciclo de vida de la identidad de los usuarios. Microsoft Entra ID ofrece tres integraciones precompiladas:
- Aprovisionamiento de usuarios de SuccessFactors a Active Directory en el entorno local
- SuccessFactors para el aprovisionamiento de usuarios de Microsoft Entra
- Escritura diferida de SuccessFactors
En este artículo se explica cómo funciona la integración y cómo puedes personalizar el comportamiento de aprovisionamiento para diferentes escenarios de recursos humanos.
Microsoft Entra también admite el inicio de sesión único en SuccessFactors. Para más información, consulte Integración del inicio de sesión único (SSO) de Microsoft Entra con SuccessFactors.
Establecimiento de la conectividad
El servicio de aprovisionamiento de Microsoft Entra usa la autenticación básica para conectarse a los puntos de conexión de la API de OData de la Central de empleados. Al configurar la aplicación de aprovisionamiento de SuccessFactors, use el parámetro URL de inquilino de la sección Credenciales de administrador para configurar la URL del centro de datos de la API.
Para asegurar aún más la conectividad entre el servicio de aprovisionamiento de Microsoft Entra y SuccessFactors, agregue los rangos de IP de Microsoft Entra en la lista de IP permitidas de SuccessFactors:
- Descarga los intervalos IP más recientes para la nube pública de Azure.
- Abra el archivo y busque la etiqueta
AzureActiveDirectory
. - Copie todos los intervalos de direcciones IP que aparecen en el elemento addressPrefixes y use el intervalo para crear una lista de restricciones de direcciones IP.
- Traduzca los valores CIDR a intervalos IP.
- Inicie sesión en el portal de administración de SuccessFactors para agregar los intervalos IP a la lista de permitidos. Consulte la nota de soporte técnico de SAP 2253200. Ahora puede especificar los intervalos IP en esta herramienta.
Entidades admitidas
Para cada usuario en SuccessFactors, el servicio de aprovisionamiento de Microsoft Entra recupera las siguientes entidades. Cada entidad se expande mediante el parámetro de consulta $expand de la API de OData, como se describe en la columna Regla de recuperación. Algunas entidades se expanden de forma predeterminada, mientras que otras se expanden solo si un atributo concreto está presente en la asignación.
# | Entidad de SuccessFactors | Nodo de OData | Regla de recuperación |
---|---|---|---|
1 | PerPerson |
*root node* |
Siempre |
2 | PerPersonal |
personalInfoNav |
Siempre |
3 | PerPhone |
phoneNav |
Siempre |
4 | PerEmail |
emailNav |
Siempre |
5 | EmpEmployment |
employmentNav |
Siempre |
6 | User |
employmentNav/userNav |
Siempre |
7 | EmpJob |
employmentNav/jobInfoNav |
Siempre |
8 | EmpEmploymentTermination |
activeEmploymentsCount |
Siempre |
9 | User's manager |
employmentNav/userNav/manager/empInfo |
Siempre |
10 | FOCompany |
employmentNav/jobInfoNav/companyNav |
Solo si está asignado el atributo company o companyId |
11 | FODepartment |
employmentNav/jobInfoNav/departmentNav |
Solo si está asignado el atributo department o departmentId |
12 | FOBusinessUnit |
employmentNav/jobInfoNav/businessUnitNav |
Solo si está asignado el atributo businessUnit o businessUnitId |
13 | FOCostCenter |
employmentNav/jobInfoNav/costCenterNav |
Solo si está asignado el atributo costCenter o costCenterId |
14 | FODivision |
employmentNav/jobInfoNav/divisionNav |
Solo si está asignado el atributo division o divisionId |
15 | FOJobCode |
employmentNav/jobInfoNav/jobCodeNav |
Solo si está asignado el atributo jobCode o jobCodeId |
16 | FOPayGrade |
employmentNav/jobInfoNav/payGradeNav |
Solo si está asignado el atributo payGrade |
17 | FOLocation |
employmentNav/jobInfoNav/locationNav |
Solo si está asignado el atributo location |
18 | FOCorporateAddressDEFLT |
employmentNav/jobInfoNav/addressNavDEFLT |
Si la asignación contiene uno de los siguientes atributos: officeLocationAddress, officeLocationCity, officeLocationZipCode |
19 | FOEventReason |
employmentNav/jobInfoNav/eventReasonNav |
Solo si está asignado el atributo eventReason |
20 | EmpGlobalAssignment |
employmentNav/empGlobalAssignmentNav |
Solo si está asignado assignmentType |
21 | EmploymentType Picklist |
employmentNav/jobInfoNav/employmentTypeNav |
Solo si está asignado employmentType |
22 | EmployeeClass Picklist |
employmentNav/jobInfoNav/employeeClassNav |
Solo si está asignado employeeClass |
23 | EmplStatus Picklist |
employmentNav/jobInfoNav/emplStatusNav |
Solo si está asignado emplStatus |
24 | AssignmentType Picklist |
employmentNav/empGlobalAssignmentNav/assignmentTypeNav |
Solo si está asignado assignmentType |
25 | Position |
employmentNav/jobInfoNav/positionNav |
Solo si está asignado positioNav |
26 | Manager User |
employmentNav/jobInfoNav/managerUserNav |
Solo si está asignado managerUserNav |
Cómo funciona la sincronización completa
Basándose en la asignación de atributos, durante la sincronización completa el servicio de aprovisionamiento de Microsoft Entra envía la siguiente consulta "GET" OData API para obtener los datos efectivos de todos los trabajadores activos y finalizados.
Parámetro | Descripción |
---|---|
Host de la API de OData | Anexa https a la URL del inquilino. Ejemplo: https://api4.successfactors.com |
Punto de conexión de la API de OData | /odata/v2/PerPerson |
Parámetro de consulta $format de OData | json |
Parámetro de consulta $filter de OData | (personEmpTerminationInfoNav/activeEmploymentsCount ne null) and (lastModifiedDateTime le <CurrentExecutionTime>) |
Parámetro de consulta $expand de OData | Este valor de parámetro depende de los atributos asignados. Ejemplo: employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav,phoneNav,emailNav,employmentNav/jobInfoNav/companyNav/countryOfRegistrationNav,employmentNav/jobInfoNav/divisionNav,employmentNav/jobInfoNav/departmentNav |
Parámetro de consulta customPageSize de OData | 100 |
Nota
Durante la sincronización inicial completa, se capturan los trabajadores activos y finalizados de SAP SuccessFactors.
Para cada usuario de SuccessFactors, el servicio de aprovisionamiento busca una cuenta en el destino (Id. de Microsoft Entra / Directorio Activo local) utilizando el atributo coincidente definido en la asignación. Por ejemplo: si personIdExternal se asigna a employeeId y está configurado como atributo coincidente, el servicio de aprovisionamiento usa el valor personIdExternal para buscar el usuario con el filtro employeeId. Si se encuentra una coincidencia de usuario, se actualizan los atributos del destino. Si no se encuentra ninguna coincidencia, se crea una nueva entrada en el destino.
Para validar los datos devueltos por tu punto de conexión de la API de OData para un objeto personIdExternal
específico, actualiza el objeto SuccessFactorsAPIEndpoint
en la consulta de la API con la dirección URL del servidor del centro de datos de la API y utiliza una herramienta como cURL o Probador de Graph para invocar la consulta. Si el filtro "in" no funciona, puede probar el filtro "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
Cómo funciona la sincronización incremental
Luego de la sincronización completa, el servicio de aprovisionamiento de Microsoft Entra lo mantiene LastExecutionTimestamp
y lo utiliza para crear consultas delta para recuperar cambios incrementales. Los atributos de marca de tiempo presentes en cada entidad de SuccessFactors, como lastModifiedDateTime
, startDate
, endDate
y latestTerminationDate
, se evalúan para comprobar si el cambio se encuentra entre LastExecutionTimestamp
y CurrentExecutionTime
. En caso afirmativo, se considera que el cambio de entrada es efectivo y se procesa para la sincronización.
Esta es la plantilla de solicitud de la API OData que la Id. de Microsoft Entra utiliza para consultar SuccessFactors en busca de cambios incrementales. Puedes actualizar las variables SuccessFactorsAPIEndpoint
, LastExecutionTimestamp
y CurrentExecutionTime
en la plantilla de solicitud utilizar una herramienta como cURL o Probador de Graph para comprobar qué datos se devuelven. Como alternativa, también puede recuperar la carga real de la solicitud de SuccessFactors mediante la habilitación de los registros de auditoría de OData API.
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
Funcionamiento del procesamiento de precontratación
En esta sección se explica cómo el conector de SAP SuccessFactors procesa los registros de precontratación (trabajadores con fecha de contratación o fecha de inicio futura).
Supongamos que hubiera una precontratación con employeeId "1234" en SuccessFactors Employee Central con fecha de inicio 1 de junio de 2023. Supongamos también que este registro de precontratación se creó por primera vez en el Centro de empleados o en el módulo Incorporación el 15 de mayo de 2023. Cuando el servicio de aprovisionamiento observa primero este registro el 15 de mayo de 2023 (ya sea como parte de la sincronización completa o de la sincronización incremental), este registro seguía en estado previo a la contratación. Debido a esto, SuccessFactors no enviará al servicio de aprovisionamiento todos los atributos (ejemplo: userNav/username) asociados al usuario. Solo están disponibles los datos mínimos sobre el usuario, como companyName
, personIdExternal
, firstname
, lastname
y startDate
. Para procesar las precontrataciones correctamente, se deberán cumplir los siguientes requisitos previos:
- El atributo
personIdExternal
debe establecerse como identificador coincidente principal (propiedad de combinación). Si configura un atributo diferente (ejemplo: userName) como propiedad de combinación, el servicio de aprovisionamiento no podrá recuperar la información de precontratación. - El atributo
startDate
deberá estar disponible y su JSONPath deberá establecerse en$.employmentNav.results[0].startDate
o$.employmentNav.results[-1:].startDate
. - El registro de precontratación deberá estar en uno de los siguientes estados del Centro de empleados: "active" (t), "inactive" (f) o "active_external_suite" (e). Para obtener más información sobre estos estados, consulte la nota de soporte de SAP 2736579.
Nota
Para una precontratación que no tenga historial con la organización, tanto el índice [0] como [-1:] funcionarán para startDate
. En el caso de precontrataciones que sean recontrataciones o conversiones, no podremos decir de forma determinista la orden y esto podría hacer que ciertos trabajadores recontratados o convertidos se procesen con su fecha de inicio real. Se trata de una limitación conocida en el conector.
Durante la sincronización completa o la sincronización incremental, o bien el aprovisionamiento a petición, cuando el servicio de aprovisionamiento encuentre un registro de precontratación, enviará la siguiente consulta de OData a SuccessFactors con el filtro "asOfDate" establecido en la startDate del usuario (como asOfDate=2023-06-01).
https://[SuccessFactorsAPIEndpoint]/odata/v2/PerPerson?$format=json&$
filter=(personIdExternal in '1234' and employmentNav/userNav/status in 't','f','e')&asOfDate=2023-06-01&$
expand=employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav,phoneNav,emailNav,employmentNav/userNav/manager/empInfo,employmentNav/jobInfoNav/companyNav,employmentNav/jobInfoNav/costCenterNav,employmentNav/jobInfoNav/divisionNav,employmentNav/jobInfoNav/departmentNav,employmentNav/
Si observase problemas con el procesamiento de precontrataciones, podría usar el formato de solicitud de OData anterior para consultar la instancia de SuccessFactors reemplazando el punto de conexión de la API, personIdExternal
y el filtro asOfDate
por los valores que se correspondan con el escenario de prueba.
Lectura de datos de atributo
Cuando el servicio de aprovisionamiento de Microsoft Entra consulta SuccessFactors, recupera un conjunto de resultados JSON. El conjunto de resultados JSON incluye muchos atributos almacenados en Employee Central. De forma predeterminada, el esquema de aprovisionamiento está configurado para recuperar solo un subconjunto de dichos atributos.
Para recuperar más atributos, siga los pasos que se indican a continuación:
Vaya a Aplicaciones empresariales ->Aplicación SuccessFactors ->Aprovisionamiento ->Editar aprovisionamiento ->página asignación de atributos.
Desplácese hacia abajo y haga clic en Mostrar opciones avanzadas.
Haga clic en Editar lista de atributos para SuccessFactors.
Nota
Si la opción Editar lista de atributos para SuccessFactors no aparece en el Centro de administración de Microsoft Entra, utilice la URL https://portal.azure.com/?Microsoft_AAD_IAM_forceSchemaEditorEnabled=true para acceder a la página.
La columna Expresión de API de esta vista muestra las expresiones JSONPath que usa el conector.
Puede editar un valor de JSONPath existente o agregar un nuevo atributo con una expresión JSONPath válida al esquema.
En la sección siguiente se proporciona una lista de los escenarios comunes de edición de los valores JSONPath.
Administración de distintos escenarios de recursos humanos
JSONPath es un lenguaje de consulta para JSON similar a XPath para XML. Al igual que XPath, JSONPath permite la extracción y el filtrado de datos a partir de una carga útil JSON.
Mediante el uso de la transformación JSONPath, puede personalizar el comportamiento de la aplicación de aprovisionamiento de Microsoft Entra para recuperar atributos personalizados y manejar escenarios como la recontratación, la conversión de trabajadores y la asignación global.
En esta sección se explica cómo puede personalizar la aplicación de aprovisionamiento para los siguientes escenarios de recursos humanos:
- Recuperación de más atributos
- Recuperando de atributos adicionales
- Asignación del estado de empleo al estado de la cuenta
- Control de escenarios de conversión y recontratación de trabajadores
- Recuperación del registro de empleo activo actual
- Administración del escenario de asignación global
- Administración del escenario de trabajos simultáneos
- Recuperación de los detalles de la posición
- Aprovisionamiento de usuarios en el módulo de incorporación
- Habilitación de los registros de auditoría de OData API en SuccessFactors
Recuperación de más atributos
El esquema predeterminado de la aplicación de aprovisionamiento de Microsoft Entra SuccessFactors incluye más de 90 atributos predefinidos. Para agregar más atributos de SuccessFactors al esquema de aprovisionamiento, siga los pasos que se indican a continuación:
Use la consulta OData para recuperar datos para un usuario de prueba válido de 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
Determinación de la entidad de Employee Central asociada con el atributo
- Si el atributo forma parte de la entidad EmpEmployment, búsquelo debajo del nodo employmentNav.
- Si el atributo forma parte de la entidad User, búsquelo debajo del nodo employmentNav/userNav.
- Si el atributo forma parte de la entidad EmpJob, búsquelo debajo del nodo employmentNav/jobInfoNav.
Construya la ruta de acceso JSON asociada con el atributo y agregue este nuevo atributo a la lista de atributos de SuccessFactors.
- Ejemplo 1: supongamos que quiere agregar el atributo
okToRehire
, que forma parte de la entidademploymentNav
, para luego usar el elemento JSONPath$.employmentNav.results[0].okToRehire
- Ejemplo 2: Supongamos que quiere agregar el atributo timeZone, que forma parte de la entidad userNav, para luego usar el elemento JSONPath
$.employmentNav.results[0].userNav.timeZone
- Ejemplo 3: Supongamos que quiere agregar el atributo flsaStatus, que forma parte de la entidad jobInfoNav, para luego usar el elemento JSONPath
$.employmentNav.results[0].jobInfoNav.results[0].flsaStatus
- Ejemplo 1: supongamos que quiere agregar el atributo
Guarde el esquema.
Reinicio del aprovisionamiento.
Recuperando de atributos adicionales
Por defecto, los siguientes atributos personalizados están predefinidos en la aplicación de aprovisionamiento de Microsoft Entra SuccessFactors:
- custom01-custom15 de la entidad User (userNav)
- customString1-customString15 de la entidad EmpEmployment (employmentNav) denominados empNavCustomString1-empNavCustomString15
- customString1-customString15 de la entidad EmpJobInfo (jobInfoNav) denominada mpJobNavCustomString1-empNavJobCustomString15
Supongamos que, en la instancia de Employee Central, el atributo customString35 en EmpJobInfo almacena la descripción de la ubicación. Quiere transferir este valor al atributo physicalDeliveryOfficeName de Active Directory. Para configurar la asignación de atributos para este escenario, siga los pasos que se indican a continuación:
- Edite la lista de atributos de SuccessFactors para agregar un nuevo atributo llamado empJobNavCustomString35.
- Configure la expresión de la API JSONPath para este atributo como:
$.employmentNav.results[0].jobInfoNav.results[0].customString35
- Guarde y vuelva a cargar el cambio de asignación en el Centro de administración de Microsoft Entra.
- En la hoja asignación de atributos, asigne empJobNavCustomString35 a physicalDeliveryOfficeName.
- Guarde la asignación.
Ampliación de este escenario:
- Si quiere asignar el atributo custom35 de la entidad User, use el JSONPath
$.employmentNav.results[0].userNav.custom35
- Si quiere asignar el atributo customString35 de la entidad EmpEmployment, use el JSONPath
$.employmentNav.results[0].customString35
Asignación del estado de empleo al estado de la cuenta
Por defecto, el conector Microsoft Entra SuccessFactors utiliza el campo activeEmploymentsCount
del objeto PersonEmpTerminationInfo
para establecer el estado de la cuenta. Es posible que se produzca uno de los problemas siguientes con relación a este atributo.
- Existe una incidencia conocida que puede deshabilitar la cuenta de un trabajador finalizado (despedido) un día antes de la finalización del último día de trabajo.
- Si el objeto
PersonEmpTerminationInfo
se establece en nulo, durante la finalización, la deshabilitación de la cuenta de AD no funciona, ya que el motor de aprovisionamiento filtra los registros en los que el objetopersonEmpTerminationInfoNav
está establecido en nulo.
Si experimenta alguna de estas incidencias o si prefiere asignar el estado de empleo al estado de la cuenta, puede actualizar la asignación para expandir el campo emplStatus
y usar el código de estado de empleo presente en el campo emplStatus.externalCode
. Esta es una lista de códigos de estado de empleo basada en la nota de soporte técnico de SAP 2505526 que puede recuperar en la aplicación de aprovisionamiento.
- A = activo
- D = inactivo
- U = permiso no remunerado
- P = permiso remunerado
- S = suspendido
- F = permiso
- O = descartado
- R = retirado
- T = finalizado
Siga estos pasos para actualizar la asignación para recuperar los códigos.
Abra la hoja de asignación de atributos de la aplicación de aprovisionamiento de SuccessFactors.
En Mostrar opciones avanzadas, haga clic en Editar lista de atributos SuccessFactors.
Busque el atributo
emplStatus
y actualice JSONPath a$.employmentNav.results[0].jobInfoNav.results[0].emplStatusNav.externalCode
. Esta actualización permite que el conector recupere los códigos de estado de empleo de la tabla.Guarda los cambios.
En la hoja de asignación de atributos, actualice la asignación de expresiones para la marca de estado de la cuenta.
Trabajo de aprovisionamiento Atributo de estado de la cuenta Expresión de asignación Aprovisionamiento de usuarios de SuccessFactors a Active Directory accountDisabled
Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")
SuccessFactors para el aprovisionamiento de usuarios de Microsoft Entra accountEnabled
Switch([emplStatus], "False", "A", "True", "U", "True", "P", "True")
Guarda los cambios.
Pruebe la configuración mediante el aprovisionamiento a petición.
Después de confirmar que la sincronización funciona según lo previsto, reinicie el trabajo de aprovisionamiento.
Control de escenarios de conversión y recontratación de trabajadores
Acerca del escenario de conversión de trabajadores: La conversión de trabajadores es el proceso de convertir a un empleado de tiempo completo existente en un contratista o viceversa. En este escenario, Employee Central agregará una nueva entidad EmpEmployment junto con una nueva entidad User para la misma entidad Person. La entidad User anidada en la entidad EmpEmployment anterior está establecida en NULL.
Acerca de los escenarios de recontratación: En SuccessFactors, hay dos opciones para procesar la recontratación de empleados:
- Opción 1: Crear un nuevo perfil de persona en Employee Central
- Opción 2: Reutilizar un perfil de persona existente en Employee Central
Si el proceso de recursos humanos usa la opción 1, no es necesario realizar ningún cambio en el esquema de aprovisionamiento. Si el proceso de recursos humanos usa la opción 2, Employee Central agregará una nueva entidad de EmpEmployment junto con una nueva entidad User para la misma entidad Person.
Puede controlar ambos escenarios para que los nuevos datos de empleo aparezcan cuando se produce una conversión o recontratación. Actualice de forma masiva el esquema de la aplicación de aprovisionamiento mediante los pasos indicados:
Abra la hoja de asignación de atributos de la aplicación de aprovisionamiento de SuccessFactors.
Desplácese hacia abajo y haga clic en Mostrar opciones avanzadas.
Haga clic en el vínculo Revise el esquema aquí para abrir el editor de esquemas.
Haga clic en el vínculo Descargar para guardar una copia del esquema antes de editarlo.
En el editor de esquemas, presione las teclas Ctrl+H para abrir el control para buscar y reemplazar.
En el cuadro de texto de búsqueda, copie y pegue el valor
$.employmentNav.results[0]
En el cuadro de texto de reemplazo, copie y pegue el valor.
$.employmentNav.results[-1:]
. Esta expresión JSONPath devuelve el último registro de EmpEmployment.Haga clic en la opción "reemplazar todo" para actualizar el esquema.
Guarde el esquema.
El proceso anterior actualiza todas las expresiones JSONPath como se indica a continuación:
- JSONPath anterior:
$.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized
- JSONPath nuevo:
$.employmentNav.results[-1:].jobInfoNav.results[0].departmentNav.name_localized
- JSONPath anterior:
Pruebe la configuración mediante el aprovisionamiento a petición.
Después de confirmar que la sincronización funciona según lo previsto, reinicie el trabajo de aprovisionamiento.
Nota
El enfoque descrito anteriormente solo funciona si SAP SuccessFactors devuelve los objetos de empleo en orden ascendente, donde el último registro de empleo siempre es el último registro de la matriz de resultados employmentNav. SuccessFactors no garantiza el orden en que se devuelven varios registros de empleo. Si la instancia de SuccessFactors tiene varios registros de empleo correspondientes a un trabajador y siempre desea recuperar atributos asociados al registro de empleo activo, siga los pasos descritos en la sección siguiente.
Recuperación del registro de empleo activo actual
El uso de la raíz JSONPath de $.employmentNav.results[0]
o $.employmentNav.results[-1:]
para capturar registros de empleo funciona en la mayoría de los escenarios y facilita la configuración. Sin embargo, en función de cómo esté configurada la instancia de SuccessFactors, puede que sea necesario actualizar esta configuración para asegurarse de que el conector siempre captura el registro de empleo activo más reciente.
En esta sección se describe cómo actualizar la configuración de JSONPath para recuperar definitivamente el registro de empleo activo actual del usuario. También controla escenarios de conversión y recontratación de trabajadores.
Abra la hoja de asignación de atributos de la aplicación de aprovisionamiento de SuccessFactors.
Desplácese hacia abajo y haga clic en Mostrar opciones avanzadas.
Haga clic en el vínculo Revise el esquema aquí para abrir el editor de esquemas.
Haga clic en el vínculo Descargar para guardar una copia del esquema antes de editarlo.
En el editor de esquemas, presione las teclas Ctrl+H para abrir el control para buscar y reemplazar.
Realice las siguientes operaciones de buscar y reemplazar. Asegúrese de que no haya ningún espacio inicial o final al realizar las operaciones de buscar y reemplazar. Si usa el índice
[-1:]
en lugar de[0]
, actualice el campo string-to-find en consecuencia.Cadena que se va a buscar Cadena que se va a usar para reemplazar Fin $.employmentNav.results[0].jobInfoNav.results[0].emplStatus
$.employmentNav..jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P' )].emplStatusNav.externalCode
Con esta operación de buscar y reemplazar, agregamos la capacidad de expandir el objeto OData emplStatusNav. $.employmentNav.results[0].jobInfoNav.results[0]
$.employmentNav..jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')]
Con este buscar y reemplazar indicamos al conector que recupere siempre los atributos asociados al registro EmpJobInfo activo de SuccessFactors. Se omiten los atributos asociados a registros terminados o inactivos en SuccessFactors. $.employmentNav.results[0]
$.employmentNav..results[?(@.jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')])]
Con este buscar y reemplazar indicamos al conector que recupere siempre los atributos asociados al registro Employment activo de SuccessFactors. Se omiten los atributos asociados a registros terminados o inactivos en SuccessFactors. Guarde el esquema.
El proceso anterior actualiza todas las expresiones JSONPath.
Para que el procesamiento previo a la contratación funcione, el JSONPath asociado con el atributo
startDate
debe usar el índice[0]
o[-1:]
. En Mostrar opciones avanzadas, haga clic en Editar lista de atributos SuccessFactors. Busque el atributostartDate
y establézcalo en el valor$.employmentNav.results[-1:].startDate
Guarde el esquema.
Para asegurarse de que las finalizaciones se procesan según lo previsto, puede usar una de las siguientes opciones de configuración en la sección de asignación de atributos.
Trabajo de aprovisionamiento Atributo de estado de la cuenta Expresión que se va a usar si el estado de la cuenta se basa en "activeEmploymentsCount" Expresión que se va a usar si el estado de la cuenta se basa en el valor "emplStatus" Aprovisionamiento de usuarios de SuccessFactors a Active Directory accountDisabled
Switch([activeEmploymentsCount], "False", "0", "True")
Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")
SuccessFactors para el aprovisionamiento de usuarios de Microsoft Entra accountEnabled
Switch([activeEmploymentsCount], "True", "0", "False")
Switch([emplStatus], "False", "A", "True", "U", "True", "P", "True")
Guarde los cambios. 1.
Pruebe la configuración mediante el aprovisionamiento a petición.
Después de confirmar que la sincronización funciona según lo previsto, reinicie el trabajo de aprovisionamiento.
Administración del escenario de asignación global
Cuando un usuario de Employee Central se procesa para una asignación global, SuccessFactors agrega una nueva entidad EmpEmployment y establece assignmentClass en "GA". También crea una nueva entidad User. Por lo tanto, el usuario ahora tiene:
- Una entidad EmpEmployment + User que corresponde a la asignación de inicio con assignmentClass establecida en "ST", y
- Otra entidad EmpEmployment + User que corresponde a la asignación global con assignmentClass establecida en "GA"
Para recuperar los atributos que pertenecen a la asignación estándar y al perfil de usuario de la asignación global, siga los pasos que se indican a continuación:
Abra la hoja de asignación de atributos de la aplicación de aprovisionamiento de SuccessFactors.
Desplácese hacia abajo y haga clic en Mostrar opciones avanzadas.
Haga clic en el vínculo Revise el esquema aquí para abrir el editor de esquemas.
Haga clic en el vínculo Descargar para guardar una copia del esquema antes de editarlo.
En el editor de esquemas, presione las teclas Ctrl+H para abrir el control para buscar y reemplazar.
En el cuadro de texto de búsqueda, copie y pegue el valor
$.employmentNav.results[0]
En el cuadro de texto de reemplazo, copie y pegue el valor.
$.employmentNav.results[?(@.assignmentClass == 'ST')]
. Toma nota del espacio en blanco que rodea al operador ==, es importante para el procesamiento correcto de la expresión JSONPath.Haga clic en la opción "reemplazar todo" para actualizar el esquema.
Guarde el esquema.
El proceso anterior actualiza todas las expresiones JSONPath como se indica a continuación:
- JSONPath anterior:
$.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized
- JSONPath nuevo:
$.employmentNav.results[?(@.assignmentClass == 'ST')].jobInfoNav.results[0].departmentNav.name_localized
- JSONPath anterior:
Vuelva a cargar la hoja de asignación de atributos de la aplicación.
Desplácese hacia abajo y haga clic en Mostrar opciones avanzadas.
Haga clic en Editar lista de atributos para SuccessFactors.
Agregue nuevos atributos para capturar datos de la asignación global. Por ejemplo: si quiere capturar el nombre de departamento asociado a un perfil de asignación global, puede agregar el atributo globalAssignmentDepartment con la expresión JSONPath establecida en
$.employmentNav.results[?(@.assignmentClass == 'GA')].jobInfoNav.results[0].departmentNav.name_localized
.Ahora puede dirigir ambos valores de departamento a los atributos de Active Directory o direccionar de forma selectiva un valor mediante la asignación de expresiones. Ejemplo: la expresión establece el valor del atributo del departamento de AD en globalAssignmentDepartment si está presente; de lo contrario, establece el valor en el departamento asociado a la asignación estándar.
IIF(IsPresent([globalAssignmentDepartment]),[globalAssignmentDepartment],[department])
Guarde la asignación.
Pruebe la configuración mediante el aprovisionamiento a petición.
Después de confirmar que la sincronización funciona según lo previsto, reinicie el trabajo de aprovisionamiento.
Administración del escenario de trabajos simultáneos
Cuando un usuario de Employee Central tiene varios trabajos simultáneos, hay dos entidades EmpEmployment y User con assignmentClass establecido en "ST". Para recuperar los atributos que pertenecen a ambos trabajos, siga los pasos que se indican a continuación:
- Abra la hoja de asignación de atributos de la aplicación de aprovisionamiento de SuccessFactors.
- Desplácese hacia abajo y haga clic en Mostrar opciones avanzadas.
- Haga clic en Editar lista de atributos para SuccessFactors.
- Supongamos que quiere extraer el departamento asociado con el trabajo 1 y el trabajo 2. El atributo predefinido department ya captura el valor de department para el primer trabajo. Puede definir un nuevo atributo llamado secondJobDepartment y establecer la expresión JSONPath en
$.employmentNav.results[1].jobInfoNav.results[0].departmentNav.name_localized
- Ahora puede dirigir ambos valores de departamento a los atributos de Active Directory o direccionar de forma selectiva un valor mediante la asignación de expresiones.
- Guarde la asignación.
- Pruebe la configuración mediante el aprovisionamiento a petición.
- Después de confirmar que la sincronización funciona según lo previsto, reinicie el trabajo de aprovisionamiento.
Recuperación de los detalles de la posición
El conector SuccessFactors admite la expansión del objeto de posición. Para expandir y recuperar atributos de objetos de posición, como los nombres de nivel de trabajo o de posición en un lenguaje específico, puede usar expresiones JSONPath como se muestra.
Nombre del atributo | Expresión JSONPath |
---|---|
positionJobLevel | $.employmentNav.results[0].jobInfoNav.results[0].positionNav.jobLevel |
positionNameFR | $.employmentNav.results[0].jobInfoNav.results[0].positionNav.externalName_fr_FR |
positionNameDE | $.employmentNav.results[0].jobInfoNav.results[0].positionNav.externalName_de_DE |
Aprovisionamiento de usuarios en el módulo de incorporación
El aprovisionamiento entrante de usuarios desde SAP SuccessFactors a Active Directory local y Microsoft Entra ID ahora admite el aprovisionamiento anticipado de contrataciones previas presentes en el módulo SAP SuccessFactors Onboarding 2.0. Cuando el servicio de aprovisionamiento de Microsoft Entra encuentra un perfil de nueva contratación con una fecha de inicio futura, consulta a SAP SuccessFactors para obtener nuevas contrataciones con uno de los siguientes códigos de estado: active
, inactive
, active_external_suite
. El código de estado active_external_suite
corresponde a las contrataciones previas presentes en el módulo SAP SuccessFactors Onboarding 2.0. Para obtener una descripción de estos códigos de estado, consulte la nota de soporte técnico de SAP 2736579.
El comportamiento predeterminado del servicio de aprovisionamiento es procesar las contrataciones previas en el módulo de incorporación.
Si quiere excluir el procesamiento de contrataciones previas en el módulo de incorporación, actualice la configuración del trabajo de aprovisionamiento, tal como se muestra a continuación:
- Abra la hoja de asignación de atributos de la aplicación de aprovisionamiento de SuccessFactors.
- En la opción para mostrar las opciones avanzadas, edite la lista de atributos de SuccessFactors para agregar un nuevo atributo llamado
userStatus
. - Configure la expresión de la API JSONPath para este atributo como:
$.employmentNav.results[0].userNav.status
- Guarde el esquema para volver a la hoja de asignación de atributos.
- Edición del ámbito del objeto de origen para aplicar un filtro de ámbito
userStatus NOT EQUALS
- Guarde la asignación y compruebe que el filtro de ámbito funciona mediante el aprovisionamiento a petición.
Habilitación de los registros de auditoría de OData API en SuccessFactors
El conector Microsoft Entra SuccessFactors utiliza la API OData de SuccessFactors para recuperar cambios y aprovisionar usuarios. Si observa incidencias con el servicio de aprovisionamiento y desea confirmar qué datos se han recuperado de SuccessFactors, puede habilitar los registros de auditoría de API de OData en SuccessFactors. Recuperar la carga útil de la solicitud enviada por Microsoft Entra ID de los registros de auditoría. Para solucionar problemas, puedes copiar esta carga útil de solicitud en una herramienta como cURL o Probador de Graph, configurarla para utilizar el mismo usuario de API que utiliza el conector y ver si devuelve los cambios deseados de SuccessFactors.
Escenarios de escritura diferida
En esta sección se tratan diferentes escenarios de escritura diferida. Se recomiendan enfoques de configuración basados en la configuración del número de teléfono y el correo electrónico en SuccessFactors.
Escenarios admitidos para la escritura diferida del correo electrónico y el teléfono
# | Requisito del escenario | Valor de marca principal de correo electrónico |
Teléfono del trabajo de teléfono del trabajo |
Asignación de teléfono del trabajo |
Teléfono del trabajo del teléfono |
Asignación del teléfono |
---|---|---|---|---|---|---|
1 | * Establezca solo el correo empresarial como principal. * No establezca números de teléfono. |
true | true | false | [Sin establecer] | [Sin establecer] |
2 | * En SuccessFactors, el correo empresarial y el teléfono del trabajo son el valor principal * Dirija siempre el número de teléfono de Microsoft Entra al teléfono de empresa y el móvil al móvil. |
true | true | false | telephoneNumber | mobile |
3 | * En SuccessFactors, el correo empresarial y el teléfono móvil son el valor principal. * Dirija siempre el número de teléfono de Microsoft Entra al teléfono de empresa y el móvil al móvil |
true | false | true | telephoneNumber | mobile |
4 | * En SuccessFactors, el correo empresarial es el principal. * En Microsoft Entra ID, compruebe si el número de teléfono del trabajo está presente, si está presente, entonces compruebe si el número de móvil también está presente. Marque el número de teléfono de trabajo como principal solo si el número móvil no está presente. |
true | Use la asignación de expresión: IIF(IsPresent([telephoneNumber]), IIF(IsPresent([mobile]),"false", "true"), "false") |
Use la asignación de expresión: IIF(IsPresent([mobile]),"false", "true") |
telephoneNumber | mobile |
5 | * En SuccessFactors, el correo empresarial y el teléfono del trabajo son el principal. * En Microsoft Entra ID, si el móvil está disponible, establézcalo como teléfono de empresa, de lo contrario utilice telephoneNumber. |
true | true | false | IIF(IsPresent([mobile]), [mobile], [telephoneNumber]) |
[Sin establecer] |
- Si no hay ninguna asignación para el número de teléfono en la asignación de atributos de escritura diferida, solo se incluye el correo electrónico en la escritura diferida.
- Durante la incorporación de nuevos empleados en Employee Central, el correo empresarial y el número de teléfono del trabajo podría no estar disponibles. Si es obligatorio que establezca el correo empresarial y el teléfono del trabajo como principales durante la incorporación, puede establecer un valor ficticio para el teléfono y el correo electrónico empresarial durante la creación de una nueva contratación. Después de algún tiempo, la aplicación de escritura diferida actualiza el valor.
Habilitación de la escritura diferida con UserID
La aplicación de escritura diferida de SuccessFactors usa la siguiente lógica para actualizar los atributos del objeto User:
- Como primer paso, busque el atributo userId en el conjunto de cambios. Si está presente, use "UserId" para realizar la llamada API SuccessFactors.
- Si no se encuentra userId, el valor predeterminado es usar el valor del atributo personIdExternal.
Normalmente, el valor del atributo personIdExternal de SuccessFactors coincide con el valor del atributo userId. Sin embargo, en escenarios como la recontratación y la conversión de trabajadores, un empleado en SuccessFactors puede tener dos registros de empleo, uno activo y otro inactivo. En tales escenarios, para asegurarse de que la escritura diferida actualice el perfil de usuario activo, actualice la configuración de las aplicaciones de aprovisionamiento de SuccessFactors como se describe. Esta configuración garantiza que userId siempre está presente en el conjunto de cambios visible para el conector y se usa en la llamada API SuccessFactors.
- Abra la aplicación de aprovisionamiento de usuarios de SuccessFactors a Microsoft Entra o la aplicación de aprovisionamiento de usuarios de SuccessFactors a AD local.
- Asegúrese de que
extensionAttribute[1-15]
en Microsoft Entra ID siempre se almacena eluserId
de empleo activo de cada trabajador. El registro asigna el atributouserId
SuccessFactors alextensionAttribute[1-15]
en Microsoft Entra ID. - Para obtener orientación sobre la configuración de JSONPath, consulte la sección Manejo de escenarios de conversión y recontratación de trabajadores para garantizar que el valor userId del registro de empleo activo fluya hacia Microsoft Entra ID.
- Guarde la asignación.
- Ejecute el trabajo de aprovisionamiento para asegurarse de que los valores userId fluyen hacia la Microsoft Entra ID.
Nota
Si está utilizando SuccessFactors para el aprovisionamiento de usuarios del Active Directory local, configure Microsoft Entra Connect para sincronizar el valor del atributo userId del Directorio Activo local con Microsoft Entra ID.
- Abra la aplicación de escritura diferida de SuccessFactors en Azure Portal.
- Asigne el atributo extensionAttribute deseado que contiene el valor userId al atributo userId de SuccessFactors.
- Guarde la asignación.
- Vaya a Asignación de atributos -> Avanzado -> Revisar esquema para abrir el editor de esquemas JSON.
- Descargue una copia del esquema como copia de seguridad.
- En el editor de esquemas, pulse Ctrl-F y busque el nodo JSON que contiene la asignación userId, donde está asignado a un atributo Microsoft Entra de origen.
- Actualice el atributo flowBehavior de "FlowWhenChanged" a "FlowAlways" tal como se muestra.
- Guarde la asignación y pruebe el escenario de escritura diferida con aprovisionamiento a petición.
Escenarios no admitidos para la escritura diferida del correo electrónico y el teléfono
- En Employee central, durante la incorporación, el correo electrónico personal y el teléfono personal se establecen como valores principales. La aplicación de escritura diferida no puede cambiar esta configuración y establecer el correo empresarial y el teléfono del trabajo como principal.
- En Employee Central, el teléfono del trabajo se establece como principal. La aplicación de escritura diferida no puede cambiarlo y establecer el teléfono móvil como principal.
- La aplicación de escritura diferida no puede leer la configuración de la marca principal actual y usar esos mismos valores para la operación de escritura. Siempre se usan los valores de marca configurados en la asignación de atributos.