Como o provisionamento do Microsoft Entra se integra ao SAP SuccessFactors

O serviço de provisionamento de usuários Microsoft Entra integra-se ao SAP SuccessFactors Employee Central para gerenciar o ciclo de vida da identidade dos usuários. O Microsoft Entra ID oferece três integrações pré-criadas:

Este artigo explica como a integração funciona e como você pode personalizar o comportamento de provisionamento para diferentes cenários de RH.

O Microsoft Entra também oferece suporte ao logon único para SuccessFactors. Para obter mais informações, consulte Integração de logon único (SSO) do Microsoft Entra com SuccessFactors.

Estabelecendo conectividade

O serviço de provisionamento Microsoft Entra usa autenticação básica para se conectar aos pontos de extremidade da API OData do Employee Central. Ao configurar o aplicativo de provisionamento SuccessFactors, use o parâmetro URL do locatário na seção Credenciais do administrador para configurar a URL do data center da API.

Para proteger ainda mais a conectividade entre o serviço de provisionamento Microsoft Entra e o SuccessFactors, adicione os intervalos de IP do Microsoft Entra na lista de permissões de IP do SuccessFactors:

  1. Transfira os intervalos de IP mais recentes para a nuvem pública do Azure.
  2. Abra o ficheiro e procure a etiqueta AzureActiveDirectory.
  3. Copie todos os intervalos de endereços IP listados no elemento addressPrefixes e use o intervalo para criar sua lista de restrição de endereços IP.
  4. Traduza os valores CIDR para intervalos IP.
  5. Faça login no portal de administração do SuccessFactors para adicionar intervalos de IP à lista de permissões. Consulte a nota de suporte SAP 2253200. Agora você pode inserir intervalos de IP nesta ferramenta.

Entidades suportadas

Para cada usuário no SuccessFactors, o serviço de provisionamento do Microsoft Entra recupera as seguintes entidades. Cada entidade é expandida usando a API OData $expand parâmetro de consulta, conforme descrito na coluna Regra de recuperação. Algumas entidades são expandidas por padrão, enquanto algumas entidades são expandidas somente se um atributo específico estiver presente no mapeamento.

# Entidade SuccessFactors Nó OData Regra de recuperação
1 PerPerson *root node* Sempre
2 PerPersonal personalInfoNav Sempre
3 PerPhone phoneNav Sempre
4 PerEmail emailNav Sempre
5 EmpEmployment employmentNav Sempre
6 User employmentNav/userNav Sempre
7 EmpJob employmentNav/jobInfoNav Sempre
8 EmpEmploymentTermination activeEmploymentsCount Sempre
9 User's manager employmentNav/userNav/manager/empInfo Sempre
10 FOCompany employmentNav/jobInfoNav/companyNav Somente se company ou companyId atributo for mapeado
11 FODepartment employmentNav/jobInfoNav/departmentNav Somente se department ou departmentId atributo for mapeado
12 FOBusinessUnit employmentNav/jobInfoNav/businessUnitNav Somente se businessUnit ou businessUnitId atributo for mapeado
13 FOCostCenter employmentNav/jobInfoNav/costCenterNav Somente se costCenter ou costCenterId atributo for mapeado
14 FODivision employmentNav/jobInfoNav/divisionNav Somente se division ou divisionId atributo for mapeado
15 FOJobCode employmentNav/jobInfoNav/jobCodeNav Somente se jobCode ou jobCodeId atributo for mapeado
16 FOPayGrade employmentNav/jobInfoNav/payGradeNav Somente se payGrade o atributo for mapeado
17 FOLocation employmentNav/jobInfoNav/locationNav Somente se location o atributo for mapeado
18 FOCorporateAddressDEFLT employmentNav/jobInfoNav/addressNavDEFLT Se o mapeamento contiver um dos seguintes atributos: officeLocationAddress, officeLocationCity, officeLocationZipCode
19 FOEventReason employmentNav/jobInfoNav/eventReasonNav Somente se eventReason o atributo for mapeado
20 EmpGlobalAssignment employmentNav/empGlobalAssignmentNav Apenas se assignmentType estiver mapeado
21 EmploymentType Picklist employmentNav/jobInfoNav/employmentTypeNav Apenas se employmentType estiver mapeado
22 EmployeeClass Picklist employmentNav/jobInfoNav/employeeClassNav Apenas se employeeClass estiver mapeado
23 EmplStatus Picklist employmentNav/jobInfoNav/emplStatusNav Apenas se emplStatus estiver mapeado
24 AssignmentType Picklist employmentNav/empGlobalAssignmentNav/assignmentTypeNav Apenas se assignmentType estiver mapeado
25 Position employmentNav/jobInfoNav/positionNav Apenas se positioNav estiver mapeado
26 Manager User employmentNav/jobInfoNav/managerUserNav Apenas se managerUserNav estiver mapeado

Como funciona a sincronização completa

Com base no mapeamento de atributos, durante a sincronização completa, o serviço de provisionamento Microsoft Entra envia a seguinte consulta de API OData "GET" para buscar dados efetivos de todos os trabalhadores ativos e encerrados.

Parâmetro Descrição
OData API Host Acrescenta https à URL do locatário. Exemplo: https://api4.successfactors.com
Ponto de extremidade da API OData /odata/v2/PerPerson
OData $format parâmetro de consulta json
OData $filter parâmetro de consulta (personEmpTerminationInfoNav/activeEmploymentsCount ne null) and (lastModifiedDateTime le <CurrentExecutionTime>)
OData $expand parâmetro de consulta Esse valor de parâmetro depende dos atributos mapeados. Exemplo: employmentNav/userNav,employmentNav/jobInfoNav,personalInfoNav,personEmpTerminationInfoNav,phoneNav,emailNav,employmentNav/jobInfoNav/companyNav/countryOfRegistrationNav,employmentNav/jobInfoNav/divisionNav,employmentNav/jobInfoNav/departmentNav
Parâmetro de consulta OData customPageSize 100

Observação

Durante a sincronização inicial completa, os trabalhadores ativos e demitidos do SAP SuccessFactors são buscados.

Para cada usuário SuccessFactors, o serviço de provisionamento procura uma conta no destino (ID do Microsoft Entra / Ative Directory local) usando o atributo de correspondência definido no mapeamento. Por exemplo: se personIdExternal mapeia para employeeId e é definido como o atributo correspondente, o serviço de provisionamento usa o valor personIdExternal para procurar o usuário com o filtro employeeId. Se uma correspondência de usuário for encontrada, ela atualizará os atributos de destino. Se nenhuma correspondência for encontrada, criará uma nova entrada no destino.

Para validar os dados retornados pelo ponto de extremidade da API OData para um ponto de extremidade específico personIdExternal, atualize a SuccessFactorsAPIEndpoint consulta na API com a URL do servidor do data center da API e use uma ferramenta como cURL ou Graph Explorer para invocar a consulta. Se o filtro "in" não funcionar, você pode tentar o 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

Como funciona a sincronização incremental

Após a sincronização completa, o serviço de provisionamento Microsoft Entra o mantém LastExecutionTimestamp e o usa para criar consultas delta para recuperar alterações incrementais. Os atributos de carimbo de data/hora presentes em cada entidade SuccessFactors, como lastModifiedDateTime, startDate, endDate, e latestTerminationDate, são avaliados para ver se a alteração está entre o LastExecutionTimestamp e CurrentExecutionTime. Se sim, então a alteração de entrada é considerada eficaz e processada para sincronização.

Aqui está o modelo de solicitação de API OData que o Microsoft Entra ID usa para consultar SuccessFactors para alterações incrementais. Você pode atualizar as variáveis SuccessFactorsAPIEndpointeCurrentExecutionTime, no modelo de solicitação, LastExecutionTimestamp usar uma ferramenta como cURL ou Graph Explorer para verificar quais dados são retornados. Como alternativa, você também pode recuperar a carga útil de solicitação real de SuccessFactors habilitando logs de auditoria de 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

Como funciona o processamento pré-contratação

Esta seção explica como o conector SAP SuccessFactors processa registros de pré-contratação (trabalhadores com data de contratação/data de início no futuro). Digamos que haja uma pré-contratação com employeeId "1234" na SuccessFactors Employee Central com data de início em 1-Junho-2023. Vamos supor ainda que esse registro de pré-contratação foi criado pela primeira vez na Central de Funcionários ou no módulo de Integração em 15 de maio de 2023. Quando o serviço de provisionamento observa esse registro pela primeira vez em 15 de maio de 2023 (como parte da sincronização completa ou incremental), esse registro ainda está no estado de pré-contratação. Devido a isso, SuccessFactors não envia ao serviço de provisionamento todos os atributos (exemplo: userNav/username) associados ao usuário. Apenas dados mínimos sobre o usuário, como companyName, personIdExternal, firstname, lastname e startDate estão disponíveis. Para processar pré-contratações com sucesso, os seguintes pré-requisitos devem ser atendidos:

  1. O personIdExternal atributo deve ser definido como o identificador de correspondência primário (propriedade de junção). Se você configurar um atributo diferente (exemplo: userName) como a propriedade de associação, o serviço de provisionamento não poderá recuperar as informações de pré-contratação.
  2. O startDate atributo deve estar disponível e seu JSONPath deve ser definido como ou $.employmentNav.results[0].startDate $.employmentNav.results[-1:].startDate.
  3. O registro de pré-contratação deve estar em um dos seguintes estados na Central do Funcionário: 'ativo' (t), 'inativo' (f) ou 'ative_external_suite' (e). Para obter detalhes sobre esses estados, consulte a nota de suporte do SAP 2736579.

Observação

Para uma pré-contratação que não tenha histórico com a organização, o índice [0] e [-1:] funcionará para startDate. Para uma pré-contratação que é uma recontratação ou conversão, não podemos dizer deterministicamente o pedido e isso pode fazer com que certos trabalhadores recontratados/convertidos sejam processados em sua data de início real. Esta é uma limitação conhecida no conector.

Durante a sincronização completa, a sincronização incremental ou o provisionamento sob demanda, quando o serviço de provisionamento encontra um registro de pré-contratação, ele envia a seguinte consulta OData para SuccessFactors com o filtro "asOfDate" definido como startDate do usuário (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/

Se você estiver observando problemas com o processamento de pré-contratação, poderá usar o formato de solicitação OData acima para consultar sua instância SuccessFactors substituindo o ponto personIdExternal de extremidade da API e asOfDate filtrar com valores correspondentes ao seu cenário de teste.

Leitura de dados de atributos

Quando o serviço de provisionamento Microsoft Entra consulta SuccessFactors, ele recupera um conjunto de resultados JSON. O conjunto de resultados JSON inclui muitos atributos armazenados no Employee Central. Por padrão, o esquema de provisionamento é configurado para recuperar apenas um subconjunto desses atributos.

Para recuperar mais atributos, siga as etapas listadas:

  1. Navegue até a página Enterprise Applications ->SuccessFactors App ->Provisioning ->Edit Provisioning ->attribute-mapping.

  2. Desloque-se para baixo e clique em Mostrar opções avançadas.

  3. Clique em Editar lista de atributos para SuccessFactors.

    Observação

    Se a opção Editar lista de atributos para SuccessFactors não aparecer no centro de administração do Microsoft Entra, use a URL https://portal.azure.com/?Microsoft_AAD_IAM_forceSchemaEditorEnabled=true para acessar a página.

  4. A coluna de expressão da API nesta exibição exibe as expressões JSONPath usadas pelo conector.

    API-Expressão

  5. Você pode editar um valor JSONPath existente ou adicionar um novo atributo com uma expressão JSONPath válida ao esquema.

A próxima seção fornece uma lista de cenários comuns para editar os valores JSONPath.

Lidar com diferentes cenários de RH

JSONPath é uma linguagem de consulta para JSON que é semelhante a XPath para XML. Como o XPath, o JSONPath permite a extração e filtragem de dados de uma carga útil JSON.

Usando a transformação JSONPath, você pode personalizar o comportamento do aplicativo de provisionamento Microsoft Entra para recuperar atributos personalizados e lidar com cenários como recontratação, conversão de trabalhador e atribuição global.

Esta seção aborda como você pode personalizar o aplicativo de provisionamento para os seguintes cenários de RH:

Recuperando mais atributos

O esquema padrão do aplicativo de provisionamento Microsoft Entra SuccessFactors é fornecido com 90+ atributos predefinidos. Para adicionar mais atributos SuccessFactors ao esquema de provisionamento, use as etapas listadas:

  1. Use a consulta OData para recuperar dados para um usuário de teste válido do 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. Determinar a entidade Employee Central associada ao atributo

    • Se o atributo fizer parte da entidade EmpEmployment , procure o atributo no nó employmentNav .
    • Se o atributo fizer parte da entidade User , procure o atributo no nó employmentNav/userNav .
    • Se o atributo fizer parte da entidade EmpJob , procure o atributo no nó employmentNav/jobInfoNav .
  3. Construa o caminho JSON associado ao atributo e adicione esse novo atributo à lista de atributos SuccessFactors.

    • Exemplo 1: Digamos que você queira adicionar o atributo okToRehire, que faz parte da employmentNav entidade, e usar o JSONPath $.employmentNav.results[0].okToRehire
    • Exemplo 2: Digamos que você queira adicionar o atributo timeZone, que faz parte da entidade userNav , e usar o JSONPath $.employmentNav.results[0].userNav.timeZone
    • Exemplo 3: Digamos que você queira adicionar o atributo flsaStatus, que faz parte da entidade jobInfoNav , e usar o JSONPath $.employmentNav.results[0].jobInfoNav.results[0].flsaStatus
  4. Salve o esquema.

  5. Reinicie o provisionamento.

Recuperando atributos personalizados

Por padrão, os seguintes atributos personalizados são predefinidos no aplicativo de provisionamento Microsoft Entra SuccessFactors:

  • custom01-custom15 da entidade User (userNav)
  • customString1-customString15 da entidade EmpEmployment (employmentNav) chamada empNavCustomString1-empNavCustomString15
  • customString1-customString15 da entidade EmpJobInfo (jobInfoNav) chamada empJobNavCustomString1-empNavJobCustomString15

Digamos que, em sua instância do Employee Central, o atributo customString35 em EmpJobInfo armazene a descrição do local. Você deseja fluir esse valor para o atributo physicalDeliveryOfficeName do Ative Directory. Para configurar o mapeamento de atributos para esse cenário, use as etapas:

  1. Edite a lista de atributos SuccessFactors para adicionar um novo atributo chamado empJobNavCustomString35.
  2. Defina a expressão da API JSONPath para este atributo como: $.employmentNav.results[0].jobInfoNav.results[0].customString35
  3. Salve e recarregue a alteração de mapeamento no centro de administração do Microsoft Entra.
  4. Na folha de mapeamento de atributos, mapeie empJobNavCustomString35 para physicalDeliveryOfficeName.
  5. Salve o mapeamento.

Estendendo este cenário:

  • Se você quiser mapear o atributo custom35 da entidade User , use o JSONPath $.employmentNav.results[0].userNav.custom35
  • Se você quiser mapear o atributo customString35 da entidade EmpEmployment , use o JSONPath $.employmentNav.results[0].customString35

Mapeando o status do emprego para o status da conta

Por padrão, o conector Microsoft Entra SuccessFactors usa o activeEmploymentsCount campo do objeto para definir o PersonEmpTerminationInfo status da conta. Você pode encontrar um dos seguintes problemas com esse atributo.

  1. Há um problema conhecido em que o conector pode desativar a conta de um trabalhador demitido um dia antes da rescisão no último dia de trabalho.
  2. Se o objeto for definido como nulo, durante o PersonEmpTerminationInfo encerramento, a desativação da conta do AD não funcionará porque o mecanismo de provisionamento filtra os registros em que o personEmpTerminationInfoNav objeto está definido como nulo.

Se você estiver enfrentando algum desses problemas ou preferir mapear o status do emprego para o status da conta, você pode atualizar o mapeamento para expandir o emplStatus campo e usar o código de status de emprego presente no campo emplStatus.externalCode. Com base na nota de suporte SAP 2505526, aqui está uma lista de códigos de status de emprego que você pode recuperar no aplicativo de provisionamento.

  • A = Ativo
  • D = Adormecido
  • U = Licença sem vencimento
  • P = Licença remunerada
  • S = Suspenso
  • F = Furlough
  • O = Eliminado
  • R = Aposentado
  • T = Terminado

Use as etapas para atualizar seu mapeamento para recuperar esses códigos.

  1. Abra a folha de mapeamento de atributos do seu aplicativo de provisionamento SuccessFactors.

  2. Em Mostrar opções avançadas, clique em Editar lista de atributos SuccessFactors.

  3. Encontre o atributo emplStatus e atualize o JSONPath para $.employmentNav.results[0].jobInfoNav.results[0].emplStatusNav.externalCode. A atualização faz com que o conector recupere os códigos de status de emprego na tabela.

  4. Salve as alterações.

  5. Na folha de mapeamento de atributos, atualize o mapeamento de expressão para o sinalizador de status da conta.

    Trabalho de provisionamento Atributo de status da conta Mapeando expressão
    SuccessFactors para provisionamento de usuários do Ative Directory accountDisabled Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")
    SuccessFactors para provisionamento de usuários do Microsoft Entra accountEnabled Switch([emplStatus], "False", "A", "True", "U", "True", "P", "True")
  6. Salve as alterações.

  7. Teste a configuração usando o provisionamento sob demanda.

  8. Depois de confirmar que a sincronização funciona conforme o esperado, reinicie o trabalho de provisionamento.

Lidando com cenários de conversão e recontratação de trabalhadores

Sobre o cenário de conversão de trabalhadores: A conversão de trabalhadores é o processo de conversão de um funcionário existente em tempo integral em um contratante ou de um contratante em um funcionário em tempo integral. Nesse cenário, o Employee Central adiciona uma nova entidade EmpEmployment junto com uma nova entidade User para a mesma entidade Person . A entidade User aninhada sob a entidade EmpEmployment anterior é definida como null.

Sobre cenários de recontratação: Na SuccessFactors, há duas opções para processar a recontratação de funcionários:

  • Opção 1: Criar um novo perfil de pessoa na Central de funcionários
  • Opção 2: Reutilizar o perfil de pessoa existente na Central do Funcionário

Se o seu processo de RH usar a Opção 1, nenhuma alteração será necessária no esquema de provisionamento. Se o seu processo de RH usar a Opção 2, a Employee Central adicionará uma nova entidade EmpEmployment juntamente com uma nova entidade User para a mesma entidade Person .

Você pode lidar com ambos os cenários para que os novos dados de emprego apareçam quando ocorrer uma conversão ou recontratação. Atualize em massa o esquema do aplicativo de provisionamento usando as etapas listadas:

  1. Abra a folha de mapeamento de atributos do seu aplicativo de provisionamento SuccessFactors.

  2. Desloque-se para baixo e clique em Mostrar opções avançadas.

  3. Clique no link Revise seu esquema aqui para abrir o editor de esquema.

    A captura de tela mostra o link Revise seu esquema aqui que abre o editor de esquema.

  4. Clique no link Download para salvar uma cópia do esquema antes de editar.

    A captura de tela mostra o editor de esquema com Download select para salvar uma cópia do esquema.

  5. No editor de esquema, pressione a tecla Ctrl-H para abrir o controle find-place.

  6. Na caixa de texto localizar, copie e cole o valor $.employmentNav.results[0]

  7. Na caixa de texto substituir, copie e cole o valor $.employmentNav.results[-1:]. Esta expressão JSONPath retorna o registro EmpEmployment mais recente.

    localizar-substituir-converter

  8. Clique na opção "substituir tudo" para atualizar o esquema.

  9. Salve o esquema.

  10. O processo acima atualiza todas as expressões JSONPath da seguinte maneira:

    • Antigo JSONPath: $.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized
    • Novo JSONPath: $.employmentNav.results[-1:].jobInfoNav.results[0].departmentNav.name_localized
  11. Teste a configuração usando o provisionamento sob demanda.

  12. Depois de confirmar que a sincronização funciona conforme o esperado, reinicie o trabalho de provisionamento.

Observação

A abordagem descrita acima só funciona se o SAP SuccessFactors retornar os objetos de emprego em ordem crescente, onde o registro de emprego mais recente é sempre o último registro na matriz de resultados employmentNav . A ordem em que vários registros de emprego são retornados não é garantida pela SuccessFactors. Se sua instância SuccessFactors tiver vários registros de emprego correspondentes a um trabalhador e você sempre quiser recuperar atributos associados ao registro de emprego ativo, use as etapas descritas na próxima seção.

Recuperando o registro de emprego ativo atual

Usar a raiz JSONPath de ou $.employmentNav.results[-1:] para buscar registros de $.employmentNav.results[0] emprego funciona na maioria dos cenários e mantém a configuração simples. No entanto, dependendo de como sua instância SuccessFactors está configurada, pode ser necessário atualizar essa configuração para garantir que o conector sempre busque o registro de emprego ativo mais recente.

Esta seção descreve como você pode atualizar as configurações JSONPath para recuperar definitivamente o registro de emprego ativo atual do usuário. Ele também lida com cenários de conversão e recontratação de trabalhadores.

  1. Abra a folha de mapeamento de atributos do seu aplicativo de provisionamento SuccessFactors.

  2. Desloque-se para baixo e clique em Mostrar opções avançadas.

  3. Clique no link Revise seu esquema aqui para abrir o editor de esquema.

  4. Clique no link Download para salvar uma cópia do esquema antes de editar.

  5. No editor de esquema, pressione a tecla Ctrl-H para abrir o controle find-place.

  6. Execute as seguintes operações de substituição de localização. Certifique-se de que não há espaço à esquerda ou à direita ao executar as operações de localização-substituição. Se você estiver usando [-1:] índice em vez de [0], atualize o campo string-to-find de acordo.

    String para encontrar String a ser usada para substituir Finalidade
    $.employmentNav.results[0].jobInfoNav.results[0].emplStatus $.employmentNav..jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P' )].emplStatusNav.externalCode Com esse find-replace, estamos adicionando a capacidade de expandir o objeto emplStatusNav OData.
    $.employmentNav.results[0].jobInfoNav.results[0] $.employmentNav..jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')] Com esse find-replace, instruímos o conector a sempre recuperar atributos associados ao registro EmpJobInfo SuccessFactors ativo. Os atributos associados a registros encerrados/inativos em SuccessFactors são ignorados.
    $.employmentNav.results[0] $.employmentNav..results[?(@.jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')])] Com esse find-replace, instruímos o conector a sempre recuperar atributos associados ao registro ativo SuccessFactors Employment. Os atributos associados a registros encerrados/inativos em SuccessFactors são ignorados.
  7. Salve o esquema.

  8. O processo acima atualiza todas as expressões JSONPath.

  9. Para que o processamento de pré-contratação funcione, o JSONPath associado startDate ao atributo deve usar um ou [0] [-1:] indexar. Em Mostrar opções avançadas, clique em Editar lista de atributos SuccessFactors. Encontre o atributo startDate e defina-o com o valor $.employmentNav.results[-1:].startDate

  10. Salve o esquema.

  11. Para garantir que as terminações sejam processadas conforme o esperado, você pode usar uma das seguintes configurações na seção de mapeamento de atributos.

    Trabalho de provisionamento Atributo de status da conta Expressão a utilizar se o estado da conta se basear em "activeEmploymentsCount" Expressão a ser usada se o status da conta for baseado no valor "emplStatus"
    SuccessFactors para provisionamento de usuários do Ative Directory accountDisabled Switch([activeEmploymentsCount], "False", "0", "True") Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")
    SuccessFactors para provisionamento de usuários do Microsoft Entra accountEnabled Switch([activeEmploymentsCount], "True", "0", "False") Switch([emplStatus], "False", "A", "True", "U", "True", "P", "True")
  12. Salve suas alterações. 1.

  13. Teste a configuração usando o provisionamento sob demanda.

  14. Depois de confirmar que a sincronização funciona conforme o esperado, reinicie o trabalho de provisionamento.

Manipulando o cenário de atribuição global

Quando um usuário no Employee Central é processado para atribuição global, SuccessFactors adiciona uma nova entidade EmpEmployment e define a assignmentClass como "GA". Ele também cria uma nova entidade de usuário . Assim, o usuário passa a ter:

  • Uma entidade EmpEmployment + User que corresponde à atribuição de casa com assignmentClass definida como "ST" e
  • Outra entidade EmpEmployment + User que corresponde à atribuição global com assignmentClass definida como "GA"

Para buscar atributos pertencentes à atribuição padrão e ao perfil de usuário da atribuição global, use as etapas listadas:

  1. Abra a folha de mapeamento de atributos do seu aplicativo de provisionamento SuccessFactors.

  2. Desloque-se para baixo e clique em Mostrar opções avançadas.

  3. Clique no link Revise seu esquema aqui para abrir o editor de esquema.

  4. Clique no link Download para salvar uma cópia do esquema antes de editar.

  5. No editor de esquema, pressione a tecla Ctrl-H para abrir o controle find-place.

  6. Na caixa de texto localizar, copie e cole o valor $.employmentNav.results[0]

  7. Na caixa de texto substituir, copie e cole o valor $.employmentNav.results[?(@.assignmentClass == 'ST')]. Observe o espaço em branco ao redor do operador == , que é importante para o processamento bem-sucedido da expressão JSONPath.

  8. Clique na opção "substituir tudo" para atualizar o esquema.

  9. Salve o esquema.

  10. O processo acima atualiza todas as expressões JSONPath da seguinte maneira:

    • Antigo JSONPath: $.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized
    • Novo JSONPath: $.employmentNav.results[?(@.assignmentClass == 'ST')].jobInfoNav.results[0].departmentNav.name_localized
  11. Recarregue a folha de mapeamento de atributos do aplicativo.

  12. Desloque-se para baixo e clique em Mostrar opções avançadas.

  13. Clique em Editar lista de atributos para SuccessFactors.

  14. Adicione novos atributos para buscar dados de atribuição global. Por exemplo: se quiser buscar o nome do departamento associado a um perfil de atribuição global, você pode adicionar o atributo globalAssignmentDepartment com a expressão JSONPath definida como $.employmentNav.results[?(@.assignmentClass == 'GA')].jobInfoNav.results[0].departmentNav.name_localized.

  15. Agora você pode fluir ambos os valores de departamento para atributos do Ative Directory ou fluir seletivamente um valor usando o mapeamento de expressão. Exemplo: a expressão define o valor do atributo de departamento do AD como globalAssignmentDepartment se presente, caso contrário, define o valor como departamento associado à atribuição padrão.

    • IIF(IsPresent([globalAssignmentDepartment]),[globalAssignmentDepartment],[department])
  16. Salve o mapeamento.

  17. Teste a configuração usando o provisionamento sob demanda.

  18. Depois de confirmar que a sincronização funciona conforme o esperado, reinicie o trabalho de provisionamento.

Lidando com o cenário de trabalhos simultâneos

Quando um usuário no Employee Central tem trabalhos simultâneos/múltiplos, há duas entidades EmpEmployment e User com assignmentClass definido como "ST". Para buscar atributos pertencentes a ambos os trabalhos, use as etapas listadas:

  1. Abra a folha de mapeamento de atributos do seu aplicativo de provisionamento SuccessFactors.
  2. Desloque-se para baixo e clique em Mostrar opções avançadas.
  3. Clique em Editar lista de atributos para SuccessFactors.
  4. Digamos que você queira puxar o departamento associado ao trabalho 1 e ao trabalho 2. O departamento de atributos predefinidos já busca o valor do departamento para o primeiro trabalho. Você pode definir um novo atributo chamado secondJobDepartment e definir a expressão JSONPath como $.employmentNav.results[1].jobInfoNav.results[0].departmentNav.name_localized
  5. Agora você pode fluir ambos os valores de departamento para atributos do Ative Directory ou fluir seletivamente um valor usando o mapeamento de expressão.
  6. Salve o mapeamento.
  7. Teste a configuração usando o provisionamento sob demanda.
  8. Depois de confirmar que a sincronização funciona conforme o esperado, reinicie o trabalho de provisionamento.

Recuperando detalhes da posição

O conector SuccessFactors suporta a expansão do objeto position. Para expandir e recuperar atributos de objeto de posição, como nível de trabalho ou nomes de posição em um idioma específico, você pode usar expressões JSONPath conforme mostrado.

Nome do atributo Expressão 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

Provisionamento de usuários no módulo de integração

O provisionamento de usuários de entrada do SAP SuccessFactors para o Ative Directory local e o Microsoft Entra ID agora oferece suporte ao provisionamento antecipado de pré-contratações presentes no módulo SAP SuccessFactors Onboarding 2.0. Quando o serviço de provisionamento Microsoft Entra encontra um novo perfil de contratação com uma data de início futura, ele consulta o SAP SuccessFactors para obter novas contratações com um dos seguintes códigos de status: active, inactive, active_external_suite. O código active_external_suite de status corresponde às pré-contratações presentes no módulo SAP SuccessFactors Onboarding 2.0. Para obter uma descrição desses códigos de status, consulte a nota de suporte SAP 2736579.

O comportamento padrão do serviço de provisionamento é processar pré-contratações no módulo Integração.

Se você quiser excluir o processamento de pré-contratações no módulo Integração, atualize a configuração do trabalho de provisionamento da seguinte maneira:

  1. Abra a folha de mapeamento de atributos do seu aplicativo de provisionamento SuccessFactors.
  2. Em mostrar opções avançadas, edite a lista de atributos SuccessFactors para adicionar um novo atributo chamado userStatus.
  3. Defina a expressão da API JSONPath para este atributo como: $.employmentNav.results[0].userNav.status
  4. Salve o esquema para retornar à folha de mapeamento de atributos.
  5. Editar o escopo Objeto de origem para aplicar um filtro de escopo userStatus NOT EQUALS
  6. Salve o mapeamento e valide se o filtro de escopo funciona usando o provisionamento sob demanda.

Habilitando logs de auditoria de API OData no SuccessFactors

O conector Microsoft Entra SuccessFactors usa a API OData SuccessFactors para recuperar alterações e provisionar usuários. Se você observar problemas com o serviço de provisionamento e quiser confirmar quais dados foram recuperados do SuccessFactors, poderá habilitar os logs de auditoria da API OData no SuccessFactors. Recupere a carga útil da solicitação enviada pelo ID do Microsoft Entra dos logs de auditoria. Para solucionar problemas, você pode copiar essa carga útil de solicitação em uma ferramenta como cURL ou Graph Explorer, configurá-la para usar o mesmo usuário de API usado pelo conector e ver se ela retorna as alterações desejadas de SuccessFactors.

Cenários de write-back

Esta seção aborda diferentes cenários de write-back. Ele recomenda abordagens de configuração com base em como o e-mail e o número de telefone são configurados no SuccessFactors.

Cenários suportados para write-back de telefone e e-mail

# Requisito do cenário E-mail principal
valor da bandeira
Telefone comercial
Valor do sinalizador primário
Telemóvel
Valor do sinalizador primário
Telefone comercial
mapeamento
Telemóvel
mapeamento
1 * Defina apenas o e-mail comercial como principal.
* Não defina números de telefone.
verdadeiro verdadeiro falso [Não definido] [Não definido]
2 * No SuccessFactors, o e-mail comercial e o telefone comercial são os principais
* Sempre fluir o número de telefone Microsoft Entra para o telefone comercial e celular para o telefone celular.
verdadeiro verdadeiro falso Número de telefone telemóvel
3 * Em SuccessFactors, e-mail comercial e telefone celular é principal
* Sempre fluir o número de telefone Microsoft Entra para o telefone comercial e celular para o telefone celular
verdadeiro falso verdadeiro Número de telefone telemóvel
4 * No SuccessFactors, o e-mail comercial é primário.
* No Microsoft Entra ID, verifique se o número de telefone do trabalho está presente, se estiver presente, em seguida, verifique se o número de celular também está presente. Marque o número de telefone profissional como principal somente se o número de celular não estiver presente.
verdadeiro Use o mapeamento de expressão: IIF(IsPresent([telephoneNumber]), IIF(IsPresent([mobile]),"false", "true"), "false") Use o mapeamento de expressão: IIF(IsPresent([mobile]),"false", "true") Número de telefone telemóvel
5 * No SuccessFactors, o e-mail comercial e o telefone comercial são primários.
* No Microsoft Entra ID, se o celular estiver disponível, em seguida, defini-lo como o telefone comercial, caso contrário, use phoneNumber.
verdadeiro verdadeiro falso IIF(IsPresent([mobile]), [mobile], [telephoneNumber]) [Não definido]
  • Se não houver nenhum mapeamento para o número de telefone no mapeamento de atributos de write-back, somente o e-mail será incluído no write-back.
  • Durante a integração de novos contratados na Central de Funcionários, o e-mail comercial e o número de telefone podem não estar disponíveis. Se a definição do e-mail comercial e do telefone comercial como principal for obrigatória durante a integração, você poderá definir um valor fictício para o telefone comercial e o e-mail durante a criação de novas contratações. Depois de algum tempo, o aplicativo write-back atualiza o valor.

Ativando write-back com UserID

O aplicativo SuccessFactors Writeback usa a seguinte lógica para atualizar os atributos de objeto User:

  • Como primeiro passo, ele procura o atributo userId no conjunto de alterações. Se estiver presente, ele usará "UserId" para fazer a chamada da API SuccessFactors.
  • Se userId não for encontrado, o padrão será usar o valor do atributo personIdExternal .

Normalmente, o valor do atributo personIdExternal em SuccessFactors corresponde ao valor do atributo userId. No entanto, em cenários como recontratação e conversão de trabalhadores, um funcionário na SuccessFactors pode ter dois registros de emprego, um ativo e outro inativo. Nesses cenários, para garantir que o write-back atualize o perfil de usuário ativo, atualize a configuração dos aplicativos de provisionamento SuccessFactors conforme descrito. Essa configuração garante que userId esteja sempre presente no conjunto de alterações visível para o conector e seja usado na chamada da API SuccessFactors.

  1. Abra o aplicativo de provisionamento de usuário SuccessFactors para Microsoft Entra ou SuccessFactors para aplicativo de provisionamento de usuário do AD local.
  2. Certifique-se de que extensionAttribute[1-15] no Microsoft Entra ID sempre armazene o userId registro de emprego ativo de cada trabalhador. O registro mapeia o atributo SuccessFactors userId para extensionAttribute[1-15] no Microsoft Entra ID.

    Mapeamento de atributos de UserID de entrada

  3. Para obter orientação sobre as configurações do JSONPath, consulte a seção Manipulando cenários de conversão e recontratação de trabalhadores para garantir que o valor userId do registro de emprego ativo flua para o Microsoft Entra ID.
  4. Salve o mapeamento.
  5. Execute o trabalho de provisionamento para garantir que os valores userId fluam para o Microsoft Entra ID.

    Observação

    Se você estiver usando SuccessFactors para provisionamento de usuários do Ative Directory local, configure o Microsoft Entra Connect para sincronizar o valor do atributo userId do Ative Directory local para o Microsoft Entra ID.

  6. Abra o aplicativo SuccessFactors Writeback no portal do Azure.
  7. Mapeie o extensionAttribute desejado que contém o valor userId para o atributo userId SuccessFactors.

    Mapeamento de atributos UserID de write-back

  8. Salve o mapeamento.
  9. Vá para Mapeamento de atributos -> Avançado -> Revisar esquema para abrir o editor de esquema JSON.
  10. Faça o download de uma cópia do esquema como backup.
  11. No editor de esquema, pressione Ctrl-F e procure o nó JSON que contém o mapeamento userId, onde ele é mapeado para um atributo Microsoft Entra de origem.
  12. Atualize o atributo flowBehavior de "FlowWhenChanged" para "FlowAlways", conforme mostrado.

    Atualização do comportamento do fluxo de mapeamento

  13. Salve o mapeamento e teste o cenário de write-back com provisionamento sob demanda.

Cenários sem suporte para write-back de telefone e e-mail

  • Na Central de funcionários, durante a integração, o e-mail pessoal e o telefone pessoal são definidos como principais. O aplicativo de write-back não pode alternar essa configuração e definir o e-mail comercial e o telefone comercial como principais.
  • Na Central de funcionários, o telefone comercial é definido como principal. O aplicativo write-back não pode alterar isso e definir o telefone celular como principal.
  • O aplicativo write-back não pode ler as configurações atuais do sinalizador primário e usar os mesmos valores para a operação de gravação. Os valores de sinalizador configurados no mapeamento de atributos são sempre usados.

Próximos passos