डायनॅमिक्स AX २०१२ मध्ये डेटा() आणि buf2Buf() मधील फरक
प्रकाशित: १५ फेब्रुवारी, २०२५ रोजी १०:५४:२४ PM UTC
हा लेख डायनॅमिक्स AX २०१२ मधील buf2Buf() आणि data() पद्धतींमधील फरक स्पष्ट करतो, ज्यामध्ये प्रत्येक पद्धतीचा वापर करणे कधी योग्य आहे आणि X++ कोड उदाहरण देखील समाविष्ट आहे.
The Difference Between data() and buf2Buf() in Dynamics AX 2012
या पोस्टमधील माहिती डायनॅमिक्स AX २०१२ R3 वर आधारित आहे. ती इतर आवृत्त्यांसाठी वैध असू शकते किंवा नसू शकते.
जेव्हा तुम्हाला डायनॅमिक्स AX मध्ये एका टेबल बफरमधून दुसऱ्या टेबल बफरमध्ये सर्व फील्डची व्हॅल्यू कॉपी करायची असते, तेव्हा तुम्ही पारंपारिकपणे असे काहीतरी कराल:
हे चांगले काम करते आणि बहुतेक प्रकरणांमध्ये हाच योग्य मार्ग आहे.
तथापि, तुमच्याकडे buf2Buf फंक्शन वापरण्याचा पर्याय देखील आहे:
हे देखील चांगले काम करते. मग काय फरक आहे?
फरक असा आहे की buf2Buf सिस्टम फील्ड कॉपी करत नाही. सिस्टम फील्डमध्ये RecId, TableId आणि कदाचित सर्वात महत्त्वाचे म्हणजे या संदर्भात DataAreaId सारखे फील्ड समाविष्ट आहेत. नंतरचे सर्वात महत्वाचे असण्याचे कारण म्हणजे data() ऐवजी buf2Buf() वापरण्याची सर्वात सामान्य पद्धत म्हणजे कंपनी खात्यांमधील रेकॉर्ड डुप्लिकेट करणे, सामान्यतः changeCompany कीवर्ड वापरून.
उदाहरणार्थ, जर तुम्ही "dat" कंपनीत असाल आणि "com" नावाची दुसरी कंपनी असेल जिथून तुम्हाला CustTable मधील सर्व रेकॉर्ड कॉपी करायचे असतील तर:
{
buf2Buf(custTableFrom, custTableTo);
custTableTo.insert();
}
या प्रकरणात, ते कार्य करेल कारण buf2Buf सिस्टम फील्ड वगळता सर्व फील्ड व्हॅल्यूज नवीन बफरमध्ये कॉपी करते. जर तुम्ही त्याऐवजी data() वापरले असते, तर नवीन रेकॉर्ड "com" कंपनीच्या खात्यांमध्ये समाविष्ट केला असता कारण तो व्हॅल्यू नवीन बफरमध्ये देखील कॉपी केला असता.
(खरं तर, त्यामुळे डुप्लिकेट की एरर आली असती, पण तुम्हाला तेही नको आहे).