Krok nr 3. Tworzenie przepływu do przetwarzania kontraktów przy użyciu usługi Power Automate
Utworzono kanał zarządzania kontraktami i dołączono bibliotekę dokumentów programu SharePoint. Następnym krokiem jest utworzenie przepływu usługi Power Automate do przetwarzania kontraktów, które model Microsoft Syntex identyfikuje i klasyfikuje. Ten krok można wykonać , tworząc przepływ usługi Power Automate w bibliotece dokumentów programu SharePoint.
W przypadku rozwiązania do zarządzania kontraktami chcesz utworzyć przepływ usługi Power Automate w celu wykonania następujących akcji:
- Po sklasyfikowaniu kontraktu według modelu Microsoft Syntex zmień stan kontraktu na W przeglądzie.
- Umowa jest następnie przeglądana i zatwierdzana lub odrzucana.
- W przypadku zatwierdzonych umów informacje o umowie są publikowane na karcie do przetwarzania płatności.
- W przypadku odrzuconych kontraktów zespół jest powiadamiany o dalszej analizie.
Na poniższym diagramie przedstawiono przepływ usługi Power Automate dla rozwiązania do zarządzania kontraktami.
Przygotowywanie kontraktu do przeglądu
Gdy kontrakt zostanie zidentyfikowany i sklasyfikowany przez model przetwarzania dokumentów bez struktury, przepływ usługi Power Automate najpierw zmieni stan na W przeglądzie.
Po wyewidencjonowania pliku zmień wartość stanu na W przeglądzie.
Następnym krokiem jest utworzenie karty adaptacyjnej z informacją, że kontrakt czeka na przegląd i zaksięguje ją w kanale Zarządzanie kontraktami.
Poniższy kod to kod JSON używany w tym kroku w przepływie usługi 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"
}
}
]
}
Kontekst warunkowy
W przepływie należy utworzyć warunek, w którym umowa zostanie zatwierdzona lub odrzucona.
Jeśli umowa została zatwierdzona
Po zatwierdzeniu kontraktu występują następujące elementy:
Na karcie Kontrakty stan na karcie kontraktu zmienia się na Zatwierdzone.
W przepływie stan zostanie zmieniony na Zatwierdzone.
W tym rozwiązaniu dane kontraktu są dodawane do karty For Payout (Dla wypłat ), aby można było zarządzać wypłatami. Ten proces można rozszerzyć, aby umożliwić przepływowi przesyłanie umów do płatności przez aplikację finansową innej firmy (na przykład Dynamics CRM).
W przepływie utworzysz następujący element, aby przenieść zatwierdzone kontrakty na kartę For Wypłata .
Aby uzyskać wyrażenia dotyczące informacji potrzebnych z karty Teams, użyj wartości przedstawionych w poniższej tabeli.
Name (Nazwa) Expression Stan zatwierdzenia body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['submitActionId'] Zatwierdzone przez body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['responder']['displayName'] Data zatwierdzenia body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['responseTime'] Komentowanie body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['dane']? ['acComments'] W poniższym przykładzie pokazano, jak za pomocą pola formuły w usłudze Power Automate napisać wyrażenie.
Karta adaptacyjna z informacją, że umowa została zatwierdzona, jest tworzona i publikowana w kanale Zarządzanie kontraktami.
Poniższy kod to kod JSON używany w tym kroku w przepływie usługi 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."
}
Jeśli umowa zostanie odrzucona
Po odrzuceniu kontraktu występują następujące elementy:
Na karcie Kontrakty stan na karcie kontraktu zmieni się na Odrzucony.
W przepływie wyewidencjonujesz plik kontraktu, zmienisz stan na Odrzucony, a następnie ponownie zaewidencjonujesz plik.
W przepływie utworzysz kartę adaptacyjną z informacją, że umowa została odrzucona.
Poniższy kod to kod JSON używany w tym kroku w przepływie usługi 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."
}
Karta jest publikowana w kanale Zarządzanie kontraktami.