Miklix

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

Објављено: 15. фебруар 2025. 22:57:01 UTC

Овај чланак објашњава разлике између метода буф2Буф() и дата() у Динамицс АКС 2012, укључујући када је прикладно користити сваки и пример Кс++ кода.


Ова страница је машински преведена са енглеског како би била доступна што већем броју људи. Нажалост, машинско превођење још увек није усавршена технологија, тако да може доћи до грешака. Ако желите, можете погледати оригиналну енглеску верзију овде:

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

Информације у овом посту су засноване на Динамицс АКС 2012 Р3. Може, али и не мора бити важеће за друге верзије.

Када треба да копирате вредност свих поља из једног бафера табеле у други у Динамицс АКС, традиционално бисте урадили нешто попут:

toTable.data(fromTable);

Ово добро функционише и у већини случајева је прави начин.

Међутим, такође имате могућност да уместо тога користите функцију буф2Буф:

buf2Buf(fromTable, toTable);

Ово такође добро функционише. Па у чему је разлика?

Разлика је у томе што буф2Буф не копира системска поља. Системска поља укључују поља као што су РецИд, ТаблеИд, и можда најважније у овом контексту, ДатаАреаИд. Разлог зашто је ово последње најважније је тај што је најтипичнији случај када бисте користили буф2Буф() уместо дата() када је дуплирање записа између налога предузећа, обично коришћењем кључне речи цхангеЦомпани.

На пример, ако сте у компанији "дат" и имате другу компанију која се зове "цом" из које желите да копирате све записе у ЦустТабле:

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

У овом случају, то ће функционисати јер буф2Буф копира све вредности поља, осим системских поља, у нови бафер. Да сте уместо тога користили дата(), нови запис би био уметнут у рачуне компаније „цом“, јер би и та вредност била копирана у нови бафер.

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

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

Миккел Банг Кристенсен

О аутору

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