É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 Syntex identifie et classe. 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 Syntex, définissez l’état du contrat sur 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 passe d’abord à l’état En révision.
Après avoir sorti le fichier, remplacez la valeur d’état par En révision.
L’étape suivante consiste à créer une carte adaptative indiquant que le contrat est en attente de révision et à la 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 , l’état de la carte de contrat devient Approuvé.
Dans votre flux, l’état 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 de la 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.
Une carte adaptative indiquant que le contrat a été approuvé est créée et publiée sur le canal 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 , l’état de la carte de contrat devient Rejeté.
Dans votre flux, vous extrayez le fichier de contrat, définissez l’état sur Rejeté, puis ré-archivez le fichier.
Dans votre flux, vous créez une carte adaptative 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."
}
La carte est publiée dans le canal De gestion des contrats.