டைனமிக்ஸ் AX 2012 இல் தரவு() மற்றும் buf2Buf() க்கு இடையிலான வேறுபாடு
வெளியிடப்பட்டது: 15 பிப்ரவரி, 2025 அன்று பிற்பகல் 10:54:28 UTC
இந்தக் கட்டுரை, டைனமிக்ஸ் AX 2012 இல் buf2Buf() மற்றும் data() முறைகளுக்கு இடையிலான வேறுபாடுகளை விளக்குகிறது, ஒவ்வொன்றையும் எப்போது பயன்படுத்துவது பொருத்தமானது மற்றும் ஒரு X++ குறியீட்டு உதாரணம் உட்பட.
The Difference Between data() and buf2Buf() in Dynamics AX 2012
இந்தப் பதிவில் உள்ள தகவல்கள் Dynamics AX 2012 R3 ஐ அடிப்படையாகக் கொண்டவை. இது மற்ற பதிப்புகளுக்கு செல்லுபடியாகலாம் அல்லது செல்லுபடியாகாமல் இருக்கலாம்.
டைனமிக்ஸ் AX இல் ஒரு டேபிள் பஃபரிலிருந்து மற்றொன்றுக்கு அனைத்து புலங்களின் மதிப்பையும் நகலெடுக்க வேண்டியிருக்கும் போது, நீங்கள் பாரம்பரியமாக இதுபோன்ற ஒன்றைச் செய்வீர்கள்:
இது நன்றாக வேலை செய்கிறது, பெரும்பாலான சந்தர்ப்பங்களில் இதுவே செல்ல வழி.
இருப்பினும், அதற்கு பதிலாக buf2Buf செயல்பாட்டைப் பயன்படுத்துவதற்கான விருப்பமும் உங்களுக்கு உள்ளது:
இதுவும் நன்றாக வேலை செய்கிறது. சரி, வித்தியாசம் என்ன?
வித்தியாசம் என்னவென்றால், buf2Buf கணினி புலங்களை நகலெடுக்காது. கணினி புலங்களில் RecId, TableId போன்ற புலங்களும், இந்த சூழலில் மிக முக்கியமாக, DataAreaId போன்ற புலங்களும் அடங்கும். பிந்தையது மிக முக்கியமானதாக இருப்பதற்கான காரணம், நிறுவனக் கணக்குகளுக்கு இடையில் பதிவுகளை நகலெடுக்கும்போது, பொதுவாக changeCompany முக்கிய சொல்லைப் பயன்படுத்தி, data() க்குப் பதிலாக buf2Buf() ஐப் பயன்படுத்துவதற்கான மிகவும் பொதுவான சந்தர்ப்பமாகும்.
உதாரணமாக, நீங்கள் "dat" நிறுவனத்தில் இருந்து, "com" என்ற மற்றொரு நிறுவனத்தைக் கொண்டிருந்தால், CustTable இல் உள்ள அனைத்து பதிவுகளையும் இதிலிருந்து நகலெடுக்க விரும்புகிறீர்கள்:
{
buf2Buf(custTableFrom, custTableTo);
custTableTo.insert();
}
இந்த விஷயத்தில், buf2Buf, கணினி புலங்களைத் தவிர, அனைத்து புல மதிப்புகளையும் புதிய இடையகத்திற்கு நகலெடுப்பதால் இது செயல்படும். அதற்கு பதிலாக நீங்கள் data() ஐப் பயன்படுத்தியிருந்தால், புதிய பதிவு "com" நிறுவன கணக்குகளில் செருகப்பட்டிருக்கும், ஏனெனில் அந்த மதிப்பு புதிய இடையகத்திற்கும் நகலெடுக்கப்பட்டிருக்கும்.
(உண்மையில், இது ஒரு நகல் விசைப் பிழையை ஏற்படுத்தியிருக்கும், ஆனால் நீங்கள் விரும்புவதும் அதுவல்ல).