Étape 3. Utiliser Power Automate pour créer le flux de traitement de vos contrats
Vous avez créé votre canal De gestion des contrats et attaché votre bibliothèque de documents SharePoint. L’étape suivante consiste à créer un flux Power Automate pour traiter vos contrats que votre modèle Microsoft Syntex identifie et classifie. Vous pouvez effectuer cette étape en créant un flux Power Automate dans votre bibliothèque de documents SharePoint.
Pour votre solution de gestion des contrats, vous souhaitez créer un flux Power Automate pour effectuer les actions suivantes :
- Une fois qu’un contrat a été classé par votre modèle de Microsoft Syntex, remplacez le status contrat par En révision.
- Le contrat est ensuite examiné et approuvé ou rejeté.
- Pour les contrats approuvés, les informations sur le contrat sont publiées dans un onglet pour le traitement des paiements.
- Pour les contrats rejetés, l’équipe est avertie pour une analyse plus approfondie.
Le diagramme suivant montre le flux Power Automate pour la solution de gestion des contrats.
Préparer votre contrat pour révision
Lorsqu’un contrat est identifié et classifié par votre modèle de traitement de document non structuré, le flux Power Automate remplace d’abord le status par En révision.
Après avoir extraire le fichier, remplacez la valeur status par En révision.
L’étape suivante consiste à créer un carte adaptatif indiquant que le contrat est en attente de révision et à le publier sur le canal De gestion des contrats.
Le code suivant est le code JSON utilisé pour cette étape dans le flux 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"
}
}
]
}
Contexte conditionnel
Dans votre flux, vous devez ensuite créer une condition dans laquelle votre contrat sera approuvé ou rejeté.
Si le contrat est approuvé
Lorsqu’un contrat a été approuvé, les choses suivantes se produisent :
Sous l’onglet Contrats, le status dans le contrat carte devient Approuvé.
Dans votre flux, le status est remplacé par Approuvé.
Dans cette solution, les données du contrat sont ajoutées à l’onglet Pour le paiement afin que les paiements puissent être gérés. Ce processus peut être étendu pour permettre au flux de soumettre les contrats pour paiement par une application financière tierce (par exemple, Dynamics CRM).
Dans le flux, vous créez l’élément suivant pour déplacer les contrats approuvés vers l’onglet Pour le paiement .
Pour obtenir les expressions pour les informations nécessaires à partir du carte Teams, utilisez les valeurs indiquées dans le tableau suivant.
Nom Expression État d’approbation body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response') ? ['submitActionId'] Approuvé par body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response') ? ['répondeur']['displayName'] Date d’approbation body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response') ? ['responseTime'] Commentaire body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response') ? ['data'] ? ['acComments'] L’exemple suivant montre comment utiliser la zone de formule dans Power Automate pour écrire une expression.
Un carte adaptatif indiquant que le contrat a été approuvé est créé et publié sur le canal De gestion des contrats.
Le code suivant est le code JSON utilisé pour cette étape dans le flux 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 le contrat est rejeté
Lorsqu’un contrat a été rejeté, les choses suivantes se produisent :
Sous l’onglet Contrats, le status dans le contrat carte devient Rejeté.
Dans votre flux, vous case activée le fichier de contrat, remplacez le status par Rejeté, puis case activée le fichier.
Dans votre flux, vous créez un carte adaptatif indiquant que le contrat a été rejeté.
Le code suivant est le code JSON utilisé pour cette étape dans le flux 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."
}
Le carte est publié dans le canal Gestion des contrats.