Dynamics AX Blog - Dynamics AX 2012 - Seite 9

Momentan angezeigt werden nur Beiträge, welche für die Dynamics AX-Version »Dynamics AX 2012« relevant sind. Filter entfernen

RSS-Feed dieser Version

Designs eines SSRS-Berichtes auslesen

Wer einmal die Notwendigkeit hat, die verfügbaren Designs eines SSRS-Reports auslesen zu müssen, dem kann der nachstehende Job als Beispiel dienen.

static void listDesignsOfSSRSReport(Args _args)
{
    TreeNode treeNode;
    TreeNode treeNodeDesign;
    #aot
  
    treeNode = TreeNode::findNode(#SSRSReportsPath + #AOTRootPath);
    treeNode = treeNode.AOTfindChild("SalesPackingSlip");
    treeNodeDesign = treeNode.AOTfindChild("Designs");
  
    treeNodeDesign =
    treeNodeDesign.AOTfirstChild();
    while(treeNodeDesign)
    {
        info(treeNodeDesign.AOTname());   
      
        treeNodeDesign = treeNodeDesign.AOTnextSibling();
    }
}

 
 

Namen der Shared Projects nach einem String durchsuchen

Um 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 Produktionsauftrag

Mit 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();
}

 

Screenshot


 
 

DIXF/DMF Entitäten neu aufbauen

Ich 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));
}

 
 

Nur bestimmte Mitarbeiter in einem Mitarbeiter-Lookup anzeigen

Unlä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.

Screenshot


 
 

Favoriten in Entwicklungsumgebung auflisten

Mit 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());
        }
    }
}

 
 

Registry auslesen/ändern

Folgender Job zeigt, wie man die Registry auslesen/verändern kann.

static void readWriteRegistry(Args _args)
{
    int                         regKey;
    container                   cRegValue;
    str                         regKeyValue;
    #WinApi

    // Read
    regKey = WinAPI::regOpenKey(#HKEY_CURRENT_USER, @"Software\Microsoft\Dynamics\6.0\", #KEY_QUERY_VALUE);

    cRegValue = WinAPI::regGetValue(regKey, @"BuildVersion");
    if(conLen(cRegValue) > 0)
    {
        regKeyValue = conPeek(cRegValue, 1);
        info(strFmt("%1", regKeyValue));
    }

    WinAPI::regCloseKey(regKey);

    // Write
    regKey = WinAPI::regOpenKey(#HKEY_CURRENT_USER, @"Software\Microsoft\Dynamics\6.0\", #KEY_QUERY_VALUE);
    cRegValue = WinAPI::regGetValue(regKey, @"BuildVersion");
    if(conLen(cRegValue) > 0)
    {
        regKey = WinAPI::regOpenKey(#HKEY_CURRENT_USER, @"Software\Microsoft\Dynamics\6.0\", #KEY_WRITE);
        WinAPI::regSetValueEx(regKey, @"BuildVersion", 1, "Build: 6.3.164.0");
    }
    WinAPI::regCloseKey(regKey);
}

 
 
Seiten « 1 ... 6 7 8 9 10 11 12 ... 38 » 

 

 
 
 
Beiträge des aktuellen Monats
Mai 2024
MoDiMiDoFrSaSo
 12345
6789101112
13141516171819
20212223242526
2728293031 
 
© 2006-2024 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