Dallimi midis të dhënave() dhe buf2Buf() në Dynamics AX 2012
Publikuar: 15 shkurt 2025 në 10:54:34 e pasdites, UTC
Përditësimi i fundit: 12 janar 2026 në 8:41:22 e paradites, UTC
Ky artikull shpjegon ndryshimet midis metodave buf2Buf() dhe data() në Dynamics AX 2012, duke përfshirë kur është e përshtatshme të përdoret secila dhe një shembull kodi X++.
The Difference Between data() and buf2Buf() in Dynamics AX 2012
Informacioni në këtë postim bazohet në Dynamics AX 2012 R3. Mund të jetë ose jo i vlefshëm për versione të tjera.
Kur duhet të kopjoni vlerën e të gjitha fushave nga një buffer i tabelës në një tjetër në Dynamics AX, tradicionalisht do të bënit diçka si:
Kjo funksionon mirë dhe në shumicën e rasteve është rruga e duhur.
Megjithatë, ju keni edhe mundësinë të përdorni funksionin buf2Buf në vend të kësaj:
Edhe kjo funksionon mirë. Pra, cili është ndryshimi?
Dallimi është se buf2Buf nuk kopjon fushat e sistemit. Fushat e sistemit përfshijnë fusha të tilla si RecId, TableId dhe ndoshta më e rëndësishmja në këtë kontekst, DataAreaId. Arsyeja pse kjo e fundit është më e rëndësishmja është se rasti më tipik ku do të përdorni buf2Buf() në vend të data() është kur dublikoni të dhënat midis llogarive të kompanisë, zakonisht duke përdorur fjalën kyçe changeCompany.
Për shembull, nëse jeni në kompaninë "dat" dhe keni një kompani tjetër të quajtur "com" nga e cila dëshironi të kopjoni të gjitha të dhënat në CustTable:
{
buf2Buf(custTableFrom, custTableTo);
custTableTo.insert();
}
Në këtë rast, do të funksionojë sepse buf2Buf kopjon të gjitha vlerat e fushave, përveç fushave të sistemit, në buffer-in e ri. Nëse do të kishit përdorur data(), regjistrimi i ri do të ishte futur në llogaritë e kompanisë "com" sepse edhe ajo vlerë do të ishte kopjuar në buffer-in e ri.
(Në fakt, kjo do të kishte rezultuar në një gabim të çelësit të dyfishtë, por as kjo nuk është ajo që dëshironi).
Lexime të mëtejshme
Nëse ju pëlqeu ky postim, mund t'ju pëlqejnë edhe këto sugjerime:
- Thirrja e Shërbimeve të Dokumenteve AIF direkt nga X++ në Dynamics AX 2012
- Duke përdorur kornizën SysExtension për të gjetur se cila nënklasë do të instantiate në Dynamics AX 2012
- Dynamics AX 2012 SysOperation Framework Vështrim i shpejtë
