Dynamics AX Blog - Axapta 2.5 - Microsoft Dynamics AX (Axapta) - Seite 3

Momentan angezeigt werden nur Beiträge der Kategorie »Microsoft Dynamics AX (Axapta)« Filter entfernen

In den letzten Jahren, in denen ich mich fast hauptsächlich mit der Entwicklung im Umfeld von Microsoft Dynamics AX (vormals Axapta) beschäftigt habe, ist das eine oder andere Code-Fragment entstanden, von dem ich mir vorstellen könnte, daß es auch für andere AX-Entwickler ganz nützlich sein könnte. Aber auch Tips und Tricks zu dem mächtigen ERP-System werde ich in dieser Kategorie präsentieren.

RSS-Feed dieser Kategorie
Momentan angezeigt werden nur Beiträge, welche für die Dynamics AX-Version »Axapta 2.5« relevant sind. Filter entfernen

RSS-Feed dieser Version

Fehlerhafte str2con-Funktion

Wer schon mal versucht hat in Dynamics AX 2.x einen String in einen Container umzuwandeln, der hat recht bald entdecken müssen, daß es - anders als in den meisten anderen Programmiersprachen - in X++ der Version 2.x keine entsprechende Funktion dafür gibt und man sich eine solche selbst schreiben muß.

Etwas besser sieht das ganze in Dynamics AX 3.x aus, dort gibt es zwar eine Funktion str2con, diese ist allerdings etwas buggy. Beginnt der umzuwandelnde String nämlich mit einer Zahl, so erfolgt die Umwandlung nicht wie vom Entwickler erwartet.

Korrigiert wurde dieser Fehler erst in AX 4.0, dort arbeitet die Methode str2con meines Erachtens korrekt.

Anbei der X++ Code aus AX 4.0, sollte problemlos auch in älteren Versionen arbeiten. In AX 2.x kann man die Methode einfache in die Klasse global integrieren, in der Version 3.0 sollte die bestehende überschrieben werden.

static container str2con(str _value, str 10 _sep = ',')
{
    int length = strlen(_value);
    int i = 1;
    int j = strscan(_value, _sep, 1, length);
    container ret;
    void add2Ret(str _current)
    {
        // v-artemt, 26 Jul 2004, PS#: 1741
        if (match('<:d+>', _current))
            ret += str2int(_current);
        else
            ret += _current;
    }
;
    while (j)
    {
        add2Ret(substr(_value, i, j-i));
        i = j+1;
        j = strscan(_value, _sep, i, length);
    }
    add2Ret(substr(_value, i, length-i+1));
    return ret;
}

 
 
Seiten « 1 2 3 

 

 
 
 
Beiträge des aktuellen Monats
März 2024
MoDiMiDoFrSaSo
 123
45678910
11121314151617
18192021222324
25262728293031
 
© 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