Miklix

Razlika između data() i buf2Buf() u Dynamics AX 2012

Objavljeno: 15. veljače 2025. u 22:55:38 UTC

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


Ova je stranica strojno prevedena s engleskog kako bi bila dostupna što većem broju ljudi. Nažalost, strojno prevođenje još nije usavršena tehnologija pa se mogu pojaviti pogreške. Ako želite, izvornu englesku verziju možete pogledati ovdje:

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

Informacije u ovom postu temelje se na Dynamics AX 2012 R3. Može, ali i ne mora vrijediti za druge verzije.

Kada trebate kopirati vrijednost svih polja iz jednog međuspremnika tablice u drugi u Dynamics AX, tradicionalno biste učinili nešto poput:

toTable.data(fromTable);

Ovo dobro funkcionira iu većini slučajeva to je pravi put.

Međutim, također imate mogućnost korištenja funkcije buf2Buf umjesto toga:

buf2Buf(fromTable, toTable);

Ovo također dobro funkcionira. Pa u čemu je razlika?

Razlika je u tome što buf2Buf ne kopira sistemska polja. Polja sustava uključuju polja kao što su RecId, TableId i možda najvažnije u ovom kontekstu, DataAreaId. Razlog zašto je potonji najvažniji je taj što je najčešći slučaj u kojem biste koristili buf2Buf() umjesto data() kada duplicirate zapise između računa poduzeća, obično korištenjem ključne riječi changeCompany.

Na primjer, ako ste u tvrtki "dat" i imate drugu tvrtku pod nazivom "com" iz koje želite kopirati sve zapise u CustTable:

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

U ovom slučaju, radit će jer buf2Buf kopira sve vrijednosti polja, osim sistemskih polja u novi međuspremnik. Da ste umjesto toga koristili data(), novi bi zapis bio umetnut u "com" račune tvrtke jer bi ta vrijednost također bila kopirana u novi međuspremnik.

(Zapravo, to bi rezultiralo duplikatom pogreške ključa, ali ni to nije ono što želite).

Dodatno čitanje

Ako vam se svidio ovaj post, možda će vam se svidjeti i ovi prijedlozi:


Podijeli na BlueskyPodijelite na FacebookuPodijelite na LinkedInuPodijelite na TumblrPodijeli na XPodijelite na LinkedInuPrikvači na Pinterest

Mikkel Christensen

O autoru

Mikkel Christensen
Mikkel je kreator i vlasnik miklix.com. Ima više od 20 godina iskustva kao profesionalni računalni programer/razvijač softvera i trenutno je zaposlen na puno radno vrijeme za veliku europsku IT korporaciju. Kada ne piše blog, svoje slobodno vrijeme provodi na široku lepezu interesa, hobija i aktivnosti, što se u određenoj mjeri može odraziti na različite teme obrađene na ovoj web stranici.