Automation Applikationsweite Instanz

29. Mai 2013 11:03

Hallo zusammen,

ich habe eine .net dll erstellt und als automatisierungsobjekt eingebunden.

Die Instanz wird in einer neuen (Single Instance) Codeunit bei Anmeldung erzeugt und stellt eine Verbindung zu unserem Server her.

So kann ich jetzt Applikationsweit auf Events reagieren die der Server an die Navision Clients schickt. Das funktioniert alles schon mal Prima.

Jetzt stehe ich aber vor der Problem der entgegengesetzten Kommunikation, d.h. ich muss natürlich auch Funktionen des Objektes von unterschiedlichen Stellen in Navision aufrufen können OHNE jedesmal eine neue Instanz des AutomationObjektes zu erstellen? Brauche ich jetzt an jeder Stelle die Variable für mein Objekt und muss an dieser Stelle die Instanz ZUWEISEN anstatt sie neu zu erstellen?

Für einen kleinen Hinweis wäre ich sehr dankbar.

Re: Automation Applikationsweite Instanz

29. Mai 2013 11:39

Hallo!

Eine SingleInstance Codeunit unter 2.xx?
Ich vermute mal, Objektstand 2.xx und Runtime >= 3.xx.

Das Property SingleInstance ist das entscheidende:
Alle Variablen aus allen Objekten, die auf diese SI-Codeunit verweisen, greifen immer auf dieselbe Instanz (der jeweiligen Session) zu.

Übergibst du also aus Form 4711 über eine Funktion einen Wert an die Codeunit (welche den Parameter dann in einer globalen Variable speichert), dann kann dieser Wert vom Report 4711 (über eine entsprechende Rückgabefunktion in der SI-Codeunit) abgefragt werden, da die Variablen in der Form und dem Report auf dieselbe Instanz verweisen.

Beantwortet das deine Frage?

Re: Automation Applikationsweite Instanz

29. Mai 2013 11:52

Ja, danke.

Da hätte ich zugegebenermaßen auch selbst drauf kommen können (-;

Ich habe jetzt einfach für jede Funktion in meiner .dll eine Funktion in der Codeunit erstellt die ich von überall aufrufen kann und ein Boolean für Connected (-;

Hat das DotNet Objekt eigentlich große Vorteile gegenüber dem Automation Objekt?

Re: Automation Applikationsweite Instanz

31. Mai 2013 10:09

smnnekho hat geschrieben:Hat das DotNet Objekt eigentlich große Vorteile gegenüber dem Automation Objekt?
Ich denke mal, du spielst auf den DataType DotNet an. Dann habt ihr aber auch nicht 2.xx technisch :wink:
Der große Vorteil aus meiner Sicht ist, daß man nicht mehr auf COM-Objetkte beschränkt ist, sondern alles wählen kann, was im Framework angeboten wird.