संबंधित और असंबंधित फ़ंक्शन
इस पर लागू होता है: कैनवास ऐप्स मॉडल-संचालित ऐप्स
एक-से-अनेक या अनेक-से-अनेक संबंध के माध्यम से दो टेबल के रिकॉर्ड को संबंधित और असंबंधित करें.
विवरण
Relate फ़ंक्शन Microsoft Dataverse में वन-टू-मैनी या मैनी-टू-मैनी संबंध के माध्यम से दो रिकॉर्ड को लिंक करता है. Unrelate फ़ंक्शन इस प्रक्रिया को उलट देता है और लिंक को निकाल देता है.
एक-से-अनेक संबंधों के लिए, कई टेबल में एक बाहरी-कुंजी फ़ील्ड होता है जो एक टेबल के रिकॉर्ड की ओर इशारा करता है. Relate इस फ़ील्ड को One तालिका के किसी विशिष्ट रिकॉर्ड की ओर इंगित करने के लिए सेट करता है, जबकि Unrelate इस फ़ील्ड को रिक्त पर सेट करता है। Relate को कॉल किए जाने पर, यदि फ़ील्ड पहले से सेट होती है, तो मौजूदा लिंक नए लिंक के पक्ष में खो जाता है. आप Patch फ़ंक्शन या प्रपत्र संपादित करें नियंत्रण का उपयोग करके भी इस फ़ील्ड को सेट कर सकते हैं; आपको Relate फ़ंक्शन का उपयोग करने की आवश्यकता नहीं होती है.
मैनी-टू-मैनी संबंधों के लिए, रिकॉर्ड को लिंक करना वाला सिस्टम एक हिडन जॉइन तालिका को बनाए रखता है. आप सीधे इस जॉइन तालिका तक नहीं पहुँच सकते; इसे वन-टू-मैनी प्रोजेक्शन के माध्यम से केवल पढ़ा जा सकता है और Relate और Unrelate फ़ंक्शन के माध्यम से सेट किया जा सकता है. किसी भी संबंधित टेबल में कोई बाहरी कुंजी नहीं है.
टेबल के लिए डेटा जिसे आप पहले तर्क में निर्दिष्ट करते हैं, परिवर्तन को प्रतिबिंबित करने के लिए रीफ्रेश किया जाएगा, लेकिन टेबल के लिए डेटा जो आप दूसरे तर्क में निर्दिष्ट करते हैं, वह नहीं होगा. कार्रवाई के परिमाण को दिखाने के लिए, उस डेटा को Refresh फ़ंक्शन का उपयोग करके मैन्युअल रूप से रीफ़्रेश करना होगा.
ये फ़ंक्शन कभी भी रिकॉर्ड नहीं बनाते या हटाते हैं. वे केवल पहले से मौजूद दो रिकॉर्ड को संबंधित या असंबंधित करते हैं.
आप इन फ़ंक्शन का उपयोग केवल व्यवहार सूत्रों में कर सकते हैं.
नोट
ये फ़ंक्शन पूर्वावलोकन सुविधा का हिस्सा हैं और इनका व्यवहार केवल तब उपलब्ध होता है, जब रिलेशनल डेटा, विकल्प सेट और CDS के लिए अन्य नई सुविधाएँ सक्षम होती हैं. यह एक ऐप-स्तरीय सेटिंग है, जो नए ऐप्स के लिए डिफ़ॉल्ट रूप से सक्षम है. इस फीचर स्विच को खोजने के लिए, सेटिंग्स का चयन करें और फिर आगामी सुविधाओं का चयन करें। आपकी प्रतिक्रिया हमारे लिए बहुत मूल्यवान है - कृपया Power Apps सामुदायिक फ़ोरम में हमें अपने विचार बताएँ.
सिंटैक्स
संबंधित( Table1RelatedTable, Table2Record )
- Table1RelatedTable - आवश्यक. Table1 के रिकॉर्ड के लिए, Table2 की टेबल एक-से-अनेक या अनेक-से-अनेक संबंध से संबंधित है.
- Table2Record - आवश्यक. संबंध में जोड़ने के लिए Table2 रिकॉर्ड.
असंबंधित( तालिका1संबंधिततालिका, तालिका2रिकॉर्ड )
- Table1RelatedTable - आवश्यक. Table1 के रिकॉर्ड के लिए, Table2 की टेबल एक-से-अनेक या अनेक-से-अनेक संबंध से संबंधित है.
- Table2Record - आवश्यक. संबंध से हटाने के लिए Table2 रिकॉर्ड.
उदाहरण
निम्नलिखित संबंधों के साथ एक उत्पाद टेबल पर विचार करें जैसा कि Power Apps पोर्टल के टेबल व्यूअर में देखा गया है:
संबंध का प्रदर्शन नाम | संबंधित तालिका | संबंध प्रकार |
---|---|---|
उत्पाद आरक्षण | आरक्षण | एक-से-अनेक |
उत्पाद ↔ संपर्क | संपर्क | मैनी-टू-मैनी |
उत्पाद और आरक्षण एक-से-अनेक संबंध के माध्यम से संबंधित हैं। आरक्षण टेबल के पहले रिकॉर्ड को उत्पाद टेबल के पहले रिकॉर्ड से जोड़ने के लिए:
Relate( First( Products ).Reservations, First( Reservations ) )
इन रिकॉर्ड के बीच के संबंध को निकालने के लिए:
Unrelate( First( Products ).Reservations, First( Reservations ) )
हमने कोई रिकॉर्ड नहीं बनाया या निकाला था, रिकॉर्ड के बीच केवल संबंध संशोधित किया था.
उत्पाद और संपर्क कई-से-कई संबंध के माध्यम से संबंधित हैं। संपर्क टेबल के पहले रिकॉर्ड को उत्पाद टेबल के पहले रिकॉर्ड से जोड़ने के लिए:
Relate( First( Products ).Contacts, First( Contacts ) )
क्योंकि मैनी-टू-मैनी संबंध सिमेट्रिक होते हैं, इसलिए हम विपरीत दिशा में भी ऐसा कर सकते हैं:
Relate( First( Contacts ).Products, First( Products ) )
इन रिकॉर्ड के बीच के संबंध को निकालने के लिए:
Unrelate( First( Products ).Contacts, First( Contacts ) )
या:
Unrelate( First( Contacts ).Products, First( Products ) )
शामिल रिकॉर्ड का चयन करने के लिए गैलरी और कॉम्बो बॉक्स नियंत्रण वाले ऐप का उपयोग करते हुए इसके माध्यम से चलना इन टेबल पर इन कार्यों को उसी तरह करता है.
ये उदाहरण आपके परिवेश में स्थापित किए जा रहे नमूना डेटा पर निर्भर करते हैं. या तो नमूना डेटा सहित एक ट्रायल परिवेश बनाएं या मौजूदा वातावरण में नमूना डेटा जोड़ें।
एक-से-अनेक
संबंधित फ़ंक्शन
आप पहले उत्पाद से संबद्ध आरक्षणों को देखने और पुनः असाइन करने के लिए एक साधारण ऐप बनाएंगे.
दृश्य टैब पर, डेटा स्रोत चुनें.
डेटा फलक में, डेटा जोड़ें> उत्पाद चुनें.
उत्पाद टेबल ऊपर लोड किए गए नमूना डेटा का हिस्सा है.सम्मिलित करें टैब पर, एक रिक्त अनुलंब गैलरी नियंत्रण जोड़ें.
सुनिश्चित करें कि आपके द्वारा अभी-अभी जोड़े गए नियंत्रण का नाम Gallery1 है और उसके बाद उसे ले जाएँ और उसका आकार बदलें, ताकि उसे स्क्रीन के बाएँ कोने में भरा जा सके.
गुण टैब पर, Gallery1 के आइटम गुण को उत्पाद पर सेट करें और उसके लेआउट को छवि और शीर्षक पर सेट करें.
Gallery1 में, सुनिश्चित करें कि लेबल नियंत्रण का नाम TITLE1 है और उसके बाद उसके पाठ गुण को ThisItem.Name पर सेट करें.
अगले आइटम को Gallery1 में सम्मिलित करने से बचने के लिए स्क्रीन चुनें. एक दूसरा रिक्त अनुलंब गैलरी नियंत्रण जोड़ें और सुनिश्चित करें कि उसका नाम Gallery2 है.
गैलरी 2 उपयोगकर्ता द्वारा गैलरी 1 में चुने गए किसी भी उत्पाद के लिए आरक्षण दिखाएगी।
Gallery2 को ले जाएँ और उसका आकार बदलें, ताकि उसे स्क्रीन के दाएँ चतुर्थांश में भरा जा सके.
(वैकल्पिक) Gallery2 के ऊपर नीला लेबल नियंत्रण जोड़ें, जैसा कि अगले ग्राफ़िक में दिखाया गया है.
सूत्र पट्टी में, Gallery2 के आइटम गुण को Gallery1.Selected.Reservations पर सेट करें.
गुण फलक में, Gallery2 के लेआउट को शीर्षक पर सेट करें.
Gallery2 में, एक कॉम्बो बॉक्स नियंत्रण जोड़ें, सुनिश्चित करें कि उसका नाम ComboBox1 है और उसके बाद उसे ले जाएँ और उसका आकार बदलें, ताकि वह Gallery2 में अन्य नियंत्रणों को अवरोधित न करे.
गुण टैब पर, ComboBox1 के आइटम गुण को उत्पाद पर सेट करें.
गुण टैब में नीचे स्क्रॉल करें और ComboBox1 के एकाधिक चयन की अनुमति दें गुण को बंद पर सेट करें.
सूत्र पट्टी में, ComboBox1 के DefaultSelectedItems गुण को ThisItem.'Product Reservation' पर सेट करें.
Gallery2 में, NextArrow2 के OnSelect गुण को इस सूत्र पर सेट करें:
Relate( ComboBox1.Selected.Reservations, ThisItem )
जब उपयोगकर्ता इस आइकन का चयन करता है, तो वर्तमान आरक्षण उस उत्पाद में बदल जाता है, जिसे उपयोगकर्ता ने ComboBox1 में चुना था.
पूर्वावलोकन मोड में ऐप का परीक्षण करने के लिए F5 दबाएँ.
इस ऐप की मदद से, उपयोगकर्ता एक उत्पाद से दूसरे में आरक्षण स्थानांतरित कर सकता है. एक उत्पाद पर आरक्षण के लिए, उपयोगकर्ता ComboBox1 में एक अलग उत्पाद चुन सकता है और उसके बाद उस आरक्षण को बदलने के लिए NextArrow2 चुन सकता है.
अनरिलेटेड फ़ंक्शन
इस बिंदु पर, आप संबंध को एक रिकॉर्ड से दूसरे रिकॉर्ड में स्थानांतरित कर सकते हैं, लेकिन आप संबंध को पूरी तरह से निकाल नहीं सकते. आप किसी भी उत्पाद से आरक्षण रिकॉर्ड को डिस्कनेक्ट करने के लिए, Unrelate फ़ंक्शन का उपयोग कर सकते हैं.
दृश्य टैब पर, डेटा स्रोत चुनें.
डेटा फलक में, डेटा स्रोत जोड़ें>Microsoft Dataverse>आरक्षण>कनेक्ट करें चुनें.
Gallery2 में, NextArrow2 के लिए OnSelect गुण को इस सूत्र पर सेट करें:
If( IsBlank( ComboBox1.Selected ), Unrelate( Gallery1.Selected.Reservations, ThisItem ), Relate( ComboBox1.Selected.Reservations, ThisItem ) ); Refresh( Reservations )
Gallery2 को चुनकर और उसके बाद Ctrl-C दबाकर क्लिपबोर्ड पर उसकी प्रतिलिपि बनाएँ.
Ctrl-V दबाकर Gallery2 के डुप्लिकेट को उसी स्क्रीन पर चिपकाएँ और उसके बाद उसे स्क्रीन के निचले दाएँ चतुर्थांश पर ले जाएँ.
(वैकल्पिक) यदि आपने Gallery2 के ऊपर एक लेबल जोड़ा है, तो उस लेबल के लिए पिछले दो चरणों को दोहराएं.
सुनिश्चित करें कि Gallery2 के डुप्लिकेट का नाम Gallery2_1 है और उसके बाद उसके आइटम गुण को इस सूत्र पर सेट करें:
Filter( Reservations, IsBlank( 'Product Reservation' ) )
एक प्रत्यायोजन चेतावनी दिखाई देती है, लेकिन इस उदाहरण में थोड़े से डेटा के साथ कोई फ़र्क नहीं पड़ेगा.
इन परिवर्तनों के साथ, उपयोगकर्ता संपर्क के लिए ComboBox1 में चयन साफ़ कर सकता है, बशर्ते उस व्यक्ति ने उत्पाद आरक्षित न किया हो. ऐसे संपर्क, जिन्होंने उत्पाद आरक्षित नहीं किया है, वे Gallery2_1 में दिखाई देते हैं, जहां उपयोगकर्ता प्रत्येक संपर्क को एक उत्पाद असाइन कर सकते हैं.
मैनी-टू-मैनी
मैनी-टू-मैनी संबंध बनाएँ
नमूना डेटा में कई-से-अनेक संबंध शामिल नहीं हैं, लेकिन आप उत्पाद टेबल और संपर्क टेबल के बीच एक संबंध बनाएँगे. उपयोगकर्ता प्रत्येक उत्पाद को एक से अधिक संपर्क और प्रत्येक संपर्क को एक से अधिक उत्पाद से संबंधित कर सकते हैं.
इस पेज से, बाएं नेविगेशन बार में डेटा चुनें और फिर टेबल चुनें.
सभी टेबल को शामिल करने के लिए टेबल फ़िल्टर बदलें.
डिफ़ॉल्ट रूप से, नमूना टेबल प्रकट नहीं होती हैं.
नीचे स्क्रॉल करें, उत्पाद टेबल खोलें और संबंध चुनें.
संबंध जोड़ें>मैनी-टू-मैनी चुनें.
संबंध के लिए संपर्क टेबल चुनें.
पूर्ण>टेबल सहेजें चुनें.
एक या अधिक उत्पादों वाले संबंधित और असंबंधित संपर्क
आप एक और ऐसा ऐप बनाएंगे, जो इस विषय में आपके द्वारा पहले बनाए गए ऐप से मिलता जुलता हो, लेकिन नया ऐप मैनी-टू-मैनी संबंध की पेशकश करे. प्रत्येक संपर्क केवल एक के बजाय कई उत्पादों को आरक्षित करने में सक्षम होगा.
टेबलेट के लिए रिक्त ऐप में, Gallery1 को पहली प्रक्रिया के रूप में बनाएँ, जिसका यह विषय वर्णन करता है.
एक और रिक्त अनुलंब गैलरी नियंत्रण जोड़ें, सुनिश्चित करें कि उसका नाम Gallery2 है और उसके बाद उसे स्क्रीन के ऊपरी दाएँ कोने में ले जाएँ.
आगे इस विषय में, आप Gallery2 के अंतर्गत एक कॉम्बो बॉक्स जोड़ेंगे.
सूत्र पट्टी में, Gallery2 के आइटम गुण को Gallery1.Selected.Contacts पर सेट करें.
गुण टैब पर, लेआउट को छवि और शीर्षक पर सेट करें.
Gallery2 में, सुनिश्चित करें कि लेबल नियंत्रण का नाम Title2 है और उसके बाद उसके पाठ गुण को ThisItem.'Full Name' पर सेट करें.
जब तक आप इस प्रक्रिया को पूरा नहीं करते और किसी संपर्क को उत्पाद असाइन नहीं करते, तब तक कोई भी पाठ उस नियंत्रण में नहीं दिखाई देगा.
NextArrow2 हटाएँ, रद्द करें आइकन सम्मिलित करें और सुनिश्चित करें कि उसका नाम icon1 है.
रद्द करें आइकन के OnSelect गुण को इस सूत्र पर सेट करें:
Unrelate( Gallery1.Selected.Contacts, ThisItem )
दृश्य टैब पर, डेटा स्रोत चुनें.
डेटा फलक में, डेटा स्रोत जोड़ें>Microsoft Dataverse>संपर्क>कनेक्ट करें चुनें.
Gallery2 के अंतर्गत, एक कॉम्बो बॉक्स नियंत्रण जोड़ें, सुनिश्चित करें कि उसका नाम ComboBox1 है और उसके बाद उसके आइटम गुण को संपर्क पर सेट करें.
गुण टैब पर, एकाधिक चयन की अनुमति दें को बंद पर सेट करें.
जोड़ें आइकन सम्मिलित करें और उसके OnSelect गुण को इस सूत्र पर सेट करें:
Relate( Gallery1.Selected.Contacts, ComboBox1.Selected )
इस ऐप की मदद से, उपयोगकर्ता अब आसानी से प्रत्येक उत्पाद से संपर्क का एक सेट संबंधित और असंबंधित कर सकते हैं.
किसी उत्पाद में संपर्क जोड़ने के लिए, स्क्रीन के निचले भाग में कॉम्बो बॉक्स में संपर्क चुनें और उसके बाद जोड़ें आइकन चुनें.
किसी उत्पाद से संपर्क को निकालने के लिए, उस संपर्क के लिए रद्द करें आइकन चुनें.
वन-टू-मैनी संबंध के विपरीत, मैनी-टू-मैनी संबंध उपयोगकर्ताओं को एक ही संपर्क को कई उत्पादों से संबद्ध करने की अनुमति देता है.
रिवर्स में: कई संपर्कों के साथ उत्पाद संबंधित और असंबंधित करें
मैनी-टू-मैनी संबंध सिमेट्रिक होते हैं. आप किसी संपर्क में उत्पादों को जोड़ने के लिए उदाहरण का विस्तार कर सकते हैं और उसके बाद दोनों स्क्रीन के बीच फ़्लिप करके दिखा सकते हैं कि संबंध किसी भी दिशा से कैसे प्रकट होता है.
Screen1 के OnVisible गुण को रीफ़्रेश करें( उत्पाद ) पर सेट करें.
जब आप एक-से-अनेक या अनेक-से-अनेक संबंध अपडेट करते हैं, तो केवल संबंधित या असंबद्ध कॉल की पहली तर्क टेबल का डेटा रीफ्रेश किया जाता है. यदि आप इस ऐप की स्क्रीन के बीच फ़्लिप करना चाहते हैं, तो दूसरे को मैन्युअल रूप से रीफ़्रेश करना होगा.
Screen1 का डुप्लिकेट बनाएँ.
डुप्लिकेट को Screen1_1 नाम दिया जाएगा और संपर्कों की ओर से संबंध देखने का आधार बनाएगा.
रिवर्स दृश्य बनाने के लिए, Screen1_1 के नियंत्रणों पर इन सूत्रों को बदलें:
- Screen1_1.OnVisible =
Refresh( Contacts )
- Gallery1_1.Items =
Contacts
- Title1_1.Text =
ThisItem.'Full Name'
- Label1_1.Text =
"Selected Contact Products"
- Gallery2_1.Items =
Gallery1_1.Selected.Products
- Title2_1.Text =
ThisItem.Name
- Icon1_1.OnSelect =
Unrelate( Gallery1_1.Selected.Products, ThisItem )
- ComboBox1_1.Items =
Products
- Icon2_1.OnSelect =
Relate( Gallery1_1.Selected.Products, ComboBox1_1.Selected )
परिणाम पिछली स्क्रीन के समान दिखाई देगा, लेकिन संपर्क साइड से संबंध पर आता है.
- Screen1_1.OnVisible =
ऊपर नीचे तीर आइकन सम्मिलित करें और उसके OnSelect गुण को नेविगेट करें (स्क्रीन 1, कोई नहीं) पर सेट करें. सूत्र नेविगेट करें( Screen1_1, कोई नहीं ) के साथ Screen1 पर वही प्रक्रिया करें.
इस नई स्क्रीन की मदद से, उपयोगकर्ता उत्पाद में संपर्क जोड़ सकते हैं और उसके बाद संपर्कों के दृश्य में फ़्लिप कर सकते हैं और संबद्ध उत्पाद देख सकते हैं. संबंध सिमेट्रिक हैं दो स्क्रीन के बीच साझा किए गए हैं.