2016-05-26 10 views
0

Auf AX 2009 konnten wir eine Spalte zu einem SQL-Bericht hinzufügen, der die Summe von Picked und reservierten physischen Lagerbestand für jede Kundenauftragszeile zeigt. Dies wurde durch getan, um die Mengen für die dies nicht mehr möglich ist in AX 2012, wo Transrefid (jetzt Del_transrefid) nicht mehr geliefert und Statusissue 3 keine Transrefid/Inventtransid Einträge auf Inventtrans mit Statusissue von 3 oder 4. Hinzufügen länger erscheinen.AX 2012 On-Hand-Lager für Sales-Linie

Ich vermute, dass diese Werte in einer Datenbankdatei existieren müssen, aber welche?

Antwort

2

Sie die Tabelle verwenden InventTransOrigin die richtige Anbindung an den Kundenauftrag Linie zu tun:

select sum(Qty) from inventTrans 
    where inventTrans.StatusIssue == StatusIssue::Picked 
    exists join inventTransOrigin 
    where inventTransOrigin.RecId == inventTrans.InventTransOrigin && 
      inventTransOrigin.InventTransId == salesLine.InventTransId; 

In AX 2012 der InventTrans Rekord in zwei Teile geteilt wird, wobei die InventTransOrigin Tabelle pro Los die Konstante enthält Information. Das Feld inventTrans.InventTransOrigin enthält den Verweis RecId auf die neue Tabelle.

+0

Entschuldigung - mir war nicht ganz klar: Ich weiß über InventTransOrigin und –

+0

Dann was ist dein Problem? –

+0

Seit wir im Februar dieses Jahres mit AX 2012 angefangen haben, war das nur noch –

1

Anstelle des direkten Verbindens von InventTransOrigin mit Sales Line, verbinden Sie sich mit InventTransOriginSalesLine. Dann kann die obige Aussage wie folgt modifiziert werden.

select sum(Qty) from inventTrans 
    where inventTrans.StatusIssue == StatusIssue::Picked 
    exists join InventTransOriginSalesLine 
     where InventTransOriginSalesLine.SalesLineDataAreaId = salesLine.DataAreaId && 
       InventTransOriginSalesLine.SalesLineInventTransId = salesLine.InventTransId 
     inner join inventTransOrigin 
      where inventTransOrigin.RecId == InventTransOriginSalesLine.Recid;