Conectar Microsoft Dynamics a Experience Platform mediante la API Flow Service

Lea esta guía para saber cómo conectar su origen de Microsoft Dynamics a Adobe Experience Platform mediante la Flow Service API.

Introducción

Esta guía requiere una comprensión práctica de los siguientes componentes de Adobe Experience Platform:

  • Fuentes: Experience Platform permite la ingesta de datos de varias fuentes al tiempo que le ofrece la capacidad de estructurar, etiquetar y mejorar los datos entrantes mediante los servicios de Experience Platform.
  • Zonas protegidas: Experience Platform proporciona zonas protegidas virtuales que dividen una sola instancia de Experience Platform en entornos virtuales independientes para ayudar a desarrollar y evolucionar aplicaciones de experiencia digital.

Uso de API de Experience Platform

Para obtener información sobre cómo realizar llamadas correctamente a las API de Experience Platform, consulte la guía sobre introducción a las API de Experience Platform.

Las secciones siguientes proporcionan información adicional que necesitará conocer para conectar correctamente Experience Platform a una cuenta de Dynamics mediante la API Flow Service.

Recopilar credenciales necesarias

Para que Flow Service se conecte a Dynamics, debe proporcionar valores para las siguientes propiedades de conexión:

Autenticación básica
table 0-row-2 1-row-2 2-row-2 3-row-2
Credencial Descripción
serviceUri La URL de servicio de su instancia Dynamics.
username El nombre de usuario de su cuenta de usuario Dynamics.
password Contraseña de su cuenta de Dynamics.
Autenticación de clave y principal de servicio
table 0-row-2 1-row-2 2-row-2
Credencial Descripción
servicePrincipalId Identificador de cliente de su cuenta de Dynamics. Este ID es necesario cuando se utiliza la autenticación principal del servicio y basada en claves.
servicePrincipalKey La clave secreta principal de servicio. Esta credencial es necesaria cuando se utiliza la autenticación principal del servicio y basada en claves.

Para obtener más información sobre cómo empezar, consulte este Dynamics documento.

Crear una conexión base

TIP
Una vez creada, no se puede cambiar el tipo de autenticación de una conexión base de Dynamics. Para cambiar el tipo de autenticación, debe crear una nueva conexión base.

Una conexión base retiene información entre el origen y Experience Platform, incluidas las credenciales de autenticación del origen, el estado actual de la conexión y el identificador único de la conexión base. El ID de conexión base le permite explorar y navegar por archivos desde el origen e identificar los elementos específicos que desea introducir, incluida la información sobre sus tipos de datos y formatos.

Para crear un identificador de conexión base, realice una petición POST al extremo /connections y proporcione sus credenciales de autenticación Dynamics como parte de los parámetros de solicitud.

Formato de API

POST /connections
Autenticación básica

Para crear una conexión base de Dynamics con autenticación básica, realice una petición POST a la API Flow Service y proporcione los valores de serviceUri, username y password de la conexión.

Solicitud

La siguiente solicitud crea una conexión base para un origen de Dynamics mediante autenticación básica.

accordion
Seleccionar para ver ejemplo de solicitud
code language-shell
curl -X POST \
  'https://platform.adobe.io/data/foundation/flowservice/connections' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'Content-Type: application/json' \
  -d '{
      "name": "Dynamics connection",
      "description": "Dynamics connection using basic auth",
      "auth": {
          "specName": "Basic Authentication for Dynamics-Online",
          "params": {
              "serviceUri": "{SERVICE_URI}",
              "username": "{USERNAME}",
              "password": "{PASSWORD}"
          }
      },
      "connectionSpec": {
          "id": "38ad80fe-8b06-4938-94f4-d4ee80266b07",
          "version": "1.0"
      }
  }'
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2
Propiedad Descripción
auth.params.serviceUri URI de servicio asociado con la instancia Dynamics.
auth.params.username El nombre de usuario asociado con su cuenta de Dynamics.
auth.params.password La contraseña asociada a su cuenta de Dynamics.
connectionSpec.id Id. de especificación de conexión Dynamics: 38ad80fe-8b06-4938-94f4-d4ee80266b07

Respuesta

Una respuesta correcta devuelve la conexión base recién creada, incluido su identificador único (id).

accordion
Seleccione para ver el ejemplo de respuesta
code language-json
{
    "id": "4cb0c374-d3bb-4557-b139-5712880adc55",
    "etag": "\"9e0052a2-0000-0200-0000-5e35tb330000\""
}
Autenticación basada en clave principal de servicio

Para crear una conexión base Dynamics mediante la autenticación basada en claves principales de servicio, realice una petición POST a la API Flow Service y proporcione los valores de serviceUri, servicePrincipalId y servicePrincipalKey de la conexión.

Solicitud

La siguiente solicitud crea una conexión base para un origen de Dynamics mediante la autenticación básica basada en clave principal de servicio.

accordion
Seleccionar para ver ejemplo de solicitud
code language-shell
curl -X POST \
  'https://platform.adobe.io/data/foundation/flowservice/connections' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'Content-Type: application/json' \
  -d '{
      "name": "Dynamics connection",
      "description": "Dynamics connection using key-based authentication",
      "auth": {
          "specName": "Service Principal Key Based Authentication",
          "params": {
              "serviceUri": "{SERVICE_URI}",
              "servicePrincipalId": "{SERVICE_PRINCIPAL_ID}",
              "servicePrincipalKey": "{SERVICE_PRINCIPAL_KEY}"
          }
      },
      "connectionSpec": {
          "id": "38ad80fe-8b06-4938-94f4-d4ee80266b07",
          "version": "1.0"
      }
  }'
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2
Propiedad Descripción
auth.params.serviceUri URI de servicio asociado con la instancia Dynamics.
auth.params.servicePrincipalId Identificador de cliente de su cuenta de Dynamics. Este ID es necesario cuando se utiliza la autenticación principal del servicio y basada en claves.
auth.params.servicePrincipalKey La clave secreta principal de servicio. Esta credencial es necesaria cuando se utiliza la autenticación principal del servicio y basada en claves.
connectionSpec.id Id. de especificación de conexión Dynamics: 38ad80fe-8b06-4938-94f4-d4ee80266b07

Respuesta

Una respuesta correcta devuelve la conexión recién creada, incluido su identificador único (id).

accordion
Seleccione para ver el ejemplo de respuesta
code language-json
{
    "id": "4cb0c374-d3bb-4557-b139-5712880adc55",
    "etag": "\"9e0052a2-0000-0200-0000-5e35tb330000\""
}

Exploración de las tablas de datos

Para explorar las tablas de datos de Dynamics, realice una petición GET al extremo /connections/{BASE_CONNECTION_ID}/explore y proporcione el identificador de conexión base como parte de los parámetros de la consulta.

Formato de API

GET /connections/{BASE_CONNECTION_ID}/explore?objectType=root
Parámetros de consulta
Descripción
{BASE_CONNECTION_ID}
El ID de la conexión base. Utilice este ID para explorar el contenido y la estructura de su origen.

Solicitud

La siguiente solicitud recupera la lista de tablas y vistas disponibles para un origen de Dynamics con el identificador de conexión base: dd668808-25da-493f-8782-f3433b976d1e.

Seleccionar para ver ejemplo de solicitud
code language-shell
curl -X GET \
  'https://platform.adobe.io/data/foundation/flowservice/connections/dd668808-25da-493f-8782-f3433b976d1e/explore?objectType=root' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'Content-Type: application/json' \

Respuesta

Una respuesta correcta devuelve el directorio de tablas y vistas Dynamics en el nivel raíz.

Seleccione para ver el ejemplo de respuesta
code language-json
[
    {
        "type": "table",
        "name": "systemuserlicenses",
        "path": "systemuserlicenses",
        "canPreview": true,
        "canFetchSchema": true
    },
    {
        "type": "table",
        "name": "Process Dependency",
        "path": "workflowdependency",
        "canPreview": true,
        "canFetchSchema": true
    },
    {
        "type": "view",
        "name": "accountView1",
        "path": "accountView1",
        "canPreview": true,
        "canFetchSchema": true
    },
    {
        "type": "view",
        "name": "Inactive_ACC_custom",
        "path": "Inactive_ACC_custom",
        "canPreview": true,
        "canFetchSchema": true
    }
]

Utilice la clave principal para optimizar la exploración de datos

NOTE
Solo puede utilizar atributos que no sean de búsqueda cuando utilice el enfoque de clave principal para la optimización.

Puede optimizar las consultas de exploración proporcionando primaryKey como parte de los parámetros de consulta. Debe especificar la clave principal de la tabla Dynamics al incluir primaryKey como parámetro de consulta.

Formato de API

GET /connections/{BASE_CONNECTION_ID}/explore?preview=true&object={OBJECT}&objectType={OBJECT_TYPE}&previewCount=10&primaryKey={PRIMARY_KEY}
Parámetros de consulta
Descripción
{BASE_CONNECTION_ID}
El ID de la conexión base. Utilice este ID para explorar el contenido y la estructura de su origen.
preview
Un valor booleano que permite la previsualización de datos.
{OBJECT}
El objeto Dynamics que desea explorar.
{OBJECT_TYPE}
Tipo del objeto.
previewCount
Restricción que limita la vista previa devuelta a un determinado número de registros.
{PRIMARY_KEY}
Clave principal de la tabla que está recuperando para vista previa.

Solicitud

Seleccionar para ver ejemplo de solicitud
code language-shell
curl -X GET \
  'https://platform-stage.adobe.io/data/foundation/flowservice/connections/dd668808-25da-493f-8782-f3433b976d1e/explore?preview=true&object=lead&objectType=table&previewCount=10&primaryKey=leadid' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'Content-Type: application/json' \

Inspeccionar la estructura de una tabla

Para inspeccionar la estructura de una tabla específica, realice una petición GET a /connections/{BASE_CONNECTION_ID}/explore y proporcione la ruta de acceso a la tabla específica como parámetro de consulta.

Formato de API

GET /connections/{BASE_CONNECTION_ID}/explore?object={TABLE_PATH}&objectType=table
Parámetro de consulta
Descripción
{BASE_CONNECTION_ID}
El ID de la conexión base. Utilice este ID para explorar el contenido y la estructura de su origen.
{TABLE_PATH}
La ruta a la tabla concreta que desea explorar.

Solicitud

La siguiente solicitud recupera la estructura y el contenido de una tabla Dynamics con la ruta de acceso workflowdependency.

Seleccionar para ver ejemplo de solicitud
code language-shell
curl -X GET \
  'https://platform.adobe.io/data/foundation/flowservice/connections/dd668808-25da-493f-8782-f3433b976d1e/explore?object=workflowdependency&objectType=table' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'Content-Type: application/json' \

Respuesta

Una respuesta correcta devuelve el contenido de la ruta workflowdependency.

Seleccione para ver el ejemplo de respuesta
code language-json
{
    "format": "flat",
    "schema": {
        "columns": [
            {
                "name": "first_name",
                "type": "string",
                "meta": {
                    "originalType": "String"
                }
            },
            {
                "name": "last_name",
                "type": "string",
                "meta": {
                    "originalType": "String"
                }
            },
            {
                "name": "email",
                "type": "string",
                "meta": {
                    "originalType": "String"
                }
            }
        ]
    }
}

Inspeccionar la estructura de una vista

En Dynamics, una vista hace referencia a las columnas que se van a mostrar, al ancho de cada columna, al sistema predeterminado en el que se ordena una lista de registros y a los filtros predeterminados aplicados para restringir qué registros aparecerán en la lista.

Para inspeccionar la estructura de una vista, realice una petición GET a /connections/{BASE_CONNECTION_ID}/explore y especifique la ruta de la vista en los parámetros de la consulta. Además, debe especificar objectType como view.

Formato de API

GET /connections/{BASE_CONNECTION_ID}/explore?object={VIEW_PATH}&objectType=view
Parámetro de consulta
Descripción
{BASE_CONNECTION_ID}
El ID de la conexión base. Utilice este ID para explorar el contenido y la estructura de su origen.
{VIEW_PATH}
La ruta a la vista que desea inspeccionar.

Solicitud

La siguiente solicitud recupera accountView1.

Seleccionar para ver ejemplo de solicitud
code language-shell
curl -X GET \
  'https://platform.adobe.io/data/foundation/flowservice/connections/dd668808-25da-493f-8782-f3433b976d1e/explore?object=accountView1&objectType=view' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'Content-Type: application/json' \

Respuesta

Una respuesta correcta devuelve la estructura de accountView1.

Seleccione para ver el ejemplo de respuesta
code language-json
{
    "format": "flat",
    "schema": {
        "columns": [
            {
                "name": "name",
                "type": "string",
                "meta": {
                    "originalType": "string"
                },
                "xdm": {
                    "type": "string"
                }
            },
            {
                "name": "fetchxml",
                "type": "string",
                "meta": {
                    "originalType": "string"
                },
                "xdm": {
                    "type": "string"
                }
            },
            {
                "name": "querytype",
                "type": "integer",
                "meta": {
                    "originalType": "int"
                },
                "xdm": {
                    "type": "integer",
                    "minimum": -2147483648,
                    "maximum": 2147483647
                }
            },
            {
                "name": "userqueryid",
                "type": "string",
                "meta": {
                    "originalType": "guid"
                },
                "xdm": {
                    "type": "string"
                }
            }
        ]
    }
}

Vista previa del tipo de entidad

Para obtener una vista previa del contenido de una vista, realice una petición GET a /connections/{BASE_CONNECTION_ID}/explore e incluya la ruta de acceso de la vista y preview=true en los parámetros de la consulta.

Formato de API

GET /connections/{BASE_CONNECTION_ID}/explore?object={VIEW_PATH}&preview=true&objectType=view
Parámetro de consulta
Descripción
{BASE_CONNECTION_ID}
El ID de la conexión base. Utilice este ID para explorar el contenido y la estructura de su origen.
{VIEW_PATH}
La ruta a la vista que desea inspeccionar.

Solicitud

La siguiente solicitud obtiene una vista previa del contenido de accountView1.

Seleccionar para ver ejemplo de solicitud
code language-shell
curl -X GET \
  'https://platform.adobe.io/data/foundation/flowservice/connections/dd668808-25da-493f-8782-f3433b976d1e/explore?object=accountView1&preview=true&objectType=view' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'Content-Type: application/json' \

Respuesta

Una respuesta correcta devuelve el contenido de accountView1.

Seleccione para ver el ejemplo de respuesta
code language-json
{
    "format": "flat",
    "schema": {
        "columns": [
            {
                "name": "emailaddress1",
                "type": "string",
                "meta": {
                    "originalType": "string"
                },
                "xdm": {
                    "type": "string"
                }
            },
            {
                "name": "contactid",
                "type": "string",
                "meta": {
                    "originalType": "guid"
                },
                "xdm": {
                    "type": "string"
                }
            },
            {
                "name": "fullname",
                "type": "string",
                "meta": {
                    "originalType": "string"
                },
                "xdm": {
                    "type": "string"
                }
            }
        ]
    },
    "data": [
        {
            "contactid": "396e19de-0852-ec11-8c62-00224808a1df",
            "fullname": "Tim Barr",
            "emailaddress1": "barrtim@googlemedia.com"
        }
    ]
}

Crear una conexión de origen para la vista de ingesta

Para crear una conexión de origen e introducir una vista, realice una petición POST al extremo /sourceConnections, proporcione el nombre de la tabla y especifique entityType como view en el cuerpo de la solicitud.

Formato de API

POST /sourceConnections

Solicitud

La siguiente solicitud crea una conexión de origen Dynamics e introduce vistas.

Seleccionar para ver ejemplo de solicitud
code language-shell
curl -X POST \
  'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'Content-Type: application/json' \
  -d '{
      "name": "Dynamics Source Connection",
      "description": "Dynamics Source Connection",
      "baseConnectionId": "dd668808-25da-493f-8782-f3433b976d1e",
      "data": {
          "format": "tabular",
          "schema": null,
          "properties": null
      },
      "params": {
          "tableName": "Contacts with name TIM",
          "entityType": "view"
      },
      "connectionSpec": {
          "id": "38ad80fe-8b06-4938-94f4-d4ee80266b07",
          "version": "1.0"
      }
  }'

Respuesta

Una respuesta correcta devuelve el ID de la conexión de origen recién generado y su etiqueta correspondiente.

Seleccione para ver el ejemplo de respuesta
code language-json
{
    "id": "e566bab3-1b58-428c-b751-86b8cc79a3b4",
    "etag": "\"82009592-0000-0200-0000-678121030000\""
}

Utilice la clave principal para optimizar el flujo de datos

También puede optimizar el flujo de datos de Dynamics especificando la clave principal como parte de los parámetros del cuerpo de la solicitud.

Formato de API

POST /sourceConnections

Solicitud

La siguiente solicitud crea una conexión de origen Dynamics al especificar la clave principal como contactid.

Seleccionar para ver ejemplo de solicitud
code language-shell
curl -X POST \
  'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'Content-Type: application/json' \
  -d '{
      "name": "Dynamics Source Connection",
      "description": "Dynamics Source Connection",
      "baseConnectionId": "dd668808-25da-493f-8782-f3433b976d1e",
      "data": {
          "format": "tabular"
      },
      "params": {
          "tableName": "contact",
          "primaryKey": "contactid"
      },
      "connectionSpec": {
          "id": "38ad80fe-8b06-4938-94f4-d4ee80266b07",
          "version": "1.0"
      }
  }'
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2
Propiedad Descripción
baseConnectionId El ID de la conexión base.
data.format El formato de los datos.
params.tableName Nombre de la tabla de Dynamics.
params.primaryKey Clave principal de la tabla que optimizará las consultas.
connectionSpec.id Id. de especificación de conexión que corresponde al origen Dynamics.

Respuesta

Una respuesta correcta devuelve el ID de la conexión de origen recién generado y su etiqueta correspondiente.

Seleccione para ver el ejemplo de respuesta
code language-json
{
    "id": "e566bab3-1b58-428c-b751-86b8cc79a3b4",
    "etag": "\"82009592-0000-0200-0000-678121030000\""
}

Pasos siguientes

Siguiendo este tutorial, ha creado una conexión base Microsoft Dynamics mediante la API Flow Service. Puede utilizar este ID de conexión base en los siguientes tutoriales:

recommendation-more-help
337b99bb-92fb-42ae-b6b7-c7042161d089