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:
- Provisionamento de usuário do SuccessFactors para o Active Directory local
- Provisionamento de usuário do SuccessFactors para o Microsoft Entra
- Write-back do SuccessFactors
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 IPs permitidos do SuccessFactors:
- Baixe os Intervalos de IP mais recentes para a nuvem pública do Azure.
- Abra o arquivo e procure pela tag
AzureActiveDirectory
. - 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.
- Converta os valores de CIDR em intervalos de IP.
- 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, ele criará uma entrada no destino.
Para validar os dados retornados pelo ponto de extremidade de API OData para um personIdExternal
específico, atualize o SuccessFactorsAPIEndpoint
na consulta da API com o seu URL do servidor do data center da API e use uma ferramenta como cURL ou o Explorador do Graph 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 ID 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 cURL ou Explorador do Graph 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:
- 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. - O atributo
startDate
deve estar disponível e seu JSONPath deve ser definido como$.employmentNav.results[0].startDate
ou$.employmentNav.results[-1:].startDate
. - 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:
Navegue até Aplicativos Empresariais ->Aplicativo SuccessFactors ->Provisionamento ->Editar Provisionamento ->página de mapeamento de atributo.
Role para baixo e clique em Mostrar opções avançadas.
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.
A coluna Expressão da API nessa exibição mostra as expressões JSONPath usadas pelo conector.
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
- Como recuperar atributos personalizados
- Como mapear o status do emprego para o status da conta
- Lidando com cenários de conversão e recontratação de trabalhadores
- Como recuperar o registro de emprego ativo atual
- Como administrar o cenário de atribuição global
- Como administrar o cenário de trabalhos simultâneos
- Recuperar detalhes da posição
- Provisionamento de usuários no módulo Integração
- Como habilitar os logs de auditoria da API do OData no SuccessFactors
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:
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
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.
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 entidadeemploymentNav
, 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
- Exemplo 1: digamos que você queira adicionar o atributo
Salve o esquema.
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:
- Edite a lista de atributos do SuccessFactors para adicionar um novo atributo chamado empJobNavCustomString35.
- Defina a expressão da API JSONPath para esse atributo como:
$.employmentNav.results[0].jobInfoNav.results[0].customString35
- Salve e recarregue a alteração de mapeamento no centro de administração do Microsoft Entra.
- Na folha de mapeamento de atributo, mapeie empJobNavCustomString35 para physicalDeliveryOfficeName.
- 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.
- 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.
- 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 objetopersonEmpTerminationInfoNav
é 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.
Abra a folha de mapeamento de atributo do seu aplicativo de provisionamento SuccessFactors.
Em Mostrar opções avançadas, clique em Editar lista de atributos do SuccessFactors.
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.Salve as alterações.
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")
Salve as alterações.
Teste a configuração usando o provisionamento sob demanda.
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:
Abra a folha de mapeamento de atributo do seu aplicativo de provisionamento SuccessFactors.
Role para baixo e clique em Mostrar opções avançadas.
Clique no link Examinar o seu esquema aqui para abrir o editor de esquema.
Clique no link Baixar para salvar uma cópia do esquema antes de editar.
No editor de esquema, pressione a tecla Ctrl-H para abrir o controle localizar/substituir.
Na caixa de texto Localizar, copie e cole o valor
$.employmentNav.results[0]
Na caixa de texto Substituir, copie e cole o valor
$.employmentNav.results[-1:]
. Essa expressão JSONPath retorna o registro de EmpEmployment mais recente.Clique na opção "substituir tudo" para atualizar o esquema.
Salve o esquema.
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
- JSONPath antigo:
Teste a configuração usando o provisionamento sob demanda.
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.
Abra a folha de mapeamento de atributo do seu aplicativo de provisionamento SuccessFactors.
Role para baixo e clique em Mostrar opções avançadas.
Clique no link Examinar o seu esquema aqui para abrir o editor de esquema.
Clique no link Baixar para salvar uma cópia do esquema antes de editar.
No editor de esquema, pressione a tecla Ctrl-H para abrir o controle localizar/substituir.
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. Salve o esquema.
O processo acima atualiza todas as expressões JSONPath.
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 atributostartDate
e defina-o como o valor$.employmentNav.results[-1:].startDate
Salve o esquema.
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")
Salve suas alterações. 1.
Teste a configuração usando o provisionamento sob demanda.
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:
Abra a folha de mapeamento de atributo do seu aplicativo de provisionamento SuccessFactors.
Role para baixo e clique em Mostrar opções avançadas.
Clique no link Examinar o seu esquema aqui para abrir o editor de esquema.
Clique no link Baixar para salvar uma cópia do esquema antes de editar.
No editor de esquema, pressione a tecla Ctrl-H para abrir o controle localizar/substituir.
Na caixa de texto Localizar, copie e cole o valor
$.employmentNav.results[0]
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.Clique na opção "substituir tudo" para atualizar o esquema.
Salve o esquema.
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
- JSONPath antigo:
Recarregue a folha de mapeamento de atributo do aplicativo.
Role para baixo e clique em Mostrar opções avançadas.
Clique em Editar lista de atributos do SuccessFactors.
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
.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])
Salve o mapeamento.
Teste a configuração usando o provisionamento sob demanda.
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:
- Abra a folha de mapeamento de atributo do seu aplicativo de provisionamento SuccessFactors.
- Role para baixo e clique em Mostrar opções avançadas.
- Clique em Editar lista de atributos do SuccessFactors.
- 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
- 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.
- Salve o mapeamento.
- Teste a configuração usando o provisionamento sob demanda.
- 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:
- Abra a folha de mapeamento de atributo do seu aplicativo de provisionamento SuccessFactors.
- Em Mostrar opções avançadas, edite a lista de atributos do SuccessFactors para adicionar um novo atributo chamado
userStatus
. - Defina a expressão da API JSONPath para esse atributo como:
$.employmentNav.results[0].userNav.status
- Salve o esquema para voltar à folha de mapeamento de atributos.
- Editar o escopo do Objeto de Origem para aplicar um filtro de escopo
userStatus NOT EQUALS
- 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 payload da solicitação enviada pelo Microsoft Entra ID nos logs de auditoria. Para solucionar problemas, você pode copiar esse conteúdo de solicitação em uma ferramenta como o cURL ou o Explorador do Graph, configurá-lo para usar o mesmo usuário da API que é usado pelo conector e ver se 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.
- Abra o aplicativo de provisionamento do usuário do SuccessFactors para o Microsoft Entra ou do SuccessFactors para o AD local.
- Certifique-se de que o
extensionAttribute[1-15]
no Microsoft Entra ID sempre armazene ouserId
do registro de emprego ativo de todos os trabalhadores. O registro mapeia o atributouserId
do SuccessFactors comoextensionAttribute[1-15]
no Microsoft Entra ID. - 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.
- Salve o mapeamento.
- 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.
- Abra o aplicativo de write-back SuccessFactors no portal do Azure.
- Mapeie o extensionAttribute desejado que contém o valor de userId para o atributo userId do SuccessFactors.
- Salve o mapeamento.
- Vá para Mapeamento de atributo -> Avançado -> Revisar Esquema para abrir o editor de esquema JSON.
- Baixe uma cópia do esquema como backup.
- 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.
- Atualize o atributo flowBehavior de "FlowWhenChanged" para "FlowAlways" como mostrado.
- 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.