AsType और IsType फ़ंक्शन
इस पर लागू होता है: कैनवास ऐप्स मॉडल-संचालित ऐप्स Power Pages Power Platform CLI
एक विशिष्ट टेबल प्रकार (IsType) के लिए एक रिकॉर्ड संदर्भ की जांच करता है और संदर्भ को एक विशिष्ट प्रकार (AsType) के रूप में मानता है.
नोट
PAC CLI pac power-fx कमांड IsType का समर्थन नहीं करते हैं।
विवरण
विस्तृत परिचय और अधिक जानकारी के लिए रिकॉर्ड संदर्भों और बहुरूपी लुकअप को समझें पढ़ें.
लुकअप फ़ील्ड आमतौर पर किसी विशेष टेबल में रिकॉर्ड को संदर्भित करता है. क्योंकि टेबल प्रकार अच्छी तरह से स्थापित है, आप एक साधारण डॉट नोटेशन का उपयोग करके लुकअप के क्षेत्रों को एक्सेस कर सकते हैं. उदाहरण के लिए, First( Accounts ).'Primary Contact'.'Full Name' खाता टेबल से संपर्क टेबल में प्राथमिक संपर्क रिकॉर्ड तक चलता है और पूरा नाम फ़ील्ड निकालता है.
Microsoft Dataverse पॉलीमॉर्फिक लुकअप फ़ील्ड का भी समर्थन करता है, जो इन उदाहरणों के अनुसार, टेबल के एक सेट से रिकॉर्ड को संदर्भित कर सकता है.
लुकअप फ़ील्ड | को संदर्भित कर सकते हैं |
---|---|
मालिक | उपयोगकर्ता या टीमें |
ग्राहक | खाते या संपर्क |
के बारे में | खाते, संपर्क, ज्ञान लेख, आदि। |
कैनवास-ऐप सूत्रों में, पॉलीमॉर्फिक लुकअप के साथ कार्य करने के लिए रिकॉर्ड संदर्भ का उपयोग करें. क्योंकि एक रिकॉर्ड संदर्भ विभिन्न टेबल को संदर्भित कर सकता है, आप नहीं जानते कि जब आप कोई फॉर्मूला लिखते हैं तो कौन-सी फ़ील्ड उपलब्ध होंगी. Record.Field नोटेशन उपलब्ध नहीं है. उन फॉर्मूलों को उन रिकॉर्ड्स के अनुकूल होना चाहिए जो अनुप्रयोग के चलते समय मिलते हैं.
IsType फ़ंक्शन जांच करता है कि रिकॉर्ड संदर्भ किसी विशिष्ट टेबल प्रकार को संदर्भित करता है या नहीं. फ़ंक्शन बूलियन सही या गलत देता है.
AsType फ़ंक्शन किसी रिकॉर्ड संदर्भ को एक विशिष्ट टेबल प्रकार के रूप में मानता है, जिसे कभी-कभी कास्टिंग के रूप में जाना जाता है. आप परिणाम का उपयोग इस तरह कर सकते हैं जैसे कि यह टेबल का रिकॉर्ड हो और फिर से उस रिकॉर्ड के सभी क्षेत्रों को एक्सेस करने के लिए Record.Field नोटेशन का उपयोग करें. यदि संदर्भ विशिष्ट प्रकार का नहीं है, तो एक त्रुटि होती है.
पहले रिकॉर्ड के टेबल प्रकार का परीक्षण करने के लिए इन कार्यों का एक साथ उपयोग करें और फिर इसे उस प्रकार के रिकॉर्ड के रूप में मानें ताकि फ़ील्ड उपलब्ध हों:
If( IsType( First( Accounts ).Owner, Users ),
AsType( First( Accounts ).Owner, Users ).'Full Name',
AsType( First( Accounts ).Owner, Teams ).'Team Name'
)
आपको इन फंक्शन की आवश्यकता तभी होती है जब आप किसी रिकॉर्ड संदर्भ के फ़ील्ड तक पहुंच रहे हों. उदाहरण के लिए, आप IsType या AsType के बिना Filter फ़ंक्शन में रिकॉर्ड संदर्भ का उपयोग कर सकते हैं:
Filter( Accounts, Owner = First( Users ) )
इसी तरह, आप Patch फ़ंक्शन के साथ रिकॉर्ड संदर्भ का उपयोग कर सकते हैं:
Patch( Accounts, First( Accounts ), { Owner: First( Teams ) } )
यदि रिकॉर्ड संदर्भ में उपयोग किया जाता है, जैसे कि गैलरी या फ़ॉर्म संपादित करें नियंत्रण में, तो आपको तालिका प्रकार को संदर्भित करने के लिए वैश्विक बहुविकल्पी ऑपरेटर का उपयोग करने की आवश्यकता हो सकती है. उदाहरण के लिए, यह फॉर्मूला उस गैलरी के लिए प्रभावी होगा जो उन संपर्कों की सूची प्रदर्शित कर रही है, जहां कंपनी का नाम एक ग्राहक लुकअप है:
If( IsType( ThisItem.'Company Name', Accounts ),
AsType( ThisItem.'Company Name', Accounts ).'Account Name',
AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)
दोनों कार्यों के लिए, आप टेबल से कनेक्टेड डेटा स्रोत के नाम के माध्यम से प्रकार निर्दिष्ट करते हैं. फॉर्मूले के काम करने के लिए, आपको किसी भी प्रकार के लिए डेटा स्रोत को अनुप्रयोग में जोड़ना होगा जिसका आप परीक्षण या कास्ट करना चाहते हैं. उदाहरण के लिए, यदि आप उस टेबल से स्वामी लुकअप और रिकॉर्ड के साथ IsType और AsType का उपयोग करना चाहते हैं, तो आपको डेटा स्रोत के रूप में उपयोगकर्ता टेबल जोड़नी होगी. आप केवल वही डेटा स्रोत जोड़ सकते हैं जिनका आप वास्तव में अपने ऐप में उपयोग करते हैं; आपको उन सभी टेबल को जोड़ने की आवश्यकता नहीं है जिन्हें एक लुकअप संदर्भित कर सकता है.
यदि रिकॉर्ड संदर्भ रिक्त है, तो , IsType गलत देता है और AsType रिक्त देता है. रिक्त रिकॉर्ड की सभी फ़ील्ड रिक्त होंगी.
सिंटैक्स
AsType( रिकॉर्डरेफरेंस, टेबलटाइप )
- रिकॉर्ड संदर्भ - आवश्यक. एक रिकॉर्ड संदर्भ, अक्सर एक लुकअप फ़ील्ड होता है जो किसी भी एकाधिक टेबल में रिकॉर्ड को संदर्भित कर सकता है.
- TableType - आवश्यक. विशिष्ट टेबल जिसमें रिकॉर्ड डाला जाना चाहिए.
IsType( रिकॉर्डरेफरेंस, टेबलटाइप )
- रिकॉर्ड संदर्भ - आवश्यक. एक रिकॉर्ड संदर्भ, अक्सर एक लुकअप फ़ील्ड होता है जो किसी भी एकाधिक टेबल में रिकॉर्ड को संदर्भित कर सकता है.
- TableType - आवश्यक. विशिष्ट टेबल जिसके लिए परीक्षण करना है.
उदाहरण
रिकॉर्ड संदर्भ और बहुरूपी लुकअप को समझें में व्यापक उदाहरण शामिल हैं।
टेबलेट के लिए रिक्त कैनवास अनुप्रयोग बनाएं.
बाएँ फलक पर, डेटा>डेटा जोड़ें चुनें. और फिर, खाते और संपर्क टेबल जोड़ें.
बाएँ-फलक पर, + (सम्मिलित करें) >लेआउट>रिक्त लंबवत गैलरी चुनें.
डेटा से कनेक्ट करें चुनें और फिर डेटा स्रोत के रूप में संपर्क चुनें.
गैलरी का लेआउट शीर्षक और उपशीर्षक पर सेट करें.
डेटा फलक में, Title1 सूची खोलें और फिर पूरा नाम चुनें.
Subtitle1 लेबल नियंत्रण चुनें.
Subtitle1 के पाठ गुण को इस फॉर्मूले में सेट करें:
If( IsBlank( ThisItem.'Company Name' ), "--", IsType( ThisItem.'Company Name', Accounts ), "Account: " & AsType( ThisItem.'Company Name', Accounts ).'Account Name', "Contact: " & AsType( ThisItem.'Company Name', Contacts ).'Full Name' )
गैलरी में उपशीर्षक इन मानों को दर्शाता है:
- "--" यदि 'कंपनी नाम' रिक्त है.
- "खाता: " और फिर यदि कंपनी का नाम फ़ील्ड किसी खाते को संदर्भित करता है तो खाता टेबल से खाता नाम फ़ील्ड.
- "संपर्क: " और फिर यदि कंपनी का नाम फ़ील्ड किसी संपर्क को संदर्भित करता है तो संपर्क टेबल से पूरा नाम फ़ील्ड.
इस विषय में आपके परिणाम भिन्न हो सकते हैं क्योंकि यह उस नमूना डेटा का उपयोग करता है जिसे अतिरिक्त प्रकार के परिणाम दिखाने के लिए संशोधित किया गया था.