Bu yazıda X++ DataManupulation nasıl yapılır anlatmaya çalışacağım. Veri oluşturma güncelleme ve silme işlemleri ERP için en temel fonksiyonalardır. X++ ile nasıl yapılır bir örnek yapalım. Önceki yazılarımda kullandığım FDBookTable‘ı kullanacağım.
class FDDataManupulation
{
public static void main(Args _args)
{
FDBookTable bookTable;
FDBookTable bookTableUp;
;
bookTable.clear(); // TableBuffer’ı temizliyoruz.
bookTable.BookId = “B005”;
bookTable.BookName = “Book 1”;
bookTable.insert(); // Yeni kayıt oluşturma
bookTable.clear();
bookTable.BookId = “B006”;
bookTable.BookName = “Book 2”;
if(bookTable.validateWrite()) // Kodla insert yaptığınızda validasyon çalışmaz bu yüzden koda eklemek gerekiyor.
{
bookTable.insert();
}
// Güncelleme yapalım. Öncelikle güncellemek istediğimiz kaydı seçmeliyiz ve Transaction bloğu oluşturmalıyız. Bunun sebebi eğer güncelleme sırasında bir hata olursa geri alma yapabilmektir.
ttsbegin;
select forupdate bookTableUp
where bookTableUp.BookId == “B006”;
bookTableUp.BookName = “Book 3”;
bookTableUp.update(); // Tek bir satır günceller
ttscommit;
ttsbegin;
while select forupdate bookTableUp
where bookTableUp.BookId == “B006”
{
bookTableUp.updare(); // Yine tek bir satır günceller ama eğer sorgudan daha çok kayıt gelseydi mesela kapak tipine göre filtre verseydim gelen tüm kayıtları güncellerdi.
}
ttscommit;
// Kayıt silme
delete_from
where bookTableUp.BookId == “B006”; En temel kullanımı budur ama Delete metoduyla da silebilirsiniz.
while select forupdate bookTableUp
where bookTableUp.BookId == “B006”
{
bookTableUp.delete(); // Kaydı siler
}
}
}
Bu yazıda temel Insert
Update
Delete nasıl yapılır anlatmaya çalıştım. Performans açısından bunları doğru yapmak çok önemli. Birde bunları Bulk halinde yapabilmeniz mümkün onları da ayrıca anlatacağım.
Selamlar.
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar:
www.mshowto.org
www.fatihdemirci.net
TAGs: X++,Insert,Update,Delete, Azure, Azure DevOps, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365