步驟 3. 使用Power Automate 建立流程來處理您的合約
您已建立合約管理通道,並已連結 SharePoint 文件庫。 下一個步驟是建立Power Automate流程,以處理您的 Microsoft Syntex 模型所識別和分類的合約。 您可以在 SharePoint 文件庫中建立 Power Automate 流程來執行此步驟。
針對合約管理解決方案,您想要建立Power Automate流程來執行下列動作:
- 在合約由您的 Microsoft Syntex 模型分類之後,請將合約狀態變更為 [正在檢閱中]。
- 然後會檢閱合約,並核准或拒絕合約。
- 對於已核准的合約,合約資訊會張貼到索引標籤以進行付款處理。
- 對於遭拒絕的合約,小組會收到進一步分析的通知。
下圖顯示合約管理解決方案的Power Automate流程。
準備您的合約以供檢閱
當合約由您的非結構化文件處理模型識別並分類時,Power Automate 流程會先將狀態變更為 [正在檢閱]。
簽出檔案之後,將狀態值變更為 [檢閱中]。
下一個步驟是建立調適型卡片,指出合約正在等候檢閱,並將其張貼至合約管理通道。
下列程式代碼是Power Automate流程中用於此步驟的 JSON。
{
"$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"
}
}
]
}
條件式內容
在您的流程中,接下來您必須建立一個條件,讓合約獲得 核准 或 拒絕。
如果合約已核准
當合約獲得核准時,會發生下列情況:
在 [ 合約] 索引標籤上,合約卡片中的狀態會變更為 [ 已核准]。
在您的流程中,狀態會變更為 [ 已核准]。
在此解決方案中,合約數據會新增至 [ 支付] 索 引標籤,以便管理支付。 此程式可以擴充,以允許流程提交第三方財務應用程式 (付款的合約,例如 Dynamics CRM) 。
在流程中,您會建立下列專案,將核准的合約移至 [ 支付] 索引標籤 。
若要從 Teams 卡片取得所需資訊的運算式,請使用下表所示的值。
名稱 Expression 核准狀態 本文 (『Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response』) ?['submitActionId'] 核准者 本文 (『Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response』) ?['responder']['displayName'] 核准日期 本文 (『Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response』) ?['responseTime'] 註解 本文 (『Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response』) ?['data']?['acComments'] 下列範例示範如何使用Power Automate中的公式方塊來撰寫表達式。
系統會建立說明合約已核准的調適型卡片,並張貼到合約管理通道。
下列程式代碼是Power Automate流程中用於此步驟的 JSON。
{
"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."
}
如果合約遭到拒絕
當合約遭到拒絕時,會發生下列情況:
在 [ 合約] 索引標籤上,合約卡片中的狀態會變更為 [已拒絕]。
在您的流程中,您會簽出合約檔案、將狀態變更為 [已拒絕],然後再重新存回檔案。
在您的流程中,您會建立調適型卡片,指出合約已被拒絕。
下列程式代碼是Power Automate流程中用於此步驟的 JSON。
{
"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."
}
卡片會張貼在合約管理通道中。