Como o provisionamento do Microsoft Entra se integra ao SAP SuccessFactors

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

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 dá suporte ao logon único no SuccessFactors. Para mais informações, consulte Integração do logon único (SSO) do Microsoft Entra ao SuccessFactors.

Estabelecendo conectividade

O serviço de provisionamento do Microsoft Entra usa a 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 de Administrador para configurar a URL do data center da API.

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

  1. Baixe os Intervalos de IP mais recentes para a Nuvem Pública do Azure
  2. Abra o arquivo e pesquise a tag Microsoft Entra ID
  3. Copie todos os intervalos de endereços IP listados no elemento addressPrefixes e use o intervalo para criar a sua lista de restrições de endereços IP.
  4. Converta os valores de CIDR em intervalos de IP.
  5. Faça logon no portal de administração do SuccessFactors para adicionar intervalos de IP à lista de permissões. Confira a nota de suporte SAP nº 2253200. Agora você pode inserir intervalos de IP nessa ferramenta.

Entidades com suporte

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

# Entidade do SuccessFactors Nó do 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 o atributo company ou companyId for mapeado
11 FODepartment employmentNav/jobInfoNav/departmentNav Somente se o atributo department ou departmentId for mapeado
12 FOBusinessUnit employmentNav/jobInfoNav/businessUnitNav Somente se o atributo businessUnit ou businessUnitId for mapeado
13 FOCostCenter employmentNav/jobInfoNav/costCenterNav Somente se o atributo costCenter ou costCenterId for mapeado
14 FODivision employmentNav/jobInfoNav/divisionNav Somente se o atributo division ou divisionId for mapeado
15 FOJobCode employmentNav/jobInfoNav/jobCodeNav Somente se o atributo jobCode ou jobCodeId for mapeado
16 FOPayGrade employmentNav/jobInfoNav/payGradeNav Somente se o atributo payGrade for mapeado
17 FOLocation employmentNav/jobInfoNav/locationNav Somente se o atributo location 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 o atributo eventReason for mapeado
20 EmpGlobalAssignment employmentNav/empGlobalAssignmentNav Somente se assignmentType for mapeado
21 EmploymentType Picklist employmentNav/jobInfoNav/employmentTypeNav Somente se employmentType for mapeado
22 EmployeeClass Picklist employmentNav/jobInfoNav/employeeClassNav Somente se employeeClass for mapeado
23 EmplStatus Picklist employmentNav/jobInfoNav/emplStatusNav Somente se emplStatus for mapeado
24 AssignmentType Picklist employmentNav/empGlobalAssignmentNav/assignmentTypeNav Somente se assignmentType for mapeado
25 Position employmentNav/jobInfoNav/positionNav Somente se positioNav for mapeado
26 Manager User employmentNav/jobInfoNav/managerUserNav Somente se managerUserNav for mapeado

Como funciona a sincronização completa

Com base no mapeamento de atributos, durante a sincronização completa, o serviço de provisionamento do Microsoft Entra envia a consulta "GET" da API do OData a seguir para buscar dados efetivos de todas as funções de trabalho ativas e encerradas.

Parâmetro Descrição
Host de API OData Anexa https à URL do locatário. Exemplo: https://api4.successfactors.com
Ponto de extremidade da API OData /odata/v2/PerPerson
Parâmetro de consulta $format do OData json
Parâmetro de consulta $filter do OData (personEmpTerminationInfoNav/activeEmploymentsCount ne null) and (lastModifiedDateTime le <CurrentExecutionTime>)
Parâmetro de consulta $expand do OData 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 customPageSize do OData 100

Observação

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

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

Para validar os dados retornados pelo ponto de extremidade da API OData para um personIdExternal específico, atualize o SuccessFactorsAPIEndpoint na consulta da API com a URL do servidor do data center do API e use uma ferramenta como Postman para invocar a consulta. Se o filtro "in" não funcionar, você poderá 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 do Microsoft Entra mantém LastExecutionTimestamp e usa-o para criar consultas delta a fim de recuperar alterações incrementais. Os atributos de carimbo de data/hora presentes em cada entidade do SuccessFactors, como lastModifiedDateTime, startDate, endDate e latestTerminationDate, são avaliados para ver se a alteração está entre o LastExecutionTimestamp e o CurrentExecutionTime. Em caso afirmativo, a alteração da entrada será considerada efetiva e processada para sincronização.

Aqui está o modelo de solicitação da API do OData que o Microsoft Entra usa para consultar o SuccessFactors para alterações incrementais. Você pode atualizar as variáveis SuccessFactorsAPIEndpoint, LastExecutionTimestamp e CurrentExecutionTime no modelo de solicitação usando uma ferramenta como Postman para verificar quais dados são retornados. Como alternativa, você também pode recuperar o conteúdo da solicitação real do SuccessFactors habilitando os logs de auditoria da API do 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 de 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 cuja employeeId seja "1234" no SuccessFactors Employee Central com data de início prevista para 1º de junho de 2023. Vamos supor ainda que esse registro de pré-contratação foi criado pela primeira vez no Employee Central ou no módulo Onboarding 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 sincronização incremental), esse registro ainda está no estado de pré-contratação. Por esse motivo, o SuccessFactors não envia todos os atributos ao serviço de provisionamento (por exemplo: userNav/username) associados ao usuário. Estão disponíveis apenas os dados mínimos sobre o usuário, como companyName, personIdExternal, firstname, lastname e startDate. Para processar as pré-contratações com sucesso, os seguintes pré-requisitos devem ser atendidos:

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

Observação

Para um pré-contratado que não tem um histórico na organização, tanto índice o [0] quanto o [-1:] funcionarão para startDate. Para uma pré-contratação que seja uma recontratação ou conversão, não podemos estabelecer a ordem de forma determinística e isso pode fazer com que certos trabalhadores recontratos/convertidos sejam processados na data de início real. Essa é uma limitação conhecida no conector.

Quando o serviço de provisionamento encontra um registro de pré-contratação durante a sincronização completa ou sincronização incremental ou provisionamento sob demanda, ele envia a seguinte consulta OData para o SuccessFactors com o filtro "asOfDate" definido como startDate do usuário (por exemplo, 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ções, poderá usar o formato de solicitação OData acima para consultar sua instância do SuccessFactors substituindo o ponto de extremidade da API, o filtro personIdExternal e asOfDate por valores correspondentes ao cenário de teste.

Como ler dados de atributo

Quando o serviço de provisionamento do Microsoft Entra consulta o SuccessFactors, ele recupera um conjunto de resultados JSON. O conjunto de resultados JSON inclui muitos atributos armazenados na Central de Funcionários. 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é Aplicativos Empresariais ->Aplicativo SuccessFactors ->Provisionamento ->Editar Provisionamento ->página de mapeamento de atributo.

  2. Role para baixo e clique em Mostrar opções avançadas.

  3. Clique em Editar lista de atributos do SuccessFactors.

    Observação

    Se a opção Editar lista de atributos para o 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 Expressão da API nessa exibição mostra as expressões JSONPath usadas pelo conector.

    Expressão da API

  5. Você pode editar um valor de 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 de JSONPath.

Como administrar cenários de RH diferentes

O JSONPath é uma linguagem de consulta para JSON semelhante ao XPath para XML. Como o XPath, o JSONPath permite a extração e a filtragem de dados de um conteúdo JSON.

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

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

Recuperando mais atributos

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

  1. Use a consulta OData para recuperar os dados de um usuário de teste válido da Central do Funcionário.

     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. Determine a entidade do 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 do SuccessFactors.

    • Exemplo 1: digamos que você queira adicionar o atributo okToRehire, que faz parte da entidade employmentNav, 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.

Como recuperar atributos personalizados

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

  • 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 na instância do Employee Central, o atributo customString35 em EmpJobInfo armazena a descrição da localização. Você deseja transmitir esse valor para o atributo physicalDeliveryOfficeName do Active Directory. Para configurar o mapeamento de atributo para esse cenário, use as etapas:

  1. Edite a lista de atributos do SuccessFactors para adicionar um novo atributo chamado empJobNavCustomString35.
  2. Defina a expressão da API JSONPath para esse 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 atributo, mapeie empJobNavCustomString35 para physicalDeliveryOfficeName.
  5. Salve o mapeamento.

Estendendo esse cenário:

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

Como mapear o status de emprego para o status da conta

Por padrão, o conector do SuccessFactors no Microsoft Entra usa o campo activeEmploymentsCount do objeto PersonEmpTerminationInfo para definir o status da conta. Talvez você encontre um dos problemas a seguir com esse atributo.

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

Se estiver tendo esse problema ou se preferir mapear o status de emprego para o status da conta, atualize o mapeamento para expandir o campo emplStatus e use o código de status de emprego presente no campo emplStatus.externalCode. Com base na nota de suporte do SAP 2505526, aqui está uma lista de códigos de status de emprego que você pode recuperar no aplicativo de provisionamento.

  • A = Ativo
  • D = Inativo
  • U = Licença não remunerada
  • P = Licença remunerada
  • S = Suspenso
  • F = Licença especial (Furlough)
  • O = Descartado
  • R = Desativado
  • T = Encerrado

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

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

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

  3. Localize 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ões para o sinalizador de status da conta.

    Trabalho de provisionamento Atributo de status da conta Mapeamento de expressões
    SuccessFactors para o Provisionamento de Usuário do Active Directory accountDisabled Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")
    Provisionamento de usuário do SuccessFactors para o 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 do trabalhador: a conversão de trabalhadores é o processo de converter um funcionário existente em tempo integral em um contratado ou um contratado em um funcionário em tempo integral. Nesse cenário, o Employee Central adiciona uma nova entidade EmpEmployment com uma nova entidade User na mesma entidade Person. A entidade User aninhada na entidade EmpEmployment anterior está definida como null.

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

  • Opção 1: criar um perfil pessoal em Employee Central
  • Opção 2: reutilizar o perfil pessoal existente em Employee Central

Se o 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, o Employee Central adicionará uma nova entidade EmpEmployment junto com uma nova entidade User na mesma entidade Person.

Você pode lidar com os dois 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 atributo do seu aplicativo de provisionamento SuccessFactors.

  2. Role para baixo e clique em Mostrar opções avançadas.

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

    Captura de tela mostra o link Examinar o seu esquema aqui, que abre o editor de esquema.

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

    Captura de tela mostra o Editor de esquema com Baixar selecionado para salvar uma cópia do esquema.

  5. No editor de esquema, pressione a tecla Ctrl-H para abrir o controle localizar/substituir.

  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:]. Essa expressão JSONPath retorna o registro de EmpEmployment mais recente.

    find-replace-conversion

  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:

    • JSONPath antigo: $.employmentNav.results[0].jobInfoNav.results[0].departmentNav.name_localized
    • JSONPath novo: $.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ó funcionará se o SAP SuccessFactors retornar os objetos de emprego em ordem crescente, em que o último registro de emprego é sempre o último registro na matriz de resultados employmentNav. A ordem em que vários registros de emprego são retornados não é garantida pelo SuccessFactors. Se a instância do 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.

Como recuperar o registro de emprego ativo atual

Usar a raiz JSONPath de $.employmentNav.results[0] ou de $.employmentNav.results[-1:] para buscar os registros de emprego funciona na maioria dos cenários e mantém a configuração simples. No entanto, dependendo de como sua instância do SuccessFactors está configurada, pode haver a necessidade de 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 do 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 atributo do seu aplicativo de provisionamento SuccessFactors.

  2. Role para baixo e clique em Mostrar opções avançadas.

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

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

  5. No editor de esquema, pressione a tecla Ctrl-H para abrir o controle localizar/substituir.

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

    Cadeia de caracteres a localizar Cadeia de caracteres a usar para substituição Finalidade
    $.employmentNav.results[0].jobInfoNav.results[0].emplStatus $.employmentNav..jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P' )].emplStatusNav.externalCode Com essa operação de localização e substituição, estamos adicionando a capacidade de expandir o objeto emplStatusNav do OData.
    $.employmentNav.results[0].jobInfoNav.results[0] $.employmentNav..jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')] Com essa operação de localização e substituição, nós instruímos o conector a sempre recuperar atributos associados ao registro ativo do EmpJobInfo do SuccessFactors. Atributos associados a registros encerrados/inativos no SuccessFactors são ignorados.
    $.employmentNav.results[0] $.employmentNav..results[?(@.jobInfoNav..results[?(@.emplStatusNav.externalCode == 'A' || @.emplStatusNav.externalCode == 'U' || @.emplStatusNav.externalCode == 'P')])] Com essa operação de localização e substituição, nós instruímos o conector a sempre recuperar atributos associados ao registro ativo de Emprego do SuccessFactors. Atributos associados a registros encerrados/inativos no 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 ao atributo startDate deve usar o índice [0] ou [-1:]. Em Mostrar opções avançadas, clique em Editar lista de atributos do SuccessFactors. Localize o atributo startDate e defina-o como o valor $.employmentNav.results[-1:].startDate

  10. Salve o esquema.

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

    Trabalho de provisionamento Atributo de status da conta Expressão a ser usada se o status da conta for baseado em "activeEmploymentsCount" Expressão a ser usada se o status da conta for baseado no valor de "emplStatus"
    SuccessFactors para o Provisionamento de Usuário do Active Directory accountDisabled Switch([activeEmploymentsCount], "False", "0", "True") Switch([emplStatus], "True", "A", "False", "U", "False", "P", "False")
    Provisionamento de usuário do SuccessFactors para o 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.

Como administrar o cenário de atribuição global

Quando um usuário no Employee Central é processado para atribuição global, o SuccessFactors adiciona uma nova entidade EmpEmployment e define assignmentClass como "GA". Ele também cria uma entidade User. Portanto, o usuário agora tem:

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

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

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

  2. Role para baixo e clique em Mostrar opções avançadas.

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

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

  5. No editor de esquema, pressione a tecla Ctrl-H para abrir o controle localizar/substituir.

  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:

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

  12. Role para baixo e clique em Mostrar opções avançadas.

  13. Clique em Editar lista de atributos do SuccessFactors.

  14. Adicione novos atributos para buscar dados de atribuição global. Por exemplo: se você quiser buscar o nome do departamento associado a um perfil de atribuição global, poderá 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 transmitir ambos os valores de departamento para os atributos do Active Directory ou transmitir seletivamente um valor usando o mapeamento de expressão. Exemplo: a expressão define o valor do atributo 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.

Como administrar o cenário de trabalhos simultâneos

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

  1. Abra a folha de mapeamento de atributo do seu aplicativo de provisionamento SuccessFactors.
  2. Role para baixo e clique em Mostrar opções avançadas.
  3. Clique em Editar lista de atributos do SuccessFactors.
  4. Digamos que você deseja efetuar pull do departamento associado ao trabalho 1 e ao trabalho 2. O atributo predefinido department 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 transmitir ambos os valores de departamento para os atributos do Active Directory ou transmitir 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.

Recuperar detalhes da posição

O conector do SuccessFactors dá suporte para a expansão do objeto de posição. Para expandir e recuperar os atributos do 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 como 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 Integração

O provisionamento de usuários de entrada do SAP SuccessFactors para o Active Directory e o Microsoft Entra ID locais 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 do 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 de status active_external_suite corresponde às pré-contratações presentes no módulo Integração 2.0 do SAP SuccessFactors. Para obter uma descrição desses códigos de status, veja a nota de suporte SAP 2736579.

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

Caso deseje excluir o processamento de pré-contratações no módulo Integração, atualize a configuração do trabalho de provisionamento da seguinte forma:

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

Como habilitar os logs de auditoria da API do OData no SuccessFactors

O conector do SuccessFactors no Microsoft Entra usa a API do OData no 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 do OData no SuccessFactors. Recupere o conteúdo da solicitação enviada pelo Microsoft Entra ID nos logs de auditoria. Para solucionar problemas, você pode copiar esse payload de solicitação em uma ferramenta como o Postman, configurá-lo para usar o mesmo usuário da API que é usado pelo conector e ver se ele retorna as alterações desejadas do SuccessFactors.

Cenários de write-back

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

Cenários com suporte para write-back de email e telefone

# Requisito do cenário Valor de sinalizador
de email principal
Telefone comercial
valor do sinalizador principal
Telefone celular
valor do sinalizador principal
Telefone comercial
mapping
Telefone celular
mapping
1 * Defina somente o email empresarial como principal.
* Não defina números de telefone.
true true false [Não definido] [Não definido]
2 * No SuccessFactors, o email empresarial e o telefone comercial são os principais
* Sempre direcione o número de telefone do Microsoft Entra para o telefone comercial e o número de celular para o telefone celular.
true true false telephoneNumber Serviço Móvel
3 * No SuccessFactors, o email empresarial e o telefone celular são os principais
* Sempre direcione o número de telefone do Microsoft Entra para o telefone comercial e o número de celular para o telefone celular
true false true telephoneNumber Serviço Móvel
4 * No SuccessFactors, o email empresarial é o principal.
* No Microsoft Entra ID, verifique se o número de telefone do trabalho está presente e, se estiver presente, verifique se o número do celular também está presente. Marque o número de telefone comercial como primário somente se o número de celular não estiver presente.
true 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") telephoneNumber Serviço Móvel
5 * No SuccessFactors, o email empresarial e o telefone comercial são os principais.
* No Microsoft Entra ID, se o número do celular estiver disponível, defina-o como o telefone comercial, caso contrário, use telephoneNumber.
true true false IIF(IsPresent([mobile]), [mobile], [telephoneNumber]) [Não definido]
  • Se não houver mapeamento do número de telefone no mapeamento de atributo de write-back, somente o email será incluído no write-back.
  • Durante a nova integração de contratação no Employee Central, o email empresarial e o número de telefone podem não estar disponíveis. Se a configuração de email empresarial e telefone comercial como principal for obrigatória durante a integração, você poderá definir um valor fictício para o email e o telefone comercial durante a criação de uma contratação. Após algum tempo, o aplicativo de write-back atualiza o valor.

Habilitar write-back com UserID

O aplicativo de write-back SuccessFactors usa a seguinte lógica para atualizar os atributos de objeto do usuário:

  • A primeira etapa é procurar o atributo userId no conjunto de alterações. Se ele estiver presente, o aplicativo usará "UserId" para fazer a chamada à API SuccessFactors.
  • Se userId não for encontrado, ele usará o valor do atributo personIdExternal.

Geralmente, 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 da SuccessFactors pode ter dois registros de emprego, um ativo e um inativo. Nesses cenários, para garantir que o write-back atualize o perfil do usuário ativo, atualize a configuração dos aplicativos de provisionamento do SuccessFactors conforme descrito. Essa configuração garante que o userId sempre esteja presente no conjunto de alterações visível para o conector e seja usado na chamada à API SuccessFactors.

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

    Mapeamento de atributo UserID de entrada

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

    Observação

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

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

    Mapeamento de atributo UserID de write-back

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

    Atualização do comportamento de fluxo de mapeamento

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

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

  • Em Employee Central, durante a integração, o email pessoal e o telefone pessoal são definidos como principal. O aplicativo de write-back não pode mudar essa configuração e definir o email e o telefone comercial como principais.
  • Em Employee Central, o telefone comercial é definido como principal. O aplicativo de write-back não pode alterar essa configuração e definir o telefone celular como principal.
  • O aplicativo de write-back não pode ler as configurações do sinalizador principal atual e usar os mesmos valores na operação de gravação. Os valores do sinalizador configurados no mapeamento de atributo sempre são usados.

Próximas etapas