नोट
इस पेज तक पहुँच के लिए प्रमाणन की आवश्यकता होती है. आप साइन इन करने या निर्देशिकाओं को बदलने का प्रयास कर सकते हैं.
इस पेज तक पहुँच के लिए प्रमाणन की आवश्यकता होती है. आप निर्देशिकाओं को बदलने का प्रयास कर सकते हैं.
मारिया और कियाना वेब API के साथ अनुप्रयोग को जोड़ने के लिए तैयार हैं. हालांकि आगे बढ़ने से पहले वे IT परिचालन मैनेजर, प्रीति के साथ सलाह लेने का फैसला करते हैं.
वेब API के लिए IT परिचालन प्रबंधन की जरूरतों को समझना
प्रीति इस बात को लेकर चिंतित हैं कि अनुप्रयोग और वेब API को सुरक्षित होना चाहिए क्योंकि वे तरह तरह के डेटाबेस में सहेजे गए संवेदनशील डेटा तक एक्सेस प्रदान करते हैं. प्रीति यह आश्वासन चाहती हैं कि सूचना तक अनुचित पहुंच को रोकने के लिए प्रमाणीकरण और प्राधिकरण को शामिल किया जाएगा। प्रीति को यह भी पता है कि कंपनी तेजी से विस्तार कर रही है, और ग्राहकों, नियुक्तियों, भागों के प्रबंधन में शामिल डेटा की मात्रा और ज्ञान के आधार के निकट समय में तेजी से बढ़ने की संभावना है. परिणामस्वरूप, समाधान को स्केलेबल होना चाहिए।
कियाना प्रीति को समझाती हैं कि वेब API फ़िलहाल Azure अनुप्रयोग सेवा के साथ लागू है. यह सेवा कई प्रमाणीकरण प्रदाताओं को समर्थन देती है, जिसे प्रीति Azure पोर्टल का उपयोग करके कॉन्फ़िगर कर सकती हैं. प्रीति को विशेष रूप से आईडी में रुचि है क्योंकि वैनअर्स्डेल निकट भविष्य में अपने कई अन्य कॉर्पोरेट प्रणालियों में प्रमाणीकरण के इस रूप को लागू करना चाहता है। Microsoft Entra
अनुप्रयोग सेवा हॉरिजेंटल और वर्टिकल मापन की क्षमता भी प्रदान करती है. यदि जरुरी हो तो, प्रीति वेब अनुप्रयोग के लिए अनुप्रयोग सेवा योजना को अपग्रेड करके वेब API के लिए उपलब्ध संसाधनों को बढ़ा सकती है:
प्रीति ऑटोस्केलिंग को कॉन्फ़िगर करके सिस्टम को स्केल आउट करने की व्यवस्था भी कर सकती है। अनुप्रयोग सेवा एक परिचालन प्रबंधक को ऑटोस्केल नियमों को परिभाषित करने में सक्षम बनाती है जो उन स्थितियो को निर्धारित करती हैं जिनके तहत सिस्टम को अधिक उदाहरणों में स्केल करना चाहिए जब लोड बढ़ता है, या मांग गिरने के रूप में फिर से वापस आ जाता है. प्रीति एक शेड्यूल के अनुसार पूर्व-निर्धारित ऑटोस्केलिंग को भी कॉन्फ़िगर कर सकती है:
IT ऑपरेशंस मैनेजर की भूमिका का एक अहम हिस्सा यह है कि सिस्टम कैसे विकसित हो सकता हैं, और यह सुनिश्चित करने के लिए नज़र रखना है कि अंतर्निहित समर्थन संरचनाएं भविष्य के विस्तार और परिवर्तनों को संभालेंगी. प्रीति को पता है कि कियाना द्वारा की गई वेब API को बढ़ाया जा सकता है, और भविष्य में अन्य VanArsdel सिस्टम द्वारा दोबारा इस्तेमाल किया जा सकता है. प्रीति को डेवलपर्स द्वारा वेब एपीआई के उपयोग का अनुरोध करने के तरीके को प्रबंधित और नियंत्रित करने, इसे एक मूल्यवान संसाधन के रूप में संरक्षित करने और इसके उपयोग की निगरानी करने में सक्षम होना चाहिए। इस कारण से प्रीति ने Azure API प्रबंधन सेवा के पीछे वेब API की रक्षा करने का फैसला किया.
API प्रबंधन वेब API को सुरक्षा की एक अतिरिक्त परत प्रदान करता है, साथ ही ग्राहक किस एक्सेस तक पहुंच सकते हैं की विस्तारपूर्वक निगरानी और नियंत्रण को सक्षम करता है. API प्रबंधन का उपयोग करते हुए, प्रीति संसाधन उपयोग का प्रबंधन कर सकती है, ताकि कि यह सुनिश्चित किया जा सके की कम प्राथमिकता वाले ग्राहकों के प्रदर्शन को दबाते हुए अहम उच्च प्राथमिकता वाले अनुप्रयोग को मिले जिससे वो अधिक तेज़ी से सेवित हों.
API प्रबंधन द्वारा प्रदान की जाने वाली सेवाओं के बारे में जानकारी के लिए, API प्रबंधन के बारे में पर जाएँ।
API प्रबंधन सेवा बनाना
प्रीति नीचे दिए गए चरणों का उपयोग करते हुए Azure पोर्टल के माध्यम से API प्रबंधन सेवा बनाई:
Azure पोर्टल में लॉग इन करें और, होम पृष्ठ पर, संसाधन बनाएँ चुनें.
मार्केटप्लेस खोजें टेक्स्ट बॉक्स में, API प्रबंधन दर्ज करें, और फिर दर्ज करें का चयन करें.
API प्रबंधन पृष्ठ पर, बनाएँ चुनें.
API प्रबंधन बनाएँ पृष्ठ पर, निम्न मान दर्ज करें, और फिर समीक्षा + बनाएँ चुनें:
- सदस्यता: अपनी सदस्यता चुनें
- संसाधन समूह: webapi_rg (यह वही संसाधन समूह है जिसे आपने ऐप सेवा के लिए बनाया था)
- क्षेत्र: अपने निकटतम क्षेत्र को चुनें
- संसाधन का नाम: सेवा के लिए एक युनीक नाम दर्ज करें
- संगठन का नाम: VanArsdel
- व्यवस्थापक ईमेल: itadmin@vanarsdel.com
- मूल्य निर्धारण स्तर: डेवलपर (कोई SLA नहीं)
नोट
किसी उत्पादन प्रणाली के लिए डेवलपर मूल्य निर्धारण स्तर का उपयोग न करें।
सत्यापन पृष्ठ पर, बनाएँ का चयन करें, और API प्रबंधन सेवा बनने तक प्रतीक्षा करें.
नोट
धैर्य रखें; API प्रबंधन सेवा के प्रावधान होने में 30 मिनट या उससे अधिक समय लग सकता है.
API प्रबंधन के माध्यम से वेब API का प्रकाशन
API प्रबंधन सेवा तैयार होने के बाद, प्रीति ने निम्नलिखित चरणों का उपयोग करके वेब API को अन्य सेवाओं और अनुप्रयोगों के लिए सुलभ बनाने के लिए प्रकाशित किया:
Azure पोर्टल में, API प्रबंधन सेवा पर जाएं.
API प्रबंधन सेवा पृष्ठ पर, बाएँ फलक पर APIs के अंतर्गत, APIs का चयन करें:
नया API जोड़ें पैन में, OpenAPI चुनें:
विनिर्देश से बनाएँ OpenAPI संवाद में, निम्नलिखित मान दर्ज करें, और फिर बनाएँ चुनें:
- OpenAPI विशिष्टता: https://<वेबऐप नाम>.azurewebsites.net/swagger/v1/swagger.json, जहाँ <वेबऐप नाम> आपके वेब API को होस्ट करने वाली ऐप सेवा का नाम है
- प्रदर्शन नाम: फ़ील्ड इंजीनियर API
- नाम: field-engineer-api
- API URL जोड़ना: खाली छोड़ दें
- बेस URL: डिफ़ॉल्ट URL का इस्तेमाल करें
जब फ़ील्ड इंजीनियर API बना लिया गया हो, तो API के लिए सेटिंग टैब चुनें, वेब सेवा URL से https://<वेबऐप नाम>.azurewebsites.net सेट करें, और फिर सहेजें चुनें:
टेस्ट टैब पर, GET api/Appointments URI का चयन करें, और फिर भेजें का चयन करें:
सत्यापित करें कि अनुरोध सफल है (HTTP रिटर्न कोड 200 OK है), और यह प्रतिक्रिया निकाय में नियुक्तियों की सूची युक्त परिणाम लौटाता है:
अनुप्रयोग से API प्रबंधन को जोड़ना
कियाना और मारिया अब API मैनेजमेंट सेवा के माध्यम से Power Apps का इस्तेमाल करके वेब API से बनाएं गए अनुप्रयोग को जोड़नें के लिए एक साथ काम कर सकते हैं.
पहला काम एक कस्टम कनेक्टर बनाना है जो अनुप्रयोग द्वारा API प्रबंधन के साथ संवाद करने के लिए उपयोग किया जाता है. इसमें अनुप्रयोग बनाने के लिए उपयोग किए जाने वाले Power Apps परिवेश में API का निर्यात करना शामिल है, जो कियाना इस प्रकार करती है:
Azure पोर्टल में, प्रीति द्वारा बनाई गई API प्रबंधन सेवा के लिए पृष्ठ पर जाएं.
बाएँ फलक पर APIs के अंतर्गत, APIs चुनें.
फील्ड इंजीनियर एपi के लिए एलिप्सिस बटन का चयन करें, और फिर निर्यात का चयन करें।
निर्यात API फलक पर, Power Apps और Power Automate का चयन करें:
एपीआई को PowerApps में निर्यात करें फलक पर, उस Power Apps पर्यावरण का चयन करें जिसमें आपने प्रोटोटाइप ऐप बनाया था (मारिया निम्न छवि में), और फिर निर्यात करें का चयन करें.
API निर्यात हो जाने के बाद, फ़ील्ड इंजीनियर API का चयन करें. सेटिंग पृष्ठ पर, सदस्यता अनुभाग तक नीचे स्क्रॉल करें, सदस्यता आवश्यक साफ़ करें, और फिर सहेजें चुनें.
डेटा स्रोतों के लिए प्रारूप अनुप्रयोग ने Excel वर्कबुक का इस्तेमाल किया. अब जब वेब API के लिए कस्टम कनेक्टर उपलब्ध है, तो अनुप्रयोग में कनेक्टर को जोड़ने के लिए मारिया नीचे दिए गए कदम उठाती है:
Power Appsमें लॉग इन करें.
बाएँ फलक पर, डेटा विस्तृत करें, और कस्टम कनेक्टर का चयन करें. field-engineer-api कस्टम कनेक्टर सूचीबद्ध होना चाहिए. कनेक्शन बनाएँ चुनें.
field-engineer-api संवाद में, बनाएँ चुनें.
जब कनेक्शन बनाया गया है, तो सत्यापित करें कि यह उपलब्ध कनेक्शनों की सूची में दिखाई देता है.
बाएँ फलक पर, ऐप्स का चयन करें, VanArsdelApp का चयन करें, और फिर संपादित करें का चयन करें.
बाएँ फलक पर, डेटा टैब चुनें। डेटा जोड़ें चुनें, कनेक्टर्स के लिए एलिप्सिस बटन चुनें, और फिर रीफ़्रेश चुनें।
कनेक्टर्स की सूची में, field-engineer-api कनेक्टर का चयन करें.
field-engineer-api संवाद में, field-engineer-api कनेक्टर का चयन करें.
डेटा फलक पर, सत्यापित करें कि FieldEngineerApi कनेक्टर सूचीबद्ध है.
कनेक्टर का उपयोग करने के लिए अनुप्रयोग को अपडेट करना: फ़ील्ड इन्वेंट्री प्रबंधन
अब जब कनेक्शन को अनुप्रयोग में जोड़ दिया गया है, तो मारिया स्क्रीन को संशोधित कर Excel वर्कबुक को बदलने के लिए इसका उपयोग कर सकती है. इसमें प्रत्येक स्क्रीन के माध्यम से डेटा स्रोत को बदलना और व्यवस्थित रूप से काम करना शामिल है. कोई अन्य परिवर्तन जरुरी नहीं होना चाहिए. मारिया ब्राउज़पार्ट्स और पार्टडिटेल्स स्क्रीन से शुरू करती है, इस प्रकार:
ऐप की होम स्क्रीन पर, पार्ट्स बटन का चयन करें। OnSelect कार्रवाई गुण को निम्न सूत्र पर सेट करें.
ClearCollect(partsCollection, FieldEngineerAPI.getapiboilerparts()); Navigate(BrowseParts, ScreenTransition.Fade)
ClearCollect फ़ंक्शन partsCollection नामक एक नया संग्रह बनाता है, और इसे FieldEngineerAPI कनेक्शन में getboilerparts ऑपरेशन को कॉल करने से उत्पन्न होने वाले डेटा से पॉप्युलेट करता है।
नोट
डेटा को एक संग्रह और संदर्भ में पुनः प्राप्त करना अच्छा अभ्यास है, जिससे किसी भी स्क्रीन से संग्रह की जानकारी में जरुरत होती है. यह दृष्टिकोण अलग-अलग स्क्रीन को एक ही क्वेरी को बार-बार चलाने से और एक ही डेटा बार-बार लाने से बचा सकती है.
ऐप का पूर्वावलोकन करने के लिए F5 चुनें.
होम स्क्रीन पर, पार्ट्स चुनें. यह क्रिया partsCollection संग्रह बनाएगी. पूर्वावलोकन विंडो बंद करें और Power Apps Studio में वापस लौटें.
नोट
इस चरण का उद्देश्य आपको निम्नलिखित चरणों में ब्राउज़पार्ट्स स्क्रीन को संपादित करते समय डेटा देखने में सक्षम बनाना है।
ब्राउज़पार्ट्स स्क्रीन में ब्राउज़गैलरी1 नियंत्रण का चयन करें. आइटम्स संपत्ति के लिए सूत्र में, [@Table1] डेटा स्रोत के संदर्भ को partsCollection से प्रतिस्थापित करें.
इस परिवर्तन के परिणामस्वरूप कुछ गलतियां होंगी. ऐसा इसलिए है क्योंकि मूल Excel कार्यपुस्तिका में फ़ील्ड नामों में कैपिटलाइज़ेशन का उपयोग किया गया था (नाम, श्रेणीID, और अवलोकन), जबकि वेब API प्रतिक्रिया के मुख्य भाग में लौटाए गए गुणों को लोअरकेस में नामित किया गया है। छोटे अक्षरों का उपयोग करने के लिए इन संदर्भों को बदलें. सूत्र इसकी तरह दिखना चाहिए.
SortByColumns(Search(FieldEngineerApi.getapiboilerparts(), TextSearchBox1.Text, "name", "categoryId", "overview"), "name", If(SortDescending1, Descending, Ascending))
ट्री व्यू पैन पर, IconRefresh1 नियंत्रण का चयन करें. OnSelect कार्रवाई को सूत्र ClearCollect(partsCollection, FieldEngineerAPI.getapiboilerparts()) में बदलें.
नोट
इस क्रिया के लिए मूल सूत्र मूल डेटा स्रोत से कनेक्शन का उपयोग करके डेटा को पुनः भरने के लिए रीफ़्रेश फ़ंक्शन को कॉल करता है। आप Refresh का उपयोग उस कनेक्शन के साथ नहीं कर सकते जो डेटा पुनर्प्राप्त करने के लिए फ़ंक्शन चलाता है, इसलिए यह FieldEngineerApi.getapiboilerparts() के साथ काम नहीं करेगा। इस चरण में समाधान partsCollection संग्रह को नवीनतम डेटा के साथ पुनः पॉप्युलेट करता है।
ट्री व्यू पैन पर, ब्राउज़गैलरी1 नियंत्रण का विस्तार करें, और बॉडी1 नियंत्रण का चयन करें. Text संपत्ति को ThisItem.overview में बदलें.
ट्री व्यू पैन पर, उपशीर्षक1 नियंत्रण का चयन करें. Text प्रॉपर्टी को ThisItem.categoryId में बदलें.
ट्री व्यू पैन पर, शीर्षक नियंत्रण का चयन करें. टेक्स्ट संपत्ति को ThisItem.name में बदलें.
ट्री व्यू पैन पर, पार्टडिटेल्स स्क्रीन में डिटेलफॉर्म1 नियंत्रण का चयन करें. DataSource संपत्ति को [@Table1] से partsCollection में बदलें.
ट्री व्यू पैन पर, DetailForm1 के अंतर्गत Name_DataCard1नियंत्रण का चयन करें. डिफ़ॉल्ट संपत्ति को ThisItem.name में बदलें.
डिफ़ॉल्टCategoryID_DataCard1 नियंत्रण के गुण को ThisItem.categoryId में बदलें.
DefaultOverview_DataCard1 नियंत्रण के गुण को ThisItem.overview में बदलें.
Price_DataCard1 नियंत्रण के डिफ़ॉल्ट गुण को ThisItem.price में बदलें.
NumberInStock_DataCard1 नियंत्रण के डिफ़ॉल्ट गुण को ThisItem.numberInStock में बदलें.
Image_DataCard1 नियंत्रण के डिफ़ॉल्ट गुण को ThisItem.imageUrl में बदलें.
डेटा टैब पर बाएँ फलक पर, तालिका1 डेटा कनेक्शन पर दायाँ क्लिक करें, और फिर उसे ऐप से हटाने के लिए निकालें चुनें। इस कनेक्शन की अब आगे जरुरत नहीं है.
अनुप्रयोग को सहेजें.
नोट
आप Ctrl+S का चयन करके फ़ाइलमेनू का उपयोग किए बिना ऐप को शीघ्रता से सहेज सकते हैं।
ऐप का पूर्वावलोकन करने के लिए F5 चुनें. ब्राउज़ पार्ट्स और पार्ट विवरण स्क्रीन को पहले की तरह ही काम करना चाहिए, सिवाय इसके कि इस बार वे स्थानीय Excel फ़ाइल के बजाय वेब API के माध्यम से InventoryDB Azure SQL डेटाबेस से डेटा पुनर्प्राप्त कर रहे हैं।
पूर्वावलोकन विंडो बंद करें और Power Apps Studio में वापस लौटें.
कनेक्टर का उपयोग करने के लिए अनुप्रयोग अपडेट करना: फ़ील्ड शेड्यूलिंग और नोट्स
मारिया ब्राउज़अपॉइंटमेंट्स, अपॉइंटमेंट विवरण, और अपॉइंटमेंट संपादित करें स्क्रीन के साथ जारी है। इन स्क्रीन द्वारा प्रस्तुत डेटा वर्तमान में किसी अन्य Excel कार्यपुस्तिका में अपॉइंटमेंट्स तालिका से उत्पन्न होता है।
ऐप की होम स्क्रीन पर, ऑनविजिबल कार्रवाई को निम्न सूत्र पर सेट करें।
ClearCollect(appointmentsCollection, Sort(Filter(FieldEngineerAPI.getapiappointments(), DateDiff(Today(), startDateTime) >= 0), startDateTime))
यह सूत्र अपॉइंटमेंट्स डेटा को appointmentsCollection संग्रह में पुनर्प्राप्त करता है. नियुक्तियों को वर्तमान तिथि के बाद या उसके बाद निर्धारित यात्राओं को दोबारा प्राप्त करने के लिए फ़िल्टर किया जाता है.
अगली नियुक्ति के समय प्रदर्शित होने वाले लेबल नियंत्रण को चुनें. टेक्स्ट प्रॉपर्टी को टेक्स्ट(फर्स्ट(अपॉइंटमेंट्सकलेक्शन).स्टार्टडेटटाइम, शॉर्टटाइम24) पर सेट करें.
लेबल नियंत्रण को चुनें जो अगली नियुक्ति के लिए दिनांक प्रदर्शित करती है. टेक्स्ट प्रॉपर्टी को टेक्स्ट(फर्स्ट(अपॉइंटमेंट्सकलेक्शन).स्टार्टडेटटाइम, लॉन्गडेट) पर सेट करें.
लेबल नियंत्रण को चुनें जो अगली नियुक्ति के लिए ग्राहक का नाम प्रदर्शित करती है. टेक्स्ट प्रॉपर्टी को First(appointmentsCollection).customer.name पर सेट करें.
ऐप का पूर्वावलोकन करने के लिए F5 चुनें. होम स्क्रीन पर, अपॉइंटमेंट्स का चयन करें. यह क्रिया appointmentsCollection संग्रह बनाएगी. पूर्वावलोकन विंडो बंद करें और Power Apps Studio में वापस लौटें.
ट्री व्यू पैन पर, BrowseAppointments स्क्रीन में BrowseAppointmentsGallery नियंत्रण का चयन करें. आइटम्स संपत्ति में सूत्र को निम्नलिखित सूत्र में बदलें।
Sort(Filter(appointmentsCollection, StartsWith(customer.name, TextSearchBox1\_1.Text)), startDateTime)
यह सूत्र ग्राहक के नाम से स्क्रीन पर प्रदर्शित डेटा को फ़िल्टर करता है, जिससे उपयोगकर्ता ग्राहक का नाम दर्ज कर सकता है. नियुक्तियों को दिनांक और समय क्रम में प्रदर्शित किया जाता है.
ट्री व्यू पैन पर, ब्राउज़अपॉइंटमेंटगैलरी नियंत्रण का विस्तार करें, और शीर्षक1_1 नियंत्रण का चयन करें. टेक्स्ट प्रॉपर्टी को निम्न में बदलें।
Text(ThisItem.startDateTime, LongDate)
यह सूत्र नियुक्ति के लिए startDateTime फ़ील्ड का दिनांक भाग प्रदर्शित करता है।
ट्री व्यू पैन पर, ब्राउज़अपॉइंटमेंटगैलरी नियंत्रण का विस्तार करें, और उपशीर्षक1_1 नियंत्रण का चयन करें. टेक्स्ट प्रॉपर्टी को निम्न में बदलें।
Text(ThisItem.startDateTime, ShortTime24)
यह सूत्र startDateTime फ़ील्ड का समय तत्व प्रदर्शित करता है.
ट्री व्यू पैन पर, ब्राउज़अपॉइंटमेंटगैलरी नियंत्रण का विस्तार करें, और बॉडी1_1 नियंत्रण का चयन करें. टेक्स्ट प्रॉपर्टी को निम्न में बदलें।
ThisItem.customer.name
ट्री व्यू पैन पर, ब्राउज़अपॉइंटमेंट्स स्क्रीन पर IconRefresh1_1 नियंत्रण का चयन करें. OnSelect कार्रवाई को निम्न सूत्र पर सेट करें.
ClearCollect(appointmentsCollection, Sort(Filter(FieldEngineerAPI.getapiappointments(), DateDiff(Today(), startDateTime) >= 0), startDateTime));
ट्री व्यू पैन पर, अपॉइंटमेंट विवरण स्क्रीन का विस्तार करें, और DetailForm1_1 नियंत्रण का चयन करें. डेटा स्रोत संपत्ति को appointmentsCollection पर सेट करें.
ट्री व्यू पैन पर, IconEdit1 नियंत्रण का चयन करें. DisplayMode संपत्ति में सूत्र को संशोधित करें ताकि appoinmentsCollection संग्रह का परीक्षण किया जा सके.
If(DataSourceInfo(**appointmentsCollection**, DataSourceInfo.EditPermission), DisplayMode.Edit, DisplayMode.Disabled)
ट्री व्यू पैन पर, DetailForm1_1 स्क्रीन का विस्तार करें, और ग्राहक नाम_डेटाकार्ड1 नियंत्रण का चयन करें. डिफ़ॉल्ट संपत्ति को ThisItem.customer.name में बदलें.
शेष डेटा कार्ड के डिफ़ॉल्ट गुणों को निम्न प्रकार बदलें:
- ग्राहक पता_डेटाकार्ड1: ThisItem.customer.address
- संपर्क नंबर_DataCard1: ThisItem.customer.contactNumber
- समस्या विवरण_डेटाकार्ड1: ThisItem.problemDetails
- स्थिति_डेटाकार्ड1: यहआइटम.appointmentStatus.statusName
- नोट्स_डेटाकार्ड1: यहआइटम.नोट्स
- Image_DataCard1_1: ThisItem.imageUrl
ट्री व्यू पैन पर, EditAppointment स्क्रीन का विस्तार करें, और EditForm1 नियंत्रण का चयन करें. डेटा स्रोत संपत्ति को appointmentsCollection पर सेट करें.
ट्री व्यू पैन पर, EditForm1 नियंत्रण का विस्तार करें, और ग्राहक नाम_डेटाकार्ड3 नियंत्रण का चयन करें. डिफ़ॉल्ट संपत्ति को ThisItem.customer.name में बदलें.
शेष डेटा कार्ड के डिफ़ॉल्ट गुणों को निम्न प्रकार बदलें:
- संपर्क नंबर_डेटाकार्ड2: ThisItem.customer.contactNumber; इसके अतिरिक्त, MaxLength संपत्ति को 20 में बदलें
- समस्या विवरण_डेटाकार्ड2: ThisItem.problemDetails
- Status_DataCard5: ThisItem.appointmentStatus.statusName
- नोट्स_डेटाकार्ड3: यहआइटम.नोट्स
- Image_DataCard2: ThisItem.imageUrl
ट्री व्यू फलक पर, समस्या विवरण_कार्ड2 नियंत्रण का विस्तार करें. इस नियंत्रण के अंतर्गत DataCardValueX (X एक संख्या होगी) फ़ील्ड का नाम बदलकर ProblemDetailsValue करें. निम्नलिखित डेटा कार्ड में DataCardValueX नियंत्रणों के लिए इस प्रक्रिया को दोहराएं:
- स्थिति_डेटाकार्ड5: स्थितिमान
- नोट्स_डेटाकार्ड3: नोट्सवैल्यू
नोट
अगले अध्याय में तस्वीर नियंत्रण पर चर्चा की जाएगी.
ProblemDetailsValue का चयन करें, और MaxLength गुण को 100 पर सेट करें.
ट्री व्यू पैन पर, एडिटअपॉइंटमेंट स्क्रीन पर आइकनस्वीकार1 नियंत्रण का चयन करें। OnSelect कार्रवाई गुण को निम्न सूत्र पर सेट करें.
FieldEngineerAPI.putapiappointmentsid(BrowseAppointmentsGallery.Selected.id, {problemDetails:ProblemDetailsValue.Text, statusName:StatusValue.Selected.Value, notes:NotesValue.Text, imageUrl:""}); Remove(appointmentsCollection, First(Filter(appointmentsCollection, id=BrowseAppointmentsGallery.Selected.id))); Set(appointmentRec, FieldEngineerAPI.getapiappointmentsid(BrowseAppointmentsGallery.Selected.id)); Collect(appointmentsCollection, appointmentRec); Navigate(AppointmentDetails, ScreenTransition.None);
यह सूत्र वेब API में अपॉइंटमेंट नियंत्रक के लिए PUT ऑपरेशन को कॉल करता है. यह वर्तमान पैरामीटर के लिए नियुक्ति ID को पहले पैरामीटर के रूप में पारित करता है, उसके बाद विवरण जो उपयोगकर्ता स्क्रीन पर संशोधित कर सकता है. JSON ऑब्जेक्ट को विवरण के रूप में पास किया जाता है. निकालें, सेट करें, और एकत्रित करें कथन डेटाबेस में सहेजे गए डेटा के साथ appointmentsCollection संग्रह को अद्यतन करते हैं।
नोट
ऐसी स्थितियों में संपूर्ण संग्रह को हटाने और ताज़ा करने के लिए ClearCollect फ़ंक्शन का उपयोग न करें, क्योंकि यह बेकार होगा यदि—उदाहरण के लिए—केवल एक रिकॉर्ड बदल गया हो।
ट्री व्यू पैन पर, एडिटअपॉइंटमेंट स्क्रीन पर आइकनस्वीकार1 नियंत्रण का चयन करें। OnSelect कार्रवाई गुण को निम्न पर सेट करें.
ResetForm(EditForm1); Navigate(AppointmentDetails, ScreenTransition.None);
डेटा टैब पर बाएँ फलक पर, अपॉइंटमेंट डेटा कनेक्शन पर राइट-क्लिक करें, और फिर उसे ऐप से हटाने के लिए निकालें चुनें।
अनुप्रयोग को सहेजें.
ऐप का पूर्वावलोकन करने के लिए F5 चुनें. होम स्क्रीन से, अपॉइंटमेंट स्क्रीन पर जाएं, अपॉइंटमेंट चुनें और संपादित करें, और फिर परिवर्तनों को सहेजें। सत्यापित करें कि नियुक्ति को अपडेट कर दिया गया है.
पूर्वावलोकन विंडो बंद करें और Power Apps Studio में वापस लौटें.
फ़ील्ड नॉलेजबेस के लिए Azure संज्ञानात्मक खोज सेवा बनाना
नॉलेजबेस स्क्रीन वर्तमान में किसी भी डेटा स्रोत से अनुप्रयोग में जुड़ी हुई नहीं है. वेब एपीआई में टिप्स, बॉयलरपार्ट्स, और इंजीनियर्सनॉलेजडीबी डेटाबेस में तालिकाओं को क्वेरी करने और अपडेट करने के लिए ऑपरेशन शामिल हैं। हालाँकि, ऐप में क्वेरी स्क्रीन का उद्देश्य इन सभी तालिकाओं के माध्यम से खोजों का समर्थन करना है। इन तालिकाओं में डेटा की मात्रा जल्दी बढ़ने की संभावना है, इसलिए मारिया, कियाना और प्रीति इस सुविधा का समर्थन करने के लिए Azure संज्ञानात्मक खोज को विस्तार करने का निर्णय लेते हैं. एक अनुप्रयोग कस्टम कनेक्टर के माध्यम से क्वेरी सबमिट कर के Azure संज्ञानात्मक खोज से परिणाम प्राप्त कर सकता है.
यदि खोजा जाने वाला डेटा किसी एकल डेटाबेस निकाय में समाहित है तो Azure संज्ञानात्मक खोज सबसे अच्छा काम करता है. किआना नॉलेजडीबी डेटाबेस में एक दृश्य बनाता है जो टिप्स, बॉयलरपार्ट्स, और इंजीनियर्स तालिकाओं का एक एकीकृत दृश्य प्रस्तुत करता है, इस प्रकार:
Azure पोर्टल में, KnowledgeDB SQL डेटाबेस पृष्ठ पर जाएँ.
बाएँ फलक पर, क्वेरी संपादक का चयन करें और पासवर्ड Pa55w.rd का उपयोग करके sqladmin के रूप में डेटाबेस में लॉग इन करें।
क्वेरी विंडो में, निम्नलिखित कथन दर्ज करें, और फिर रन का चयन करें।
CREATE OR ALTER VIEW [dbo].[Knowledge] AS SELECT T.Id, T.Subject, T.Body, B.Name, B.Overview FROM [dbo].[Tips] T INNER JOIN [dbo].[BoilerParts] B ON B.Id=T.KnowledgeBaseBoilerPartId
सत्यापित करें कि दृश्य, ज्ञान, सफलतापूर्वक बनाया गया है.
बाएँ फलक पर, कनेक्शन स्ट्रिंग्स का चयन करें. ADO.NET कनेक्शन स्ट्रिंग को नोट कर लें; जब आप Azure Cognitive Search को कॉन्फ़िगर करेंगे, तो आपको इसकी आवश्यकता होगी.
कियाना के साथ काम करते हुए, प्रीति ज्ञान दृश्य में पंक्तियों पर खोज करने के लिए Azure संज्ञानात्मक खोज सेवा का एक नया उदाहरण कॉन्फ़िगर करती है, इस प्रकार:
होम पृष्ठ पर, Azure पोर्टल में, + संसाधन बनाएँ का चयन करें, Azure संज्ञानात्मक खोज दर्ज करें, दर्ज करें का चयन करें, और फिर बनाएँ का चयन करें.
नई खोज सेवा पृष्ठ पर, निम्न सेटिंग दर्ज करें, और फिर समीक्षा + बनाएँ का चयन करें:
- सदस्यता: अपने Azure सदस्यता को चुनें
- संसाधन समूह: webapi_rg
- सेवा का नाम: सेवा के लिए एक युनीक नाम दर्ज करें
- जगह का नाम: अपने नजदीक क्षेत्र का चयन करें
- मूल्य निर्धारण स्तर: निःशुल्क
सत्यापन पृष्ठ पर, बनाएँ का चयन करें, और सेवा के प्रावधान होने तक प्रतीक्षा करें।
नई खोज सेवा के लिए पृष्ठ पर जाएं, अवलोकन का चयन करें, Url का नोट बना लें (बाद में जब आप Power Apps के लिए कस्टम कनेक्टर बनाएंगे, तो आपको इसकी आवश्यकता होगी), और फिर डेटा आयात करें का चयन करें.
डेटा आयात करें पृष्ठ पर, डेटा स्रोत ड्रॉपडाउन सूची बॉक्स में, Azure SQL डेटाबेस का चयन करें.
अपने डेटा से कनेक्ट करें पृष्ठ पर, निम्नलिखित सेटिंग्स निर्दिष्ट करें:
- डेटा स्रोत: Azure SQL डेटाबेस
- डेटा स्रोत का नाम: नॉलेजबेस
- कनेक्शन स्ट्रिंग: आपके द्वारा पहले रिकॉर्ड किए गए KnowledgDB डेटाबेस के लिए Azure SQL डेटाबेस कनेक्शन स्ट्रिंग दर्ज करें; इस स्ट्रिंग में, पासवर्ड को Pa55w.rd पर सेट करना सुनिश्चित करें
- उपयोगकर्ता आईडी और पासवर्ड फ़ील्ड को उनके डिफ़ॉल्ट मानों पर छोड़ दें; ये आइटम कनेक्शन स्ट्रिंग से प्राप्त किए जाते हैं
टेस्ट कनेक्शन को चुनें. सुनिश्चित करें कि परीक्षण सफल है, तालिका/दृश्य ड्रॉपडाउन सूची बॉक्स में [ज्ञान] का चयन करें, और फिर अगला: संज्ञानात्मक कौशल जोड़ें (वैकल्पिक)का चयन करें।
संज्ञानात्मक कौशल जोड़ें (वैकल्पिक) पृष्ठ पर, छोड़कर जाएं: लक्ष्य सूचकांक अनुकूलित करें चुनें.
लक्ष्य अनुक्रमणिका अनुकूलित करें पृष्ठ पर, सभी स्तंभों के लिए पुनर्प्राप्ति योग्य , और विषय , मुख्य भाग, नाम, और अवलोकन का चयन करें। अगला: एक अनुक्रमणिका बनाएँ चुनें.
इंडेक्सर बनाएँ पृष्ठ पर, इंडेक्सर नाम को नॉलेजबेस-इंडेक्सर में बदलें। शेड्यूल के लिए, प्रति घंटा चुनें, उच्च वॉटरमार्क कॉलम को आईडी पर सेट करें, और फिर सबमिट चुनें:
इंडेक्सर का परीक्षण करने के लिए, खोज सेवा के लिए अवलोकन पृष्ठ पर, खोज एक्सप्लोरर का चयन करें:
क्वेरीस्ट्रिंग फ़ील्ड में, नॉलेज बेस में खोजने के लिए एक शब्द दर्ज करें, और फिर खोज का चयन करें. खोज सेवा को विषय, मुख्य भाग, नाम, या अवलोकन फ़ील्ड में मेल खाने वाले दस्तावेज़ों की एक सूची तैयार करनी चाहिए, और उन्हें परिणाम फलक में प्रदर्शित करना चाहिए। अनुरोध URL और नमूना परिणाम का नोट बना लें; जब आप Power Apps कस्टम कनेक्टर सेट अप करेंगे, तो आपको बाद में उदाहरण अनुरोध और प्रतिक्रिया के रूप में इन आइटम की आवश्यकता होगी।
Azure संज्ञानात्मक खोज सेवा के लिए कस्टम कनेक्टर बनाना
कियाना अब एक कस्टम कनेक्टर बना सकती है जिसका उपयोग वो Power Apps खोज सेवा में खोज अनुरोध भेजने के लिए करती है. किआना इसे Power Apps Studio का उपयोग करके इस प्रकार करती है:
Power Appsमें लॉग इन करें.
बाएँ फलक पर, डेटा विस्तृत करें, और कस्टम कनेक्टर का चयन करें. दाएँ फलक पर, + नया कस्टम कनेक्टर चुनें, और फिर रिक्त से बनाएँ चुनें:
रिक्त से बनाएँ संवाद में, नए कनेक्टर का नाम VanArsdelKBConnector पर सेट करें, और फिर जारी रखें चुनें:
सामान्य जानकारी पृष्ठ पर, विवरण दर्ज करें और योजना को HTTPS पर सेट करें. होस्ट बॉक्स में, अपनी खोज सेवा के लिए URL दर्ज करें (आपने यह URL पहले नोट किया था), लेकिन https:// उपसर्ग के बिना, और फिर सुरक्षा का चयन करें।
सुरक्षा पृष्ठ पर, प्रमाणीकरण ड्रॉपडाउन सूची बॉक्स में, API कुंजी का चयन करें. पैरामीटर लेबल फ़ील्ड में, api-key दर्ज करें. पैरामीटर नाम फ़ील्ड में, api-key दर्ज करें. परिभाषा चुनें.
परिभाषा पृष्ठ पर, नई क्रिया चुनें. सारांश फ़ील्ड में, प्रश्न दर्ज करें. विवरण फ़ील्ड में, नॉलेजबेस पर क्वेरी करें दर्ज करें. ऑपरेशन आईडी फ़ील्ड में, क्वेरी दर्ज करें. अनुरोध के अंतर्गत, + नमूने से आयात करें का चयन करें.
नमूने से आयात करें संवाद में, निम्नलिखित मान दर्ज करें, और फिर आयात करें का चयन करें:
- क्रिया: पाओ
- URL: आदर्श URL अनुरोध प्रदान करें जिसे आपने पहले सर्च एक्सप्लोरर में खोज सेवा का टेस्ट किया था
- हेडर: सामग्री-प्रकार
परिभाषा पृष्ठ पर वापस जाएं, प्रश्न अनुभाग तक स्क्रॉल करें, खोज के आगे एलिप्सिस बटन का चयन करें, और फिर संपादित करें का चयन करें।
संपादन स्क्रीन पर, पैरामीटर्स अनुभाग में, डिफ़ॉल्ट मान फ़ील्ड में, एक तारांकन चिह्न (*) दर्ज करें. अन्य फ़ील्ड को उनके डिफ़ॉल्ट मानों पर छोड़ दें, और फिर वापस जाएं चुनें.
परिभाषा पृष्ठ पर, प्रश्न अनुभाग में, api-संस्करण के आगे स्थित एलिप्सिस बटन का चयन करें, और फिर संपादित करें का चयन करें.
संपादन स्क्रीन पर, पैरामीटर्स अनुभाग में, डिफ़ॉल्ट मान फ़ील्ड में, 2020-06-30-पूर्वावलोकन दर्ज करें (यह Azure Cognitive Search के वर्तमान संस्करण से संबद्ध संस्करण है; आप उस संस्करण को अनुरोध URL में देख सकते हैं जिसे आपने पहले नोट किया था)। आवश्यक है को हांपर सेट करें, और दृश्यता को आंतरिकपर सेट करें। अन्य फ़ील्ड को उनके डिफ़ॉल्ट मानों पर छोड़ दें, और फिर वापस जाएं चुनें.
परिभाषा पृष्ठ पर, प्रतिक्रिया अनुभाग तक नीचे स्क्रॉल करें, और + डिफ़ॉल्ट प्रतिक्रिया जोड़ें का चयन करें.
]
नमूना से आयात करें संवाद में, शीर्षलेख फ़ील्ड में, पाठ सामग्री-प्रकार दर्ज करें. बॉडी फ़ील्ड में, खोज सेवा का परीक्षण करते समय आपके द्वारा रिकॉर्ड किए गए उदाहरण परिणाम दर्ज करें, और फिर आयात करें का चयन करें।
परिभाषा पृष्ठ पर, डिफ़ॉल्ट प्रतिक्रिया का चयन करें.
विवरणसामग्री-प्रकार प्रतिक्रिया के application/json दर्ज करें, और फिर वापस का चयन करें.
नोट
इस पृष्ठ पर बॉडी अनुभाग को प्रतिक्रिया के फ़ील्ड प्रदर्शित करने चाहिए, जैसे कि बॉडी, आईडी, नाम, अवलोकन, और विषय यदि इसे सफलतापूर्वक पार्स किया गया है।
कनेक्टर बनाएँ चुनें.
कनेक्टर को किसी भी गलती या चेतावनी की रिपोर्ट किए बिना बनाया जाना चाहिए.
Azure संज्ञानात्मक खोज: फ़ील्ड नॉलेजबेस का उपयोग करने के लिए अनुप्रयोग को अपडेट करना
अब मारिया अनुप्रयोग में कस्टम कनेक्टर का इस्तेमाल कर सकती हैं. लेकिन सबसे पहले, एक कुंजी की आवश्यकता होती है जो मारिया को Azure संज्ञानात्मक खोज सेवा से कनेक्ट करने के लिए आवश्यक विशेषाधिकार प्रदान करती है। प्रीति Azure पोर्टल में सेवा के लिए कुंजी पृष्ठ से कुंजी प्राप्त करती है, और इसे मारिया को देती है।
मारिया Power Apps Studio में अनुप्रयोग को संपादित करती है और नीचे दिए गए कार्य को करती है:
संपादन के लिए VanArsdelApp ऐप खोलें।
दृश्य मेनू पर, डेटा स्रोत का चयन करें, और फिर डेटा जोड़ें का चयन करें.
खोज बॉक्स में, डेटा स्रोत चुनें के अंतर्गत, वैन दर्ज करें. VanArdelKBConnector कनेक्टर सूचीबद्ध होना चाहिए.
VanArdelKBConnector कनेक्टर का चयन करें. VanArdelKBConnector पैन में, वह कुंजी दर्ज करें जो प्रीति ने खोज सेवा के लिए प्रदान की थी, और फिर कनेक्ट का चयन करें।
फ़ाइल मेनू पर, ऐप को सहेजें और बंद करें, और फिर इसे फिर से खोलें। अनुप्रयोग के दोबारा खुलने पर आपको कस्टम कनेक्टर के उपयोग के लिए अधिकृत किया जा सकता है.
नोट
कस्टम कनेक्टर को सक्षम करने के लिए यह कदम जरुरी है.
ट्री व्यू पैन पर, नॉलेजबेस स्क्रीन का विस्तार करें, और TextSearchBox2 नियंत्रण का चयन करें. OnChange कार्रवाई के लिए निम्नलिखित सूत्र दर्ज करें.
If(!IsBlank(TextSearchBox2.Text), ClearCollect(azResult, VanArsdelKBConnector.Query({search: TextSearchBox2.Text}).value))
यह सूत्र कस्टम कनेक्टर के क्वेरी ऑपरेशन को कॉल करता है, जो उन आइटम की खोज करता है जो उपयोगकर्ता द्वारा खोज बॉक्स में टाइप किए गए शब्द से मेल खाते हैं. परिणाम azResult नामक संग्रह में संग्रहीत किए जाते हैं.
ट्री व्यू पैन पर, नॉलेजबेस स्क्रीन के अंतर्गत, ब्राउज़गैलरी2 नियंत्रण का चयन करें. आइटम संपत्ति को azResult पर सेट करें.
BrowseGallery2 नियंत्रण का विस्तार करें और Image4 नियंत्रण को हटाएँ.
शीर्षक2 नियंत्रण का चयन करें. निम्नलिखित गुण सेट करें:
- पाठ: यहआइटम.विषय
- एक्स: 24
- चौड़ाई: Parent.TemplateWidth - 104
उपशीर्षक2 नियंत्रण का चयन करें. टेक्स्ट प्रॉपर्टी को ThisItem.Body पर सेट करें.
ऐप का पूर्वावलोकन करने के लिए F5 चुनें. नॉलेजबेस स्क्रीन पर, एक खोज शब्द दर्ज करें, और फिर एंटर चुनें. ज्ञान आधार से मिलान लेख को प्रदर्शित किया जाना चाहिए.
नोट
विवरण स्क्रीन अभी तक नहीं बनाई गई है, इसलिए किसी आलेख के आगे > आइकन का चयन करना काम नहीं करता है.
पूर्वावलोकन विंडो बंद करें और Power Apps Studio में वापस लौटें.
ट्री व्यू पैन पर, पार्टडिटेल्स स्क्रीन पर राइट-क्लिक करें, और डुप्लिकेट स्क्रीन का चयन करें। यह क्रिया ऐप में एक और स्क्रीन जोड़ देगी, जिसका नाम PartDetails_1 होगा.
ट्री व्यू पैन पर, PartDetails_1 स्क्रीन का नाम बदलकर KnowledgebaseDetails करें.
स्क्रीन पर LblAppNameX नियंत्रण का चयन करें; Text संपत्ति को "अनुच्छेद विवरण" (उद्धरण सहित) पर सेट करें।
ट्री व्यू पैन पर, स्क्रीन पर DetailFormX नियंत्रण का चयन करें. निम्नलिखित गुण सेट करें:
- डेटा स्रोत: azResult
- आइटम: **BrowseGallery2.Selected **
नोट
BrowseGallery2 नॉलेजबेस स्क्रीन पर ब्राउज़ गैलरी है। आपके आवेदन में, इस गैलरी का नाम अलग हो सकता है.
ट्री व्यू पैन पर, डिटेलफॉर्मX फॉर्म का विस्तार करें, फिर निम्नलिखित डेटा कार्ड नियंत्रणों के नाम बदलें:
- Name_DataCard1_1: नाम_डेटाकार्ड
- CategoryID_DataCard1_1: विषय_डेटाकार्ड
- Overview_DataCard1_1: अवलोकन_डेटाकार्ड
- Price_DataCard1_1: बॉडी_डेटाकार्ड
NumberInStock_DataCard1_1 और Image_DataCard1_1 नियंत्रण हटाएँ.
Name_DataCard नियंत्रण का चयन करें. डिफ़ॉल्ट संपत्ति को ThisItem.Name पर सेट करें.
Subject_DataCard नियंत्रण का चयन करें. निम्नलिखित गुण सेट करें:
- डेटा फ़ील्ड: "विषय"
- प्रदर्शन नाम: "विषय"
- डिफ़ॉल्ट: ThisItem.Subject
Overview_DataCard नियंत्रण का चयन करें. डिफ़ॉल्ट संपत्ति को ThisItem.Overview पर सेट करें.
Body_DataCard नियंत्रण का चयन करें. निम्नलिखित गुण सेट करें:
- डेटा फ़ील्ड: "बॉडी"
- प्रदर्शन नाम: "बॉडी"
- डिफ़ॉल्ट: ThisItem.Body
Body_DataCardनियंत्रण में DataCardValue X नियंत्रण का चयन करें. टेक्स्ट प्रॉपर्टी को Parent.Default पर सेट करें.
स्क्रीन से बाहर फैलाने के लिए प्रत्येक डेटा कार्ड नियंत्रण का आकार बदलें.
स्क्रीन हेडर में बैक एरो को चुनें. OnSelect कार्रवाई गुण को Navigate(Knowledgebase, ScreenTransition.None) में बदलें.
ट्री व्यू पैन पर, नॉलेजबेस स्क्रीन का चयन करें, और फिर ब्राउज़गैलरीX नियंत्रण का चयन करें. OnSelect कार्रवाई गुण को Navigate(KnowledgebaseDetails, ScreenTransition.None) में बदलें. जब उपयोगकर्ता ब्राउज़ स्क्रीन में किसी प्रविष्टि के लिए > आइकन का चयन करता है, तो यह क्रिया ज्ञान आधार आलेख के लिए विवरण स्क्रीन प्रदर्शित करती है।
अनुप्रयोग को सहेजें.
ऐप का पूर्वावलोकन करने के लिए F5 चुनें. नॉलेजबेस स्क्रीन पर, एक खोज शब्द दर्ज करें, और फिर एंटर चुनें. एक लेख चुनें और सत्यापित करें कि उसका विवरण प्रदर्शित किया गया है. सत्यापित करें कि वापस आइकन उपयोगकर्ता को ब्राउज़ स्क्रीन पर वापस ले जाता है।
पूर्वावलोकन विंडो बंद करें और Power Apps Studio में वापस लौटें.
मारिया, कियाना और प्रीति ने अनुप्रयोग में वेब API और Azure संज्ञानात्मक खोज को सफलतापूर्वक शामिल किया है.