Miklix

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

प्रकाशित: 15 फ़रवरी 2025 को 10:54:13 pm UTC बजे
आखरी अपडेट: 12 जनवरी 2026 को 8:41:14 am 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 से अधिक वर्षों का अनुभव है और वर्तमान में वे एक बड़े यूरोपीय आईटी निगम के लिए पूर्णकालिक रूप से कार्यरत हैं। जब वे ब्लॉगिंग नहीं करते हैं, तो वे अपना खाली समय विभिन्न प्रकार की रुचियों, शौक और गतिविधियों में बिताते हैं, जो कुछ हद तक इस वेबसाइट पर शामिल किए गए विषयों की विविधता में परिलक्षित हो सकते हैं।