[gelöst] welche Instanz benutze ich?

6. August 2009 10:12

Hallo!

Da wir ja sinniger weise nicht in der Produktivumgebung arbeiten, sonder in einer Test-Instanz entwickeln hätte ich gern eine Möglichkeit gewissen code nur auf dem Produktivsystem auszuführen. Beispielsweise die Übertragung von Daten. Aus dem Testsystem heraus soll das nicht ins Produktivsystem irgendwohin laufen.
Ich habe eine möglichkeit gefunden wie ich den Server abfragen kann auf dem es läuft, nur bringt mir das nicht viel. Denn im Notfall wird der Testserver zum Produktiv, nur die instanz heißt anders.
Die Instanzen heißen bei uns:
DX-Prod = Produktiv auf Server P-AOS
DX-Test = Entwicklung auf Server P-AOS01

Über xSession.AOSName(); kann ich mir den Server angeben lassen. Ich bräuchte aber den Namen der Instanz.
So wie es auch unter Hilfe - Info über Microsoft Dynamics AX steht

Weiß hier jemand wie das geht?
Zuletzt geändert von thias78 am 11. August 2009 16:52, insgesamt 1-mal geändert.

Re: welche Instanz benutze ich?

6. August 2009 21:39

Hi,

hab grad in einem anderen Thread geschrieben, dass meine Kenntnis zu AX gegen Null geht. Deshalb kann ich dir deine Frage auch nicht direkt beantworten. Toll, oder? :P

Hast du aber mal darüber nachgedacht, ein neues Boolean Feld zu erstellen, z.B. "DevelopmentEnviroment"? Das könntest du abfragen und dann entsprechend im Code reagieren.

Re: welche Instanz benutze ich?

7. August 2009 10:22

gedacht hab ich an vieles...
aber ich will die vergesslichkeit von armen entwicklern ausschließen können... wenn ich den code von einer in eine andere instanz kopiere, oder auch die testdatenbanken auf den produktivstand bringe würde ich gern ausschließen, dass jemand vergessen kann den eintrag zu ändern

und irgendwo muss das ja abgefragt werden können... immerhin steht es ja auch in der hilfe unter info über microsoft dynamics ax angezeigt, auf welcher instanz man ist (O:

danke trotzdem

Re: welche Instanz benutze ich?

8. August 2009 12:55

Nun,

Wenn die Produktivdatenbank anders heißt als die Testdatenbank (sollte ja so sein),
dann kannst du den Datenbanknamen Abfragen.

Und zwar so:

Code:
Connection  clsConnection;
str sDBName;
#ODBCConnectionEntries
    ;
sDBName = clsConnection.odbcGetInfoStr(#SQL_Database_Name);
if(sDBName  == "NameDerProduktivDB")
    return true;
return false;


Am besten wär du machst die ne Methode auf der Global etwa wie IsProductiveEnvironment()

lg
Christian

Re: welche Instanz benutze ich?

11. August 2009 16:52

DANKE!!

ich musste zwar die instanz von connection noch mit new initialisieren aber so gehts... danke!

Code:
Connection  clsConnection = new Connection();
str sDBName;
#ODBCConnectionEntries
    ;
sDBName = clsConnection.odbcGetInfoStr(#SQL_DATABASE_NAME);
if(sDBName  == "NameDerProduktivDB")
    return true;
return false;