Miklix

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++ .


Kjo faqe u përkthye me makinë nga anglishtja për ta bërë të aksesueshme për sa më shumë njerëz. Fatkeqësisht, përkthimi me makinë nuk është ende një teknologji e përsosur, kështu që mund të ndodhin gabime. Nëse preferoni, mund ta shikoni versionin origjinal në anglisht këtu:

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:

toTable.data(fromTable);

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:

buf2Buf(fromTable, toTable);

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:

while select crossCompany : ['com'] custTableFrom
{
    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).

Shpërndaje në BlueskyShpërndaje në FacebookNdani në LinkedInShpërndaje në TumblrShpërndaje në XNdani në LinkedInPin në Pinterest

Mikkel Bang Christensen

Rreth Autorit

Mikkel Bang Christensen
Mikkel është krijuesi dhe pronari i miklix.com. Ai ka mbi 20 vjet përvojë si programues profesional kompjuteri/zhvillues softuerësh dhe aktualisht është i punësuar me kohë të plotë për një korporatë të madhe evropiane IT. Kur nuk bën blog, ai e kalon kohën e lirë në një gamë të gjerë interesash, hobish dhe aktivitetesh, të cilat mund të reflektohen në një farë mase në shumëllojshmërinë e temave të mbuluara në këtë faqe interneti.