Produktionsauftrag per Code starten

Screenshot

Dynamics AX stellt ein Framework zur Verfügung, mit dessen Hilfe man Produktionsaufträge in einen bestimmten Status überführen kann. Im Beispiel wird ein Produktionsauftrag gestartet.

Wenn man mehrere Aufträge gleichzeitig aktualisieren möchte, muss man die Methode ProdMultiStartUp.insert() einfach entsprechend oft aufrufen und den jeweiligen Datensatz der ProdTable übergeben.

static void prodStartUp(Args _args)
{
    ProdTable prodTable;
    ProdMultiStartUp prodMultiStartUp;

    prodTable = ProdTable::find("P000160");

    prodMultiStartUp = ProdMultiStartUp::construct(new Args());
    RunBaseMultiParm::initParm(prodMultiStartUp);
    prodMultiStartUp.insert(prodTable, prodMultiStartUp.defaultParmBuffer());

    prodMultiStartUp.run();
}
 

Wer beim Buchen nicht die Standardeinstellungen verwenden möchte, kann die Buchungsparameter natürlich auch noch übersteuern. Wie das geht zeigt der nachstehende Code:

static void prodStartUpModifyParams(Args _args)
{
    ProdTable prodTable;
    ProdMultiStartUp prodMultiStartUp;
    ProdParmStartUp prodParmStartUp;
    ProdParmStartUp prodParmStartUpUpd;

    ttsbegin;
    prodTable = ProdTable::find("P000160");

    prodMultiStartUp = ProdMultiStartUp::construct(new Args());
    RunBaseMultiParm::initParm(prodMultiStartUp);

    prodParmStartUp= prodMultiStartUp.defaultParmBuffer();

    prodMultiStartUp.insert(prodTable, prodParmStartUp);

    // Overwrite parameters using hardcoded settings
    prodParmStartUpUpd = ProdParmStartUp::find(prodParmStartUp.ParmId, prodParmStartUp.ProdId, true);
    prodParmStartUpUpd.RouteAutoConsump = RouteAutoConsump::Never;
    prodParmStartUpUpd.bomAutoConsump   = BOMAutoConsump::Never;
    prodParmStartUpUpd.update();

    prodMultiStartUp.run();
    ttscommit;
}
 
Dieser Beitrag bezieht sich auf die Version:
Dynamics AX 2012

Kommentar hinzufügen
 
 

 

 
 
 
Beiträge des aktuellen Monats
April 2021
MoDiMiDoFrSaSo
 1234
567891011
12131415161718
19202122232425
2627282930 
 
© 2006-2021 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