Condividi tramite


Passaggio 3. Usare Power Automate per creare il flusso per elaborare i contratti

È stato creato il canale Gestione contratti e la raccolta documenti di SharePoint è stata allegata. Il passaggio successivo consiste nel creare un flusso di Power Automate per elaborare i contratti identificati e classificati dal modello Syntex. È possibile eseguire questo passaggio creando un flusso di Power Automate nella raccolta documenti di SharePoint.

Per la soluzione di gestione dei contratti, si vuole creare un flusso di Power Automate per eseguire le azioni seguenti:

  • Dopo che un contratto è stato classificato dal modello Syntex, modificare lo stato del contratto in In revisione.
  • Il contratto viene quindi esaminato e viene approvato o rifiutato.
  • Per i contratti approvati, le informazioni sul contratto vengono pubblicate in una scheda per l'elaborazione dei pagamenti.
  • Per i contratti rifiutati, il team riceve una notifica per ulteriori analisi.

Il diagramma seguente mostra il flusso di Power Automate per la soluzione di gestione dei contratti.

Diagramma di flusso che mostra l'intera soluzione.

Preparare il contratto per la revisione

Quando un contratto viene identificato e classificato dal modello di elaborazione documenti non strutturato, il flusso di Power Automate modificherà prima lo stato in In revisione.

Stato dell'aggiornamento.

Dopo aver estratto il file, modificare il valore di stato in In revisione.

In stato di revisione.

Il passaggio successivo consiste nel creare una scheda adattiva che informa che il contratto è in attesa di revisione e la pubblicazione nel canale Gestione contratti.

Post di revisione del contratto.

Creare una scheda adattiva per la revisione.

Il codice seguente è il codice JSON usato per questo passaggio nel flusso di 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"
    }
    }
]
}

Contesto condizionale

Nel flusso è quindi necessario creare una condizione in cui il contratto verrà approvato o rifiutato.

Condizionale.

Se il contratto è approvato

Quando un contratto è stato approvato, si verificano le seguenti operazioni:

  • Nella scheda Contratti lo stato nella scheda del contratto verrà modificato in Approvato.

    Stato della scheda approvato.

  • Nel flusso lo stato viene modificato in Approvato.

    Stato del flusso approvato.

  • In questa soluzione i dati del contratto verranno aggiunti alla scheda Per proventi in modo che i proventi possano essere gestiti. Questo processo può essere esteso per consentire al flusso di inviare i contratti per il pagamento da un'applicazione finanziaria di terze parti ,ad esempio Dynamics CRM.

    Il contratto è stato spostato in Pagamento.

  • Nel flusso si crea l'elemento seguente per spostare i contratti approvati nella scheda Per proventi .

    Elemento flusso da spostare in Pagamento.

    Per ottenere le espressioni per le informazioni necessarie dalla scheda Teams, usare i valori illustrati nella tabella seguente.

    Nome Expression
    Stato di approvazione body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['submitActionId']
    Approvato da body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['risponditore'] ['displayName']
    Data di approvazione body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['responseTime']
    Comment body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['data']? ['acComments']

    Nell'esempio seguente viene illustrato come usare la casella della formula in Power Automate per scrivere un'espressione.

    Screenshot in Power Automate che mostra una formula di espressione.

  • Una scheda adattiva che indica che il contratto è stato approvato viene creata e pubblicata nel canale Gestione contratti.

    Approvazione del contratto registrata.

    Approvazione della scheda adattiva.

    Il codice seguente è il codice JSON usato per questo passaggio nel flusso di 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 il contratto viene rifiutato

Quando un contratto è stato rifiutato, si verificano le seguenti operazioni:

  • Nella scheda Contratti lo stato nella scheda del contratto verrà modificato in Rifiutato.

    Stato della scheda rifiutato.

  • Nel flusso si eseziona il file del contratto, si modifica lo stato in Rifiutato e quindi si archivia nuovamente il file.

    Stato flusso rifiutato nel file del contratto.

  • Nel flusso viene creata una scheda adattiva che indica che il contratto è stato rifiutato.

    Lo stato del flusso viene visualizzato rifiutato nella scheda adattiva.

Il codice seguente è il codice JSON usato per questo passaggio nel flusso di 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 scheda viene pubblicata nel canale Gestione contratti.

    Flusso della scheda adattiva da rifiutare.