Miklix

Разлика између дата() и буф2Буф() у Динамицс АКС 2012

Објављено: 15. фебруар 2025. 22:57:01 UTC
Последње ажурирано: 12. јануар 2026. 08:41:27 UTC

Овај чланак објашњава разлике између метода buf2Buf() и data() у програму Dynamics AX 2012, укључујући када је прикладно користити сваку од њих и пример 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“ јер би та вредност такође била копирана у нови бафер.

(Заправо, то би резултирало грешком дупликата кључа, али ни то није оно што желите).

Даље читање

Ако сте уживали у овом посту, можда ће вам се свидети и ови предлози:


Поделите на БлуескиПоделите на ФејсбукуДелите на ЛинкедИнуПодели на Тумблр-уПодели на КсДелите на ЛинкедИнуПин на Пинтерест-у

Миккел Цхристенсен

О аутору

Миккел Цхристенсен
Миккел је креатор и власник миклик.цом. Има преко 20 година искуства као професионални компјутерски програмер/програмер софтвера и тренутно је запослен са пуним радним временом у великој европској ИТ корпорацији. Када не пише блог, своје слободно време проводи на широком спектру интересовања, хобија и активности, што се у извесној мери може одразити на разноврсност тема обрађених на овој веб страници.