नोट
इस पृष्ठ तक पहुंच के लिए प्राधिकरण की आवश्यकता होती है। आप साइन इन करने या निर्देशिकाएँ बदलने का प्रयास कर सकते हैं।
इस पृष्ठ तक पहुंच के लिए प्राधिकरण की आवश्यकता होती है। आप निर्देशिकाएँ बदलने का प्रयास कर सकते हैं।
इस पर लागू होता है: कैनवास ऐप्स
मॉडल-चालित ऐप्स
पिछले परिवर्तनों के लिए त्रुटि जानकारी एक डेटा स्रोत को प्रदान करता है.
अवलोकन
Errors ऐसा तब हो सकता है जब किसी डेटा स्रोत का रिकॉर्ड परिवर्तित किया जाता है. इसके कई कारण संभव हैं, जिसमें नेटवर्क आउटेज, अपर्याप्त अनुमति और संपादन विरोध शामिल हैं.
डेटा स्रोत में डेटा संशोधित करने वाले फ़ंक्शन, जैसे कि Patch, Collect, Remove, RemoveIf, Update, UpdateIf, and SubmitForm दो तरीकों में त्रुटियों की रिपोर्ट करते हैं:
- इनमें से प्रत्येक फ़ंक्शन ऑपरेशन के परिणाम के रूप में एक त्रुटि मान लौटाता है। Errors IsError के साथ पता लगाया जा सकता है और हमेशा की तरह IfError और App.OnError से बदला या दबाया जा सकता है। अधिक जानकारी के लिए त्रुटि संभालना देखें.
- ऑपरेशन के बाद, Errors फ़ंक्शन पिछले ऑपरेशन के लिए त्रुटियों को भी वापस कर देगा। यह एक राज्य चर में त्रुटि को कैप्चर करने की आवश्यकता के बिना एक फॉर्म स्क्रीन पर त्रुटि संदेश प्रदर्शित करने के लिए उपयोगी हो सकता है।
आप Validate और DataSourceInfo फ़ंक्शन के उपयोग द्वारा कुछ त्रुटियाँ होने से बच सकते हैं. त्रुटियों के साथ कार्य करने और इनसे बचने के तरीकों के बारे में अधिक सुझावों के लिए डेटा स्रोतों के साथ कार्य करना देखें.
वर्णन
Errors फ़ंक्शन त्रुटियों की एक तालिका लौटाता है जिसमें निम्न स्तंभ होते हैं:
- अभिलेख। डेटा स्रोत में रिकॉर्ड, जिसमें त्रुटि हुई थी. यदि कोई रिकॉर्ड बनाने के दौरान त्रुटि उत्पन्न हुई, तो यह स्तंभ रिक्त है.
- स्तंभ। वह स्तंभ, जिसके कारण त्रुटि हुई, यदि त्रुटि को एकल स्तंभ में एट्रिब्यूट किया जा सकता है. यदि नहीं, तो यह खाली है।
- संदेश। त्रुटि का विवरण. यह त्रुटि स्ट्रिंग अंतिम उपयोगकर्ता के लिए प्रदर्शित की जा सकती है. यह संदेश डेटा स्रोत द्वारा उत्पन्न किया जा सकता है और लंबा हो सकता है और इसमें कच्चे स्तंभ नाम हो सकते हैं जिनका उपयोगकर्ता के लिए कोई अर्थ नहीं हो सकता है।
- गलती। त्रुटि कोड जिसका उपयोग त्रुटि का समाधान करने के लिए सूत्रों में किया जा सकता है:
| ErrorKind | वर्णन |
|---|---|
| ErrorKind.Conflict | समान रिकॉर्ड पर एक अन्य परिवर्तन किया गया, जिसके परिणामस्वरूप एक परिवर्तन विरोध हुआ. रिकॉर्ड को पुनः लोड करने के लिए Refresh फ़ंक्शन का उपयोग करें और परिवर्तन करने का पुनः प्रयास करें. |
| ErrorKind.ConstraintViolation | एक या अधिक बाधाओं का उल्लंघन किया गया है. |
| ErrorKind.CreatePermission | रिकॉर्ड बनाने का प्रयास किया गया था, और वर्तमान उपयोगकर्ता के पास रिकॉर्ड बनाने की अनुमति नहीं है. |
| ErrorKind.DeletePermission | रिकॉर्ड हटाने का प्रयास किया गया था, और वर्तमान उपयोगकर्ता के पास रिकॉर्ड हटाने की अनुमति नहीं है. |
| ErrorKind.EditPermission | रिकॉर्ड संपादित करने का प्रयास किया गया था, और वर्तमान उपयोगकर्ता के पास रिकॉर्ड संपादित करने की अनुमति नहीं है. |
| ErrorKind.GeneratedValue | उस स्तंभ को परिवर्तित करने का प्रयास किया गया था, जिसे डेटा स्रोत स्वचालित रूप से उत्पन्न करता है. |
| ErrorKind.MissingRequired | आवश्यक स्तंभ का मान रिकॉर्ड से गायब है. |
| ErrorKind.None | कोई त्रुटि नहीं है. |
| ErrorKind.NotFound | रिकॉर्ड को संपादित करने या हटाने का प्रयास किया गया था, परंतु रिकॉर्ड नहीं मिला. हो सकता है कि किसी अन्य उपयोगकर्ता ने रिकॉर्ड परिवर्तित कर दिया हो. |
| ErrorKind.ReadOnlyValue | उस स्तंभ को परिवर्तित करने का प्रयास किया गया था, जो केवल पठन के लिए है. |
| ErrorKind.Sync | डेटा स्रोत द्वारा एक त्रुटि रिपोर्ट की गई थी. अधिक जानकारी के लिए संदेश स्तंभ देखें. |
| ErrorKind.Unknown | एक त्रुटि थी, लेकिन एक अज्ञात प्रकार की थी. |
| ErrorKind.Validation | एक सामान्य सत्यापन समस्या का पता चला था, जो अन्य प्रकार में से एक में फिट नहीं था। |
Errors संपूर्ण डेटा स्रोत के लिए, या फ़ंक्शन को रिकॉर्ड तर्क प्रदान करके केवल एक चयनित पंक्ति के लिए लौटाया जा सकता है।
पैबंद या कोई अन्य डेटा फ़ंक्शन लौटा सकता है खाली मान, उदाहरण के लिए, यदि कोई रिकॉर्ड नहीं बनाया जा सका। आप रिक्त पासErrorsकर सकते हैं, और यह इन मामलों में उचित त्रुटि जानकारी देता है। एक ही डेटा स्रोत पर डेटा फ़ंक्शंस का बाद का उपयोग इस त्रुटि जानकारी को साफ़ करता है।
यदि कोई त्रुटि नहीं है, तो लौटाने वाली तालिका Errorsखाली होगी और IsEmpty फ़ंक्शन के साथ परीक्षण किया जा सकता है।
सिंटैक्स
Errors( डेटासोर्स [, रिकॉर्ड ] )
- डेटा स्रोत – आवश्यक. वह डेटा स्रोत, जिसके लिए आप त्रुटियाँ देना चाहते हैं.
- अभिलेख - वैकल्पिक। वह विशिष्ट रिकॉर्ड, जिसके लिए आप त्रुटियाँ देना चाहते हैं. यदि आप इस तर्क को निर्दिष्ट नहीं करते, तो यह फ़ंक्शन पूरे डेटा स्रोत के लिए त्रुटियाँ देता है.
उदाहरण
चरण दर चरण
इस उदाहरण के लिए, हम IceCream डेटा स्रोत के साथ काम करेंगे, जो एक डेटा स्रोत है जिसके लिए Power Apps विरोधों का पता लगाने का प्रयास करेगा:
नोट
Power Apps Dataverse तालिकाओं में परिवर्तनों के लिए विरोधों का पता लगाने का प्रयास नहीं करता है.
ऐप के माध्यम से, एक उपयोगकर्ता डेटा-प्रविष्टि प्रपत्र में Chocolate रिकॉर्ड लोड करता है और फिर Quantity को 90 पर परिवर्तित करता है. जिस रिकॉर्ड के साथ काम किया जाना है, वह संदर्भ वेरिएबलEditRecord में रखा जाता है:
- अपडेट संदर्भ( { EditRecord: LookUp( आइसक्रीम, स्वाद = "चॉकलेट") } )
डेटा स्रोत में यह परिवर्तन करने के लिए, Patch फ़ंक्शन का उपयोग किया जाता है:
- पैच( आइसक्रीम, EditRecord, गैलरी.अपडेट्स )
जहां Gallery.Updates{ मात्रा: 90 } का मूल्यांकन करता है, क्योंकि केवल मात्रा गुण को संशोधित किया गया है।
दुर्भाग्य से, Patch फ़ंक्शन को इनवोक किए जाने से ठीक पहले, किसी अन्य व्यक्ति ने Chocolate के लिए Quantity को 80 पर संशोधित कर दिया. चूँकि यह संघर्ष का पता लगाने के लिए एक समर्थित डेटा स्रोत है, इसलिए Power Apps इसका पता लगाएगा और परस्पर विरोधी परिवर्तन को होने नहीं देगा. आप इस स्थिति को निम्न सूत्र द्वारा जाँच सकते हैं:
- IsEmpty( Errors(आइसक्रीम, एडिटरिकॉर्ड))
जो गलत लौटाता है, क्योंकि फ़ंक्शन ने निम्न तालिका लौटाई है Errors :
| रिकॉर्ड | स्तंभ | संदेश | त्रुटि |
|---|---|---|---|
| {स्वाद: "चॉकलेट", मात्रा: 100 } | खाली | "आप जिस रिकॉर्ड को संशोधित करने का प्रयास कर रहे हैं, उसे एक अन्य उपयोगकर्ता ने संशोधित कर दिया है. रिकॉर्ड को पुनः लोड करें और पुन: प्रयास करें। | ErrorKind.Conflict |
आप प्रपत्र पर एक लेबल रख सकते हैं ताकि उपयोगकर्ता को यह त्रुटि दिखाई जा सके.
- त्रुटि दिखाने के लिए, लेबल के Text गुण को इस सूत्र पर सेट करें:
Label.Text = पहला(Errors(आइसक्रीम, एडिटरिकॉर्ड))। संदेश
आप प्रपत्र पर एक पुनः लोड करें बटन भी जोड़ सकते हैं, ताकि उपयोगकर्ता कुशलता से विरोध का समाधान कर सके.
- बटन को केवल तब दिखाने के लिए, जब विरोध हो गया है, बटन के Visible गुण को इस सूत्र पर सेट करें:
! IsEmpty(लुकअप ( Errors(आइसक्रीम, एडिटरिकॉर्ड), त्रुटि = ErrorKind.Conflict) ) - उस परिवर्तन को वापस करने के लिए, जिसे उपयोगकर्ता बटन चुनता है, इसके OnSelect गुण को इस सूत्र पर सेट करें:
ReloadButton.OnSelect = रिवर्ट( आइसक्रीम, EditRecord )