2012-01-27 54 views
5

Tôi có một phương pháp cho trường hiển thị thực hiện các thao tác sau;Tìm tổng số vật có sẵn và sẵn có cho một mục/kho

return InventSum::find(_salesLine.ItemId, InventDim::_salesLine.InventDimId).AvailPhysical(); 

Điều này mang lại cho tôi mặt hàng có sẵn Vật lý cho trang web/kho/vị trí.

Tôi cần xem tổng số chỉ có sẵn cho trang web/nhà kho. Tôi nghĩ rằng tôi cần phải tìm kiếm inventDim bởi Item/Warehouse để có được inventdimid của tôi, nhưng tôi không thể tìm thấy phương pháp vì vậy tôi nghi ngờ rằng điều này là không chính xác.

Có ai giúp được không?

Trả lời

4

giải pháp làm việc của tôi ...

InventDimParm  invDimParm; 
InventDim   warehouseInvDim; 
InventDim   salesLineInventDim; 
; 

salesLineInventDim = _salesLine.inventDim(); 

warehouseInvDim.InventSiteId = salesLineInventDim.InventSiteId; 
warehouseInvDim.InventLocationId = salesLineInventDim.InventLocationId; 

warehouseInvDim = InventDim::findOrCreate(warehouseInvDim); 
invDimParm.initFromInventDim(InventDim::find(warehouseInvDim.inventDimId)); 

return InventSum::findSum(_salesLine.ItemId,warehouseInvDim,invDimParm).availOrdered(); 

Tôi biết điều này là dành cho availOrdered() nhưng nó hoạt động giống hệt nhau cho availPhysical()

0

Bạn về cơ bản đặt giá trị inventDim theo cách bạn muốn tìm kiếm chúng, sau đó thực hiện InventDim :: FindOrCreate để xem thứ nguyên khoảng không quảng cáo đã tồn tại hay cần phải tạo và chuỗi số mới tiêu thụ. Điều này được sử dụng để bảng InventDim không lưu trữ mọi kết hợp kích thước có thể có. Cũng bởi vì nếu bạn có bất kỳ sản phẩm được tuần tự hóa nào, nó không khả thi cho bảng để lưu trữ tất cả các kết hợp, do đó, nó chỉ lưu trữ những sản phẩm cần thiết.

InventDim inventDim; 
SalesLine _salesLine; 
; 

inventDim.InventSiteId  = 'mySite'; 
inventDim.InventLocationId = 'myWarehouse'; 
inventDim = InventDim::findOrCreate(inventDim); 

return InventSum::find(_salesLine.ItemId, inventDim.inventDimId).AvailPhysical(); 
+0

Tôi nghi ngờ nó sẽ hoạt động nếu có các tham số khác liên quan (như số lô). Khoản tiền phát hành được lưu trữ trên các thứ nguyên cụ thể. –

+0

Tôi đã làm nó với một cái gì đó rất giống với điều này, tôi sẽ có một cái nhìn vào thứ hai (trở lại trong văn phòng) và cho bạn biết. Tôi có cảm giác nó giống như thế này với 1 dòng khác – AnthonyBlake

+0

Tôi đồng ý Jan. Tôi thậm chí không nghĩ về câu hỏi đó, tôi chỉ đang cố gắng thể hiện cách tìm/tạo ra một inventDim. Có lẽ nên cố gắng nghĩ ra cách chính xác để lấy số lượng. –

2

Bạn nên sử dụng lớp InventOnhand.

Nó tính tổng giá trị phát trực tiếp dựa trên các tiêu chí như id mục và thứ nguyên khoảng không quảng cáo.

Có nhiều công dụng trong AX, tìm nút Lớp.

2

Công việc sau tìm tất cả các dòng bán hàng với Open thứ tự trạng thái, có số lượng Vật lý có sẵn trên tay khớp với tất cả các thứ nguyên được chỉ định trên Dòng bán hàng ngoại trừ vị trí:

static void FindOpenSalesLineAvailPhys(Args _args) 
{ 
    SalesLine salesline; 
    InventDim inventDim; 
    InventDimParm inventDimParm; 
    InventOnHand inventOnHand; 
    ; 

    while select salesLine where salesLine.SalesStatus == SalesStatus::Backorder 
    { 
     inventDim = salesLine.inventDim(); 
     inventDimParm.initFromInventDim(inventDim); 
     inventDimParm.WMSLocationIdFlag = NoYes::No; 
     inventOnHand = InventOnHand::newItemDim(salesLine.ItemId, inventDim, inventDimParm); 
     if (inventOnHand.availPhysical()) 
     { 
      info(strfmt("Sales Order %1 Line %2 Item Id %3 Available Physical (ignoring Location) %4", 
       salesLine.salesId, salesLine.LineNum, salesLine.ItemId, inventOnHand.availPhysical())); 
     } 
    } 
} 
+0

điều này là tốt, nhưng không liên quan! – AnthonyBlake

+0

Bạn nói "Tôi cần xem tổng số chỉ có sẵn cho trang web/kho" Mã trên cung cấp cho bạn chính xác điều đó, điều này không liên quan như thế nào? –

Các vấn đề liên quan