Miklix

Różnica między data() i buf2Buf() w Dynamics AX 2012

Opublikowano: 15 lutego 2025 22:53:56 UTC
Ostatnia aktualizacja: 12 stycznia 2026 08:41:07 UTC

W tym artykule wyjaśniono różnice między metodami buf2Buf() i data() w systemie Dynamics AX 2012, w tym kiedy warto używać każdej z nich, a także zamieszczono przykład kodu X++.


Ta strona została przetłumaczona maszynowo z języka angielskiego, aby była dostępna dla jak największej liczby osób. Niestety, tłumaczenie maszynowe nie jest jeszcze dopracowaną technologią, więc mogą wystąpić błędy. Jeśli wolisz, możesz wyświetlić oryginalną angielską wersję tutaj:

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

Informacje zawarte w tym poście dotyczą systemu Dynamics AX 2012 R3. Mogą być lub nie być aktualne dla innych wersji.

Gdy zachodzi potrzeba skopiowania wartości wszystkich pól z jednego bufora tabeli do innego w systemie Dynamics AX, tradycyjnie wykonuje się następującą operację:

toTable.data(fromTable);

To rozwiązanie sprawdza się i w większości przypadków jest właściwym rozwiązaniem.

Możesz jednak również skorzystać z funkcji buf2Buf:

buf2Buf(fromTable, toTable);

To też działa dobrze. Jaka jest więc różnica?

Różnica polega na tym, że buf2Buf nie kopiuje pól systemowych. Pola systemowe obejmują pola takie jak RecId, TableId i, co być może najważniejsze w tym kontekście, DataAreaId. Powodem, dla którego to drugie jest najważniejsze, jest to, że najczęściej używa się buf2Buf() zamiast data() podczas duplikowania rekordów między kontami firmowymi, zazwyczaj za pomocą słowa kluczowego changeCompany.

Na przykład, jeśli jesteś w firmie „dat” i masz inną firmę o nazwie „com”, z której chcesz skopiować wszystkie rekordy w CustTable:

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

W tym przypadku zadziała, ponieważ funkcja buf2Buf kopiuje wszystkie wartości pól, z wyjątkiem pól systemowych, do nowego bufora. Gdyby zamiast tego użyto funkcji data(), nowy rekord zostałby wstawiony do kont firmowych „com”, ponieważ ta wartość również zostałaby skopiowana do nowego bufora.

(W rzeczywistości doprowadziłoby to do błędu duplikatu klucza, ale o to też nie chodzi).

Dalsza lektura

Jeśli podobał Ci się ten wpis, mogą Cię zainteresować również poniższe sugestie:


Udostępnij na BlueskyUdostępnij na FacebookuUdostępnij na LinkedInUdostępnij na TumblrUdostępnij na XUdostępnij na LinkedInPrzypnij na Pintereście

Mikkel Christensen

O autorze

Mikkel Christensen
Mikkel jest twórcą i właścicielem miklix.com. Ma ponad 20-letnie doświadczenie jako profesjonalny programista komputerowy / programista oprogramowania i jest obecnie zatrudniony na pełny etat w dużej europejskiej korporacji IT. Kiedy nie bloguje, poświęca swój wolny czas na szeroki wachlarz zainteresowań, hobby i aktywności, co może w pewnym stopniu znaleźć odzwierciedlenie w różnorodności tematów poruszanych na tej stronie.