Miklix

Dynamics AX 2012 дээрх data() ба buf2Buf() хоёрын ялгаа

Нийтэлсэн: 2025 оны гуравдугаар сарын 19 21:32: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() функцыг data() функцийн оронд ашиглах хамгийн түгээмэл тохиолдол нь компанийн данс хооронд бичлэг хуулбарлах үед байдаг, энэ нь ихэвчлэн changeCompany түлхүүр үгийг ашигладаг.

Жишээ нь, хэрэв та "dat" компанид байгаа бөгөөд "com" гэж нэрлэгдсэн өөр компанид CustTable бүх бичлэгийг хуулбарлахыг хүсч байгаа бол:

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

Энэ тохиолдолд buf2Buf нь бүх талбарын утгуудыг системийн талбаруудыг оролцуулахгүйгээр шинэ буфер руу хуулбарладаг учраас энэ нь ажиллана. Харин та data() функцийг ашигласан бол, шинэ бичлэг нь "com" компанийн данс руу нэмэгдэх байсан бөгөөд тухайн утга нь шинэ буфер руу хуулбарлагдах байсан.

(Үнэндээ энэ нь давхар түлхүүрийн алдаа үүсгэх байсан, гэхдээ энэ нь ч та хүсэхгүй зүйл юм).

Bluesky дээр хуваалцаарайFacebook дээр хуваалцахLinkedIn дээр хуваалцахTumblr дээр хуваалцахX дээр хуваалцаарайLinkedIn дээр хуваалцахPinterest дээрх пин

Миккел Кристенсен

Зохиогчийн тухай

Миккел Кристенсен
Миккел бол miklix.com сайтыг бүтээгч, эзэмшигч юм. Тэрээр мэргэжлийн компьютерийн программист/програм хангамж хөгжүүлэгчээр 20 гаруй жил ажилласан туршлагатай бөгөөд одоогоор Европын томоохон мэдээллийн технологийн корпорацид бүтэн цагаар ажиллаж байна. Блог хөтлөөгүй үедээ тэрээр чөлөөт цагаа олон төрлийн сонирхол, хобби, үйл ажиллагаанд зарцуулдаг бөгөөд энэ нь энэ вэб сайтад багтсан олон янзын сэдвүүдэд тодорхой хэмжээгээр тусгагдсан байж магадгүй юм.