के माध्यम से साझा करें


Errors फलन

इस पर लागू होता है: कैनवास ऐप्स मॉडल-चालित ऐप्स

पिछले परिवर्तनों के लिए त्रुटि जानकारी एक डेटा स्रोत को प्रदान करता है.

अवलोकन

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 )