Bildiğiniz gibi ax da eldeki stoğu almak istediğimizde ya InventSum tablosuna select atarız yada InventOnHand sınıfını kullanırız. Çoğu zaman bu 2 yöntem işimizi görür. Fakat WMS modülünün kullanıldığı bazı durumlarda bizim koddan aldığımız değer ile ax’ın sorgulamalar > eldeki stok formu altında bize gösterdiği uyuşmayabilir.
Bu durumda doğru stoğu almak için ax’ın eldeki stok formunda kullandığı cache sınıfını direkt olarak kullanabiliriz. Bunun için aşağıdaki kod’u kullanabilirsiniz.
static void AvailPhysicalFromCache(Args _args)
{
Qty ret;
InventDim InventDim;
InventAvailabilityFormCache InventAvailabilityFormCache;
;
InventDim.clear();
InventDim.inventSiteId = "K001";
InventDim.InventLocationId = "KT01";
InventDim.configId = "B11";
InventDim.InventColorId = "01";
InventAvailabilityFormCache = InventAvailabilityFormCache::construct();
ret = InventAvailabilityFormCache.availabilityByItemId("ITEM-010", InventDim).availPhysical();
info(strFmt("%1", ret));
}
Hoşçakalın.