Bu yazıda X++ sorgu anahtar kelimelerinden crossCompany inceleyeceğim. Öncelikle uygulamanın şirket yönetimini anlamak gerekiyor.
Uygulamadan istediğiniz kadar şirket tanımlayabiliyorsunuz. Kullanıcılar uygulamaya girdiğinde bir şirkette işlem yapıyorlar. İstedikleri zaman şirket değiştirebiliyorlar. Tablolarda DataAreaId sayesinde verilerin hangi şirkete ait olduğu tutuluyor. Eğer bir tablonun verisi şirket bağımsız olsun diyorsanız ayarlayabiliyorsunuz. Ancak bu tip tabloların dışında yaptığınız bütün işlemler bulunduğunuz şirkette gerçekleşiyor. Bir sorgu yazıp verileri görmek istediğinizde siz Range olarak şirket vermezseniz bile sistem SQL’e giden koda otomatik bulunduğunuz şirketi ekliyor. Bazı durumlarda iki faklı şirketin verisini tek bir sorguda görmek isteyebilirsiniz. Bunun için crossCompany kullanılıyor. Bir örnek yapalım.
static void FDDataAccessCrossCompany1(Args _args)
{
CustTable custTable;
container companies;
;
companies = ["USMF", "USF", “DMR”]; // Kaç şirkette sorgu yapmak istiyorsam buraya ekleyebilirim.
while select crossCompany : companies custTable // crossCompany ile oluşturduğum Container’ı veriyorum
where custTable.AccountNum like “M00032*”
{
info(strFmt(“%1 : %2 : %3″, custTable.AccountNum, custTable.Name(), custTable.dataAreaId));
}
}
Bu sorgunun SQL kodunda or ile şirket kodlarının eklendiğini görürsünüz bu sayede eklenen şirketlerdeki veriler alınabilir. Sistem şirketler arası birçok işlem yapmak gerekiyor bu yüzden bu yapıları iyi bilemek işiniz kolaylaştırır. crossCompany Query’de de kullanılır. Dolayısıyla birden çok şirket verisi gösteren View ve Form yapabilirsiniz.
Selamlar.
www.fatihdemirci.net
TAGs: X++, crossCompany, Azure, Azure DevOps, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365