Ermitteln der reservierten Menge einer Auftragsposition für bestimmte Dimensionen

Mit Hilfe des folgenden Jobs kann man die reservierte Menge einer Auftragsposition ermitteln. Dabei kann man über einen InventDim-Datensatz jene Dimensionen angeben, für die man die Information benötigt.

static void getPhysicalReservedQtyForSalesLine(Args _args)
{
    InventTransIdSumSingleStatus inventTransIdSumSingleStatus;
    SalesLine salesLine;
    InventMovement inventMovement;
    InventDim inventDim;
    InventDimParm inventDimParmCriteria;

    // Sales order line
    salesLine = SalesLine::findInventTransId('012431');
    inventMovement = InventTrans::findTransId(salesLine.InventTransId).inventMovement(true);

    // Prepare inventDim-Record: Set Dimensions, which should be used
    inventDim.clear();
    inventDim.InventSiteId      = "1";
    inventDim.InventLocationId  = "12";
    inventDim.wmsLocationId     = "12";
    inventDim = InventDim::findOrCreate(inventDim);   
   
    inventDimParmCriteria.initFromInventDim(inventDim);
   
    inventTransIdSumSingleStatus = InventTransIdSumSingleStatus::newTransOriginIdStatus(InventTransOriginSalesLine::findInventTransOriginId(salesLine.DataAreaId, salesLine.InventTransId),
                                                                                        StatusReceipt::None,
                                                                                        StatusIssue::ReservPhysical);
    inventTransIdSumSingleStatus.parmInventDimCriteria(inventDim);
    inventTransIdSumSingleStatus.parmInventDimParmCriteria(inventDimParmCriteria);

    info(strFmt("%1", inventTransIdSumSingleStatus.reservPhysical()));
}

Mit Hilfe der Klasse InventTransIdSumSingleStatus kann man sich auch alle anderen Werte, wie beispielsweise die "In Auftrag" befindliche Menge. Dazu muss der Code nur minimal angepasst werden:

    inventTransIdSumSingleStatus = InventTransIdSumSingleStatus::newTransOriginIdStatus(InventTransOriginSalesLine::findInventTransOriginId(salesLine.DataAreaId, salesLine.InventTransId),
                                                                                        StatusReceipt::None,
                                                                                        StatusIssue::OnOrder);
    inventTransIdSumSingleStatus.parmInventDimCriteria(inventDim);
    inventTransIdSumSingleStatus.parmInventDimParmCriteria(inventDimParmCriteria);

    info(strFmt("%1", inventTransIdSumSingleStatus.onOrder()));
Dieser Beitrag bezieht sich auf die Version:
Dynamics AX 2012

Kommentar hinzufügen
 
 

 

 
 
 
Beiträge des aktuellen Monats
April 2024
MoDiMiDoFrSaSo
1234567
891011121314
15161718192021
22232425262728
2930 
 
© 2006-2024 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.  Mehr dazu