Tofauti kati ya data() na buf2Buf() katika Dynamics AX 2012
Iliyochapishwa: 15 Februari 2025, 22:54:20 UTC
Makala hii inaelezea tofauti kati ya mbinu za buf2Buf() na data () katika Dynamics AX 2012, ikiwa ni pamoja na wakati inafaa kutumia kila moja na mfano wa nambari ya X++.
The Difference Between data() and buf2Buf() in Dynamics AX 2012
Habari katika chapisho hili inategemea Dynamics AX 2012 R3. Inaweza au haiwezi kuwa halali kwa matoleo mengine.
Unapohitaji kunakili thamani ya nyanja zote kutoka kwa bafa moja ya meza hadi nyingine katika Dynamics AX, kwa kawaida utafanya kitu kama:
Hii inafanya kazi vizuri na katika hali nyingi ni njia ya kwenda.
Walakini, pia una chaguo la kutumia kazi ya buf2Buf badala yake:
Hii pia inafanya kazi vizuri. Kwa hivyo kuna tofauti gani?
Tofauti ni kwamba buf2Buf haina nakala ya mashamba ya mfumo. Sehemu za mfumo ni pamoja na mashamba kama vile RecId, TableId, na labda muhimu zaidi katika muktadha huu, DataAreaId. Sababu ya mwisho ni muhimu zaidi ni kwamba kesi ya kawaida ambapo ungetumia buf2Buf() badala ya data () ni wakati wa kurudia rekodi kati ya akaunti za kampuni, kwa kawaida kwa kutumia neno la msingi la mabadiliko.
Kwa mfano, ikiwa uko katika kampuni ya "dat" na una kampuni nyingine inayoitwa "com" ambayo unataka kunakili rekodi zote katika CustTable kutoka:
{
buf2Buf(custTableFrom, custTableTo);
custTableTo.insert();
}
Katika kesi hii, itafanya kazi kwa sababu buf2Buf inanakili maadili yote ya shamba, isipokuwa uwanja wa mfumo kwa bafa mpya. Ikiwa ungetumia data() badala yake, rekodi mpya ingekuwa imeingizwa kwenye akaunti za kampuni ya "com" kwa sababu thamani hiyo ingenakiliwa kwenye bafa mpya pia.
(Kwa kweli, ingesababisha kosa la ufunguo wa nakala, lakini hiyo sio unayotaka pia).