Dynamics AX Blog - Beiträge von 2008 - Seite 3

Momentan angezeigt werden nur Beiträge von »2008«.

Dynamics AX 2009: Bug im Datenbank synchronisieren-Formular

Während des Upgrades einer bestehenden Dynamics AX-Installation kommt man zwangsläufig mit der Maske Datenbank synchronisieren in Berührung. In dieser Maske werden einem pro Tabelle alle Fehler, Warnungen und Infos angezeigt, die während der Synchronisierung auftreten können. Und dazu gibt es meist einen recht aussagekräftigen Text.

Datenbank Synchronisieren-MaskeSo weit so gut. Das Problem ist allerdings, daß das Feld für diesen Text zu klein ist, man ist also versucht da hinein zu klicken um zu scrollen. Das sollte man aber lieber nicht tun, denn ab diesem Zeitpunkt bleibt der angeklickte Text das Maß aller Dinge. Den selbst wenn ich nun in der Maske eine andere Tabelle anwähle, so sehe ich immer Textfeld immer noch jenen Text, den ich mir zuvor genauer durchlesen wollte. Ein kleiner Bug in der Anzeige!

So bleibt einem also nichts anderes übrig, als sich die Ergebnisse der Synchronisierung auszudrucken. In meinerm Fall wären das über 350 Seiten gewesen...

Da hat leider die Qualitätsicherung versagt.


 
 

Dynamics AX 2009: Tip für die Installation

Da es mir leider passiert ist: Während der Installation von Dynamics AX 2009 muss man ein Konto für den AOS eingeben. Dieses Benutzer-Konto muß unbedingt der SecurityAdmin-Rolle des SQL-Servers angehören! Steht zwar eh genauso im Upgrade Guide, habs aber trotzdem beim ersten Mal überlesen...


 
 

Dynamics AX 2009: Fehler bei AxDBUpgrade.exe

Im Rahmen eines Upgrades einer Dynamics AX 3.0-Installation auf Dynamics AX 2009 trat folgender Fehler während des Ausführens des Microsoft Dynamics AX DB Upgrade Prepartion Tools (AxDBUpgrade.exe) auf:

The application failed to initialize properly (0xc0150002). Click on OK to terminate the application.

Die Lösung für dieses Problem war, das auf der Installations-CD von AX 2009 enthaltenen Microsoft Visual C++ Redistributeable Package (x86) zu installieren. Dieses wird übrigens spätestens beim eigentlichen Setup von AX 2009 mitinstalliert.
 

 


 
 

Dynamics AX: Illegal property value

Wenn man in Dynamics AX versucht die Eigenschaft AllowDuplicates eines Tabellen-Indexes von No auf Yes zu ändern, kann folgende Fehlermeldung auftreten:

Illegal property value

In diesem Fall ist vermutlich der betroffene Index als PrimaryIndex oder ClusteredIndex der Tabelle eingetragen. Eigentlich auch logisch :-)


 
 

Dynamics AX: Das RunBaseBatch-Framework

Man braucht es immer wieder, und genau darum findet Ihr im folgenden eine kurze - und bestimmt auch nicht ganz vollständige - Übersicht, wie dieses RunBaseBatch-Framework benutzt werden kann. Erste Anlaufstelle sollte übrigens in jedem Fall die Klasse Tutorial_RunBaseBatch sein, dort werden die wichtigsten Methoden verwendet und man kann sich so zumindest einen groben Überblick verschaffen, was wie möglich ist.

Um eine stapelverarbeitungsfähige Klasse zu schaffen, ist diese in erster Linie von RunBaseBatch abzuleiten. Dadurch stehen eine Reihe von Methoden zur Verfügung, von welchen ich einige versuche im Folgenden zu erklären.


 
 

Dynamics AX: Warten auf das Vorhandensein einer Datei

Manchmal ist es notwendig, in AX externe Programme (zb. per WinApi::shellExecute) aufzurufen und deren Rückmeldung abzuwarten. Mir ist z.B. in letzter Zeit immer wieder der Fall untergekommen, daß ich über ein externes Programm eine Datei erstellen musste, und diese anschließend in AX einlesen bzw. weitervearbeiten musste.

Für diesen Fall habe ich eine ganz simple Logik gebastelt, die eine bestimmte Anzahl Sekunden lang prüft, ob es die benötigte Datei schon gibt und erst dann mit den weiteren Schritten fortfährt.

static void WaitForFileExists(Args _args)
{
    int         startTime;
    int         endTime;
    int         seconds2Wait = 5;
    boolean     fileExists = false;
    fileName    searchFileName = "c:\\temp\\ax.txt";
    ;
 
    startTime   = timeNow();
    endTime     = startTime + seconds2Wait;

    while (!fileExists && timeNow() <= endTime)
    {
        fileExists = WinApi::fileExists(searchFileName);
    }

    // ...continue...
    if(fileExists)
    {
        info(strFmt("File '%1' exists", searchFileName));
    }
    else
    {
        warning(strFmt("File '%1' does not exist and time is up", searchFileName));
    }
}

 
 

Dynamics AX: Container Quicktipp

Container sind ja was feines, und aus diesem Grund verwende ich sie immer wieder gerne beim Programmieren unter Dynamics AX. Durch einen Blog-Beitrag bei SysDictCoder bin ich auf einen kleinen Trick gestossen, der mir in Zukunft etwas Tipp-Arbeit ersparen wird.

Und zwar habe ich bisher Container immer ähnlich wie im folgenden befüllt:

container fieldCon = conNull();
;
fieldCon = conIns(fieldCon, conLen(fieldCon)+1, "accountNum");
fieldCon = conIns(fieldCon, conLen(fieldCon)+1, "name");
fieldCon = conIns(fieldCon, conLen(fieldCon)+1, "zipcode");
fieldCon = conIns(fieldCon, conLen(fieldCon)+1, "countryregionid");
fieldCon = conIns(fieldCon, conLen(fieldCon)+1, "county");

Wesentlich rascher ist die folgende Schreibweise:

container fieldConFast = conNull();
;
fieldConFast += "accountNum";
fieldConFast += "name";
fieldConFast += "zipcode";
fieldConFast += "countryregionid";
fieldConFast += "county";

SysDictCoder geht in seinem Artikel etwas mehr ins Detail, deshalb meine Empfehlung dort mal vorbeizuschauen.


 
 
Seiten « 1 2 3 4 5 6 » 

 

 
 
 
Beiträge des aktuellen Monats
April 2008
MoDiMiDoFrSaSo
 123456
78910111213
14151617181920
21222324252627
282930 
 
© 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