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.
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.
Dopo aver estratto il file, modificare il valore di stato in In 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.
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.
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.
Nel flusso lo stato viene modificato in 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.
Nel flusso si crea l'elemento seguente per spostare i contratti approvati nella scheda Per proventi .
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.
Una scheda adattiva che indica che il contratto è stato approvato viene creata e pubblicata nel canale Gestione contratti.
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.
Nel flusso si eseziona il file del contratto, si modifica lo stato in Rifiutato e quindi si archivia nuovamente il file.
Nel flusso viene creata una scheda adattiva che indica che il contratto è stato rifiutato.
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.