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:

En este artículo se explica cómo funciona la integración y cómo puede 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:

  1. Descargue los intervalos IP más recientes para la nube pública de Azure.
  2. Abra el archivo y busque la etiqueta Microsoft Entra ID
  3. 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.
  4. Traduzca los valores CIDR a intervalos IP.
  5. 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 el extremo de la API de OData para un personIdExternal específico, actualice el SuccessFactorsAPIEndpoint en la consulta de la API con la URL del servidor del centro de datos de la API y use una herramienta como Postman 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. Puede actualizar las variables SuccessFactorsAPIEndpoint, LastExecutionTimestamp y CurrentExecutionTime en la plantilla de solicitud usando una herramienta como Postman 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:

  1. 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.
  2. El atributo startDate deberá estar disponible y su JSONPath deberá establecerse en $.employmentNav.results[0].startDate o $.employmentNav.results[-1:].startDate.
  3. 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 (por ejemplo, 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:

  1. Vaya a Aplicaciones empresariales ->Aplicación SuccessFactors ->Aprovisionamiento ->Editar aprovisionamiento ->página asignación de atributos.

  2. Desplácese hacia abajo y haga clic en Mostrar opciones avanzadas.

  3. 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.

  4. La columna Expresión de API de esta vista muestra las expresiones JSONPath que usa el conector.

    Expresión de API

  5. 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

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:

  1. 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
    
  2. 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.
  3. 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 entidad employmentNav, 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
  4. Guarde el esquema.

  5. Reinicie el 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:

  1. Edite la lista de atributos de SuccessFactors para agregar un nuevo atributo llamado empJobNavCustomString35.
  2. Configure la expresión de la API JSONPath para este atributo como: $.employmentNav.results[0].jobInfoNav.results[0].customString35
  3. Guarde y vuelva a cargar el cambio de asignación en el Centro de administración de Microsoft Entra.
  4. En la hoja asignación de atributos, asigne empJobNavCustomString35 a physicalDeliveryOfficeName.
  5. 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.

  1. 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.
  2. 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 objeto personEmpTerminationInfoNav 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.

  1. Abra la hoja de asignación de atributos de la aplicación de aprovisionamiento de SuccessFactors.

  2. En Mostrar opciones avanzadas, haga clic en Editar lista de atributos SuccessFactors.

  3. 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.

  4. Guarde los cambios.

  5. 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")
    Aprovisionamiento de usuarios de SuccessFactors a Microsoft Entra accountEnabled Switch([emplStatus], "False", "A", "True", "U", "True", "P", "True")
  6. Guarde los cambios.

  7. Pruebe la configuración mediante el aprovisionamiento a petición.

  8. 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:

  1. Abra la hoja de asignación de atributos de la aplicación de aprovisionamiento de SuccessFactors.

  2. Desplácese hacia abajo y haga clic en Mostrar opciones avanzadas.

  3. Haga clic en el vínculo Revise el esquema aquí para abrir el editor de esquemas.

    Captura de pantalla que muestra el vínculo Revise el esquema aquí que abre el editor de esquemas.

  4. Haga clic en el vínculo Descargar para guardar una copia del esquema antes de editarlo.

    Captura de pantalla que muestra el editor de esquemas con la opción Descargar seleccionada para guardar una copia del esquema.

  5. En el editor de esquemas, presione las teclas Ctrl+H para abrir el control para buscar y reemplazar.

  6. En el cuadro de texto de búsqueda, copie y pegue el valor. $.employmentNav.results[0].

  7. 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.

    buscar y reemplazar para conversión

  8. Haga clic en la opción "reemplazar todo" para actualizar el esquema.

  9. Guarde el esquema.

  10. 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
  11. Pruebe la configuración mediante el aprovisionamiento a petición.

  12. 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.

  1. Abra la hoja de asignación de atributos de la aplicación de aprovisionamiento de SuccessFactors.

  2. Desplácese hacia abajo y haga clic en Mostrar opciones avanzadas.

  3. Haga clic en el vínculo Revise el esquema aquí para abrir el editor de esquemas.

  4. Haga clic en el vínculo Descargar para guardar una copia del esquema antes de editarlo.

  5. En el editor de esquemas, presione las teclas Ctrl+H para abrir el control para buscar y reemplazar.

  6. 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 Propósito
    $.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.
  7. Guarde el esquema.

  8. El proceso anterior actualiza todas las expresiones JSONPath.

  9. 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 atributo startDate y establézcalo en el valor $.employmentNav.results[-1:].startDate.

  10. Guarde el esquema.

  11. 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")
    Aprovisionamiento de usuarios de SuccessFactors a Microsoft Entra accountEnabled Switch([activeEmploymentsCount], "True", "0", "False") Switch([emplStatus], "False", "A", "True", "U", "True", "P", "True")
  12. Guarde los cambios. 1.

  13. Pruebe la configuración mediante el aprovisionamiento a petición.

  14. 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:

  1. Abra la hoja de asignación de atributos de la aplicación de aprovisionamiento de SuccessFactors.

  2. Desplácese hacia abajo y haga clic en Mostrar opciones avanzadas.

  3. Haga clic en el vínculo Revise el esquema aquí para abrir el editor de esquemas.

  4. Haga clic en el vínculo Descargar para guardar una copia del esquema antes de editarlo.

  5. En el editor de esquemas, presione las teclas Ctrl+H para abrir el control para buscar y reemplazar.

  6. En el cuadro de texto de búsqueda, copie y pegue el valor. $.employmentNav.results[0].

  7. 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.

  8. Haga clic en la opción "reemplazar todo" para actualizar el esquema.

  9. Guarde el esquema.

  10. 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
  11. Vuelva a cargar la hoja de asignación de atributos de la aplicación.

  12. Desplácese hacia abajo y haga clic en Mostrar opciones avanzadas.

  13. Haga clic en Editar lista de atributos para SuccessFactors.

  14. 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.

  15. 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])
  16. Guarde la asignación.

  17. Pruebe la configuración mediante el aprovisionamiento a petición.

  18. 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:

  1. Abra la hoja de asignación de atributos de la aplicación de aprovisionamiento de SuccessFactors.
  2. Desplácese hacia abajo y haga clic en Mostrar opciones avanzadas.
  3. Haga clic en Editar lista de atributos para SuccessFactors.
  4. 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
  5. 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.
  6. Guarde la asignación.
  7. Pruebe la configuración mediante el aprovisionamiento a petición.
  8. 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 la Id. de Microsoft Entra 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:

  1. Abra la hoja de asignación de atributos de la aplicación de aprovisionamiento de SuccessFactors.
  2. En la opción para mostrar las opciones avanzadas, edite la lista de atributos de SuccessFactors para agregar un nuevo atributo llamado userStatus.
  3. Configure la expresión de la API JSONPath para este atributo como: $.employmentNav.results[0].userNav.status
  4. Guarde el esquema para volver a la hoja de asignación de atributos.
  5. Edición del ámbito del objeto de origen para aplicar un filtro de ámbito userStatus NOT EQUALS
  6. 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 la Id. de Microsoft Entra de los registros de auditoría. Para solucionar problemas, puede copiar esta carga de solicitud en una herramienta como Postman, configurarla para usar el mismo usuario de API que usa 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
asignación
Asignación
mapping
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 la Id. de Microsoft Entra, 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 la Id. de Microsoft Entra, 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.

  1. 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.
  2. Asegúrese de que extensionAttribute[1-15] en la Id. de Microsoft Entra siempre se almacena el userId de empleo activo de cada trabajador. El registro asigna el atributo userId SuccessFactors al extensionAttribute[1-15] Id. de Microsoft Entra.

    Asignación del atributo userID de entrada

  3. 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 la Id. de Microsoft Entra.
  4. Guarde la asignación.
  5. Ejecute el trabajo de aprovisionamiento para asegurarse de que los valores userId fluyen hacia la Id. de Microsoft Entra.

    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.

  6. Abra la aplicación de escritura diferida de SuccessFactors en Azure Portal.
  7. Asigne el atributo extensionAttribute deseado que contiene el valor userId al atributo userId de SuccessFactors.

    Asignación del atributo userID de escritura diferida

  8. Guarde la asignación.
  9. Vaya a Asignación de atributos -> Avanzado -> Revisar esquema para abrir el editor de esquemas JSON.
  10. Descargue una copia del esquema como copia de seguridad.
  11. 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.
  12. Actualice el atributo flowBehavior de "FlowWhenChanged" a "FlowAlways" tal como se muestra.

    Actualización del comportamiento del flujo de asignación

  13. 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.

Pasos siguientes