Miklix

Rozdiel medzi data() a buf2Buf() v Dynamics AX 2012

Publikované: 15. februára 2025 o 22:54:02 UTC
Posledná aktualizácia: 12. januára 2026 o 8:41:10 UTC

Tento článok vysvetľuje rozdiely medzi metódami buf2Buf() a data() v systéme Dynamics AX 2012 vrátane toho, kedy je vhodné ich použiť, a príkladu kódu X++.


Táto stránka bola strojovo preložená z angličtiny, aby bola prístupná čo najväčšiemu počtu ľudí. Žiaľ, strojový preklad ešte nie je dokonalá technológia, takže sa môžu vyskytnúť chyby. Ak chcete, môžete si pozrieť pôvodnú anglickú verziu tu:

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

Informácie v tomto príspevku sú založené na systéme Dynamics AX 2012 R3. Môžu, ale nemusia byť platné aj pre iné verzie.

Keď potrebujete v systéme Dynamics AX skopírovať hodnotu všetkých polí z jednej vyrovnávacej pamäte tabuľky do druhej, tradične by ste urobili niečo ako:

toTable.data(fromTable);

Toto funguje dobre a vo väčšine prípadov je to správna cesta.

Máte však aj možnosť použiť funkciu buf2Buf:

buf2Buf(fromTable, toTable);

Aj toto funguje dobre. Aký je teda rozdiel?

Rozdiel je v tom, že buf2Buf nekopíruje systémové polia. Systémové polia zahŕňajú polia ako RecId, TableId a v tomto kontexte možno najdôležitejšie DataAreaId. Dôvod, prečo je najdôležitejšie to druhé, je ten, že najtypickejším prípadom, kedy by ste použili buf2Buf() namiesto data(), je duplikovanie záznamov medzi firemnými účtami, zvyčajne pomocou kľúčového slova changeCompany.

Napríklad, ak pracujete v spoločnosti „dat“ a máte inú spoločnosť s názvom „com“, z ktorej chcete skopírovať všetky záznamy v CustTable:

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

V tomto prípade to bude fungovať, pretože buf2Buf skopíruje všetky hodnoty polí okrem systémových polí do nového bufferu. Ak by ste namiesto toho použili data(), nový záznam by sa vložil do účtov spoločnosti „com“, pretože táto hodnota by sa tiež skopírovala do nového bufferu.

(V skutočnosti by to viedlo k chybe duplicitného kľúča, ale ani to nechcete).

Ďalšie čítanie

Ak sa vám tento príspevok páčil, možno sa vám budú páčiť aj tieto návrhy:


Zdieľať na BlueskyZdieľať na FacebookuZdieľať na LinkedInZdieľať na TumblrZdieľať na XZdieľať na LinkedInPripnúť na Pintereste

Mikkel Christensen

O autorovi

Mikkel Christensen
Mikkel je tvorcom a majiteľom miklix.com. Má viac ako 20 rokov skúseností ako profesionálny počítačový programátor/vývojár softvéru a v súčasnosti pracuje na plný úväzok pre veľkú európsku IT korporáciu. Keď práve nepíše blog, venuje svoj voľný čas širokej škále záujmov, koníčkov a aktivít, čo sa môže do istej miery odrážať v rôznorodosti tém na tejto webovej lokalite.