Dynamics AX Blog - Dynamics AX 2012 - Beiträge vom April 2015
Momentan angezeigt werden nur Beiträge, welche für die Dynamics AX-Version »Dynamics AX 2012« relevant sind. 
RSS-Feed dieser Version

RSS-Feed dieser Version
Stückliste per Code erstellenMit dem folgenden Code kann man eine Stückliste inkl. Stücklistenversion per Code erstellen. static void createBomTableVersion(Args _args) { AxBOMTable axBOMTable; AxBOMVersion axBOMVersion; AxBOM axBOM; InventTable inventTable = InventTable::find("100160"); InventDim inventDim; try { ttsbegin; // BOM Table axBOMTable = AxBOMTable::construct(); axBOMTable.validateInput(true); axBOMTable.continueOnError(false); axBomTable.parmBOMId(BOMTable::numberSeq().num()); axBOMTable.parmItemGroupId(inventTable.itemGroupId()); axBOMTable.parmApprover(HcmWorker::userId2Worker(curUserId())); axBOMTable.parmApproved(NoYes::Yes); axBOMTable.parmName("Name of BOM"); axBOMTable.parmSiteId("GF"); axBOMTable.save(); // BOM Version inventDim.clear(); inventDim.InventSiteId = axBOMTable.parmSiteId(); inventDim = InventDim::findOrCreate(inventDim); axBOMVersion = AxBOMVersion::construct(); axBOMVersion.validateInput(true); axBOMVersion.continueOnError(false); axBOMVersion.parmBOMId(axBOMTable.parmBOMId()); axBOMVersion.parmItemId(inventTable.ItemId); axBOMVersion.parmApprover(HcmWorker::userId2Worker(curUserId())); axBOMVersion.parmApproved(NoYes::Yes); axBOMVersion.parmActive(NoYes::Yes); axBOMVersion.parmInventDimId(inventDim.InventDimId); axBOMVersion.save(); // BOM inventDim.clear(); inventDim.InventSiteId = axBOMTable.parmSiteId(); inventDim.ConfigId = "RoundNeck"; inventDim.InventSizeId = "XS"; inventDim.InventStyleId = "SlimFit"; inventDim.InventColorId = "Blue"; inventDim.InventLocationId = "902"; inventDim = InventDim::findOrCreate(inventDim); axBOM = AxBOM::construct(); axBOM.validateInput(true); axBOM.continueOnError(false); axBOM.parmBOMId(axBOMTable.parmBOMId()); axBOM.parmItemId("100158"); axBOM.parmInventDimId(inventDim.InventDimId); axBOM.parmBOMQty(17); axBOM.save(); ttscommit; } catch { throw error("BOM creation failed"); } } |
|
|
|
|
|
|
Um den AOT nach bestimmten Objekten zu durchsuchen, kann man in AX die TreeNode-Klasse verwende. Einige Beispiele dazu habe ich hier ja auch schon in der Vergangenheit gepostet.
In Dynamics AX 2012 ist eine neue Möglichkeit hinzugekommen, und zwar gibt es in der Datenbank nun einige Tabelle die mit SysModel* beginnen. Diese Tabellen kann man ebenfalls dazu verwenden, den AOT nach Objekten/Eigenschaften zu durchsuchen.
Ein Beispiel für eine solche Abfrage ist der folgende Job, der einfach alle Objekte (unsortiert) ausgibt, die im aktuellen Layer angepasst wurden. Beim Aufruf des jobs kann zuvor der Query geändert werden, um die Abfrage weiter einzuschränken.