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
Juni 2021
MoDiMiDoFrSaSo
 123456
78910111213
14151617181920
21222324252627
282930 
 
© 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