الخطوة 3. استخدم Power Automate لإنشاء التدفق لمعالجة العقود الخاصة بك

لقد أنشأت قناة إدارة العقود وأرفقت SharePoint مستنداتك. الخطوة التالية هي إنشاء تدفق Power Automate لمعالجة العقود التي يحددها SharePoint Syntex الخاص بك ويصنفها. يمكنك القيام بهذه الخطوة عن طريق إنشاء Power Automate في مكتبة SharePoint المستندات.

للحصول على حل إدارة العقود، تريد إنشاء Power Automate جديد للقيام بما يلي:

  • بعد تصنيف العقد حسب SharePoint Syntex الخاص بك، غير حالة العقد إلى قيد المراجعة.
  • بعد ذلك، يتم مراجعة العقد وإما أن يكون معتمدا أو مرفوضا.
  • بالنسبة للتعاقدات المعتمدة، يتم نشر معلومات العقد في علامة تبويب لمعالجة الدفع.
  • بالنسبة للتعاقدات المرفوضة، يتم إعلام الفريق لمزيد من التحليل.

يعرض الرسم التخطيطي التالي Power Automate تدفق حل إدارة التعاقدات.

Flow التخطيطي يعرض الحل بأكمله.

تحضير تعاقدك للمراجعة

عند تحديد تعاقد وتصنيفه حسب نموذج SharePoint Syntex المستند، سيغير تدفق Power Automate أولا الحالة إلى قيد المراجعة.

تحديث الحالة.

بعد سحب الملف، غير قيمة الحالة إلى قيد المراجعة.

في حالة المراجعة.

الخطوة التالية هي إنشاء بطاقة تكييفية تفيد بأن العقد بانتظار مراجعته ونشره إلى قناة إدارة التعاقدات.

منشور مراجعة العقد.

إنشاء بطاقة تكييفية للمراجعة.

التعليمة البرمجية التالية هي JSON المستخدمة لهذه الخطوة في 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"
    }
    }
]
}

السياق الشرطي

في التدفق، ستحتاج بعد ذلك إلى إنشاء شرط يتم فيه الموافقة على العقد أو رفضه.

شرطي.

إذا تمت الموافقة على العقد

عند الموافقة على عقد، تحدث الأمور التالية:

  • على علامة التبويب تعاقدات ، ستتغير الحالة في بطاقة العقد إلى تمت الموافقة.

    تمت الموافقة على حالة البطاقة.

  • في التدفق، يتم تغيير الحالة إلى تمت الموافقة.

    Flow الحالة المعتمدة.

  • في هذا الحل، تضاف بيانات العقد إلى علامة التبويب مقابل حتى يمكن إدارة الرواتب. يمكن تمديد هذه العملية للسماح للتدفق بإرسال العقود للدفع بواسطة تطبيق مالي من جهة خارجية (على سبيل المثال، Dynamics CRM).

    تم نقل العقد إلى الدفع.

  • في التدفق، يمكنك إنشاء العنصر التالي لنقل العقود المعتمدة إلى علامة التبويب مقابل مقابل مقابل.

    Flow للانتقال إلى الدفع.

    للحصول على تعبيرات المعلومات المطلوبة من بطاقة 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') ؟ ['المستجيب'] ['displayName']
    تاريخ الموافقة body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response') ؟ ['responseTime']
    تعليق body('Post_an_Adaptive_Card_to_a_Teams_channel_and_wait_for_a_response') ؟ ['data']؟ ['acComments']

    يوضح المثال التالي كيفية استخدام مربع الصيغة في Power Automate لكتابة تعبير.

    لقطة شاشة Power Automate تعرض صيغة تعبير.

  • يتم إنشاء بطاقة تكييفية تفيد بأنه تمت الموافقة على العقد ونقرها في قناة إدارة التعاقدات.

    تم نشر الموافقة على العقد.

    الموافقة على البطاقة التكييفية.

    التعليمة البرمجية التالية هي JSON المستخدمة لهذه الخطوة في 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."
}

إذا تم رفض العقد

عند رفض العقد، تحدث الأمور التالية:

  • على علامة التبويب تعاقدات، ستتغير الحالة في بطاقة العقد إلى مرفوض.

    تم رفض حالة البطاقة.

  • في التدفق، يمكنك سحب ملف العقد، وتغيير الحالة إلى مرفوض، ثم سحب الملف مرة أخرى.

    Flow رفض الحالة في ملف العقد.

  • في التدفق، يمكنك إنشاء بطاقة تكييفية تفيد برفض العقد.

    Flow الحالة مرفوضة على بطاقة تكييفية.

التعليمة البرمجية التالية هي JSON المستخدمة لهذه الخطوة في 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."
}
  • يتم نشر البطاقة في قناة إدارة التعاقدات.

    Flow بطاقة تكييفية لرفضها.