Miklix

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


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 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:

toTable.data(fromTable);

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:

buf2Buf(fromTable, toTable);

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:

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


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

Mikkel Christensen

Rreth Autorit

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