Miklix

A különbség a data() és a buf2Buf() között a Dynamics AX 2012-ben

Megjelent: 2025. február 15. 22:53:45 UTC
Utolsó frissítés: 2026. január 12. 8:41:01 UTC

Ez a cikk ismerteti a Dynamics AX 2012 buf2Buf() és data() metódusai közötti különbségeket, beleértve azt is, hogy mikor helyénvaló az egyes metódusok használata, valamint egy X++ kódpéldát.


Ezt az oldalt angolból gépi fordítással készítettük, hogy minél több ember számára elérhető legyen. Sajnos a gépi fordítás még nem tökéletes technológia, ezért előfordulhatnak hibák. Ha szeretné, itt megtekintheti az eredeti angol nyelvű változatot:

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

A bejegyzésben található információk a Dynamics AX 2012 R3 verzión alapulnak. Előfordulhat, hogy más verziókra nem érvényesek.

Amikor a Dynamics AX egyik táblapufferéből a másikba kell másolnia az összes mező értékét, hagyományosan a következőképpen kell eljárnia:

toTable.data(fromTable);

Ez jól működik, és a legtöbb esetben ez a járható út.

Azonban lehetőséged van a buf2Buf függvény használatára is:

buf2Buf(fromTable, toTable);

Ez is jól működik. Akkor mi a különbség?

A különbség az, hogy a buf2Buf nem másolja a rendszermezőket. A rendszermezők olyan mezőket tartalmaznak, mint a RecId, a TableId, és talán a legfontosabb ebben a kontextusban a DataAreaId. Az utóbbi a legfontosabb, mert a leggyakoribb eset, amikor a buf2Buf()-ot használnánk a data() helyett, az a rekordok duplikálása a céges számlák között, jellemzően a changeCompany kulcsszó használatával.

Például, ha a „dat” cégnél dolgozik, és van egy másik, „com” nevű cége, amelyből az összes rekordot át szeretné másolni a CustTable-ben:

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

Ebben az esetben működni fog, mert a buf2Buf az összes mezőértéket átmásolja, kivéve a rendszermezőket, az új pufferbe. Ha ehelyett a data() függvényt használtad volna, az új rekord a "com" cégfiókokba került volna beszúrásra, mivel ez az érték is átmásolódott volna az új pufferbe.

(Valójában duplikált kulcs hibát eredményezett volna, de ez sem az, amit szeretnél).

További olvasmányok

Ha tetszett ez a bejegyzés, akkor ezek a javaslatok is érdekelhetik:


Oszd meg a Bluesky-nOszd meg a FacebookonOszd meg a LinkedIn-enOszd meg a Tumblr-enOszd meg X-enOszd meg a LinkedIn-enPin a Pinteresten

Mikkel Christensen

A szerzőről

Mikkel Christensen
Mikkel a miklix.com létrehozója és tulajdonosa. Több mint 20 éves tapasztalattal rendelkezik, mint hivatásos számítógépes programozó/szoftverfejlesztő, és jelenleg teljes munkaidőben dolgozik egy nagy európai informatikai vállalatnál. Amikor nem blogol, szabadidejét érdeklődési körének, hobbijainak és tevékenységeinek széles skálájával tölti, ami bizonyos mértékig tükröződhet a weboldalon tárgyalt témák sokféleségében.