कैनवास ऐप्स के लिए डेटा स्रोतों को समझें

Power Apps में, अधिकांश कैनवास ऐप्स, क्लाउड सेवाओं में संग्रहीत डेटा स्रोत नामक बाह्य जानकारी का उपयोग करते हैं. इसका एक आम उदाहरण OneDrive for Business में संग्रहीत एक Excel फ़ाइल की एक टेबल है. ऐप्स इन डेटा स्रोतों तक कनेक्शन का उपयोग करके पहुँचते हैं.

यह आलेख में विभिन्न प्रकार के डेटा स्रोतों और तालिका डेटा स्रोतों के साथ कार्य करने के तरीकों पर चर्चा की गई है.

एक ऐसा ऐप बनाना आसान है जो एक डेटा स्रोत पर मूल पढ़ने और लिखने का कार्य करता है. परंतु कभी-कभी आप अपने ऐप में डेटा के अंदर और बाहर प्रवाह के तरीकों पर अधिक नियंत्रण चाहते हैं. इस आलेख में बताया गया है कि कैसे Patch, DataSourceInfo, Validate, और Errors फ़ंक्शन अधिक नियंत्रण प्रदान करते हैं.

डेट स्रोतों के प्रकार

डेटा स्रोत क्लाउड सेवा पर कनेक्ट किए जा सकते हैं, या वे ऐप पर स्थानीय हो सकते हैं.

कनेक्टेड डेटा स्रोत

सबसे सामान्य डेटा स्रोत तालिकाएँ हैं, जिनका उपयोग आप जानकारी पुनर्प्राप्त और संग्रहीत करने के लिए कर सकते हैं. आप Microsoft Excel कार्यपुस्तिका, Microsoft Lists का उपयोग करके बनाई गई सूचियाँ, SharePoint लाइब्रेरी, SQL तालिकाओं और अनेक अन्य स्वरूपों में डेटा को पढ़ने और लिखने के लिए डेटा स्रोतों पर कनेक्शन का उपयोग कर सकते हैं, जिन्हें OneDrive for Business, DropBox और SQL Server जैसी क्लाउड सेवाओं में संग्रहीत किया जा सकता है.

तालिकाओं के अलावा अन्य डेटा स्रोतों में ईमेल, कैलेंडर, Twitter और सूचनाएँ शामिल हैं, परंतु इस आलेख में इन अन्य प्रकार के डेटा स्रोतों पर चर्चा नहीं की गई है.

स्थानीय डेटा स्रोत

गैलरी, प्रदर्शन प्रपत्र, तथा प्रपत्र संपादित करें नियंत्रणों का उपयोग करते हुए, ऐसा अनुप्रयोग बनाना आसान होता है जो डेटा स्रोत से डेटा को पढ़ता और लिखता है. आरंभ करने हेतु, डेटा प्रपत्रों को समझें लेख पढ़ें.

जब आप डेटा से ऐप बनाने के लिए Power Apps से कहते हैं, तो इन नियंत्रणों का उपयोग होता है. पर्दे के पीछे, ऐप, डेटा स्रोत से आने वाले डेटा को संग्रहीत और बदलाव करने के लिए एक आंतरिक तालिका का उपयोग करता है.

संग्रह एक विशेष प्रकार का डेटा स्रोत है, जो ऐप पर स्थानीय होता है और किसी कनेक्शन द्वारा क्लाउड में किसी सेवा पर समर्थित नहीं होता, इसलिए सूचना समान उपयोगकर्ता के लिए विभिन्न डिवाइस के बीच या उपयोगकर्ताओं के बीच साझा नहीं की जा सकती. संग्रहों को स्थानीय रूप से लोड किया और सहेजा जा सकता है.

तालिकाओं के प्रकार

तालिकाएँ, जो Power Apps ऐप पर आंतरिक हैं, वह स्थिर मान होती हैं, ठीक उसी प्रकार, जैसे एक संख्या या स्ट्रिंग एक मान होती है. आंतरिक तालिकाएँ कहीं भी संग्रहीत नहीं होतीं, वे केवल आपके ऐप की मेमोरी में मौजूद हैं. आप सीधे किसी तालिका की संरचना और डेटा को संशोधित नहीं कर सकते. इसके बजाय आप यह कर सकते हैं, कि सूत्र के माध्यम से नई तालिका बनाएँ: आप मूल तालिका की एक संशोधित प्रतिलिपि बनाने के लिए सूत्र का उपयोग करते हैं.

बाह्य तालिकाएँ बाद में पुनर्प्राप्त और साझा करने के लिए डेटा स्रोत में संग्रहीत की जाती हैं. Power Apps संग्रहीत डेटा पढ़ने और लिखने के लिए "कनेक्शन" प्रदान करता है. एक कनेक्शन के भीतर, आप जानकारी की एकाधिक तालिकाओं तक पहुँच सकते हैं. आप चयन करेंगे कि आपके ऐप में किन तालिकाओं का उपयोग किया जाएगा, और प्रत्येक तालिका एक पृथक डेटा स्रोत बन जाएगी.

अधिक जानने के लिए, तालिकाओं के साथ कार्य करना में आंतरिक तालिकाओं के बारे में विस्तृत जानकारी है, परंतु यह एक क्लाउड सेवा में रहने वाली बाह्य तालिकाओं पर भी लागू है.

तालिकाओं के साथ कार्य करना

आप तालिका डेटा स्रोतों का उपयोग उसी तरह कर सकते हैं, जैसे आंतरिक Power Apps तालिका का उपयोग करते हैं. आंतरिक तालिका के समान ही, प्रत्येक डेटा स्रोत में रिकॉर्ड, स्तंभ, और वे गुण होते हैं, जिनका उपयोग आप सूत्रों में कर सकते हैं. इसके अतिरिक्त:

  • डेटा स्रोत के पास वही स्तंभ नाम और डेटा प्रकार होते हैं, जैसे कनेक्शन में अंतर्निहित तालिका के पास होते हैं.

    नोट

    उन SharePoint और Excel डेटा स्रोतों के लिए, जिनके स्तंभ नाम में रिक्तियाँ होती हैं, Power Apps रिक्तियों को "_x0020_" से प्रतिस्थापित करता है. उदाहरण के लिए, डेटा लेआउट में प्रदर्शित किए जाने पर या सूत्र में उपयोग किए जाने पर, SharePoint या Excel में "स्तंभ नाम", Power Apps में "Column_x0020_Name" के रूप में दिखाई देगा.

  • ऐप के लोड होने पर सर्विस से डेटा स्रोत स्वचालित रूप से लोड हो जाता है. आप Refresh फ़ंक्शन के उपयोग द्वारा डेटा को रीफ़्रेश होने के लिए बाध्य कर सकते हैं.

  • जैसे-जैसे उपयोगकर्ता ऐप चलाते हैं, वैसे-वैसे वे रिकॉर्ड बना, संशोधित और हटा सकते हैं और उन परिवर्तनों को सेवा में अंतर्निहित तालिका पर वापस पुश कर सकते हैं.

    • रिकॉर्ड Patch और Collect फ़ंक्शन के साथ बनाए जा सकते हैं.
    • रिकॉर्ड Patch, Update, और UpdateIf फ़ंक्शन के साथ संशोधित किए जा सकते हैं.
    • रिकॉर्ड Remove और RemoveIf फ़ंक्शन के साथ निकाले जा सकते हैं.
    • एक डेटा स्रोत के साथ कार्य करने पर होने वाली त्रुटियाँ Errors फ़ंक्शन के माध्यम से उपलब्ध होती है.
  • DataSourceInfo, Defaults, और Validate फ़ंक्शन उस डेटा स्रोत के बारे में जानकारी प्रदान करते हैं जिसका उपयोग आप उपयोगकर्ता अनुभव को अनुकूलित करने के लिए कर सकते हैं.

डेटा स्रोत बनाना

Power Apps का उपयोग एक कनेक्टेड डेटा स्रोत बनाने, या उसकी संरचना संशोधित करने के लिए नहीं किया जा सकता; डेटा स्रोत को पहले से कहीं न कहीं एक सेवा में मौजूद होना चाहिए. उदाहरण के लिए, OneDrive पर संग्रहीत Excel कार्यपुस्तिका में तालिका बनाने के लिए, आप पहले एक कार्यपुस्तिका बनाने के लिए OneDrive पर Excel Online का उपयोग करते हैं. इसके बाद आप अपने ऐप से इसका कनेक्शन बनाते हैं.

तथापि, संग्रह डेटा स्रोतों को ऐप से भीतर बनाया और संशोधित किया जा सकता है, परंतु ये केवल अस्थायी हैं.

एक या अधिक रिकॉर्ड प्रदर्शित करें

जानकारी का प्रवाह जब एक ऐप डेटा स्रोत में जानकारी पढ़ता है. उपरोक्त आरेख में ऐप द्वारा डेटा स्रोत की जानकारी पढ़ते समय उस जानकारी का होने वाला प्रवाह दर्शाया गया है:

  • जानकारी एक संग्रहण सेवा (इस मामले में, Microsoft Lists या SharePoint ऑनलाइन) के माध्यम से संग्रहीत और साझा की जाती है.
  • कनेक्शन यह जानकारी ऐप को उपलब्ध कराता है. कनेक्शन, जानकारी तक पहुँचने के लिए उपयोगकर्ता के प्रमाणीकरण का ध्यान रखता है.
  • जब ऐप शुरू होता है या Refresh फ़ंक्शन दबाया जाता है, तो जानकारी स्थानीय उपयोग के लिए ऐप में एक डेटा स्रोत के कनेक्शन से निकाली जाती है.
  • सूत्रों का उपयोग जानकारी को पढ़ने और उन नियंत्रणों में उजागर करने के लिए किया जाता है, जो उपयोगकर्ता देख सकता है. आप स्क्रीन पर गैलरी का उपयोग करके, और डेटा स्रोत पर Items गुण वायरिंग करके डेटा स्रोत: Gallery.Items = DataSource पर रिकॉर्ड देख सकते हैं. आप नियंत्रणों के Default गुण के उपयोग द्वारा गैलरी के भीतर नियंत्रणों को गैलरी पर वायर करते हैं.
  • डेटा स्रोत एक तालिका भी है. अतः आप डेटा स्रोत का पूर्ण के रूप में उपयोग करने से पहले, उसे परिष्कृत और तर्क करने के लिए Filter, Sort, AddColumns, और अन्य फ़ंक्शन का उपयोग कर सकते हैं. आप व्यक्तिगत रिकॉर्ड के साथ कार्य करने के लिए Lookup, First, Last, और अन्य फ़ंक्शन का उपयोग भी कर सकते हैं.

रिकॉर्ड संशोधित करें

पिछले सेक्शन में, आपने देखा कि डेटा स्रोत कैसे पढ़ें. ध्यान दें कि ऊपर दिए गए आरेख में तीर एक दिशा में हैं. डेटा स्रोत में किए गए परिवर्तन उन्हीं सूत्रों के माध्यम से वापस पुश नहीं किए जाते, जिनमें डेटा पुनर्प्राप्त किया गया था. इसके बजाय, नए सूत्रों का उपयोग किया जाता है. अक्सर रिकॉर्ड ब्राउज़िंग के लिए उपयोग किए जाने वाले स्क्रीन की तुलना में संपादन के लिए एक भिन्न स्क्रीन का उपयोग किया जाता है, विशेषकर मोबाइल डिवाइस पर.

ध्यान दें कि, एक डेटा स्रोत के मौजूदा रिकॉर्ड संशोधित करने के लिए, रिकॉर्ड को मूल रूप से डेटा स्रोत से आना चाहिए. रिकॉर्ड ने संभवतः एक गैलरी, एक संदर्भ चर, और किसी भी संख्या के सूत्रों के माध्यम से यात्रा की होगी, परंतु इसके उद्गम को डेटा स्रोत पर वापस ट्रेस किया जाना चाहिए. यह महत्वपूर्ण है क्योंकि रिकॉर्ड के साथ यात्रा करते वाली अतिरिक्त जानकारी, जो अद्वितीय रूप से उसकी पहचान करती है, यह सुनिश्चित करती है कि आप सही रिकॉर्ड संशोधित करते हैं.

डेटा स्रोत को अपडेट करने के लिए जानकारी का प्रवाह. उपरोक्त आरेख में डेटा स्रोत अद्यतन करने के लिए जानकारी का प्रवाह दिखाया गया है:

  • एक प्रपत्र संपादित करें नियंत्रण, इनपुट कार्ड के लिए एक कंटेनर प्रदान करता है, जो उपयोगकर्ता इनपुट नियंत्रणों, जैसे पाठ-इनपुट नियंत्रण या स्लाइडर से बना होता है. संपादन के लिए रिकॉर्ड की पहचान करने के लिए DataSource और Item गुणों का उपयोग किया जाता है.
  • प्रत्येक इनपुट कार्ड का एक Default गुण होता है, जिसे अक्सर प्रपत्र के ThisItem रिकॉर्ड के फ़ील्ड पर सेट किया जाता है. तब इनपुट कार्ड के भीतर नियंत्रण, उनके इनपुट मानों को Default से ले जाएगा. सामान्यतः आपको इसे संशोधित करने की आवश्यकता नहीं है.
  • प्रत्येक इनपुट कार्ड एक Update गुण को उजागर करता है. यह गुण उपयोगकर्ता के इनपुट को रिकॉर्ड के एक विशिष्ट फ़ील्ड पर मैप करता है, ताकि वापस डेटा स्रोत पर लिखा जा सके. सामान्यतः आपको इसे संशोधित करने की आवश्यकता नहीं है.
  • स्क्रीन पर एक बटन या एक छवि नियंत्रण, उपयोगकर्ता को रिकॉर्ड में परिवर्तनों को सहेजने के लिए सक्षम बनाता है. यह कार्य करने के लिए नियंत्रण का OnSelect सूत्र, SubmitForm को कॉल करता है. SubmitForm, कार्ड के सभी Update गुणों को पढ़ता है और इसका उपयोग वापस डेटा स्रोत पर लिखने के लिए करता है.
  • कभी-कभी समस्याएँ होंगी. हो सकता है, एक नेटवर्क कनेक्शन डाउन हो, या सेवा द्वारा ऐसी सत्यापन जाँच की जाए जिसके बारे में ऐप को पता न हो. प्रपत्र नियंत्रण के Error और ErrorKind गुण, यह जानकारी उपलब्ध कराते हैं, ताकि आप इसे उपयोगकर्ता को प्रदर्शित कर सकें.

इस प्रक्रिया पर और अधिक सूक्ष्म नियंत्रण के लिए, आप Patch और Errors फ़ंक्शन का भी उपयोग कर सकते हैं. प्रपत्र संपादित करें नियंत्रण एक Updates गुण उजागर करता है, ताकि आप प्रपत्र के भीतर फ़ील्ड के मानों को पढ़ सकें. आप इस गुण का उपयोग Patch और SubmitForm फ़ंक्शन को पूर्णतः बायपास करते हुए कनेक्शन पर एक कस्टम कनेक्टर कॉल करने के लिए भी कर सकते हैं.

सत्यापन

किसी रिकॉर्ड में बदलाव करने से पहले, ऐप को वह करना चाहिए जो वह कर सकता है ताकि सुनिश्चित हो सके कि बदलाव स्वीकार्य होंगे. इसके दो कारण हैं:

  • उपयोगकर्ता के लिए तत्काल प्रतिक्रिया. किसी समस्या को ठीक करने का सर्वोत्तम समय तब होता है, जब वह घटित होता है, जब उपयोगकर्ता के दिमाग में ताज़ा होता है. शाब्दिक रूप से, प्रत्येक टच या कीस्ट्रोक के साथ, लाल पाठ दिखाई दे सकता है, जो उनकी प्रविष्टि के साथ एक समस्या की पहचान करता है.
  • कम नेटवर्क ट्रैफ़िक और कम उपयोगकर्ता लेटेंसी. ऐप में मिलने वाली अधिक समस्याओं का अर्थ है कि नेटवर्क पर समस्याओं का पता लगाने और हल करने के लिए कम वार्तालाप. प्रत्येक वार्तालाप में समय लगता है, जिस दौरान उपयोगकर्ता को प्रतीक्षा करनी होगी, उसके बाद ही वह आगे बढ़ सकता है.

Power Apps सत्यापन के लिए दो उपकरण प्रदान करता है:

  • डेटा स्रोत इसके बारे में जानकारी प्रदान कर सकता है, कि मान्य क्या है और क्या नहीं है. उदाहरण के लिए, संख्याओं के न्यूनतम और अधिकतम मान हो सकते हैं, और एक या अधिक प्रविष्टियाँ आवश्यक हो सकती हैं. आप DataSourceInfo फ़ंक्शन से इस जानकारी तक पहुँच सकते हैं.
  • Validate फ़ंक्शन इसी जानकारी का उपयोग एकल स्तंभ या संपूर्ण रिकॉर्ड के मान की जाँच करने के लिए करता है.

त्रुटि हैंडलिंग

शानदार, आपने अपना रिकॉर्ड सत्यापित कर लिया है. अब उस रिकॉर्ड को Patch से अद्यतन करने का समय है!

लेकिन, अफसोस, अभी भी एक समस्या हो सकती है. आपका ऐप जिन त्रुटियों का सामना कर सकता है, उनमें कुछ नाम हैं, नेटवर्क डाउन है, सेवा पर सत्यापन विफल है, या उपयोगकर्ता के पास सही अनुमतियाँ नहीं हैं. त्रुटि स्थितियों का उचित रूप से प्रत्युत्तर देना, उपयोगकर्ता को प्रतिक्रिया प्रदान करना और उन्हें इसे सही करने के लिए एक साधन प्रदान करने की आवश्यकता होती है.

जब डेटा स्रोत के साथ त्रुटियाँ होती हैं, तो आपका ऐप स्वचालित रूप से त्रुटि जानकारी रिकॉर्ड करता है और Errors फ़ंक्शन के माध्यम से उपलब्ध कराता है. त्रुटियाँ उन रिकॉर्ड से संबद्ध होती हैं जिनमें समस्याएँ थीं. यदि समस्या ऐसी है जिसे उपयोगकर्ता ठीक कर सकता है, जैसे सत्यापन समस्या, तो वे रिकॉर्ड को पुनः सबमिट कर सकते हैं, और त्रुटियाँ साफ़ हो जाएंगी.

यदि Patch या Collect से रिकॉर्ड बनाते समय एक त्रुटि होती है, तो किसी भी त्रुटि से संबद्ध करने के लिए कोई रिकॉर्ड मौजूद नहीं होता. इस मामले में, Patch द्वारा रिक्त दिया जाएगा, और इसका उपयोग Errors पर रिकॉर्ड तर्क के रूप में किया जा सकता है. निर्माण त्रुटियाँ अगली कार्रवाई के साथ साफ़ कर दी जाती हैं.

Errors फ़ंक्शन त्रुटि जानकारी की तालिका देता है. यदि त्रुटि को किसी विशेष स्तंभ पर एट्रिब्यूट किया जा सकता है, तो इस जानकारी में स्तंभ जानकारी शामिल हो सकती है. उन लेबल नियंत्रणों में, जो संपादन स्क्रीन पर स्थित स्तंभ के निकट हैं, स्तंभ-स्तर त्रुटि संदेशों का उपयोग करें. जहाँ, समूचे रिकॉर्ड के लिए सहेजें बटन के निकट स्थित त्रुटि तालिका में स्तंभ रिक्त है, वहाँ रिकॉर्ड-स्तर त्रुटि संदेशों का उपयोग करें.

विशाल डेटा स्रोतों के साथ कार्य करना

जब आप बड़े डेटा स्रोतों (शायद लाखों रिकॉर्ड) से रिपोर्ट बना रहे हैं, तो आप नेटवर्क ट्रैफ़िक को न्यूनतम करना चाहते हैं. मान लें कि आप न्यूयॉर्क शहर में StatusCode "प्लेटिनम" रखने वाले सभी ग्राहकों पर रिपोर्ट करना चाहते हैं. और आपकी ग्राहक तालिका में लाखों रिकॉर्ड हैं.

उन लाखों ग्राहकों को अपने ऐप में लाना, और फिर वांछित लोगों को चुनना आप नहींचाहते. आप यह चाहते हैं, कि चुनने का कार्य उस क्लाउड सेवा के भीतर हो, जहाँ आपकी तालिका संग्रहीत है, और केवल चुने हुए रिकॉर्ड नेटवर्क पर भेजे जाएँ.

आप रिकॉर्ड चुनने के लिए जिन फ़ंक्शन का उपयोग कर सकते हैं, उनमें सभी नहीं, तो कई फ़ंक्शन प्रत्यायोजित किए जा सकते हैं, इसका अर्थ है कि वे क्लाउड सेवा के अंदर चलाए जाते हैं. आप प्रत्यायोजन के बारे में पढ़कर यह करने का तरीका सीख सकते हैं.

संग्रह

संग्रह एक विशेष प्रकार का डेटा स्रोत है. वे ऐप पर स्थानीय हैं और किसी कनेक्शन द्वारा क्लाउड में किसी सेवा पर समर्थित नहीं होते, इसलिए सूचना समान उपयोगकर्ता के लिए विभिन्न डिवाइस के बीच या उपयोगकर्ताओं के बीच साझा नहीं की जा सकती. वे किसी भी अन्य डेटा स्रोत के समान, कुछ अपवादों के साथ कार्य करते हैं:

  • संग्रह Collect फ़ंक्शन द्वारा डायनेमिक रूप से बनाया जा सकता है. उन्हें समय से आगे स्थापित करने की आवश्यकता नहीं है, जैसा कनेक्शन-आधारित डेटा स्रोत करते हैं.
  • संग्रह के स्तंभों को Collect फ़ंक्शन के उपयोग द्वारा किसी भी समय संशोधित किया जा सकता है.
  • संग्रह डुप्लिकेट रिकॉर्ड की अनुमति देते हैं. एक संग्रह में एक ही रिकॉर्ड की एक से अधिक प्रतिलिपि मौजूद हो सकती है. जब तक All तर्क की आपूर्ति नहीं होती, तब तक Remove जैसे फ़ंक्शन प्राप्त होने वाले प्रथम मिलान पर संचालित होंगे.
  • आप संग्रह की एक प्रतिलिपि सहेजने और पुनः लोड करने के लिए SaveData और LoadData फ़ंक्शन का उपयोग कर सकते हैं. जानकारी ऐसे निजी स्थान पर संग्रहीत होती है जहाँ अन्य उपयोगकर्ता, ऐप्स या डिवाइस पहुँच नहीं सकते.
  • आप संग्रह की एक प्रतिलिपि को एक फ़ाइल में सहेजने और पुनः लोड करने के लिए, ताकि उपयोगकर्ता उसके साथ सहभागिता कर सके, निर्यात और आयात नियंत्रणों का उपयोग कर सकते हैं.

एक संग्रह के साथ डेटा स्रोत के रूप में कार्य करने के बारे में अधिक जानकारी के लिए, एक संग्रह बनाएँ और अद्यतन करें देखें.

संग्रहों का उपयोग सामान्यतः ऐप के लिए ग्लोबल स्थिति होल्ड करने के लिए किया जाता है. स्थिति प्रबंधित करने के लिए उपलब्ध विकल्पों के लिए चरों के साथ कार्य करना देखें.

नोट

क्या आप हमें अपनी दस्तावेज़ीकरण भाषा वरीयताओं के बारे में बता सकते हैं? एक छोटा सर्वेक्षण पूरा करें. (कृपया ध्यान दें कि यह सर्वेक्षण अंग्रेज़ी में है)

सर्वेक्षण में लगभग सात मिनट लगेंगे. कोई भी व्यक्तिगत डेटा एकत्र नहीं किया जाता है (गोपनीयता कथन).