Miklix

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

Հրապարակվել է՝ 15 փետրվարի, 2025 թ., 22:55:34 UTC
Վերջին թարմացումը՝ 12 հունվարի, 2026 թ., 08:41:23 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()-ը data()-ի փոխարեն օգտագործելու ամենատարածված դեպքը ընկերության հաշիվների միջև գրառումների կրկնօրինակումն է, սովորաբար 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 տարվա աշխատանքային փորձ՝ որպես պրոֆեսիոնալ համակարգչային ծրագրավորող/ծրագրային ապահովման մշակող և ներկայումս լրիվ դրույքով աշխատում է եվրոպական խոշոր ՏՏ կորպորացիայի մեջ: Երբ նա բլոգ չի գրում, նա իր ազատ ժամանակն անցկացնում է հետաքրքրությունների, հոբբիների և գործունեության լայն շրջանակի վրա, որոնք որոշ չափով կարող են արտացոլվել այս կայքում ընդգրկված թեմաների բազմազանության մեջ: