Dynamics AX Blog - Beiträge vom June 2016

Momentan angezeigt werden nur Beiträge vom »June 2016«. Filter entfernen

Fehlende Labels in einer bestimmten Sprache finden

Vor kurzem musste ich bei einem Modul eruieren, ob Labels in einer bestimmten Sprache (im Beispiel de_at) vorhanden sind, oder nicht. Gut dafür geeignet scheint mir folgendes SQL-Statement.

SELECT *
FROM [AX2012R3_TEST_model].[dbo].[ModelElementLabel] as existing
where existing.Module = 'myModule'
and existing.Language = 'en_us'
and not exists
( select *
from [AX2012R3_TEST_model].[dbo].[ModelElementLabel] as missing
where missing.labelid = existing.LabelId
and missing.Module = existing.Module
and missing.Language = 'de_at')

 
 
 

Bearbeitungsmodus erkennen/auf Wechsel reagieren

Um in einem Formular auf das Ändern des Bearbeitungsmodus zu reagieren, kann man die task()-Methode des Formulares wie folgt überschreiben:

public int task(int _taskId)
{
    int ret;
    #Task
    ret = super(_taskId);
    
    switch(_taskId)
    {
        case #taskEditRecord:    
            …doSomething… 
            break;
    }
    return ret;
}

 

Wer den aktuellen Bearbeitungsmodus auslesen möchte, kann dies über die folgende Methode tun:

element.inViewMode()

 
 
 

Sonderzeichen im XML-Header einer Methode verwenden

Manchmal muss man im XML-Header einer Methode Sonderzeichen verwenden, um den Code gut dokumentieren zu können. Damit dieser Header trotzdem wohlgeformt ist und nicht als Best-Practice-Abweichung gekennzeichnet wird, kann man einen CDATA-Abschnitt einsetzen.

/// <version>
///  1.0
/// </version>
/// <summary>
/// <![CDATA[ Replaces following special characters: &, % ]]>
/// </summary>
private void someMethod()
{
    //...do something...
}

Ohne diesen CDATA-Abschnitt würde AX folgende BP-Abweichung ausgeben:

 

Die XML-Dokumentation ist nicht wohlgeformt.

 


 
 
 

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

 
 
 

 

 
 
 
Beiträge des aktuellen Monats
June 2016
MoDiMiDoFrSaSo
 12345
6789101112
13141516171819
20212223242526
27282930 
 
© 2006-2025 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