Origem de lotes do SAP SuccessFactors

Esta página descreve como extrair dados de qualquer entidade no módulo SAP SuccessFactors Employee Central para o Google Cloud com o Cloud Data Fusion.

Para mais informações, consulte a vista geral do SAP no Google Cloud.

Antes de começar

Configure os seguintes sistemas e serviços usados pelo plug-in SAP SuccessFactors:

  1. Configure o sistema SAP SuccessFactors. Tem de configurar autorizações no seu sistema SAP.
  2. Implemente o plug-in do SAP SuccessFactors no Cloud Data Fusion. Tem de implementar uma versão do plug-in compatível com a versão do Cloud Data Fusion.
    • Se atualizar a versão da instância ou do plug-in do Cloud Data Fusion, avalie o impacto das alterações no âmbito funcional e no desempenho do pipeline.
  3. Estabeleça a conetividade entre o Cloud Data Fusion e o SAP SuccessFactors.
    • Certifique-se de que a comunicação está ativada entre a instância do Cloud Data Fusion e a instância do SAP SuccessFactors.
    • Para instâncias privadas, configure o intercâmbio da rede da VPC.

Configure o plug-in

  1. Aceda à interface Web do Cloud Data Fusion e clique em Studio.
  2. Verifique se a opção Data Pipeline - Batch está selecionada (e não Tempo Real).
  3. No menu Origem, clique em SuccessFactors. O nó SAP SuccessFactors é apresentado no seu pipeline.
  4. Para configurar a origem, aceda ao nó SAP SuccessFactors e clique em Propriedades.
  5. Introduza as seguintes propriedades. Para ver uma lista completa, consulte as Propriedades.

    1. Introduza uma etiqueta para o nó SAP SuccessFactors, por exemplo, SAP SuccessFactors tables.
    2. Introduza os detalhes da associação. Pode configurar uma nova associação única ou uma associação existente reutilizável.

      Ligação única

      Para adicionar uma associação única ao SAP, siga estes passos:

      1. Mantenha a opção Usar ligação desativada.
      2. Na secção Ligação, introduza as seguintes informações da conta SAP nestes campos:

        1. Faculte as credenciais do SAP.
        2. No campo URL base do SAP SuccessFactors, introduza o URL base da sua conta do SAP SuccessFactors.
        3. No campo Nome de referência, introduza um nome para a ligação que identifica esta origem para a linhagem.
        4. No campo Nome da entidade, introduza o nome da entidade que está a extrair, por exemplo, people.
        5. Para gerar um esquema com base nos metadados do SAP que mapeiam os tipos de dados do SAP para os tipos de dados do Cloud Data Fusion correspondentes, clique em Obter esquema. Para mais informações, consulte o artigo Mapeamentos de tipos de dados.
        6. No campo URL do proxy, introduza o URL do proxy, incluindo o protocolo, o endereço e a porta.
        7. Opcional: para otimizar a carga de carregamento do SAP, introduza as seguintes informações:

          1. Para extrair registos com base nas condições de seleção, clique em Opções de filtro e Selecionar campos.
          2. Em Expandir campos, introduza uma lista de campos de navegação a expandir nos dados de saída extraídos. Por exemplo, customManager.
          3. Em Parâmetros de consulta adicionais, introduza os parâmetros a adicionar ao URL, por exemplo, fromDate=2023-01-01&toDate=2023-01-31.
          4. No campo Nome da entidade associada, introduza o nome da entidade a extrair, por exemplo, EmpCompensationCalculated.
          5. No campo Tipo de paginação, introduza um tipo, por exemplo, Server-side pagination.

      Ligação reutilizável

      Para reutilizar uma associação existente, siga estes passos:

      1. Ative a opção Usar ligação.
      2. Clique em Procurar associações.
      3. Clique no nome da associação.

      Se não existir uma associação, crie uma associação reutilizável seguindo estes passos:

      1. Clique em Adicionar associação > SAP SuccessFactors.
      2. Na página Crie uma associação do SAP SuccessFactors que é aberta, introduza um nome e uma descrição da associação.
      3. Faculte as credenciais do SAP. Pode pedir ao administrador do SAP os valores do nome de utilizador e da palavra-passe de início de sessão do SAP.
      4. No campo URL do proxy, introduza o URL do proxy, incluindo o protocolo, o endereço e a porta.
      5. Clique em Criar.

Propriedades

Propriedade O modo macro está ativado Propriedade obrigatória Descrição
Etiqueta Não Sim O nome do nó no pipeline de dados.
Usar ligação Não Não Use uma ligação reutilizável. Se for usada uma associação, não tem de fornecer as credenciais. Para mais informações, consulte o artigo Faça a gestão das associações.
Nome Não Sim O nome da associação reutilizável.
Nome de referência Não Sim Identifica de forma exclusiva a origem da linhagem e anota os metadados.
URL base do SAP SuccessFactors Sim Sim O URL de base da API SuccessFactors.
Nome da entidade Sim Sim O nome da entidade a extrair. Não suporta entidades que tenham propriedades com o tipo de dados binário ou grandes volumes de dados. Por exemplo, UserBadges e BadgeTemplates não são suportados.
Nome de utilizador do SAP SuccessFactors Sim Sim O ID do utilizador para autenticação, semelhante a USER_ID@COMPANY_ID. Por exemplo, sfadmin@cymbalgroup.
Palavra-passe do SAP SuccessFactors Sim Sim A palavra-passe do SAP SuccessFactors para autenticação do utilizador.
Opções de filtro Sim Não A condição do filtro que restringe o volume de dados de saída, por exemplo, Price gt 200. Consulte as opções de filtro suportadas.
Selecionar campos Sim Não Campos a preservar nos dados extraídos. Por exemplo, Category, Price, Name, Address. Se o campo for deixado em branco, todos os campos de não navegação são preservados nos dados extraídos.

Todos os campos têm de estar separados por vírgulas (,).
Expandir campos Sim Não Lista de campos de navegação a expandir nos dados de saída extraídos. Por exemplo, customManager. Se uma entidade tiver registos hierárquicos, a origem produz um registo para cada linha na entidade que lê, com cada registo a conter um campo adicional que contém o valor da propriedade de navegação especificada nos campos Expandir.
Nome da entidade associada Sim Não Nome da entidade associada que está a ser extraída. Por exemplo, EmpCompensationCalculated.
Tipo de paginação Sim Sim O tipo de paginação a usar. A paginação do lado do servidor usa a paginação baseada em instantâneos. Se a paginação baseada em instantâneos for tentada numa entidade que não suporta a funcionalidade, o servidor força automaticamente a paginação de deslocamento do cliente na consulta.
Exemplos de entidades que só suportam paginação do lado do servidor: BadgeTemplates, UserBadges e EPCustomBackgroundPortlet. Não são transferidos registos se a paginação do lado do cliente for escolhida nestas entidades, uma vez que depende da API Count, que devolve -1 como resposta.

A predefinição é Paginação do lado do servidor.

Opções de filtro suportadas

Os seguintes operadores são suportados:

Operador Descrição Exemplo
Operadores lógicos
Eq Igual /EmpGlobalAssignment?$filter=assignmentClass eq 'GA'
Ne Não igual /RecurringDeductionItem?$filter=amount ne 18
Gt Superior a /RecurringDeductionItem?$filter=amount gt 4
Ge Maior ou igual a /RecurringDeductionItem?$filter=amount ge 18
Lt Inferior a /RecurringDeductionItem?$filter=amount lt 18
Le Inferior ou igual a /RecurringDeductionItem?$filter=amount le 20
And Lógico e /RecurringDeductionItem?$filter=amount le 20 and amount gt 4
Or Ou lógico /RecurringDeductionItem?$filter=amount le 20 or amount gt 4
Not Negação lógica /RecurringDeductionItem?$filter=not endswith(payComponentType, 'SUPSPEE_US')
Operadores aritméticos
Add Adição /RecurringDeductionItem?$filter=amount add 5 gt 18
Sub Subtração /RecurringDeductionItem?$filter=amount sub 5 gt 18
Mul Multiplicação /RecurringDeductionItem?$filter=amount mul 2 gt 18
Div Divisão /RecurringDeductionItem?$filter=amount div 2 gt 18
Mod Módulo /RecurringDeductionItem?$filter=amount mod 2 eq 0
Operadores de agrupamento
( ) Agrupamento de precedência /RecurringDeductionItem?$filter=(amount sub 5) gt 8

Mapeamentos de tipos de dados

A tabela seguinte é uma lista de tipos de dados SAP com os tipos de dados do Cloud Data Fusion correspondentes.

Tipo de dados do SuccessFactors Tipo de dados do esquema do Cloud Data Fusion
Binary Bytes
Boolean Boolean
Byte Bytes
DateTime DateTime
DateTimeOffset Timestamp_Micros
Decimal Decimal
Double Double
Float Float
Int16 Integer
Int32 Integer
Int64 Long
SByte Integer
String String
Time Time_Micros

Exemplos de utilização

O exemplo de utilização seguinte mostra os dados de um único funcionário na empresa EmployeePayrollRunResults:

Exemplo de propriedade Valor de exemplo
externalCode SAP_EC_PAYROLL_1000_0101201501312015_456_416
ID da pessoa 456
Utilizador user-1
ID de emprego 416
ID do fornecedor de processamento de salários SAP_EC_PAYROLL
Início do período de pagamento efetivo 01/01/2015
Fim do período de pagamento efetivo 31/01/2015
ID da empresa BestRun Germany (1000)
Pagamento 28/01/2015
Moeda EUR (EUR)
Tipo de execução da folha de pagamentos Normal (REGULAR)
ID do sistema X0B

O exemplo mostra os resultados de um funcionário em EmployeePayrollRunResults:

EmployeePayrollRunResults_externalCode EmployeePayrollRunResults_mdfSystemEffectiveStartDate amount createdBy createdDate
SAP_EC_PAYROLL_2800_0101201901312019_305_265 1/31/2019 0:00:00 70923.9 sfadmin 12/10/2019 15:32:20
SAP_EC_PAYROLL_2800_0101201901312019_310_270 1/31/2019 0:00:00 64500 sfadmin 12/10/2019 15:32:20
SAP_EC_PAYROLL_2800_0201201902282019_305_265 2/28/2019 0:00:00 70923.9 sfadmin 12/10/2019 15:32:20
SAP_EC_PAYROLL_2800_0201201902282019_310_270 2/28/2019 0:00:00 64500 sfadmin 12/10/2019 15:32:20
SAP_EC_PAYROLL_2800_0301201903312019_305_265 3/31/2019 0:00:00 70923.9 sfadmin 12/10/2019 15:32:20

Exemplo de pipeline

Veja exemplos de configurações no seguinte ficheiro JSON:

  {
      "artifact": {
          "name": "data-pipeline-1",
          "version": "DATA_FUSION_VERSION",
          "scope": "SYSTEM"
      },
      "description": "",
      "name": "Demo_SuccessFactors_BatchSource",
      "config": {
          "resources": {
              "memoryMB": 2048,
              "virtualCores": 1
          },
          "driverResources": {
              "memoryMB": 2048,
              "virtualCores": 1
          },
          "connections": [
              {
                  "from": "SAP SuccessFactors",
                  "to": "BigQuery"
              }
          ],
          "comments": [],
          "postActions": [],
          "properties": {},
          "processTimingEnabled": true,
          "stageLoggingEnabled": false,
          "stages": [
              {
                  "name": "SAP SuccessFactors",
                  "plugin": {
                      "name": "SuccessFactors",
                      "type": "batchsource",
                      "label": "SAP SuccessFactors",
                      "artifact": {
                          "name": "successfactors-plugins",
                          "version": "PLUGIN_VERSION",
                          "scope": "USER"
                      },
                      "properties": {
                        "useConnection": "false",
                        "username": "${username}",
                        "password": "${password}",
                        "baseURL": "${baseUrl}",
                        "referenceName": "test",
                        "entityName": "${EmpCompensation}",
                        "proxyUrl": "${ProxyUrl}",
                        "paginationType": "serverSide",
                        "initialRetryDuration": "2",
                        "maxRetryDuration": "300",
                        "maxRetryCount": "3",
                        "retryMultiplier": "2",
                        "proxyUsername": "${Proxyusername}",
                        "proxyPassword": "${Proxypassword}"
                      }
                  },
                  "outputSchema": [
                      {
                          "name": "etlSchemaBody",
                          "schema": ""
                      }
                  ],
                  "id": "SAP-SuccessFactors"
              },
              {
                  "name": "BigQuery",
                  "plugin": {
                      "name": "BigQueryTable",
                      "type": "batchsink",
                      "label": "BigQuery",
                      "artifact": {
                          "name": "google-cloud",
                          "version": "BIGQUERY_PLUGIN_VERSION",
                          "scope": "SYSTEM"
                      },
                      "properties": {
                        "useConnection": "false",
                        "project": "auto-detect",
                        "serviceAccountType": "filePath",
                        "serviceFilePath": "auto-detect",
                        "referenceName": "Reff",
                        "dataset": "SF_Aug",
                        "table": "testdata_proxy",
                        "operation": "insert",
                        "truncateTable": "true",
                        "allowSchemaRelaxation": "true",
                        "location": "US",
                        "createPartitionedTable": "false",
                        "partitioningType": "TIME",
                        "partitionFilterRequired": "false"
                      }
                  },
                  "outputSchema": [
                      {
                          "name": "etlSchemaBody",
                          "schema": ""
                      }
                  ],
                  "inputSchema": [
                      {
                          "name": "SAP SuccessFactors",
                          "schema": ""
                      }
                  ],
                  "id": "BigQuery"
              }
          ],
           "schedule": "0 1 */1 * *",
        "engine": "spark",
        "numOfRecordsPreview": 100,
        "rangeRecordsPreview": {
            "min": 1,
            "max": "5000"
        },
        "description": "Data Pipeline Application",
        "maxConcurrentRuns": 1,
        "pushdownEnabled": false,
        "transformationPushdown": {}
      }
  }
  

O que se segue?