Miklix

Razlika između data() i buf2Buf() u dinamici AKS 2012

Objavio: 19. mart 2025. 21:32:41 UTC

Ovaj članak objašnjava razlike između buf2Buf() i data() metoda u Dynamics AX 2012, uključujući i kada je prikladno koristiti svaki i primer Ks++ koda.


Ova stranica je mašinski prevedena sa engleskog jezika kako bi bila dostupna što većem broju ljudi. Nažalost, mašinsko prevođenje još uvek nije usavršena tehnologija, tako da može doći do grešaka. Ako želite, možete pogledati originalnu englesku verziju ovde:

The Difference Between data() and buf2Buf() in Dynamics AX 2012

Informacije u ovom postu temelje se na Dynamics AX 2012 R3. Mogu biti ili ne moraju biti validne za druge verzije.

Kada je potrebno kopirati vrednost svih polja sa jednog tabelarnog bafera na drugi u Dynamics AX, tradicionalno biste uradili nešto poput:

toTable.data(fromTable);

Ovo dobro funkcioniše i u većini slučajeva je pravi način.

Međutim, takođe imate opciju da umesto toga koristite buf2Buf funkciju:

buf2Buf(fromTable, toTable);

Ovo takođe dobro funkcioniše. Pa koja je razlika?

Razlika je u tome što buf2Buf ne kopira sistemska polja. Sistemska polja uključuju polja kao što su RecId, TableId i možda najvažnije u ovom kontekstu, DataAreaId. Razlog zbog kojeg je ovo poslednje najvažnije je to što je najtipičniji slučaj kada biste koristili buf2Buf() umesto data() upravo prilikom dupliciranja zapisa između poslovnih računa, obično korišćenjem changeCompany ključne reči.

Na primer, ako ste u "dat" kompaniji i imate drugu kompaniju pod nazivom "com" iz koje želite da kopirate sve zapise u CustTable:

while select crossCompany : ['com'] custTableFrom
{
    buf2Buf(custTableFrom, custTableTo);
    custTableTo.insert();
}

U ovom slučaju, to će funkcionisati jer buf2Buf kopira sve vrednosti polja, osim sistemskih polja, u novi bafer. Da ste koristili data() umesto toga, novi zapis bi bio ubačen u "com" poslovne račune jer bi ta vrednost takođe bila kopirana u novi bafer.

(Zapravo, to bi izazvalo grešku duplikata ključa, ali to nije ono što želite).

Podeli na BlueskiPodeli na FejsbukuPodeli na LinkedInPodeli na TumblrPodeli na XPodeli na LinkedInPin na Pinterest

Mikkel Christensen

O autoru

Mikkel Christensen
Mikel je tvorac i vlasnik miklix.com. Ima preko 20 godina iskustva kao profesionalni kompjuterski programer / programer i trenutno je zaposlen sa punim radnim vremenom za veliku evropsku IT korporaciju. Kada ne bloguje, on provodi svoje slobodno vreme na širokom spektru interesovanja, hobija i aktivnosti, što se u određenoj meri može odraziti na različite teme koje se obrađuju na ovoj veb stranici.