[gelöst] OLE Objekt in NAV einbinden

24. April 2013 15:10

Hallo,

ich möchte ein Wäge-Terminal an NAV anbinden.
Dazu habe ich mir vom Hersteller bereits ein Kommunikationstool besorgt.
Laut Hersteller ein Kommunikationsobjekt (Active-X/OLE-Objekt) zur Anbindung des Wäge-Terminals an Windows-
Programme (MS Excel, SAP, etc.).

Das Tool besteht aus einer exe Datei. Beim ersten Start der exe soll das Objekt automatisch registriert werden
und ab sofort zur Verfügung stehen.

Das habe ich getan. Allerdings kann ich das Objekt im NAV nicht sehen.
Ich wollte eine Variable (Automation) dafür anlegen, kann das Objekt aber in der Auswahl nicht finden.

Darüber hinaus erscheint nach der "Installation" ein Symbol in der Taskleiste, über das man Einstellungen vornehmen kann (Anlegung verschiedener Geräte mit unterschiedlichen Baudraten, etc.).
(Laut Doku muss das Tool aber nicht gestartet sein, um es durch die Anwendung verwenden zu können. Mann kann es über die gewünschte Anwendung starten und dann verwenden. Als Beispiel haben sie dort VBA angefügt, wo es mit createObject("Name") initialisiert wird.)

Weiterhin gibt es vom Hersteller die Info, falls die Registrierung nicht geklappt hat, dies manuell über cmd
(xxx.exe /regserver) zu tun. Habe ich ebenfalls getan.

Ich kann es in der Registry unter HKEY_Classes_Root finden, aber im NAV ist es nicht zu sehen.

Ich habe auch schon mehrfach neugestartet.

Ich verwende einen Windows 7 Professional 64bit PC, habe es aber auch schon mit einem Windows XP SP 3, 32 bit PC versucht, ohne Unterschied.

Mache ich etwas falsch? (Habe es auch mit älteren NAV Versionen versucht.)

In der Beschreibung konnte ich noch folgenden Satz finden:

"Das Kommunikations-Objekt wird als Out-Of-Process-Server registriert und steht dann der Anwendung zur Verfügung."

[EDIT] Ich habe es mittlerweile mal in Excel probiert. Ich habe hier mit Visual Basic ein paar Code Zeilen geschrieben (createObject, sendCommand & schreibe Rückgabestring in die erste ExcelSpalte). Das funktioniert. Ist das Tool nicht gestartet, so wird es durch die Ausführung des VB-Codes gestartet. Im Moment schreibt er natürlich die Fehlernummer für Timeout in die Excel-Spalte, da ich keine Waage angeschlossen habe. Aber er kann mit dem Tool kommunizieren. Es muss also irgendwo rumschwirren. Ich kann es aber im NAV nicht sehen und zuweisen. :cry:
Zuletzt geändert von tjane am 13. Mai 2013 10:47, insgesamt 2-mal geändert.

Re: [anders gelöst] OLE Objekt in NAV einbinden

26. April 2013 08:51

Mein Problem ist mittlerweile anders gelöst worden.
Ich habe vom Hersteller ein OCX bekommen, welches ich in NAV sehen kann.

[Edit] Zu früh gefreut, beim Kompilieren bekommen ich jetzt folgende Fehlermeldung:
Diese Meldung ist für C/AL-Programmierer:
Das OLE Control oder der Automation Server xyz.xyz benötigt eine Designlizenz.
Diese Lizenz ist nicht verfügbar.
Stellen Sie sicher, dass das OLE Control oder der Automation Server korrekt
mit den erforderlichen Lizenzen installiert wurde.


Sagt das jemanden etwas?

Re: [anders gelöst] OLE Objekt in NAV einbinden

26. April 2013 09:36

tjane hat geschrieben:Mein Problem ist mittlerweile anders gelöst worden.
Ich habe vom Hersteller ein OCX bekommen, welches ich in NAV sehen kann.

[Edit] Zu früh gefreut, beim Kompilieren bekommen ich jetzt folgende Fehlermeldung:
Diese Meldung ist für C/AL-Programmierer:
Das OLE Control oder der Automation Server xyz.xyz benötigt eine Designlizenz.
Diese Lizenz ist nicht verfügbar.
Stellen Sie sicher, dass das OLE Control oder der Automation Server korrekt
mit den erforderlichen Lizenzen installiert wurde.


Sagt das jemanden etwas?

Mit der NAV Lizenz hat das nichts zu tun, das sind Design-Time Lizenzen, die bei den Entwicklungstools dabei sind. Das gleiche Problem hat man wenn man das Mailcodeunit 397 als Txt-Objekt einliest. Das ist dann auch nicht mehr kompilierbar ohne Office Development Tools oder Visual Studio auf dem System.
http://stackoverflow.com/questions/1205 ... ing-an-ocx

Re: [anders gelöst] OLE Objekt in NAV einbinden

26. April 2013 09:43

Genau den laut diesem Forumseintrag notwendigen Registry-Eintrag habe ich bereits.

Kann es vielleicht auch an dem OCX selber liegen? Das der Hersteller da noch was ändern muss?

Re: OLE Objekt in NAV einbinden

13. Mai 2013 09:16

Mittlerweile habe ich Kontakt mit einem Programmierer des Herstellers aufnehmen können. Er meint, dass das OCX ohne spezielle Anforderungen für eine Lizenz erstellt worden ist. Sprich, es gibt keinen Haken, dass eine Designlizenz erforderlich ist.

Ich habe mittlerweile sogar eine Testversion von Delphi installiert, mit dem das OCX programmiert wurde, um zu sehen, ob das den Fehler behebt (analog zur Installation von Visual Studio für Fehlermeldungen anderer User z.B. für das OCX in CU412).
Aber leider ohne Erfolg.

Visual Studio habe ich installiert und andere OCX (z.B. Microsoft Common Dialog Control) kann ich als Variable erstellen und die Codeunit dann auch kompilieren.

Re: OLE Objekt in NAV einbinden

13. Mai 2013 10:46

Nach etlichem Probieren, Deinstallieren, Registrieren, etc. kann ich jetzt nicht genau sagen, was passiert ist.
Aber ich sehe jetzt die Automation. Sie heißt zwar etwas anders als sie eigentlich heißen sollte (noch eine Versionszahl hinten dran), aber ich kann die Variable erstellen, kompilieren und auf alle Funktionen zugreifen.
(Das OCX geht weiterhin nicht.)

Ob es sich auch praxistauglich erweist, wird sich dann zeigen (wie gesagt, habe ich hier kein Terminal, dass ich anschließen und mit dem ich probieren kann.)

[Edit] Vielleicht noch ein Hinweis für Andere: Beim Kompilieren der Codeunit mit dem OCX in der Version 2013 kommt wie gesagt die Fehlermeldung für die Designlizenz. Wenn ich aber frühere Versionen von NAV nutze (2009 und abwärts) dann stürzt der Client ohne Fehlermeldung ab und im Ereignisprotokoll steht nur die nichtssagende Ereigniskennung 1000.