Ich kenne keine Möglichkeit, wie man eine Kommissionierliste nur für bestimmte Auftragspositionen per Code erstellt.
Deshalb nutze ich in dem folgenden Code-Beispiel folgenden Ansatz:
Ich erstelle die Kommissionierliste mit Hilfe des SalesFormLetter-Frameworks und lösche vor dem entscheidenden Schritt (dem Ausführen der run()-Methode) jene Einträge in der Tabelle SalesParmLine, die ich nicht benötigte.
static void createSalesPickingListSingleLine(Args _args)
{
SalesTable salesTable = salesTable::find("001862"); // Sales order
container inventTransIdCon = ["014015", "014016"]; // LOT-IDs to pick
SalesFormLetter salesFormLetter;
SalesParmLine salesParmLine;
salesFormLetter = SalesFormLetter::construct(DocumentStatus::PickingList);
// Do the steps manually, which normally are done in method
// salesFormLetter.update()
salesFormLetter.salesTable(salesTable);
salesFormLetter.initParmSalesTable(salesFormLetter.salesTable());
salesFormLetter.transDate(systemDateGet());
salesFormLetter.specQty(SalesUpdate::All);
salesFormLetter.proforma(salesFormLetter.salesParmUpdate().Proforma);
salesFormLetter.printFormLetter(salesFormLetter.printFormLetter());
salesFormLetter.printCODLabel(NoYes::No);
salesFormLetter.printShippingLabel(NoYes::No);
salesFormLetter.usePrintManagement(false);
salesFormLetter.creditRemaining(salesFormLetter.creditRemaining());
salesFormLetter.createParmUpdateFromParmUpdateRecord(
SalesFormletterParmData::initSalesParmUpdateFormletter(
salesFormLetter.documentStatus(),
salesFormLetter.pack(),
true,
false,
false));
salesFormLetter.initParameters(
salesFormLetter.salesParmUpdate(),
Printout::Current);
salesFormLetter.initLinesQuery();
// Delete unwanted records in SalesParmLine
while select forupdate salesParmLine
where salesParmLine.ParmId == salesFormLetter.parmId()
{
if (conFind(inventTransIdCon, salesParmLine.InventTransId) == 0)
{
salesParmLine.delete();
}
}
// Let's go
salesFormLetter.run();
}
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
Ich kenne keine Möglichkeit, wie man eine Kommissionierliste nur für bestimmte Auftragspositionen per Code erstellt.
Deshalb nutze ich in dem folgenden Code-Beispiel folgenden Ansatz:
Ich erstelle die Kommissionierliste mit Hilfe des SalesFormLetter-Frameworks und lösche vor dem entscheidenden Schritt (dem Ausführen der run()-Methode) jene Einträge in der Tabelle SalesParmLine, die ich nicht benötigte.