Miklix

Dynamics AX 2012 में data() और buf2Buf() के बीच अंतर

प्रकाशित: 15 फ़रवरी 2025 को 10:54:13 pm UTC बजे

यह आलेख Dynamics AX 2012 में buf2Buf() और data() विधियों के बीच अंतरों को समझाता है, जिसमें प्रत्येक का उपयोग कब करना उचित है और एक X++ कोड उदाहरण भी शामिल है।


इस पृष्ठ को अंग्रेजी से मशीन द्वारा अनुवादित किया गया है ताकि इसे अधिक से अधिक लोगों तक पहुँचाया जा सके। दुर्भाग्य से, मशीन अनुवाद अभी तक एक पूर्ण तकनीक नहीं है, इसलिए त्रुटियाँ हो सकती हैं। यदि आप चाहें, तो आप मूल अंग्रेजी संस्करण यहाँ देख सकते हैं:

The Difference Between data() and buf2Buf() in Dynamics AX 2012

इस पोस्ट में दी गई जानकारी Dynamics AX 2012 R3 पर आधारित है। यह अन्य संस्करणों के लिए मान्य हो भी सकती है और नहीं भी।

जब आपको Dynamics AX में एक तालिका बफर से दूसरे में सभी फ़ील्ड के मान की प्रतिलिपि बनाने की आवश्यकता होती है, तो आप पारंपरिक रूप से कुछ इस प्रकार करेंगे:

toTable.data(fromTable);

यह अच्छी तरह से काम करता है और ज्यादातर मामलों में यही तरीका है।

हालाँकि, आपके पास इसके बजाय buf2Buf फ़ंक्शन का उपयोग करने का विकल्प भी है:

buf2Buf(fromTable, toTable);

यह भी अच्छी तरह से काम करता है। तो फिर क्या अंतर है?

अंतर यह है कि buf2Buf सिस्टम फ़ील्ड की प्रतिलिपि नहीं बनाता है। सिस्टम फ़ील्ड में RecId, TableId और शायद इस संदर्भ में सबसे महत्वपूर्ण, DataAreaId जैसे फ़ील्ड शामिल हैं। उत्तरार्द्ध सबसे महत्वपूर्ण है क्योंकि सबसे आम मामला जहां आप data() के बजाय buf2Buf() का उपयोग करेंगे, वह कंपनी खातों के बीच रिकॉर्ड की नकल करते समय होता है, आमतौर पर changeCompany कीवर्ड के उपयोग से।

उदाहरण के लिए, यदि आप "dat" कंपनी में हैं और आपकी एक अन्य कंपनी "com" है, जिसके सभी रिकार्ड आप CustTable में कॉपी करना चाहते हैं:

while select crossCompany : ['com'] custTableFrom
{
    buf2Buf(custTableFrom, custTableTo);
    custTableTo.insert();
}

इस मामले में, यह काम करेगा क्योंकि buf2Buf सिस्टम फ़ील्ड को छोड़कर सभी फ़ील्ड मानों को नए बफ़र में कॉपी करता है। यदि आपने इसके बजाय data() का उपयोग किया होता, तो नया रिकॉर्ड "com" कंपनी खातों में डाला गया होता क्योंकि वह मान नए बफ़र में भी कॉपी किया गया होता।

(वास्तव में, इससे डुप्लिकेट कुंजी त्रुटि उत्पन्न हो जाती, लेकिन आप ऐसा भी नहीं चाहते हैं)।

ब्लूस्काई पर साझा करेंफेसबुक पर सांझा करेंलिंक्डइन पर साझा करेंटम्बलर पर साझा करेंX पर साझा करेंलिंक्डइन पर साझा करेंPinterest पर पिन करें

मिकेल बैंग क्रिस्टेंसन

लेखक के बारे में

मिकेल बैंग क्रिस्टेंसन
मिकेल miklix.com के निर्माता और मालिक हैं। उन्हें पेशेवर कंप्यूटर प्रोग्रामर/सॉफ्टवेयर डेवलपर के रूप में 20 से अधिक वर्षों का अनुभव है और वर्तमान में वे एक बड़े यूरोपीय आईटी निगम के लिए पूर्णकालिक रूप से कार्यरत हैं। जब वे ब्लॉगिंग नहीं करते हैं, तो वे अपना खाली समय विभिन्न प्रकार की रुचियों, शौक और गतिविधियों में बिताते हैं, जो कुछ हद तक इस वेबसाइट पर शामिल किए गए विषयों की विविधता में परिलक्षित हो सकते हैं।