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.
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:
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:
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:
{
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:
- A SysExtension Framework segítségével megtudhatja, melyik alosztályt kell példányosítani a Dynamics AX 2012-ben
- Karakterláncformázás makróval és strFmt-vel a Dynamics AX 2012-ben
- Töröljön egy jogi személyt (vállalati fiókokat) a Dynamics AX 2012-ben
