Munurinn á gögnum() og buf2Buf() í Dynamics AX 2012
Birt: 19. mars 2025 kl. 21:32:32 UTC
Þessi grein útskýrir muninn á buf2Buf() og data() aðferðunum í Dynamics AX 2012, þar á meðal hvenær það er viðeigandi að nota hverja og X++ kóðadæmi.
The Difference Between data() and buf2Buf() in Dynamics AX 2012
Upplýsingarnar í þessari færslu byggja á Dynamics AX 2012 R3. Þær gætu verið gildar fyrir aðrar útgáfur eða ekki.
Þegar þú þarft að afrita gildið af öllum reitum frá einni töflu puffer í annan í Dynamics AX, myndir þú hefðbundið gera eitthvað eins og:
Þetta virkar vel og er í flestum tilfellum leiðin til að fara.
Hins vegar hefur þú líka valkost á að nota buf2Buf aðgerðina í staðinn:
Þetta virkar líka vel. Hvað er þá munurinn?
Munurinn er sá að buf2Buf afritar ekki kerfisreiti. Kerfisreitir fela í sér reiti eins og RecId, TableId og kannski mikilvægust, DataAreaId. Ástæðan fyrir því að síðastnefndi reiturinn er sá mikilvægasti er að það er algengast að nota buf2Buf() í stað data() þegar þú ert að tvöfalda færslur milli fyrirtækjakontóa, venjulega með því að nota changeCompany lykilorðið.
Til dæmis, ef þú ert í fyrirtækinu "dat" og hefur annað fyrirtæki sem heitir "com" og þú vilt afrita allar færslur úr CustTable frá:
{
buf2Buf(custTableFrom, custTableTo);
custTableTo.insert();
}
Í þessu tilfelli mun það virka því buf2Buf afritar öll reitargildi, nema kerfisreiti, í nýja pufferinn. Hefðir þú notað data() í staðinn, hefði nýja færslan verið sett inn í "com" fyrirtækjakontóin vegna þess að það gildi hefði einnig verið afritað í nýja pufferinn.
(Reyndar hefði það leitt til villu með tvöfaldan lykil, en það er ekki það sem þú vilt heldur).
Frekari lestur
Ef þér líkaði þessi færsla gætirðu einnig haft gaman af þessum tillögum:
- Villa "Enginn lýsigagnaflokkur skilgreindur fyrir gagnasamningshlut" í Dynamics AX 2012
- Hringir beint í AIF Document Services frá X++ í Dynamics AX 2012
- Að bera kennsl á skjalaflokk og fyrirspurn fyrir AIF þjónustu í Dynamics AX 2012