Dallimi midis të dhënave() dhe buf2Buf() në Dynamics AX 2012
Publikuar: 15 shkurt 2025 në 10:54:34 e pasdites, UTC
Ky artikull shpjegon dallimet midis metodave buf2Buf() dhe data() në Dynamics AX 2012, duke përfshirë kur është e përshtatshme të përdoret secili 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 e vlefshme për versione të tjera.
Kur ju duhet të kopjoni vlerën e të gjitha fushave nga një tampon tabletë në një tjetër në Dynamics AX, ju tradicionalisht do të bënit diçka si:
Kjo funksionon mirë dhe në shumicën e rasteve është rruga për të shkuar.
Megjithatë, ju gjithashtu keni mundësinë e përdorimit të funksionit buf2Buf në vend të kësaj:
Edhe kjo funksionon mirë. Pra, cili është ndryshimi?
Ndryshimi ë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 ju do të përdornit buf2Buf() në vend të të dhënave() është kur duplikoni regjistrat midis llogarive të kompanisë, zakonisht nga përdorimi i fjalës kyçe changeCompany.
Për shembull, nëse jeni në kompaninë "dat" dhe keni një kompani tjetër të quajtur "com" që dëshironi të kopjoni të gjitha regjistrimet në CustTable nga:
{
buf2Buf(custTableFrom, custTableTo);
custTableTo.insert();
}
Në këtë rast, do të funksionojë sepse buf2Buf kopjon të gjitha vlerat e fushës, përveç fushave të sistemit tek tamponi i ri. Po të kishit përdorur të dhëna() në vend të kësaj, rekordi i ri do të ishte futur në llogaritë e kompanisë "com" sepse kjo vlerë do të ishte kopjuar edhe në tamponin e ri.
(Në fakt, kjo do të kishte rezultuar në një gabim kyç të dyfishtë, por kjo nuk është ajo që ju dëshironi as).
Lexime të mëtejshme
Nëse ju pëlqeu ky postim, mund t'ju pëlqejnë edhe këto sugjerime:
- Formatimi i fijeve me Macro dhe strFmt 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
- Thirrja e Shërbimeve të Dokumenteve AIF direkt nga X++ në Dynamics AX 2012