Partilhar via


Passo 3. Utilizar o Power Automate para criar o fluxo para processar os seus contratos

Criou o seu canal de Gestão de Contratos e anexou a sua biblioteca de documentos do SharePoint. O passo seguinte consiste em criar um fluxo do Power Automate para processar os contratos que o modelo Syntex identifica e classifica. Pode efetuar este passo ao criar um fluxo do Power Automate na sua biblioteca de documentos do SharePoint.

Para a sua solução de gestão de contratos, quer criar um fluxo do Power Automate para realizar as seguintes ações:

  • Depois de um contrato ter sido classificado pelo modelo Syntex, altere o estado do contrato para Em revisão.
  • Em seguida, o contrato é revisto e é aprovado ou rejeitado.
  • Para contratos aprovados, as informações do contrato são publicadas num separador para processamento de pagamentos.
  • Para contratos rejeitados, a equipa é notificada para análise adicional.

O diagrama seguinte mostra o fluxo do Power Automate para a solução de gestão de contratos.

Diagrama de fluxo a mostrar toda a solução.

Preparar o contrato para revisão

Quando um contrato é identificado e classificado pelo modelo de processamento de documentos não estruturado, o fluxo do Power Automate altera primeiro o estado para Em revisão.

Estado da atualização.

Depois de dar saída do ficheiro, altere o valor de estado para Em revisão.

No estado de revisão.

O próximo passo consiste em criar um cartão ajustável a indicar que o contrato está a aguardar revisão e a publicá-lo no canal Gestão de Contratos.

Publicação de revisão do contrato.

Crie um cartão ajustável para revisão.

O código seguinte é o JSON utilizado para este passo no fluxo do 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

No fluxo, em seguida, terá de criar uma condição na qual o seu contrato será aprovado ou rejeitado.

Condicional.

Se o contrato for aprovado

Quando um contrato é aprovado, ocorrem os seguintes procedimentos:

  • No separador Contratos , o estado no cartão do contrato será alterado para Aprovado.

    Estado do cartão aprovado.

  • No fluxo, o estado é alterado para Aprovado.

    Estado do fluxo aprovado.

  • Nesta solução, os dados do contrato serão adicionados ao separador Para Pagamento para que os pagamentos possam ser geridos. Este processo pode ser alargado para permitir que o fluxo submeta os contratos para pagamento por uma aplicação financeira de terceiros (por exemplo, Dynamics CRM).

    Contrato movido para Pay Out.

  • No fluxo, vai criar o seguinte item para mover contratos aprovados para o separador Para Pagamento .

    Item de fluxo a mover para Pay Out.

    Para obter as expressões para as informações necessárias no cartão do Teams, utilize os valores apresentados na tabela seguinte.

    Name Expression
    Estado de aprovação body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['submitActionId']
    Aprovado por body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['responder'] ['displayName']
    Data de aprovação body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['responseTime']
    Comentar body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['dados']? ['acComments']

    O exemplo seguinte mostra como utilizar a caixa de fórmulas no Power Automate para escrever uma expressão.

    Captura de ecrã no Power Automate a mostrar uma fórmula de expressão.

  • Um cartão ajustável a indicar que o contrato foi aprovado é criado e publicado no canal Gestão de Contratos.

    Aprovação do contrato publicada.

    Aprovação de cartão ajustável.

    O código seguinte é o JSON utilizado para este passo no fluxo do 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."
}

Se o contrato for rejeitado

Quando um contrato é rejeitado, ocorrem os seguintes procedimentos:

  • No separador Contratos , o estado no cartão do contrato será alterado para Rejeitado.

    Estado do cartão rejeitado.

  • No fluxo, pode dar saída do ficheiro do contrato, alterar o estado para Rejeitado e, em seguida, voltar a dar entrada do ficheiro.

    Estado do fluxo rejeitado no ficheiro de contrato.

  • No fluxo, cria um cartão ajustável que indica que o contrato foi rejeitado.

    O estado do fluxo mostra rejeitado no cartão adaptável.

O código seguinte é o JSON utilizado para este passo no fluxo do 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."
}
  • O cartão é publicado no canal Gestão de Contratos.

    Cartão adaptável de fluxo a rejeitar.