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 में एक टेबल बफ़र से दूसरे टेबल बफ़र में सभी फ़ील्ड की वैल्यू कॉपी करने की ज़रूरत होती है, तो आप आम तौर पर कुछ ऐसा करते हैं:
यह अच्छी तरह से काम करता है और ज़्यादातर मामलों में यही तरीका है।
हालाँकि, आपके पास इसके बजाय buf2Buf फ़ंक्शन का उपयोग करने का विकल्प भी है:
यह भी ठीक काम करता है। तो क्या फ़र्क है?
फ़र्क यह है कि buf2Buf सिस्टम फ़ील्ड को कॉपी नहीं करता है। सिस्टम फ़ील्ड में RecId, TableId, और शायद इस मामले में सबसे ज़रूरी, DataAreaId जैसे फ़ील्ड शामिल हैं। बाद वाला सबसे ज़रूरी इसलिए है क्योंकि सबसे आम मामला जहाँ आप data() के बजाय buf2Buf() का इस्तेमाल करेंगे, वह तब होता है जब कंपनी अकाउंट के बीच रिकॉर्ड को डुप्लिकेट किया जाता है, आमतौर पर changeCompany कीवर्ड का इस्तेमाल करके।
उदाहरण के लिए, अगर आप "dat" कंपनी में हैं और आपकी दूसरी कंपनी "com" है, जिससे आप CustTable में सभी रिकॉर्ड कॉपी करना चाहते हैं:
{
buf2Buf(custTableFrom, custTableTo);
custTableTo.insert();
}
इस मामले में, यह काम करेगा क्योंकि buf2Buf सिस्टम फ़ील्ड को छोड़कर सभी फ़ील्ड वैल्यू को नए बफ़र में कॉपी करता है। अगर आपने इसके बजाय data() का इस्तेमाल किया होता, तो नया रिकॉर्ड "com" कंपनी अकाउंट में डाला गया होता क्योंकि वह वैल्यू भी नए बफ़र में कॉपी हो गई होती।
(असल में, इससे डुप्लीकेट की एरर आ जाती, लेकिन आप ऐसा भी नहीं चाहते)।
अग्रिम पठन
यदि आपको यह पोस्ट पसंद आई हो, तो आपको ये सुझाव भी पसंद आ सकते हैं:
- Dynamics AX 2012 में X++ से सीधे AIF दस्तावेज़ सेवाएँ कॉल करना
- Dynamics AX 2012 में मैक्रो और strFmt के साथ स्ट्रिंग फ़ॉर्मेटिंग
- Dynamics AX 2012 में किस उपवर्ग को तत्काल बनाना है, यह जानने के लिए SysExtension फ्रेमवर्क का उपयोग करना
