Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Para crear un nuevo proveedor, use los siguientes pasos. También puede seguir estos pasos para realizar adiciones a los proveedores existentes.
Definir la arquitectura del proveedor
Antes de crear un proveedor, comprenda lo que quiere que haga el proveedor y para lo que quiere que lo use. Los proveedores tienen varios componentes y es posible que no necesite todos los componentes.
Use la tabla siguiente para determinar qué componentes necesita.
| Condición | Componente necesario |
|---|---|
| El servicio para el que desea crear un proveedor no tiene un conector en Power Automate.
Para más información, consulte Lista de todos los conectores de Power Automate. |
Cree un conector de cliente o utilice un conector genérico. |
| El proveedor intercambia datos entre un servicio externo y Microsoft Dataverse. | Tu proveedor necesita una transformación del proveedor. Agregue un componente de transformación de proveedor para cada transformación. |
| Su proveedor ejecutará la lógica desde el diseñador de orquestación. | Cree un flujo distinto de Power Automate para representar cada una de las acciones. |
| Su proveedor necesita procesar mensajes de un servicio externo. | Cree un flujo de controlador de mensajes de Power Automate. |
| El proveedor extrae mensajes de un servicio externo a intervalos regulares. | Cree un flujo de extractor de mensajes de Power Automate. |
| Su proveedor generará eventos de negocio que no están definidos actualmente en Intelligent Order Management. | Cree una nueva definición de evento de negocio y agregue eventos existentes. |
Cuando tenga una buena comprensión de las soluciones, continúe con la implementación del proveedor.
Crear una solución de proveedor
Complete las siguientes tareas para crear una solución de proveedor:
Configurar un proveedor personalizado.
Agregar una definición de proveedor.
Agregar los componentes a su solución.
Configurar un proveedor personalizado
Cree una solución en Power Apps para albergar los componentes de su proveedor. Para conocer los pasos para crear una nueva solución en Power Apps, consulte Creación de una solución en Power Apps.
Agregar una definición de proveedor
Una definición de proveedor contiene detalles sobre su proveedor. La definición determina cómo aparece el proveedor en el catálogo de proveedores.
En la solución de proveedor que creó, seleccione Nuevo.
Seleccione IOMDefinición de proveedor.
Agregue los siguientes detalles:
Nombre para mostrar: el nombre que desea asignar al proveedor, por ejemplo, "Proveedor de pruebas".
Nombre lógico: la clave de exportación de su proveedor.
Descripción: texto para describir lo que hace su proveedor.
Seleccione Guardar.
Si desea agregar un logotipo, cargue la imagen.
Valide que la definición de su proveedor aparezca en la solución. Debería mostrarse un registro con el tipo de componente Definición de proveedor de IOM. Si no se muestra, seleccione Agregar existente y, a continuación, seleccione el registro que creó.
Valide que su proveedor aparezca en el Catálogo de proveedores. Si establece el campo Is Active en Sí, la definición del proveedor se muestra en el catálogo de proveedores. Abra Intelligent Order Management. Vaya a Proveedores > Catálogo. Compruebe que se muestra la definición de su proveedor.
Agregar componentes a la solución
Después de crear su definición de proveedor, agregue los componentes del proveedor a la solución.
Vaya a su solución.
Seleccionar Agregar existente.
Seleccione el tipo de componente Intelligent Order Management y, a continuación, seleccione el registro que creó.
Crear una transformación de proveedor
Si el proveedor requiere una transformación, agregue un componente de transformación de proveedor a la solución. Es posible que tenga que crear varias transformaciones.
En la solución del proveedor, seleccione Nuevo.
Seleccione Transformación de definición de proveedor de IOM.
Agregue los siguientes detalles:
Nombre para mostrar: el nombre de su transformación de proveedor; por ejemplo, "Transformar pedidos de ventas".
Nombre lógico: el identificador único de su proveedor. Este valor es la clave de importación y exportación de los datos. Debe comenzar con el prefijo del editor. Por ejemplo, Microsoft utiliza el prefijo de editor msdyn_. Estos son algunos ejemplos de nombre lógico: msdyn_flexe_fulfillmentorderproduct_orderline, y msdyn_flexe_fulfillmentorder_order.
Tipo de origen: este campo indica qué tipo de datos se reciben. Hay dos opciones disponibles: JsonDocument o Dataverse Entity. Si sus datos ya están en Dataverse, seleccione Entidad de Dataverse. Si no, seleccione JsonDocument. El elemento de Power Automate que define usa esta información para buscar la transformación.
Nombre del objeto de origen: el nombre de los datos que va a transformar. Si va a transformar un registro de Dataverse, asegúrese de que el nombre del objeto de origen sea el mismo que en la tabla dataverse.
Nombre del objeto de destino: el destino del registro que desea transformar.
Transformación: Power Query Online MQuery que se utilizará para transformar los datos de entrada. Para más información sobre Power Query y MQuery, consulte ¿Qué es Power Query? y Referencia de fórmulas del lenguaje M de Power Query. A continuación se muestra un ejemplo de una MQuery que transforma un pedido de ventas de un servicio de pedido externo en un pedido de ventas en Intelligent Order Management.
shared TransformSourceData =
let
orderItems = Source\[OrderItems\],
orderheader =
Record.FromTable
(
Table.SelectRows
(
Record.ToTable
(
\[
ordernumber = Record.FieldOrDefault(Source, "SellerOrderId", Text.From(Source\[OrderServiceOrderId\])),
name = ordernumber,
msdyn\_ExternalOrderId = Text.From(Source\[OrderServiceOrderId\]),
\#"customerid\_account@odata.bind" = "/accounts(" & Text.From(Source\[accountid\]) & ")",
\#"pricelevelid@odata.bind" = "/pricelevels(" & Text.From(Source\[pricelevelid\]) & ")",
totalamount = if Record.HasFields(Source, "OrderTotal") then Decimal.From(Record.FieldOrDefault(Source\[OrderTotal\], "Amount")) else null,
shipto\_name = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "Name") else null,
shipto\_contactname = shipto\_name,
shipto\_line1 = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "AddressLine1") else null,
shipto\_line2 = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "AddressLine2") else null,
shipto\_line3 = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "AddressLine3") else null,
shipto\_city = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "City") else null,
shipto\_stateorprovince = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "StateOrRegion") else null,
shipto\_country = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "CountryCode") else null,
shipto\_postalcode = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "PostalCode") else null,
shipto\_telephone = if Record.HasFields(Source, "ShippingAddress") then Record.FieldOrDefault(Source\[ShippingAddress\], "Phone") else null,
overriddencreatedon = Record.FieldOrDefault(Source, "PurchaseDate")
\]
), each \[Value\] \<\> null
)
),
orderlines = List.Transform(orderItems, each
Record.FromTable
(
Table.SelectRows
(
Record.ToTable
(
\[
isproductoverridden = true,
ispriceoverridden = true,
productdescription = \[OrderItemId\] & "-" & Record.FieldOrDefault(\_, "SellerSKU") & "-" & Record.FieldOrDefault(\_, "Title"),
quantity = \[QuantityOrdered\],
quantityshipped = Record.FieldOrDefault(\_, "QuantityShipped"),
priceperunit = if Record.HasFields(\_, "ItemPrice") then Decimal.From(Record.FieldOrDefault(\[ItemPrice\], "Amount")) else null,
manualdiscountamount = if Record.HasFields(\_, "PromotionDiscount") then Decimal.From(Record.FieldOrDefault(\[PromotionDiscount\], "Amount")) else null,
tax = if Record.HasFields(\_, "ItemTax") then Decimal.From(Record.FieldOrDefault(\[ItemTax\], "Amount")) else null,
shipto\_name = Record.FieldOrDefault(orderheader, "shipto\_name"),
shipto\_contactname = Record.FieldOrDefault(orderheader, "shipto\_contactname"),
shipto\_line1 = Record.FieldOrDefault(orderheader, "shipto\_line1"),
shipto\_line2 = Record.FieldOrDefault(orderheader, "shipto\_line2"),
shipto\_line3 = Record.FieldOrDefault(orderheader, "shipto\_line3"),
shipto\_city = Record.FieldOrDefault(orderheader, "shipto\_city"),
shipto\_stateorprovince = Record.FieldOrDefault(orderheader, "shipto\_stateorprovince"),
shipto\_country = Record.FieldOrDefault(orderheader, "shipto\_country"),
shipto\_postalcode = Record.FieldOrDefault(orderheader, "shipto\_postalcode"),
shipto\_telephone = Record.FieldOrDefault(orderheader, "shipto\_telephone"),
overriddencreatedon = Record.FieldOrDefault(orderheader, "overriddencreatedon")
\]
), each \[Value\] \<\> null
)
)
),
salesorder = Record.AddField(orderheader, "order\_details", orderlines)
in Text.FromBinary(Json.FromValue(salesorder));
Seleccione Guardar.
Valide que su componente de transformación aparezca correctamente. Debería mostrarse un tipo de componente Transformación de definición de proveedor de IOM con el nombre de la transformación. Si no se muestra, seleccione Agregar existente y, a continuación, seleccione la transformación que creó.
Agregar definiciones de eventos de negocio
Si su proveedor creará o utilizará nuevos eventos de negocio, agregue componentes Definición de evento de negocio de la definición de proveedor de IOM a su solución. Agregue solo eventos empresariales que aún no estén en Intelligent Order Management.
Si el evento empresarial que desea crear aún no está en Intelligent Order Management, cree el suyo propio.
Seleccione Nuevo.
Seleccione Definición de evento de negocio de la definición de proveedor de IOM.
Agregue los siguientes detalles:
Nombre: el nombre de su evento de negocio.
Proveedor: el proveedor para el que va a crear esta definición de evento de negocio.
Entidad asociada: la entidad Dataverse en Intelligent Order Management que cambia o se ve afectada cuando se crea el evento.
Valor de estado asociado: si desea que el estado de la entidad asociada se actualice cuando se genere el evento empresarial, incluya un valor de estado en este campo.
Valor de estado asociado: si desea que el estado de la entidad asociada se actualice cuando se genere el evento empresarial, incluya un valor de estado en este campo.
Seleccione Guardar.
Compruebe su solución para asegurarse de que se muestra el registro de Definición de evento de negocio del proveedor de IOM. Si el registro no aparece en la solución, seleccione Agregar existente y, a continuación, seleccione el registro que creó.
Agregar un conector
Si el proveedor necesita un conector que no esté disponible en Power Automate, cree su propio conector. Para obtener más información, consulte Lista de todos los conectores de Power Automate.
Para crear su propio conector de Power Automate, siga los pasos que se describen en Información general de los conectores personalizados.
Después de crear su conector personalizado, agréguelo a su solución de proveedor como un componente.
Vaya a su solución de proveedor.
Seleccione Agregar existente.
Seleccione el conector que ha creado.
Tipos de flujos de Power Automate
Los flujos de Power Automate representan cualquier acción que ejecute en el diseñador de orquestaciones. Si desea que Power Automate recupere información específica o ejecute acciones específicas, debe crear los flujos para esas acciones. Para obtener más información sobre Power Automate, consulte Introducción a Power Automate.
Agregue sus flujos como componentes Definición de lógica de la definición de proveedor a su proveedor.
Antes de comenzar el proceso de creación del flujo, revise los tipos de flujos que usa Intelligent Order Management.
Controlador de mensajes de proveedor
Estos flujos reciben y procesan mensajes de un servicio externo. Generan el evento empresarial adecuado para notificar a la orquestación de Intelligent Order Management. Un servicio externo desencadena estos flujos.
El ejemplo siguiente muestra la estructura de ejemplo para crear un tipo de controlador de mensajes de flujo de Power Automate.
- Defina un desencadenador de Power Automate. Normalmente, este desencadenador suele ser un punto de conexión HTTP que es un desencadenador de webhook (recomendado), un desencadenador de conector o un desencadenador de inserción de Dataverse. Un servicio externo genera el desencadenador cuando tiene datos para enviar a Intelligent Order Management.
Use el siguiente esquema JSON en el desencadenador HTTP.
{
"type": "object",
"properties": {
"text": {
"title": "ProviderActionExecutionEventId",
"type": "string",
"x-ms-dynamically-added": true,
"description": "Please enter your input",
"x-ms-content-hint": "TEXT"
},
"text_1": {
"title": "EntityRecordId",
"type": "string",
"x-ms-dynamically-added": true,
"description": "Please enter your input",
"x-ms-content-hint": "TEXT"
}
},
"required": [
"text",
"text_1"
]
}
Inicialice el procesamiento del mensaje. Dos pasos están implicados en esta tarea.
Inicialice el resultado de la ejecución que monitorea el procesamiento del mensaje.
Reconocer el mensaje del proveedor en Intelligent Order Management para que pueda hacer seguimiento, reintentar y mostrar el estado de procesamiento. Este paso es una acción de Power Automate que introduce Intelligent Order Management. Esta acción se llama Reconocer solicitud de mensaje del proveedor en IOM. Esta acción tiene los siguientes parámetros obligatorios.
PowerAutomateWorkflowId: WorkflowId en la definición del controlador de mensajes. Recupere este valor utilizando una función de componer con
workflow()['tags'].PowerAutomateRunId: identificador único de la ejecución de Power Automate que recibió el mensaje. Este identificador permite que la canalización vuelva a intentar el procesamiento y vincule los registros de ejecución. Recupere este valor utilizando una función de composición con
workflow()['run']?['name'].ProviderMessageExternalRequestId: un identificador del mensaje enviado. Si no hay ningún identificador, genere un GUID. La canalización usa este identificador para evitar que el remitente envíe mensajes duplicados. El identificador depende de la carga de origen. Por ejemplo:
concat(triggerOutputs()?['body']?['type']?['name'], '_', triggerOutputs()?['body']?['ID']).
La transformación del proveedor que definió anteriormente recupera los datos de entrada y los transforma. Intelligent Order Management proporciona un flujo secundario listo para usar llamado Transformador de proveedor de IOM que ejecuta la transformación. Agregue los siguientes detalles para procesar el evento o el mensaje:
Nombre del proveedor: el nombre del proveedor vinculado al controlador de mensajes. Este valor debe ser el mismo nombre que el de su transformación de proveedor.
Nombre del objeto de origen: el valor de la clave de búsqueda de origen para que se realice la transformación. Este valor debe ser el mismo que el nombre del objeto de origen definido en su transformación de proveedor.
Nombre del objeto de destino: el valor de la clave de búsqueda de destino para que se realice la transformación. Este valor debe ser el mismo que el valor definido en la transformación de proveedor.
Carga útil: se proporciona al transformar una carga útil JSON. Power Automate requiere que los parámetros se pasen como una cadena serializada. Proporcione un valor de Carga útil o un Id. de registro, pero no ambos.
Id. de registro: se proporciona al transformar un registro de Dataverse. Proporcione un valor de Carga útil o un Id. de registro, pero no ambos.
- Puede insertar datos en Dataverse mediante solicitudes HTTP o la acción Insertar del conector de Dataverse. Si va a hacer más de una inserción y desea mejorar el rendimiento, encapsule las inserciones en un conjunto de cambios para que las solicitudes estén en un lote de transacciones.
Si desea que su flujo genere un evento de negocio, use el flujo secundario Generar evento de negocio. Agregue los siguientes detalles.
BusinessEventName: nombre del evento que desea generar.
EntityRecordId: identificador del registro creado y asociado al evento.
Actualice el estado de procesamiento de mensajes mediante la acción Actualizar estado de solicitud de mensajes del proveedor para guardar el resultado de la ejecución del procesamiento. Agregue los siguientes detalles.
ProviderMessageRequestExecutionId: id. de salida del registro creado para realizar un seguimiento del progreso del procesamiento del mensaje.
IsProviderMessageRequestExecutionSuccess: valor booleano para indicar si el procesamiento se realizó correctamente.
Extractor de mensajes de proveedor
Los extractores de mensajes del proveedor son flujos de Power Automate que extraen mensajes con un intervalo periódico definido desde un servicio externo.
Nota
Un controlador de mensajes es un requisito previo para un flujo de extractor de mensajes.
En el ejemplo siguiente se muestra la estructura para crear un flujo de Power Automate de tipo extracción de mensajes.
Utilice un flujo de trabajo de periodicidad para programar un desencadenador.
Obtenga un punto de control de Dataverse. Los puntos de control rastrean los mensajes que el flujo consigue extraer con éxito del proveedor externo. Agregue los siguientes detalles.
Nombre de la acción: nombre del punto de control.
WorkflowId: establezca la siguiente función de redacción para recuperar esta información:
workflow()['tags']['xrmWorkflowId'].
Cree una solicitud POST HTTP en un proveedor externo para extraer los mensajes. Agregue los siguientes detalles.
Método: establezca este campo en POST.
URL: el punto de conexión del proveedor externo.
Cuerpo: la solicitud JSON debe tener la fórmula siguiente:
if(empty(outputs('Get_Checkpoint')?['body/Checkpoint']), 0, int(outputs('Get_Checkpoint')?['body/Checkpoint'])).
Analice los mensajes que el flujo extrae en el paso 3. Agregue los siguientes detalles.
Contenido: el cuerpo recuperado del paso 3.
Esquema: la estructura del cuerpo recuperada en el paso 3.
Procese los mensajes para recorrer cada mensaje del paso 4.
Analice cada mensaje de los pasos anteriores. Agregue la siguiente información.
Contenido: elemento actual de Procesar mensajes.
Esquema: un solo mensaje en formato JSON.
Llame al controlador de mensajes del proveedor asociado que configuró en los requisitos previos. Agregue la siguiente información.
Flujo secundario: seleccione el controlador de mensajes del proveedor.
Mensaje: el mensaje analizado del paso 6.
Guarde el punto de control en Dataverse. Agregue la siguiente información.
Punto de comprobación: este valor puede ser cualquier valor de cadena (máximo 100). En este ejemplo, este valor es el identificador del último mensaje procesado.
WorkFlowId: puede recuperar este identificador agregando la función compose establecida en
workflow()['tags']['xrmWorkflowId'].
Acción de proveedor
Invoque flujos de acción del proveedor desde el diseñador de orquestación. Estos flujos suelen realizar llamadas desde Intelligent Order Management a servicios externos.
La diferencia clave entre un controlador de mensajes de proveedor y una acción de proveedor es que mientras un controlador de mensajes puede notificar al diseñador de orquestaciones, no se puede desencadenar mediante un icono de acción en el diseñador de orquestaciones. Una acción de proveedor se puede desencadenar mediante un icono de acción.
En el siguiente ejemplo se muestra la estructura de un flujo de acción del proveedor en Power Automate.
- Comience con un desencadenador HTTP. El servicio de orquestación pasa la siguiente información en tiempo de ejecución. El siguiente esquema JSON se usa para el cuerpo:
{
"type": "object",
"properties": {
"text": {
"title": "ProviderActionExecutionEventId",
"type": "string",
"x-ms-dynamically-added": true,
"description": "Please enter your input",
"x-ms-content-hint": "TEXT"
},
"text_1": {
"title": "EntityRecordId",
"type": "string",
"x-ms-dynamically-added": true,
"description": "Please enter your input",
"x-ms-content-hint": "TEXT"
}
},
"required": [
"text",
"text_1"
]
}
Inicialice el procesamiento de la acción.
Inicialice el resultado de la ejecución y cualquier otra variable de procesamiento.
Reconozca el inicio de la ejecución de la acción mediante la acción de Dataverse Iniciar ejecución de acción de proveedor. Este paso permite a la canalización realizar un seguimiento, reintentar y mostrar el estado de procesamiento en Intelligent Order Management. Agregue la siguiente información.
ProviderActionExecutionEventId: La acción recibe este valor como parámetro de entrada en el paso 1.
PowerAutomateRunID: la ejecución única de la acción de Power Automate. Este valor permite que la canalización vincule los registros de ejecución. Para obtener esta información, establezca el campo en una expresión
worflow()['run']?['name']de Power Automate.
Realice la acción.
Si es necesario, transforme los registros usando el flujo secundario Transformar mensaje con Power Query Online.
Nombre del proveedor: nombre del proveedor que se va a vincular a la acción. Debe ser el mismo nombre que el de su definición de proveedor.
Nombre del objeto de origen: el nombre de origen de la transformación que se va a realizar. Este nombre debe ser el mismo objeto de origen definido en su transformación de Power Automate.
Nombre del objeto de destino: el valor de la clave de búsqueda de destino para que se realice la transformación. Este nombre debe ser el mismo valor definido en la transformación de proveedor.
Carga útil: se proporciona al transformar una carga útil JSON de entrada. Power Automate requiere que los parámetros se pasen como una cadena serializada. Agregue un valor de Carga útil o un Id. de registro, pero no ambos.
Id. de registro: se proporciona al transformar un registro de Dataverse de salida. Agregue un valor de Carga útil o un Id. de registro, pero no ambos.
Ejecute las acciones personalizadas que defina. Estas acciones se encuentran en el conector de Power Automate que estás utilizando.
Genere un evento de negocio específico de la acción. Utilice el flujo secundario Generar evento de negocio. Agregue la siguiente información.
BusinessEventName: nombre del evento que desea generar.
EntityRecordId: id. del registro asociado al evento.
Complete la ejecución de la acción y guarde los resultados. El diseñador de orquestaciones procesa los resultados. Agregue la siguiente información.
ExecutionResult: valor booleano para indicar si el procesamiento se realizó correctamente.
ExecutionDetails: detalles de registro opcionales para fines de prueba y depuración.
ProviderActionExecutionEventId: la acción recibe este valor como parámetro de entrada que se define en el paso 1.
Flujo secundario
Un flujo hijo es un subflujo al que hacen referencia otros flujos de Power Automate. Resulta útil definir un flujo secundario si hay algunos pasos que repite en varias áreas. No existe una plantilla ni un proceso recomendado específico para los flujos secundarios, ya que están pensados principalmente para consolidar pasos similares.
Los flujos secundarios de proveedor no pueden llamar a otros flujos secundarios de proveedor.
Crear flujos de nube
Cuando comprenda los tipos de flujos que desea crear, está listo para crear flujos en la nube. Para ello, siga estos pasos:
- Abra la solución predeterminada en su entorno de Power Apps.
Importante
No agregue estas soluciones a su solución de proveedor.
Seleccione Nuevo y, después, Cloud Flow.
Cree su flujo de Power Automate. Utilice las plantillas de la sección anterior como referencia.
Consulte la siguiente sección para guardar sus flujos.
Guardar definición de Power Automate
Después de crear los flujos, guárdelos como componentes Definición Lógica de Proveedor. Este tipo de componente proporciona a Intelligent Order Management las acciones que se deben implementar durante la activación del proveedor.
Para poder guardar los flujos, asegúrese de que tiene los siguientes requisitos previos.
Para guardar las definiciones de lógica de Power Automate, debe enviar solicitudes de OData. Para enviar estas solicitudes, necesita una cuenta con PostMan o un servicio similar.
Debe generar un token de acceso para el entorno de Dataverse para enviar solicitudes GET y POST.
Configure una cuenta de Azure con una suscripción activa. Si no tiene una cuenta activa, configure una cuenta en el sitio web de Azure.
PowerShell debe estar instalado. Para obtener más información, consulte Instalación de PowerShell.
Escriba el siguiente comando en PowerShell para obtener un token de acceso:
az sign in --allow-no-subscriptions account get-access-token --resource=<https://YourDataverseTenantURL.api.crm.dynamics.com/> --query=accessToken --output=tsv \| Set-Clipboard.
Para guardar la definición de Power Automate, siga estos pasos:
Busque el identificador de flujo de trabajo del flujo de Power Automate que desea guardar. Realice una de las siguientes opciones.
Busque el id. del flujo de trabajo mediante una acción de Power Automate.
- Cree una acción de composición con la expresión workflow() al final de su flujo de Power Automate.
Ejecute Power Automate.
La propiedad xrmWorkflowId de los resultados de ejecución contiene el identificador de flujo de trabajo.
- Elimine esta acción del flujo para que no se vuelva a ejecutar.
Opcionalmente, puede enviar una solicitud Get OData.
- Vaya al flujo para el que desea guardar el identificador de flujo de trabajo. Busque el identificador único en la URL. Este identificador aparece después de .. /flows/ en la dirección URL.
Envíe una solicitud de OData para recuperar los metadatos del flujo de trabajo. En el ejemplo siguiente se muestra una solicitud GET.
GET {Env url}/api/data/v9.1/workflows?$filter=workflowidunique eq '{Id. de flujo de trabajo único de Power Automate}'&$select=workflowid,workflowiduniqueGuarde la propiedad workflowid devuelta.
Busque el identificador de definición de proveedor.
Seleccione la definición de proveedor en la que desea guardar el flujo.
Copie el id. de definición de proveedor de la URL. Esta parte de la dirección URL es .. /id={número de ejemplo}/.
Anote el valor del conjunto de opciones para el tipo de Power Automate que va a guardar.
Flujo secundario: 192350002
Acción de proveedor: 192350001
Controlador de mensajes de proveedor: 192350000
Extractor de mensajes de proveedor: 192350003
Envíe una solicitud POST para guardar la definición de Power Automate. En el ejemplo siguiente se muestra la solicitud.
POST: {Env url}/api/data/v9.1/msdyn\_SaveProviderDefinitionLogicDefinition
Body:
{
"ProviderDefinitionId": "{ProviderId previously found}",
"WorkflowId": "{Power Automate WorkflowId previously found}",
"LogicalName": "{Export prefix \_ Power Automate Export Name}",
"LogicType": {Logic Type},
"MaxRetryAttempts": {Max number of attempts},
"TimeoutMinutes": {Timeout number ex: 5}
}
Compruebe que el componente Definición de Lógica del Proveedor está en la solución. Para ello, siga estos pasos:
Vaya a su solución de proveedor.
Compruebe que la definición lógica de definición de proveedor que creó está en la solución. Si no está en la solución, seleccione Agregar existente y agregue el componente que creó.
Guardar referencias de conexión
Si el proveedor usa conectores de Power Automate para el cliente, complete los pasos siguientes para guardar las referencias de conexión a la solución de Power Automate.
- Envíe una solicitud GET para recuperar el identificador de referencia de conexión. Por ejemplo:
GET {Env url}/api/data/v9.2/connectionreferences
Si desea filtrarlo aún más, filtre por nombre de referencia de conexión. Por ejemplo:
{Env url}/api/data/v9.2/connectionreferences?$[connectionreferences?$filter=connectionreferencedisplayname](https://orgdb90e3a2.api.crm10.dynamics.com/api/data/v9.2/connectionreferences?$filter=connectionreferencedisplayname) eq 'Provider Example'&$select=connectionreferencelogicalname,connectionreferencedisplayname,connectionreferenceid,connectorid
Compruebe que se recupera el identificador de referencia de conexión correcto mediante la búsqueda de los datos de cliente de Power Automate.
Vaya al componente Definición de lógica de la definición de proveedor que guardó anteriormente.
Compruebe los datos del cliente para asegurarse de que aparece connectionReferenceLogicalName.
Busque su identificador de definición de proveedor. Este valor es el mismo que usó en el paso 2 para guardar las definiciones de lógica de Power Automate.
Envíe una solicitud POST para guardar la referencia de conexión. Por ejemplo:
POST {Env url}/api/data/v9.1/msdyn\_SaveProviderDefinitionConnectionReference
Body:
{
"ProviderDefinitionId": "{ProviderId previously found}",
"ConnectionReferenceId": "{Connection reference id previously found}"
}
Valide que se agregó el componente Definición de lógica de la definición de proveedor.
Vaya a su solución de proveedor.
Compruebe que se agregó el componente de referencia Definición de lógica de la definición de proveedor que creó. Si no se agregó, seleccione Agregar existente y agregue el componente que creó.
Compartir sus proveedores
Si desea usar la definición del proveedor en otro entorno o compartir la solución, exporte la solución del proveedor. Para obtener más información, consulte Exportar soluciones.