Miklix

Տվյալների () և buf2Buf () միջև տարբերությունը Dynamics AX 2012-ում

Հրապարակվել է՝ 15 փետրվարի, 2025 թ., 22:55:34 UTC

Այս հոդվածը բացատրում է Dynamics AX 2012-ում buf2Buf() և data() մեթոդների միջև եղած տարբերությունները, ներառյալ, երբ նպատակահարմար է օգտագործել յուրաքանչյուրը և X++ կոդի օրինակ:


Այս էջը ավտոմատ կերպով թարգմանվել է անգլերենից՝ հնարավորինս շատ մարդկանց համար հասանելի դարձնելու համար: Ցավոք, մեքենայական թարգմանությունը դեռ կատարելագործված տեխնոլոգիա չէ, ուստի կարող են սխալներ առաջանալ: Եթե ​​նախընտրում եք, կարող եք դիտել բնօրինակ անգլերեն տարբերակը այստեղ.

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

Այս գրառման տեղեկատվությունը հիմնված է Dynamics AX 2012 R3-ի վրա: Այն կարող է վավեր լինել կամ չգործել այլ տարբերակների համար:

Երբ դուք պետք է պատճենեք բոլոր դաշտերի արժեքը մի սեղանի բուֆերից մյուսը Dynamics AX-ում, դուք ավանդաբար կանեք նման բան.

toTable.data(fromTable);

Սա լավ է աշխատում և շատ դեպքերում գնալու ճանապարհն է:

Այնուամենայնիվ, դուք նաև հնարավորություն ունեք օգտագործելու buf2Buf ֆունկցիան փոխարենը.

buf2Buf(fromTable, toTable);

Սա նույնպես լավ է աշխատում: Այսպիսով, ո՞րն է տարբերությունը:

Տարբերությունն այն է, որ buf2Buf-ը չի պատճենում համակարգի դաշտերը։ Համակարգի դաշտերը ներառում են այնպիսի դաշտեր, ինչպիսիք են RecId-ը, TableId-ը և, հավանաբար, ամենակարևորն այս համատեքստում՝ DataAreaId-ը: Վերջինիս ամենակարևոր պատճառն այն է, որ ամենատիպիկ դեպքը, երբ դուք կօգտագործեիք buf2Buf()-ը տվյալների ()-ի փոխարեն, դա ընկերության հաշիվների միջև գրառումների կրկնօրինակումն է, որպես կանոն՝ օգտագործելով changeCompany հիմնաբառը:

Օրինակ, եթե դուք «dat» ընկերությունում եք և ունեք մեկ այլ ընկերություն, որը կոչվում է «com», որից ցանկանում եք պատճենել CustTable-ի բոլոր գրառումները.

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

Այս դեպքում այն ​​կաշխատի, քանի որ buf2Buf-ը պատճենում է դաշտի բոլոր արժեքները, բացառությամբ համակարգի դաշտերի, նոր բուֆերում: Եթե ​​փոխարենը օգտագործեիք data(), նոր գրառումը կտեղադրվեր «com» ​​ընկերության հաշիվներում, քանի որ այդ արժեքը նույնպես կպատճենվեր նոր բուֆերում:

(Իրականում դա կհանգեցներ կրկնօրինակ բանալիների սխալի, բայց դա էլ այն չէ, ինչ դուք ուզում եք):

Կիսվեք Bluesky-ումԿիսվել Facebook-ումԿիսվեք LinkedIn-ումԿիսվեք Tumblr-ումԿիսվեք X-ումԿիսվեք LinkedIn-ումԿպցնել Պինթրեսթում

Միկել Բանգ Քրիստենսեն

Հեղինակի մասին

Միկել Բանգ Քրիստենսեն
Mikkel-ը miklix.com-ի ստեղծողն ու սեփականատերն է: Նա ունի ավելի քան 20 տարվա աշխատանքային փորձ՝ որպես պրոֆեսիոնալ համակարգչային ծրագրավորող/ծրագրային ապահովման մշակող և ներկայումս լրիվ դրույքով աշխատում է եվրոպական խոշոր ՏՏ կորպորացիայի մեջ: Երբ նա բլոգ չի գրում, նա իր ազատ ժամանակն անցկացնում է հետաքրքրությունների, հոբբիների և գործունեության լայն շրջանակի վրա, որոնք որոշ չափով կարող են արտացոլվել այս կայքում ընդգրկված թեմաների բազմազանության մեջ: