[Gelöst] AX 2009 - COMConnector smmInit (ClientType)

15. September 2009 17:49

Also, Zuerst mal muss ich klarstellen das man den ComConnector im 2009ner ja nicht mehr benutzen soll :wink:
Aber ich benötige Ihn für ein amderwertiges Program welches nicht mit dem .NET BusinessConnector arbeiten kann.

Problem ist nun, das beim Aufruf des Com Connectors mittels VBScript z.B. ein kleines Problem existiert.
Hier der VB Code...
Code:
' VB Script to test the Axapta COM Connector.
Dim ComConnector
dim result
Set comConnector = CreateObject("AxaptaComConnector.Axapta3.1")
comConnector.Logon "","","",""

result = "Client Kind: " & comConnector.callStaticClassMethod("Global", "FWIClientKind")
msgbox (result)

result = "Com Connector " & comConnector.callStaticClassMethod("xInfo", "BuildNo") _
                        & " built on " & comConnector.callStaticClassMethod("xInfo", "compilationDate") _
                          & " at " & comConnector.callStaticClassMethod("xInfo", "compilationTime")
msgbox (result)

comConnector.logoff
set comConnector = nothing


Irgendwie schein AX beim Startup noch nicht den richtigen ClientType zu haben, da es versucht das
smmInit durchzuführen was natürlich ein einem Fehler endet!
Nach dem Startup scheint der Client Type OK zu sein (Ausgabe im VB Script "ComObject")

Code:
 
// Prevent call to smmInit during installation of Axapta and BC sessions
    if (!appl.isConfigMode() && clientKind() != ClientType::COMObject)
    {
        // Initialize the CRM init class
        smmInit::initFromServer();
    }


Leider ist es mir nicht gelungen den BC Code zu debuggen obwohl am Client Config das Debug für COM
aktiviert ist. Aber dadurch das der Debugger installiert ist sehe ich, das es den BC beim smmInit aufschmeißt.
Hier sollte er ja gar nicht reinlaufen.

Hat jemand hierzu vielleicht eine Idee?

lg
Christian
Zuletzt geändert von ChriD am 16. September 2009 14:54, insgesamt 2-mal geändert.

Re: AX 2009 - COMConnector smmInit (ClientType)

16. September 2009 14:54

Hmmm..

Nun, gut, sehen wir den Thread als erledigt.
Ich habe einfach noch eine prüfung (hasGUI) hinzugefügt.
Das Prüft zwar auch nur auf den Status aber anscheinedn ist der beim COMBC am Anfang "Server" und erst nach start "ComObject"
Sicherlich ein Bug, aber was solls. Funktioniert so auch!
Und "ClientType::Server" sollte ja meiner Meinung nach auch die smmPhone Form nicht öffnen (Std. AX Telefonanbindung)

Code:
// Prevent call to smmInit during installation of Axapta and BC sessions
    if (!appl.isConfigMode() && clientKind() != ClientType::COMObject && !hasGUI())
    {
        // Initialize the CRM init class
        smmInit::initFromServer();
    }


lg
Christian