Dynamics AX Blog - Seite 9
Namen der Shared Projects nach einem String durchsuchenUm sich alle (Shared-)Projekte ausgeben zu lassen, die einen bestimmten Text im Namen tragen, kann man den folgenden Code verwenden. static void searchProjectName(Args _args) { ProjectNode projectNode; #AOTExport projectNode = infolog.projectRootNode(); projectNode = projectNode.AOTfindChild(#expProjectShared); projectNode = projectNode.AOTfirstChild(); while(projectNode) { setPrefix(projectNode.name()); if(strScan(projectNode.name(), "BR_", 0, 60)) { info(projectNode.name()); } projectNode = projectNode.AOTnextSibling(); } } |
Simultanplanungszeitraum aktualisieren für einen ProduktionsauftragMit Hilfe des folgenden Jobs kann man den Simultanplanungszeitraum eines Produktionsauftrages aktualisieren. Dieser muss zumindest im Status "Vorkalkuliert" sein. static void reqCalcExplode(Args _args) { ReqCalcExplodeProd reqCalcExplodeProd; ProdTable prodTable = ProdTable::find('P000272'); ; // Copied from ReqCalcExplodeProd::newProdTablePrompt() reqCalcExplodeProd = ReqCalcExplode::construct(ReqRefType::Production); reqCalcExplodeProd.parmRefType(ReqRefType::Production); reqCalcExplodeProd.parmRefId(prodTable.ProdId); reqCalcExplodeProd.parmInventTransOriginId( InventTransOriginProdTable::findInventTransOriginId(prodTable.DataAreaId, prodTable.ProdId)); reqCalcExplodeProd.parmReqPlanId(ReqPlanSched::defaultDynamicId()); reqCalcExplodeProd.parmReqCalcUpdate(ReqCalcUpdate::NetChangeMinimized); reqCalcExplodeProd.parmMarking(true); reqCalcExplodeProd.parmReqPlanData(null); reqCalcExplodeProd.run(); }
|
DIXF/DMF Entitäten neu aufbauenIch hatte vor kurzem das Problem, daß in einer Umgebung alle DIXF-Entitäten gelöscht wurden. Mit dem nachstehenden Job konnte ich diese wiederherstellen. // Based on Classes\DMFDataPopulation\createDefaultMapping static void RecreateDMFEntities(Args _args) { boolean isFound; DMFEntity dmfEntity; TmpDMFEntityList entityDescription; Counter c; entityDescription = DMFDataPopulation::getEntityList(); ttsbegin; while select entityDescription { dmfEntity.EntityName = entityDescription.EntityLabel; dmfEntity.EntityTypeName = entityDescription.EntityName; dmfEntity.Mdm = NoYes::No; isFound = dmfEntity.defaultModule(dmfEntity.EntityTypeName); if (isFound) { if (dmfEntity.validateWrite() && ! DMFEntity::find(dmfEntity.EntityName)) { dmfEntity.insert(); c++; } } } ttscommit; info(strFmt("%1 entities created.", c)); } |
Microsoft MVP Award 2016
20.04.2016In eigener Sache
Auch dieses Mal freue ich mich riesig und bedanke mich für Eure Unterstützung. Wer mehr über diesen Award bzw. MVPs ganz allgemein wissen möchte, der findet hier die entsprechenden Informationen. |
Nur bestimmte Mitarbeiter in einem Mitarbeiter-Lookup anzeigenUnlängst hatte ich die Anforderung, in einer Tabelle ein neues Feld für einen Mitarbeiter zu integrieren. Flugs eine Tabellen-Realtion zur Tabelle HcmWorker erstellt, und das dadurch entstandene Feld in ins Formular integriert. Dadurch wird eine ReferenceGroup erstellt und Dynamics AX generiert aufgrund der Relation den folgenden Lookup. |
Favoriten in Entwicklungsumgebung auflistenMit Hilfe des hier gezeigten Jobs kann man die Favoriten eines Benutzers auslesen und sich ausgeben lassen. static void listFavoritesOfCurrentUser(Args _args) { TreeNode treeNode; TreeNodeIterator iterator; TreeNode newTreeNode; int level; #AOT void loopChilds(TreeNode _treeNode) { level++; while(_treeNode) { info(strRep(" ", level-1) + any2str(SysLabel::labelId2String2(_treeNode.AOTname(), Global::currentUserLanguage()))); loopChilds(_treeNode.AOTfirstChild()); level--; _treeNode = _treeNode.AOTnextSibling(); } } treeNode = infolog.userNode(); iterator = treeNode.AOTiterator(); treeNode = iterator.next(); if (treeNode) { treeNode = treeNode.AOTfirstChild(); if (treeNode) { setPrefix(treeNode.AOTname()); loopChilds(treeNode.AOTfirstChild()); } } } |
|
|
|
|
|
|
Wer einmal die Notwendigkeit hat, die verfügbaren Designs eines SSRS-Reports auslesen zu müssen, dem kann der nachstehende Job als Beispiel dienen.