Das nachstehende Code-Beispiel zeigt, wie man per Code eine Kommissionieriste erfassen kann und dabei nur Teilmengen verarbeitet.
Dabei verfolge ich den Ansatz, für die benötigte Menge eine eigene Zeile in der Tabelle WMSOrderTrans zu erstellen (über die Teilen-Funktion) und die aktuell nicht benötigte Menge zu stornieren.
static void pickingListRegistrationPartly(Args _args)
{
WMSPickingRouteID pickingRouteID = "00066"; // Route id to be picked
Map inventTransMap = new Map(Types::String, Types::Real);
MapEnumerator me;
InventTransId inventTransId;
Qty pickQty;
List list = new List(Types::String);
WmsOrderTrans wmsOrderTrans;
WmsOrderTrans wmsOrderTransNew;
list.addEnd(pickingRouteID);
// Build map containing the lot-ids and quantity to pick
inventTransMap.insert("014023", 7);
inventTransMap.insert("014026", 3);
// Change quantity
me = inventTransMap.getEnumerator();
while (me.moveNext())
{
inventTransId = me.currentKey();
pickQty = me.currentValue();
ttsBegin;
select forupdate wmsOrderTrans
where wmsOrderTrans.RouteId == pickingRouteID &&
wmsOrderTrans.inventTransId == inventTransId &&
wmsOrderTrans.FullPallet == NoYes::No &&
(wmsOrderTrans.ExpeditionStatus == WMSExpeditionStatus::Registered ||
wmsOrderTrans.ExpeditionStatus == WMSExpeditionStatus::Activated ||
wmsOrderTrans.ExpeditionStatus == WMSExpeditionStatus::Started);
// Split line
wmsOrderTransNew = wmsOrderTrans.split(pickQty);
ttsCommit;
ttsBegin;
// Cancel remaining line
wmsOrderTrans.cancel();
ttsCommit;
}
// Update
WMSPickingRoute::finishMulti(list.pack());
wmsDeliverPickedItems::checkDeliverPickedItems(pickingRouteID, list.pack());
}
Dieser Beitrag bezieht sich auf die Version: Dynamics AX 2012
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
Das nachstehende Code-Beispiel zeigt, wie man per Code eine Kommissionieriste erfassen kann und dabei nur Teilmengen verarbeitet.
Dabei verfolge ich den Ansatz, für die benötigte Menge eine eigene Zeile in der Tabelle WMSOrderTrans zu erstellen (über die Teilen-Funktion) und die aktuell nicht benötigte Menge zu stornieren.