Miklix

Perbedaan Antara data() dan buf2Buf() di Dynamics AX 2012

Diterbitkan: 15 Februari 2025 pukul 22.53.46 UTC

Artikel ini menjelaskan perbedaan antara metode buf2Buf() dan data() di Dynamics AX 2012, termasuk kapan waktu yang tepat untuk menggunakan masing-masing dan contoh kode X++.


Halaman ini diterjemahkan oleh mesin dari bahasa Inggris agar dapat diakses oleh sebanyak mungkin orang. Sayangnya, terjemahan mesin belum merupakan teknologi yang sempurna, sehingga kesalahan dapat terjadi. Jika Anda mau, Anda dapat melihat versi bahasa Inggris aslinya di sini:

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

Informasi dalam posting ini berdasarkan Dynamics AX 2012 R3. Informasi ini mungkin berlaku atau tidak berlaku untuk versi lain.

Saat Anda perlu menyalin nilai semua bidang dari satu buffer tabel ke buffer tabel lain di Dynamics AX, Anda biasanya akan melakukan sesuatu seperti:

toTable.data(fromTable);

Ini berfungsi dengan baik dan merupakan cara yang tepat dalam sebagian besar kasus.

Namun, Anda juga memiliki opsi untuk menggunakan fungsi buf2Buf sebagai gantinya:

buf2Buf(fromTable, toTable);

Ini juga berfungsi dengan baik. Jadi apa bedanya?

Perbedaannya adalah buf2Buf tidak menyalin kolom sistem. Kolom sistem mencakup kolom seperti RecId, TableId, dan mungkin yang paling penting dalam konteks ini, DataAreaId. Alasan mengapa yang terakhir adalah yang paling penting adalah karena kasus yang paling umum di mana Anda akan menggunakan buf2Buf() alih-alih data() adalah saat menduplikasi catatan antara akun perusahaan, biasanya dengan menggunakan kata kunci changeCompany.

Misalnya, jika Anda berada di perusahaan "dat" dan memiliki perusahaan lain bernama "com" yang ingin Anda salin semua catatannya di CustTable dari:

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

Dalam kasus ini, ini akan berhasil karena buf2Buf menyalin semua nilai kolom, kecuali kolom sistem ke buffer baru. Jika Anda menggunakan data() sebagai gantinya, rekaman baru akan dimasukkan ke akun perusahaan "com" karena nilai itu juga akan disalin ke buffer baru.

(Sebenarnya hal itu akan mengakibatkan kesalahan kunci duplikat, tetapi itu juga bukan yang Anda inginkan).

Bagikan di BlueskyBagikan di FacebookBagikan di LinkedInBagikan di TumblrBagikan di XBagikan di LinkedInPin di Pinterest

Mikkel Bang Christensen

Tentang Penulis

Mikkel Bang Christensen
Mikkel adalah pencipta dan pemilik miklix.com. Dia memiliki lebih dari 20 tahun pengalaman sebagai pemrogram komputer profesional/pengembang perangkat lunak dan saat ini bekerja penuh waktu di sebuah perusahaan IT besar di Eropa. Ketika tidak menulis blog, ia menghabiskan waktu luangnya untuk beragam minat, hobi, dan kegiatan, yang mungkin sampai batas tertentu tercermin dalam berbagai topik yang dibahas di situs web ini.