Fuente de lotes de SAP SuccessFactors

En esta página, se describe cómo extraer datos de cualquier entidad dentro del módulo de la Central para empleados de SAP SuccessFactors aGoogle Cloud con Cloud Data Fusion.

Para obtener más información, consulta la descripción general de SAP en Google Cloud.

Antes de comenzar

Configura los siguientes sistemas y servicios que usa el complemento SAP SuccessFactors:

  1. Configura el sistema SAP SuccessFactors. Debes configurar permisos en tu sistema SAP.
  2. Implementa el complemento SAP SuccessFactors en Cloud Data Fusion. Debes implementar una versión del complemento que sea compatible con la versión de Cloud Data Fusion.
    • Si actualizas la versión de tu instancia o complemento de Cloud Data Fusion, evalúa el impacto de los cambios en el alcance funcional y el rendimiento de la canalización.
  3. Establece conectividad entre Cloud Data Fusion y SAP SuccessFactors.
    • Asegúrate de que la comunicación esté habilitada entre la instancia de Cloud Data Fusion y la instancia de SAP SuccessFactors.
    • Para las instancias privadas, configura el intercambio de tráfico entre redes de VPC.

Configura el complemento

  1. Ve a la interfaz web de Cloud Data Fusion y haz clic en Studio.
  2. Verifica que esté seleccionada la opción Data Pipeline - Batch (no Realtime).
  3. En el menú Source, haz clic en SuccessFactors. El nodo SAP SuccessFactors aparecerá en tu canalización.
  4. Para configurar la fuente, ve al nodo de SAP SuccessFactors y haz clic en Properties.
  5. Ingresa las siguientes propiedades. Para obtener una lista completa, consulta Propiedades.

    1. Ingresa una Etiqueta para el nodo SAP SuccessFactors, por ejemplo, SAP SuccessFactors tables.
    2. Ingresa los detalles de la conexión. Puedes configurar una conexión nueva y única, o una conexión existente y reutilizable.

      Conexión única

      Para agregar una conexión única a SAP, sigue estos pasos:

      1. Mantén desactivada la opción Usar conexión.
      2. En la sección Connection, ingresa la siguiente información de la cuenta de SAP en estos campos:

        1. Proporciona las credenciales de SAP.
        2. En el campo URL base de SAP SuccessFactors, ingresa la URL base de tu cuenta de SAP SuccessFactors.
        3. En el campo Reference name, ingresa un nombre para la conexión que identifica esta fuente para el linaje.
        4. En el campo Nombre de la entidad, ingresa el nombre de la entidad que extraes, por ejemplo, people.
        5. Para generar un esquema basado en los metadatos de SAP que asigne los tipos de datos de SAP a los tipos de datos de Cloud Data Fusion correspondientes, haz clic en Obtener esquema. Para obtener más información, consulta Asignaciones de tipos de datos.
        6. En el campo URL del proxy, ingresa la URL del proxy, incluido el protocolo, la dirección y el puerto.
        7. Opcional: Para optimizar la carga de transferencia de SAP, ingresa la siguiente información:

          1. Para extraer registros según las condiciones de selección, haz clic en Filtrar opciones y Seleccionar campos.
          2. En Expandir campos, ingresa una lista de campos de navegación que se expandirán en los datos de salida extraídos. Por ejemplo, customManager
          3. En Parámetros de consulta adicionales, ingresa los parámetros que deseas agregar a la URL, por ejemplo, fromDate=2023-01-01&toDate=2023-01-31.
          4. En el campo Nombre de la entidad asociada, ingresa el nombre de la entidad que se extraerá, por ejemplo, EmpCompensationCalculated.
          5. En el campo Tipo de paginación, ingresa un tipo, por ejemplo, Server-side pagination.

      Conexión reutilizable

      Para volver a usar una conexión existente, sigue estos pasos:

      1. Activa Usar conexión.
      2. Haz clic en Browse connections.
      3. Haz clic en el nombre de la conexión.

      Si no existe una conexión, sigue estos pasos para crear una conexión reutilizable:

      1. Haz clic en Agregar conexión > SAP SuccessFactors.
      2. En la página Crear una conexión de SAP SuccessFactors que se abre, ingresa un nombre y una descripción para la conexión.
      3. Proporciona las credenciales de SAP. Puedes pedirle al administrador de SAP los valores del nombre de usuario y la contraseña de acceso a SAP.
      4. En el campo URL del proxy, ingresa la URL del proxy, incluido el protocolo, la dirección y el puerto.
      5. Haz clic en Crear.

Propiedades

Propiedad Macro habilitada Propiedad obligatoria Descripción
Etiqueta No Es el nombre del nodo en tu canalización de datos.
Cómo usar la conexión No No Usa una conexión reutilizable. Si se usa una conexión, no necesitas proporcionar las credenciales. Para obtener más información, consulta Administra conexiones.
Nombre No Es el nombre de la conexión reutilizable.
Nombre de referencia No Identifica de forma única la fuente del linaje y anota los metadatos.
URL base de SAP SuccessFactors La URL base de la API de SuccessFactors.
Nombre de la entidad Es el nombre de la entidad que se extraerá. No admite entidades que tengan propiedades con el tipo de datos binario ni volúmenes grandes de datos. Por ejemplo, UserBadges y BadgeTemplates no son compatibles.
Nombre de usuario de SAP SuccessFactors El ID de usuario para la autenticación, similar a USER_ID@COMPANY_ID Por ejemplo, sfadmin@cymbalgroup.
Contraseña de SAP SuccessFactors La contraseña de SAP SuccessFactors para la autenticación del usuario
Opciones de filtro No La condición del filtro que restringe el volumen de datos de salida, por ejemplo, Price gt 200. Consulta las opciones de filtro compatibles.
Selecciona campos No Son los campos que se conservarán en los datos extraídos. Por ejemplo, Category, Price, Name, Address. Si el campo se deja en blanco, se conservarán todos los campos que no sean de navegación en los datos extraídos.

Todos los campos deben estar separados por comas (,).
Expandir campos No Es la lista de campos de navegación que se expandirán en los datos de salida extraídos. Por ejemplo, customManager. Si una entidad tiene registros jerárquicos, la fuente genera un registro para cada fila de la entidad que lee, y cada registro contiene un campo adicional que contiene el valor de la propiedad de navegación especificada en Expandir campos.
Nombre de la entidad asociada No Es el nombre de la entidad asociada que se extrae. Por ejemplo, EmpCompensationCalculated.
Tipo de paginación Es el tipo de paginación que se usará. La paginación del servidor usa la paginación basada en instantáneas. Si se intenta la paginación basada en instantáneas en una entidad que no admite la función, el servidor aplica automáticamente la paginación con desplazamiento del cliente en la consulta.
Algunos ejemplos de entidades que solo admiten la paginación del servidor son BadgeTemplates, UserBadges y EPCustomBackgroundPortlet. No se transfieren registros si se elige la paginación del cliente en estas entidades, ya que se basa en la API de Count, que muestra -1 como respuesta.

El valor predeterminado es Paginación del servidor.

Opciones de filtro compatibles

Se admiten los operadores siguientes:

Operador Descripción Ejemplo
Operadores lógicos
Eq Igual /EmpGlobalAssignment?$filter=assignmentClass eq 'GA'
Ne No igual /RecurringDeductionItem?$filter=amount ne 18
Gt Mayor que /RecurringDeductionItem?$filter=amount gt 4
Ge Mayor o igual que /RecurringDeductionItem?$filter=amount ge 18
Lt Menor que /RecurringDeductionItem?$filter=amount lt 18
Le Menor o igual que /RecurringDeductionItem?$filter=amount le 20
And Lógica y /RecurringDeductionItem?$filter=amount le 20 and amount gt 4
Or O lógico /RecurringDeductionItem?$filter=amount le 20 or amount gt 4
Not Negación lógica /RecurringDeductionItem?$filter=not endswith(payComponentType, 'SUPSPEE_US')
Operadores aritméticos
Add Suma /RecurringDeductionItem?$filter=amount add 5 gt 18
Sub Resta /RecurringDeductionItem?$filter=amount sub 5 gt 18
Mul Multiplicación /RecurringDeductionItem?$filter=amount mul 2 gt 18
Div División /RecurringDeductionItem?$filter=amount div 2 gt 18
Mod Módulo /RecurringDeductionItem?$filter=amount mod 2 eq 0
Operadores de agrupación
( ) Agrupación de prioridad /RecurringDeductionItem?$filter=(amount sub 5) gt 8

Asignaciones de tipos de datos

La siguiente tabla es una lista de los tipos de datos de SAP con los tipos de Cloud Data Fusion correspondientes.

Tipo de datos de SuccessFactors Tipo de datos del esquema de 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

Casos de uso

En el siguiente ejemplo de caso de uso, se muestran los datos de un solo empleado en EmployeePayrollRunResults:

Ejemplo de propiedad Valor de ejemplo
externalCode SAP_EC_PAYROLL_1000_0101201501312015_456_416
ID de la persona 456
Usuario user-1
ID de empleo 416
ID del proveedor de nómina SAP_EC_PAYROLL
Inicio del período de pago efectivo 1/1/2015
Fin del Período de Pago Efectivo 31/1/2015
ID de la empresa BestRun Alemania (1,000)
Pago 28/1/2015
Moneda EUR (EUR)
Tipo de ejecución de nómina Normal (REGULAR)
ID del sistema X0B

En el ejemplo, se muestran los resultados de un empleado en 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

Canalización de ejemplo

Consulta las configuraciones de muestra en el siguiente archivo 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": {}
      }
  }
  

¿Qué sigue?