Share via


Paso 3. Uso de Power Automate para crear el flujo para procesar los contratos

Ha creado el canal de administración de contratos y ha adjuntado la biblioteca de documentos de SharePoint. El siguiente paso es crear un flujo de Power Automate para procesar los contratos que el modelo de Syntex identifica y clasifica. Para realizar este paso, cree un flujo de Power Automate en la biblioteca de documentos de SharePoint.

Para la solución de administración de contratos, quiere crear un flujo de Power Automate para realizar las siguientes acciones:

  • Una vez clasificado un contrato por el modelo de Syntex, cambie el estado del contrato a En revisión.
  • A continuación, se revisa el contrato y se aprueba o se rechaza.
  • En el caso de los contratos aprobados, la información del contrato se contabiliza en una pestaña para el procesamiento de pagos.
  • En el caso de los contratos rechazados, se notifica al equipo para su análisis posterior.

En el diagrama siguiente se muestra el flujo de Power Automate para la solución de administración de contratos.

Diagrama de flujo que muestra toda la solución.

Preparar el contrato para su revisión

Cuando el modelo de procesamiento de documentos no estructurado identifica y clasifica un contrato, el flujo de Power Automate cambiará primero el estado a En revisión.

Estado de actualización.

Después de extraer el archivo, cambie el valor de estado a En revisión.

En estado de revisión.

El siguiente paso es crear una tarjeta adaptable que indique que el contrato está esperando su revisión y su publicación en el canal de administración de contratos.

Publicación de revisión del contrato.

Cree una tarjeta adaptable para su revisión.

El código siguiente es el JSON que se usa para este paso en el flujo de Power Automate.

{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
    {
    "type": "TextBlock",
    "text": "Contract approval request",
    "size": "large",
    "weight": "bolder",
     "wrap": true
    },
        {
            "type": "Container",
            "items": [
                {
                    "type": "FactSet",
                    "spacing": "Large",
                    "facts": [
                        {
                            "title": "Client",
                            "value": "@{triggerOutputs()?['body/Client']}"
                        },
                        {
                            "title": "Contractor",
                            "value": "@{triggerOutputs()?['body/Contractor']}"
                        },
                        {
                            "title": "Fee amount",
                            "value": "@{triggerOutputs()?['body/FeeAmount']}"
                        },
                        {
                            "title": "Date created",
                            "value": "@{triggerOutputs()?['body/Modified']} "
                        },
                        {
                            "title": "Link",
                            "value": "[@{triggerOutputs()?['body/{FilenameWithExtension}']}](@{triggerOutputs()?['body/{Link}']})"
                        }
                    ]
                }
            ]
         },
    {
    "type": "TextBlock",
    "text": "Comment:"
    },
        {
            "type": "Input.Text",
            "placeholder": "Enter comments",
            "id": "acComments"
        }
],
"actions": [
    {
    "type": "Action.Submit",
    "title": "Approve",
    "data": {
        "x": "Approve"
    }
    },
    {
    "type": "Action.Submit",
    "title": "Reject",
    "data": {
        "x": "Reject"
    }
    }
]
}

Contexto condicional

En el flujo, a continuación, debe crear una condición en la que el contrato se aprobará o rechazará.

Condicional.

Si se aprueba el contrato

Cuando se ha aprobado un contrato, se producen las siguientes cosas:

  • En la pestaña Contratos , el estado de la tarjeta de contrato cambiará a Aprobado.

    Estado de la tarjeta aprobado.

  • En el flujo, el estado cambia a Aprobado.

    Estado de flujo aprobado.

  • En esta solución, los datos del contrato se agregarán a la pestaña Para pago para que se puedan administrar los pagos. Este proceso se puede ampliar para permitir que el flujo envíe los contratos de pago por parte de una aplicación financiera de terceros (por ejemplo, Dynamics CRM).

    El contrato se trasladó a Pago.

  • En el flujo, se crea el siguiente elemento para mover los contratos aprobados a la pestaña Para pago .

    Elemento de flujo que se va a mover a Pago.

    Para obtener las expresiones de la información necesaria de la tarjeta de Teams, use los valores que se muestran en la tabla siguiente.

    Nombre Expression
    Estado de aprobación body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['submitActionId']
    Aprobado por body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['respondedor'] ['displayName']
    Fecha de aprobación body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['responseTime']
    Comentario body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ¿['data']? ['acComments']

    En el ejemplo siguiente se muestra cómo usar el cuadro de fórmula de Power Automate para escribir una expresión.

    Captura de pantalla de Power Automate que muestra una fórmula de expresión.

  • Se crea una tarjeta adaptable que indica que el contrato se ha aprobado y se publica en el canal de administración de contratos.

    Aprobación del contrato publicada.

    Aprobación de tarjeta adaptable.

    El código siguiente es el JSON que se usa para este paso en el flujo de Power Automate.

{ 
    "type": "AdaptiveCard",
    "body": [
        {
            "type": "Container",
            "style": "emphasis",
            "items": [
                {
                    "type": "ColumnSet",
                    "columns": [
                        {
                            "type": "Column",
                            "items": [
                                {
                                    "type": "TextBlock",
                                    "size": "Large",
                                    "weight": "Bolder",
                                    "text": "CONTRACT APPROVED"
                                }
                            ],
                            "width": "stretch"
                        }
                    ]
                }
            ],
            "bleed": true
        },
        {
            "type": "Container",
            "items": [
                {
                    "type": "FactSet",
                    "spacing": "Large",
                    "facts": [
                        {
                            "title": "Client",
                            "value": "@{triggerOutputs()?['body/Client']}"
                        },
                        {
                            "title": "Contractor",
                            "value": "@{triggerOutputs()?['body/Contractor']}"
                        },
                        {
                            "title": "Fee amount",
                            "value": "@{triggerOutputs()?['body/FeeAmount']}"
                        },
                        {
                            "title": "Approval by",
                            "value": "@{body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')?['responder']['displayName']}"
                        },
                        {
                            "title": "Approved date",
                            "value": "@{body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')?['responseTime']}"
                        },
                        {
                            "title": "Approval comment",
                            "value": "@{body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')?['data']?['acComments']}"
                        },
                        {
                            "title": " ",
                            "value": " "
                        },
                        {
                            "title": "Status",
                            "value": "Ready for payout"
                        }
                    ]
                }
            ]
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.2",
    "fallbackText": "This card requires Adaptive Cards v1.2 support to be rendered properly."
}

Si se rechaza el contrato

Cuando se ha rechazado un contrato, se producen las siguientes cosas:

  • En la pestaña Contratos , el estado de la tarjeta de contrato cambiará a Rechazado.

    Estado de la tarjeta rechazado.

  • En el flujo, descarte el archivo de contrato, cambie el estado a Rechazado y vuelva a comprobar el archivo.

    Estado de flujo rechazado en el archivo de contrato.

  • En el flujo, se crea una tarjeta adaptable que indica que se ha rechazado el contrato.

    El estado del flujo se muestra rechazado en la tarjeta adaptable.

El código siguiente es el JSON que se usa para este paso en el flujo de Power Automate.

{ 
    "type": "AdaptiveCard",
    "body": [
        {
            "type": "Container",
            "style": "attention",
            "items": [
                {
                    "type": "ColumnSet",
                    "columns": [
                        {
                            "type": "Column",
                            "items": [
                                {
                                    "type": "TextBlock",
                                    "size": "Large",
                                    "weight": "Bolder",
                                    "text": "CONTRACT REJECTED"
                                }
                            ],
                            "width": "stretch"
                        }
                    ]
                }
            ],
            "bleed": true
        },
        {
            "type": "Container",
            "items": [
                {
                    "type": "FactSet",
                    "spacing": "Large",
                    "facts": [
                        {
                            "title": "Client",
                            "value": "@{triggerOutputs()?['body/Client']}"
                        },
                        {
                            "title": "Contractor",
                            "value": "@{triggerOutputs()?['body/Contractor']}"
                        },
                        {
                            "title": "Fee amount",
                            "value": "@{triggerOutputs()?['body/FeeAmount']}"
                        },
                        {
                            "title": "Rejected by",
                            "value": "@{body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')?['responder']['displayName']}"
                        },
                        {
                            "title": "Rejected date",
                            "value": "@{body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')?['responseTime']}"
                        },
                        {
                            "title": "Comment",
                            "value": "@{body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')?['data']?['acComments']}"
                        },
                        {
                            "title": " ",
                            "value": " "
                        },
                        {
                            "title": "Status",
                            "value": "Needs review"
                        }
                    ]
                }
            ]
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.2",
    "fallbackText": "This card requires Adaptive Cards v1.2 support to be rendered properly."
}
  • La tarjeta se contabiliza en el canal de administración de contratos.

    Tarjeta adaptable de flujo que se va a rechazar.