इसके माध्यम से साझा किया गया


ट्यूटोरियल: एक लक्षित वातावरण के लिए एक आवेदन स्थापित करें

इस ट्यूटोरियल का उद्देश्य Power Platform व्यवस्थापकों को सक्षम करना है ताकि वे उन ऐप्लिकेशन को स्थापित करने के लिए Power Platform API का लाभ उठा सकें जिनके लिए उनके टैनेंट के पास पहले से ही पात्रता है. ये ऐप्लिकेशन Power Platform व्यवस्थापन केंद्र में परिवेश>[environment-name]>संसाधन>Dynamics 365 ऐप्स के तहत दिखाई देने चाहिए.

इस ट्यूटोरियल में, आप निम्न कार्य करना सीखते हैं:

  1. Power Automate या Logic Apps कार्यप्रवाह (Azure) बनाएँ जो Power Platform API के साथ प्रमाणित करता है.
  2. उन ऐप्लिकेशंस की सूची को पुनः प्राप्त करने के लिए गेट एनवायरनमेंट ऐप्लिकेशन पैकेज API उपयोग करें जिन्हें आप एक विशिष्ट परिवेश में स्थापित कर सकते हैं
  3. ऐप्लिकेशन पैकेज API स्थापित करें का उपयोग करके ऐप्लिकेशन स्थापित करें
  4. ऐप्लिकेशन पैकेज इंस्टॉल स्थिति API प्राप्त करें स्थापना संचालन की स्थिति के लिए पोल
  5. एक बार स्थापना पूरा हो जाने पर ईमेल द्वारा सूचित करें

इस उदाहरण परिदृश्य में, एक ग्राहक अपनी पसंद के विशिष्ट वातावरण में कार्यालय समूह स्थापित करना चाहता है.

ऐसा टूल चुनें जो Power Platform API से प्रमाणित हो सके

निम्नलिखित जानकारी प्रोग्रामेटिक रूप से कनेक्ट होने के बारे में विवरण प्रदान करती है। Power Platform इस ट्यूटोरियल में Azure स्पेस में काम करने वाले व्यवस्थापक के लिए एक सामान्य क्लायंट के रूप में Azure Logic Apps का उपयोग करना, और एक मूल Power Platform CLI उदाहरण शामिल है.

कार्यप्रवाह बनाएँ और चर सेट करें

आरंभ करने के लिए, इस ट्यूटोरियल में हम Logic Apps वर्कफ़्लो का उपयोग करते हैं। Power Automate प्रवाह भी स्वीकार्य है, और किसी भी अन्य ऑर्केस्ट्रेशन इंजिन जो आपकी कंपनी स्वचालन के लिए उपयोग करना पसंद करती है. डेटा पुनः प्राप्त करने के लिए सभी कॉल RESTful API का उपयोग करते हैं, इसलिए कोई भी टूल जो REST का समर्थन करता है, इस ट्यूटोरियल के साथ काम करता है।

Azure पोर्टल पर जाएं, और फिर एक नया लॉजिक ऐप बनाएं और उसे एक नाम दें:

एक तर्क ऐप बनाएं.

आपूर्ति समाप्त होने के बाद, डिज़ाइनर का उपयोग करके कार्यप्रवाह संपादित करें और अपनी पसंद के शेड्यूल पर चलने के लिए एक पुनरावर्तन ट्रिगर सेट करें:

पुनरावृत्ति ट्रिगर सेट करें.

इस ट्यूटोरियल के शेष भाग के लिए, आपको आगे के चरणों को पूरा करने के लिए एक परिवेश आईडी और एक एप्लिकेशन नाम की आवश्यकता होगी:

  • पर्यावरण आईडी: उस पर्यावरण की आईडी जिसमें आप पैकेज स्थापित करेंगे। यह आईडी संगठन आईडी नहीं है.
  • अनुप्रयोग नाम: उस अनुप्रयोग का नाम जिसे आप स्थापित करने का प्रयास कर रहे हैं.

इसके बाद हम Microsoft Entra के साथ प्रमाणीकरण करते हैं और Power Platform API को कॉल करने के लिए टोकन प्राप्त करते हैं। यदि आपने अपना Microsoft Entra सेटअप पूरा नहीं किया है, तो प्रमाणीकरण देखें.

इस ट्यूटोरियल में, हम टोकन प्राप्त करने के लिए पासवर्ड के साथ उपयोगकर्ता के क्रेडेंशियल का उपयोग कर रहे हैं.

फिर हम 'पार्स JSON' क्रिया में इस JSON स्कीमा का उपयोग करके Microsoft Entra टोकन प्रत्युत्तर को टाइप किए गए ऑब्जेक्ट में पार्स करते हैं:

{
    "properties": {
        "access_token": {
            "type": "string"
        },
        "expires_in": {
            "type": "integer"
        },
        "ext_expires_in": {
            "type": "integer"
        },
        "token_type": {
            "type": "string"
        }
    },
    "type": "object"
}

 Microsoft Entra टोकन प्रत्युत्तर को एक सशक्त टाइप्ड ऑब्जेक्ट में पार्स करें।

स्थापित करने के लिए उपलब्ध पैकेजों को पुनः प्राप्त करें

इस अनुभाग में, हम उन अनुप्रयोगों की सूची प्राप्त करते हैं जिन्हें आप किसी विशिष्ट वातावरण में स्थापित कर सकते हैं। सुनिश्चित करें कि आपकी परिवेश आईडी उपलब्ध है, और यह कि इस परिवेश में एक Dataverse डेटाबेस बनाया गया है.

परिवेश ऐप्लिकेशन पैकेज समाप्ति बिंदु

अब हम Power Platform API पर अपना पहला कॉल करते हैं। हम दिए गए Dataverse संगठन के लिए स्थापित किए जा सकने वाले सभी उपलब्ध पैकेजों को पुनर्प्राप्त करने के लिए परिवेश ऐप्लिकेशन पैकेज API प्राप्त करें का उपयोग करेंगे. सुनिश्चित करें कि आप जिस पहचान का उपयोग कर रहे हैं, चाहे वह सेवा प्रिंसिपल हो या उपयोगकर्ता नाम/पासवर्ड, उसकी Dataverse और उचित सुरक्षा भूमिका तक पहुँच हो.

GET https://api.powerplatform.com/appmanagement/environments/{environmentId}/applicationPackages?api-version=2022-03-01-preview

फिर हम 'Parse JSON' क्रिया के साथ इस JSON स्कीमा का उपयोग करके प्रत्युत्तर को एक टाइप किए गए ऑब्जेक्ट में पार्स करते हैं:

{
    "properties": {
        "value": {
            "items": {
                "properties": {
                    "applicationDescription": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "applicationId": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "applicationName": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "applicationVisibility": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "catalogVisibility": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "crmMaxVersion": {},
                    "crmMinversion": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "customHandleUpgrade": {
                        "type": "boolean"
                    },
                    "endDateUtc": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "errorDetails": {},
                    "id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "instancePackageId": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "learnMoreUrl": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "localizedDescription": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "localizedName": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "publisherId": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "publisherName": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "singlePageApplicationUrl": {},
                    "startDateUtc": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "state": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "supportedCountries": {
                        "items": {
                            "type": [
                                "string",
                                "null"
                            ]
                        },
                        "type": "array"
                    },
                    "uniqueName": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "version": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "uniqueName",
                    "version",
                    "localizedDescription",
                    "localizedName",
                    "applicationId",
                    "applicationName",
                    "applicationDescription",
                    "singlePageApplicationUrl",
                    "publisherName",
                    "publisherId",
                    "learnMoreUrl",
                    "crmMinversion",
                    "crmMaxVersion",
                    "customHandleUpgrade",
                    "instancePackageId",
                    "state",
                    "catalogVisibility",
                    "applicationVisibility",
                    "errorDetails",
                    "startDateUtc",
                    "endDateUtc",
                    "supportedCountries"
                ],
                "type": "object"
            },
            "type": "array"
        }
    },
    "type": "object"
}

अनुप्रयोग स्थापित करें

अब हम पिछले चरण में से किसी एक ऐप्लिकेशन को ले सकते हैं और इसे इंस्टॉल कर सकते हैं. मान लें कि आप "Office 365 समूह" ऐप्लिकेशन इंस्टॉल करना चाहते हैं. PackageUniqueName फ़ील्ड में मान का चयन करें, इस मामले में, यह अगले चरण में उपयोग करने के लिए Office365Groups है.

ऐप्लिकेशन API स्थापित करें

हम इंस्टॉलेशन को ट्रिगर करने के लिए इंस्टॉल एप्लिकेशन API एंडपॉइंट का उपयोग करते हैं। इस उदाहरण में uniqueName गुण को Office365Groups पर सेट करें.

POST https://api.powerplatform.com/appmanagement/environments/{environmentId}/applicationPackages/{uniqueName}/install?api-version=2022-03-01-preview

और अनुरोध निकाय में पहले चरण से आवेदन प्रविष्टि है:

{
                "id": "ce3bab3c-ada1-40cf-b84b-49b26603a281",
                "uniqueName": "Office365Groups",
                "version": "2.9.0.3",
                "localizedDescription": "With Office 365 groups, you can collaborate with people across your company even if they aren’t Dynamics 365 users. Groups provide a single location to share conversations, meetings, documents, and more.",
                "localizedName": "Office 365 Groups",
                "applicationId": "2f17f077-4175-4d82-b82b-17cd8950b74f",
                "applicationName": "Office365Groups",
                "applicationDescription": "",
                "singlePageApplicationUrl": "",
                "publisherName": "Microsoft CRM Package",
                "publisherId": "255953fd-9ab8-4146-bfa1-859aae326ae9",
                "learnMoreUrl": "http://go.microsoft.com/fwlink/?LinkID=525719",
                "crmMinversion": "8.0",
                "crmMaxVersion": null,
                "customHandleUpgrade": false,
                "instancePackageId": null,
                "state": "None",
                "catalogVisibility": "None",
                "applicationVisibility": "All",
                "errorDetails": null,
                "startDateUtc": "2016-01-01T00:00:00Z",
                "endDateUtc": "2050-01-01T00:00:00Z",
                "supportedCountries": [
                    "AE",
                    "AL",
                    "AM",
                    "AO",
                    "VN",
                    "ZA",
                    "ZW"
                ]
            }

निम्नलिखित कोड एक उदाहरण है प्रत्युत्तर:

{
        "id": "9a44d33b-6055-4c9b-aa4a-4c410a22e9ad",
        "packageId": "ce3bab3c-ada1-40cf-b84b-49b26603a281",
        "applicationId": "2f17f077-4175-4d82-b82b-17cd8950b74f",
        "applicationName": "Office365Groups",
        "applicationDescription": "",
        "singlePageApplicationUrl": "",
        "publisherName": "Microsoft CRM Package",
        "publisherId": "255953fd-9ab8-4146-bfa1-859aae326ae9",
        "packageUniqueName": "Office365Groups",
        "packageVersion": "2.9.0.3",
        "localizedDescription": "With Office 365 groups, you can collaborate with people across your company even if they aren’t Dynamics 365 users. Groups provide a single location to share conversations, meetings, documents, and more.",
        "localizedName": "Office 365 Groups",
        "learnMoreUrl": "http://go.microsoft.com/fwlink/?LinkID=525719",
        "termsOfServiceBlobUris": [
            "https://crmprodnam.blob.core.windows.net/preferredsolution/microsoft_tos_dbd53f75-b571-46ad-b9ce-21b5656b85dd_1?sv=2018-03-28&sr=c&sig=v5iBtDum0N6A0sqyyhIkPECibmpGOKGiSmmm3ALGIR0%3D&se=2022-03-23T19%3A35%3A59Z&sp=r"
        ],
        "applicationVisibility": "All",
        "lastOperation": {
            "state": "InstallRequested",
            "createdOn": "2022-03-22T19:35:59.7425066Z",
            "modifiedOn": null,
            "errorDetails": null,
            "statusMessage": null,
            "instancePackageId": "9a44d33b-6055-4c9b-aa4a-4c410a22e9ad",
            "operationId": "4fde996a-bf68-413c-b2bf-33f21a7e9afb"
        },
        "customHandleUpgrade": false
    }

फिर हम अपने आगामी चरणों के लिए ऑपरेशन आईडी प्राप्त करने के लिए पार्स JSON क्रिया का उपयोग करते हैं।

संचालन स्थिति के लिए पोल

अब हम पूर्व चरण से ऑपरेशन आईडी का उपयोग करके समय-समय पर पोलिंग करके एप्लिकेशन इंस्टॉल की प्रगति की निगरानी करते हैं।

इकाई नियंत्रण का उपयोग करें

किसी भी टर्मिनल स्थिति जैसे रद्द, विफल, या सफल के लिए ऑपरेशन आईडी को पोलिंग करने से प्रत्युत्तर का मूल्यांकन करके, हम प्रक्रिया को पूरा करने के लिए प्रभावी रूप से निगरानी करते हैं। यह कार्य Until नियंत्रण द्वारा आसानी से किया जा सकता है, जो इस शर्त के पूरा होने तक लगातार लूप करता रहता है।

नियंत्रण तक.

हम इंस्टॉलेशन की निगरानी के लिए एप्लिकेशन इंस्टॉल स्थिति एंडपॉइंट का उपयोग करते हैं। operationId गुण पिछले चरण से सेट करें.

GET https://api.powerplatform.com/appmanagement/environments/{environmentId}/operations/{operationId}?api-version=2022-03-01-preview

एक उदाहरण आउटपुट दिखाया गया है:

{
  "status": "NotStarted",
  "createdDateTime": "2022-03-22T20:05:58.9414573Z",
  "lastActionDateTime": null,
  "error": null,
  "statusMessage": null,
  "operationId": "523b51a8-6af4-40cd-aa7d-86bddfa6697b"
}

यहाँ से, हम स्थिति का मूल्यांकन कर सकते हैं और यदि यह टर्मिनल मानों में से एक है तो हम लूप को तोड़ सकते हैं.

ईमेल भेजें

अब जबकि निगरानी समाप्त हो गई है, हम एक उदाहरण गतिविधि के रूप में ईमेल पर परिणाम साझा कर सकते हैं.

गतिविधि की स्थिति पर एक ईमेल (v2) भेजें.