다음을 통해 공유


3단계. Power Automate를 사용하여 계약을 처리하는 흐름을 만듭니다.

계약 관리 채널을 만들고 SharePoint 문서 라이브러리를 연결했습니다. 다음 단계는 Syntex 모델이 식별하고 분류하는 계약을 처리하는 Power Automate 흐름을 만드는 것입니다. SharePoint 문서 라이브러리에서 Power Automate 흐름을 만들어 이 단계를 수행할 수 있습니다.

계약 관리 솔루션의 경우 Power Automate 흐름을 만들어 다음 작업을 수행하려고 합니다.

  • 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)의 결제 계약을 제출할 수 있도록 할 수 있습니다.

    계약은 Pay Out으로 이동되었습니다.

  • 흐름에서 승인된 계약을 지급 탭 으로 이동하는 다음 항목을 만듭니다.

    Pay Out으로 이동할 흐름 항목입니다.

    Teams 카드에서 필요한 정보에 대한 식을 얻으려면 다음 표에 표시된 값을 사용합니다.

    이름 Expression
    승인 상태 body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['submitActionId']
    승인자 body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response')? ['responder'] ['displayName']
    승인 날짜 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']

    다음 예제에서는 Power Automate의 수식 상자를 사용하여 식을 작성하는 방법을 보여줍니다.

    식 수식을 보여 주는 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."
}
  • 카드는 계약 관리 채널에 게시됩니다.

    거부할 흐름 적응형 카드입니다.