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


Power Apps में बल्क रिकॉर्ड बनाएं या अपडेट करें

बल्क में रिकॉर्ड अपडेट करना या बनाना आपको एक साथ कई रिकॉर्ड पर कार्रवाई करने देता है. यहां कुछ परिदृश्य दिए गए हैं जहां आप बल्क रिकॉर्ड अपडेट करना चाहेंगे:

  • आपके पास कई फ़ोटो हैं और आप उन सभी को एक साथ अपलोड करना चाहते हैं.
  • आप एक बार में एक सप्ताह के डेटा के साथ एक टाइम शीट सबमिट करना चाहते हैं.

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

यह आलेख बताता है कि आपके परिदृश्य के आधार पर बल्क रिकॉर्ड कैसे अपडेट करें या कैसे बनाएँ.

रिकॉर्ड को बल्क अपडेट करने के फॉर्मूले

इस सेक्शन के फ़ार्मूलों का उपयोग कैनवास ऐप्स में रिकॉर्ड को बल्क अपडेट करने के लिए किया जा सकता है.

  • पैच() फ़ंक्शन—इस फ़ंक्शन का उपयोग तब करें जब संग्रह डेटा स्रोत से मेल खाता हो।

    Patch( DataSource, Collection )
    
  • ForAll() फ़ंक्शन + नेस्टेड पैच + डिसअम्बिग्यूएशन ऑपरेटर—इस फ़ंक्शन का उपयोग तब करें जब डेटा स्रोतों में अलग-अलग कॉलम हों जिन्हें आपको जोड़ने की आवश्यकता हो।

    ForAll( Collection,
        Patch( DataSource, 
            LookUp( DataSource, Id = Collection[@Id] ),
            { Column: Value }
        )
    )
    
  • AddColumns() फ़ंक्शन—इस फ़ंक्शन का उपयोग संग्रह में लुकअप संदर्भ प्रदान करने के लिए किया जा सकता है, जिसमें डेटा स्रोत के अपडेट शामिल हैं, यदि इसमें ऐसे फ़ील्ड नहीं हैं जो आसानी से तालिका को संदर्भित करते हैं।

चेकलिस्ट का उदाहरण

यह उदाहरण कार्यों की एक चेकलिस्ट का उपयोग करता है. जब आप कुछ कार्यों को पूरा कर लेते हैं, तो आप उन्हें पूर्ण के रूप में चिह्नित कर सकते हैं. आप इस परिदृश्य को उत्पाद लॉन्च चेकलिस्ट, होम निरीक्षण चेकलिस्ट या अन्य सूचियों तक बढ़ा सकते हैं.

निम्न स्क्रीनशॉट Microsoft Excel फ़ाइल में चेकलिस्ट आइटम दिखाता है. आप इस उदाहरण में अपने ब्लॉगिंग या सोशल मीडिया पर पोस्ट करने से संबंधित कार्यों की जांच कर सकते हैं. एक्सेल में तालिका को ChecklistItems कहा जाता है।

उदाहरण इस व्यवहार को दिखाने के लिए संग्रह का उपयोग करता है. दृष्टिकोण आपकी पसंद के किसी भी टैबुलर बैकएंड के लिए काम करता है.

Alt पाठ.

Excel डेटा को ऐप में स्थिर डेटा के रूप में आयात किया जाता है. App.OnStart संपत्ति पर, Collect() Excel ChecklistItems डेटा को ChecklistItemsSource संग्रह में डालें. इस संग्रह का उपयोग पूरे ऐप में स्रोत डेटा के रूप में किया जाएगा। ChecklistItemsSource

यह उदाहरण दो स्क्रीन ऐप का उपयोग करता है:

  • स्क्रीन 1—चेकलिस्ट आइटम की समीक्षा करने और उन्हें पूर्ण के रूप में चिह्नित करने के लिए उपयोग किया जाता है।
  • स्क्रीन 2—एक नया चेकलिस्ट आइटम बनाने के लिए उपयोग किया जाता है। नया आइटम संग्रह में जोड़ा जाएगा. ChecklistItemsSource

स्क्रीन1. स्क्रीन2

हर बार जब कोई चेकलिस्ट आइटम चेक किया जाता है, तो उसे CheckedItems नामक संग्रह में जोड़ दिया जाता है। यह चेकबॉक्स नियंत्रण के OnCheck इवेंट गुण पर नीचे दिए गए सूत्र का उपयोग करता है। यदि आइटम पहले से ही चेक किया गया है और संग्रह का हिस्सा है, तो उसे हटा दिया जाता है. यदि नहीं है, तो चेक किया गया आइटम जोड़ा जाता है.

आप स्थिति को पूर्ण और लंबित के बीच टॉगल कर सकते हैं, या आप Oncheck और OnUncheck ईवेंट का उपयोग कर सकते हैं:

If( !IsBlank( 
        LookUp( CheckedItems, Id = ThisItem.Id )
    ),
    Remove( CheckedItems, ThisItem ),
    Collect( CheckedItems, ThisItem )
)

एक साथ कई रिकॉर्ड बनाएँ

परिदृश्य के आधार पर रिकॉर्ड को बल्क अपडेट करने के विभिन्न तरीके हैं. यह सेक्शन बताता है कि कैनवास ऐप्स में एक साथ अनेक रिकॉर्ड कैसे बनाए जाते हैं.

जब उपयोगकर्ता उपरोक्त उदाहरण में संपन्न का चयन करता है, तो आपको CheckedItems संग्रह से परिवर्तनों के साथ अद्यतन ChecklistItemsSource करना होगा।

समान नाम वाले कॉलम के लिए

यदि आपके स्रोत और गंतव्य के कॉलम नाम समान हैं, तो आप पैच स्टेटमेंट का उपयोग कर सकते हैं. उदाहरण के लिए, ChecklistItemsSource और CheckedItems संग्रहों के स्तंभ नाम समान हैं। आप सभी परिवर्तनों के साथ स्रोत को एक बार में अपडेट करने के लिए नीचे दिए गए फॉर्मूला का उपयोग कर सकते हैं.

Patch( ChecklistItemsSource, CheckedItems )

अलग-अलग नामों वाले कॉलम के लिए

यदि स्रोत और गंतव्य टेबल में कॉलम भिन्न होते हैं, तो पैच के साथ इसके बजाय ForAll का उपयोग करें.

ForAll()के साथ, आपको एक शर्त का उपयोग करके प्रत्येक रिकॉर्ड के माध्यम से लूप करना होगा। यह शर्त विभिन्न तालिकाओं के समान स्तंभों (उदाहरण के लिए, Id स्तंभ) के बीच तुलना है। यह तुलना तब जटिल हो जाती है जब स्रोत तालिका और गंतव्य तालिका के स्तंभ नाम समान हों (उदाहरण के लिए, if ProjectId was एक स्तंभ Project और PurchaseOrder दोनों तालिकाओं में पाया गया)।

विकल्प यहां हैं:

बहुविकल्पी ऑपरेटर के साथ प्रयोग करें

स्रोत और गंतव्य तालिका स्तंभ नाम समान होने पर, Status के CheckedItems को "पूर्ण" में अद्यतन करने के लिए, इस सूत्र का उपयोग करें:

ForAll( CheckedItems,
    Patch( ChecklistItemsSource, 
        LookUp( ChecklistItemsSource, Id = CheckedItems[@Id] ),
        { Status: "Done" }
    )
)

CheckedItems संग्रह में प्रत्येक आइटम के लिए, Id (विसंकेतक ऑपरेटर द्वारा प्रदर्शित) की तुलना CheckedItems[@Id]) संग्रह के Id स्तंभ से की जाती है। ChecklistItemsSource फिर, प्रत्येक मिलान किए गए रिकॉर्ड को "पूर्ण" स्थिति के साथ अपडेट किया जाता है. बहुविकल्पी ऑपरेटर का उपयोग तब किया जाता है जब विभिन्न टेबल से संबंधित दो कॉलम का नाम समान होता है. यदि आप इस बहुविकल्पी ऑपरेटर का उपयोग नहीं करते हैं, तो आप देखेंगे कि केवल पहला रिकॉर्ड अपडेट होता है.

यदि आप चेक किए गए आइटम को संग्रहित करने के लिए अतिरिक्त संग्रह का उपयोग नहीं करना चाहते हैं, तो आप निम्न चरणों को आजमा सकते हैं:

  1. गैलरी टेम्पलेट में एक अतिरिक्त लेबल बनाएँ.

    1. इसे Id कॉलम से जोड़ें.
    2. IdText के लिए लेबल का नाम बदलें.
  2. ऊपर बताए गए चेकबॉक्स नियंत्रण के OnCheck पर कोड हटाएँ।

  3. पूर्ण बटन के OnSelect इवेंट पर निम्नलिखित फॉर्मूला लिखें:

    ForAll(
        Filter( ChecklistGallery.AllItems,
          StatusCheckbox.Value = true
        ),
        Patch( ChecklistItemsSource,
          LookUp( ChecklistItemsSource, Id = IdText.Text ),
          { Status: "Done" }
        )
    )
    

यहां, आप चेक किए गए आइटम ढूंढने के लिए सीधे गैलरी के आइटम पर फ़िल्टर लागू कर रहे हैं. फ़िल्टर किए गए आइटम में प्रत्येक रिकॉर्ड के लिए, IdText लेबल में संग्रहीत मान के साथ Id की तुलना करके ChecklistItemsSource तालिका पर एक मिलान पाया जाता है।

स्थिति को "पूर्ण" में अपडेट किया गया है.

बहुविकल्पी ऑपरेटर का प्रयोग गैलरी के आइटम पर नहीं किया जा सकता है. इसके बजाय, आप गैलरी में एक लेबल स्टोर कर सकते हैं और तुलना के लिए इसका संदर्भ दे सकते हैं.

एक अलग लेबल के साथ एक नया कॉलम बनाने के लिए एक विकल्प का उपयोग करें

यह विधि बहुविकल्पी ऑपरेटर या गैलरी के अंदर एक लेबल का उपयोग करने का एक विकल्प है.

अपने डेटा स्रोत की स्थानीय प्रतिलिपि बनाते समय, आप अपने स्रोत संग्रह में Id कॉलम के लिए एक अलग लेबल ( AddColumns() ) के साथ एक नया कॉलम बनाने के लिए NewIdसूत्र का उपयोग कर सकते हैं। पैच के साथ ForAll का उपयोग करते समय, आप अपने स्रोत डेटा में Id कॉलम के साथ NewId कॉलम की तुलना करते हैं.

बल्क रिकॉर्ड बनाएँ

आप बल्क में नए रिकॉर्ड बनाना चाह सकते हैं, उदाहरण के लिए, आप एक साथ कई छवियां अपलोड करना चाहते हैं.

यहाँ चेकलिस्ट का उदाहरण का उपयोग करके एक उदाहरण दिया गया है।

चेकलिस्ट आइटम बनाएँ स्क्रीन पर, जब भी आप जोड़ें का चयन करते हैं, तो जानकारी NewChecklistItems संग्रह में संग्रहीत हो जाती है। जब आप सबमिट का चयन करते हैं, तो ForAll() के साथ Patch() का उपयोग स्रोत संग्रह को अद्यतन करने के लिए किया जाता है।

ForAll( NewChecklistItems,
    Patch( ChecklistItemsSource,
        Defaults( ChecklistItemsSource ),{
            Id: Id,
            Category: Category,
            Description: Description,
            Status:Status
        }
    )
)

NewChecklistItemsमें प्रत्येक आइटम के लिए, Defaults(ChecklistItemsSource)संग्रह में एक नया रिकॉर्ड बनाया जाता है ( ChecklistItemsSource द्वारा इंगित)। Id को Id से NewChecklistItems संग्रह पर सेट किया गया है. इसी प्रकार, Category, Description, और Status मान सेट किए जाते हैं।

इसे भी देखें