COM-Verbindung zu Ax2009 herstellen!

8. Dezember 2008 10:11

Hallo, ich versuche per PHP eine COM-Verbindung zu Ax2009 herzustellen.
Bei Ax 4.0 klappte das prima, weil ich ja den COM-Objekt-Name kenne.
Für 4.0 war er "AxaptaComConnector.Axapta3.1" und in PHP konnte ich so eine Verbindung hestellen:
Code:
$objCOM = new COM('AxaptaComConnector.Axapta3.1');


Allerdings finde ich nirgendwo eine Information im WEB wie der COM-Objekt-Name für Ax 2009 lautet!

Kennt den jemand?

Danke!

Re: COM-Verbindung zu Ax2009 herstellen!

8. Dezember 2008 21:17

Hi,

flaggschiff hat geschrieben:ich versuche per PHP eine COM-Verbindung zu Ax2009 herzustellen.
Bei Ax 4.0 klappte das prima, weil ich ja den COM-Objekt-Name kenne.
Für 4.0 war er "AxaptaComConnector.Axapta3.1" und in PHP konnte ich so eine Verbindung hestellen:
Code:
$objCOM = new COM('AxaptaComConnector.Axapta3.1');


Allerdings finde ich nirgendwo eine Information im WEB wie der COM-Objekt-Name für Ax 2009 lautet!


sorry, wenn ich schon wieder mal "falscher Ansatz" schreibe. :-)

1. Es gibt in Dynamics AX 2009 keinen COM-Connector mehr. Dieser ist jetzt ein .NET-Connector (war eigentlich auch schon so bei Dynamics AX 4.0).
2. Für Application to Application Integrationen (Schnittstellen zwischen Systemen) wird eigentlich empfohlen, das AIF zu verwenden.
2. Wenn du eine Webanwendung (PHP) über diesen Weg mit Dynamics AX "verbinden" möchtest, wirst du früher oder später ein nicht so kleines Lizenzproblem bekommen (Bei Dynamics AX 2009 muss jeder Named-User der über diesen Weg auf Daten Zugreift eine eigene Lizenz (Pro User Lizenz) haben).

Wieso verwendest du keinen Webservice? Oder sogar die Kombination aus Webservice und AIF?

Re: COM-Verbindung zu Ax2009 herstellen!

10. Dezember 2008 11:59

Hi! Lizenzprobleme wird es keine geben. Denn wir haben einen Zwischendienst laufen, der die COM-Verbindung offen hält, und die Daten durchschleift und ist somit nur als ein User angemeldet! In Ax4 gibts aber noch den COM-Connector, da läufts ja. Sicher das 2009 keinen mehr hat?

AIF bringt keine Punkt denke ich. Es geht darum über PHP eine Klassen-Methode aufzurufen die bestimmte Ergebnisse als XML-String zurückgibt. Ziel ist es eine PHP-Framework zu bauen, welches Zugriff auf AX-Daten über Mobiltelefone erlaubt. Sharepoint in Verbindung mit Ax ist leider nicht zu gebrauchen, da Sharepoint Webforms nicht als Mobile-Varianten ausliefern kann!

Re: COM-Verbindung zu Ax2009 herstellen!

10. Dezember 2008 21:49

flaggschiff hat geschrieben:In Ax4 gibts aber noch den COM-Connector, da läufts ja.


Ja, das stimmt. Es gibt den Com-Connector für AX 4.0 noch. Allerdings auch nur wegen der Abwärtkompatibilität.
Offiziell wurde der COM-Connector in der Version 4.0 durch den .NET Business Connector abgelöst.

flaggschiff hat geschrieben:Sicher das 2009 keinen mehr hat?


Nun ja... über einen kleinen Umweg kann der Com-Connector auch noch für AX 2009 verwendet werden (meiner Meinung nach sollte man, bei allem für und wieder, diesen Weg mit AX 2009 aber nicht beschreiten). Der Com-Connector (oder genauer die entsprechende .DLL) wird bei der "normalen" Installation nicht mehr installiert. Dies hat auch seinen Grund, da der alte COM-Connector eigentlich nicht mehr verwendet werden sollte.

Auszug aus dem Microsoft Dynamics AX Developer Center:
"COM Business Connector will be removed in a future release...
COM Business Connector is no longer going to be supported in a future release"


Wie man den COm-Connector installieren kann, kannst du hier nachlesen:
http://msdn.microsoft.com/en-us/library/cc624322.aspx

Eine Dokumentation des COM-Conector habe ich aber noch nicht gesehen. Wieso auch? Soll ja nicht mehr verwendet werden...
Die genauen Objektnamen kann man aber z.B. über den OLE COM Object Viewer (Tool des Windows SDK's) ermitteln.

flaggschiff hat geschrieben:AIF bringt keine Punkt denke ich. Es geht darum über PHP eine Klassen-Methode aufzurufen die bestimmte Ergebnisse als XML-String zurückgibt.


Nun ja, das AIF ist extra dafür erstellt worden, den Datenaustausch über XML-String oder XML-Dateien zwischen einem System X und Dynamics AX zu ermöglichen.
Das gesamte AIF baut auf XML. Ok, man muss ein wenig "Umdenken", weil es ein dokumentenbasierter Datenaustauch ist, welcher aber seine Vorteile mit sich bringt (z.B. lose Kopplung der System).

Man könnte bei Verwendung des AIf z.B. einen AX-Seitigen Webservice bereit stellen, welcher durch die PHP-Anwendung angesprochen wird und entsprechende Daten zurück liefert.
Sollte eigentlich das gleiche sein, wie der Aufruf einer Com-Methode (AX Klassenmethode).
Hätte den Vorteil, dass man keine Abhängigkeiten (z.B. zu einer anderer "Technologie" wie COM) aus PHP hat (bin mir nicht sicher ob eine PHP-Anwendung, die auf einem Linux-System gehostet wird, so gut mit COM Components von Windows arbeitet).
Und da du ja eh schon den Quelltext überarbeiten mußt, frage ich mich, wieso einen Weg gehen, von dem man weis, dass dieser irgendwann nicht mehr funktioniert?

Re: COM-Verbindung zu Ax2009 herstellen!

15. Dezember 2008 15:52

Danke. Der COM-Connector reicht erstmal für die nächste Zeit. Kann mir jemand bitte sagen wie ich den COM-Object-Name heraus bekomme? In der Registry und bei MSDN konnte ich keinen ausfindig machen, der funktioniert! Danke!