Merlin

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
23 Beiträge • Seite 1 von 2 (current) Nächste
23 Beiträge Seite 1 von 2 (current) Nächste

Merlin

Beitrag von ewx (Top Expert / 4916 / 332 / 653 ) »
Hallo Forum,

ich habe hier mal was für Tüftler...
Unter JavaScript und dem Internetexplorer könnt ihr euch hier "Merlin" ansehen:
>>> Merlin <<<

Ich dachte mir, dass es doch nicht so schwer sein dürfte, Merlin auch per OLE über SAP ans laufen zu kriegen... aber denkste :cry:
Ich habe zum Beispiel das hier probiert:

Code: Alles auswählen.

INCLUDE ole2incl.
DATA handle TYPE ole2_object.

CREATE OBJECT handle 'MERLIN.APPLICATION'.
SET PROPERTY OF handle 'Show' = 1.
CALL METHOD OF handle 'Show'.
CALL METHOD OF handle 'MoveTo' 
     EXPORTING #1 = 100 #2 = 200.
CALL METHOD OF handle 'Play' 
     EXPORTING #1 = 'Greet'.
Geht aber nicht...
oder so:

Code: Alles auswählen.

 INCLUDE ole2incl. 
 DATA handle TYPE obj_record.
 DATA msgno  TYPE sysubrc.
 DATA msgtx  TYPE symsgli.
 CALL FUNCTION 'CREATE_OBJECT'           
      EXPORTING           
           application   = 'MERLIN.APPLICATION'
           language      = 'D'
      IMPORTING           
           message_nr    = msgno
           message_text  = msgtx
           object_handle = handle
      EXCEPTIONS           
           add_object_duplicate_entry = 1
           OTHERS                     = 2.
 IF sy-subrc <> 0.
   WRITE: / 'Fehler', sy-subrc.
 ELSE.
   CALL METHOD OF handle 'Show'.

   CALL METHOD OF handle 'MoveTo' 
        EXPORTING #1 = 100 #2 = 200.
   CALL METHOD OF handle 'Play' 
        EXPORTING #1 = 'Greet'.
 ENDIF.
Zuvor habe ich natürlich in der Tabelle TOLE Merlin als Applikation eingetragen, mit der CLSID, die auch im Javascript-Coding verwendet wird.

Vielleicht bekommt's ja jemand hin??
Ich bin mal gespannt.

Gruß,
Enno

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von ewx (Top Expert / 4916 / 332 / 653 ) »
Hat keiner eine Idee?
fragt Enno

Beitrag von der.coder (ForumUser / 10 / 0 / 0 ) »
wie hast du denn den source für merlin angegeben?
hast du ne OCX hinterlegt? oder wie oder was?

Beitrag von danielA. (ForumUser / 97 / 0 / 0 ) »
neeeee,
mit OCX kann er es nicht ;-)) näää enno!?

Beitrag von der.coder (ForumUser / 10 / 0 / 0 ) »
danielA. hat geschrieben:neeeee,
mit OCX kann er es nicht ;-)) näää enno!?
jo hab ich auch grad gelesen :lol:

Beitrag von ewx (Top Expert / 4916 / 332 / 653 ) »
der.coder hat geschrieben:wie hast du denn den source für merlin angegeben?
hast du ne OCX hinterlegt? oder wie oder was?
Kannst du dir ja mit "RechterMaustaste - Quelltext anzeigen" anzeigen lassen... ;-]

Und wirklich mit OCX da mach ich nix!!! Weiss der Teufel, wie das funktioniert.

Gruß, Enno

Beitrag von der.coder (ForumUser / 10 / 0 / 0 ) »
also ich bekomm sy-subrc 2...

· SY-SUBRC = 2:

Fehler beim SAPGUI-Funktionsaufruf. Die Frontend-Ports der OLE-Implementierungsbausteine von SAP sind nur unter Windows und Apple Macintosh implementiert.

also entweder gehts gar nicht oder er findet ihn nicht, oder oder oder...

edit:
sicher dass du überhaupt die richtige CLSID hast?
also der merlin der bei mir in der SOLE als default drin steht ist in der registry gar nicht vorhanden, aber will hier jetzt auch nicht rumpfuschen, aber probier das mal... kannst ja in der reg nach der richtigen class ID suchen...

Beitrag von ewx (Top Expert / 4916 / 332 / 653 ) »
der.coder hat geschrieben:sicher dass du überhaupt die richtige CLSID hast?
also der merlin der bei mir in der SOLE als default drin steht ist in der registry gar nicht vorhanden, aber will hier jetzt auch nicht rumpfuschen, aber probier das mal... kannst ja in der reg nach der richtigen class ID suchen...
Hi Coder!
Im Javascript funktioniert's ja...
Bei mir gibt's die CLSID auch (Microsoft Agent)
Funktioniert denn bei dir der Merlin unter JavaScript?
Gruß, Enno

Beitrag von ewx (Top Expert / 4916 / 332 / 653 ) »
PS: In der TOLE gibt's auch eine "Applikation" OCX.EDIT.... :D
Enno

Beitrag von der.coder (ForumUser / 10 / 0 / 0 ) »
ewx hat geschrieben:Funktioniert denn bei dir der Merlin unter JavaScript?
Gruß, Enno
jo, geht...

aber mein standard-ole-objekt für den merlin ist bei mir falsch, die klassen ID gibts nicht... hast du das bei dir auch schonmal gechecked?

Beitrag von Flo (Specialist / 161 / 0 / 0 ) »
Die CLSID aus den HTML Seiten ist die ID der Klasse die alle Agents bereitstellt. Man muss nun noch das spezielle Merlin Objekt erzeugen und übergeben. Oder seh ichs falsch?

Beitrag von ewx (Top Expert / 4916 / 332 / 653 ) »
Flo hat geschrieben:Die CLSID aus den HTML Seiten ist die ID der Klasse die alle Agents bereitstellt. Man muss nun noch das spezielle Merlin Objekt erzeugen und übergeben. Oder seh ichs falsch?
ähh. Keine Ahnung... Das ist ja mein Problem: Ich verstehe nicht ganz, was da genau in dem Skript passiert...
Gruß, Enno

Beitrag von JHM (Top Expert / 1225 / 2 / 204 ) »
ewx hat geschrieben:ähh. Keine Ahnung... Das ist ja mein Problem: Ich verstehe nicht ganz, was da genau in dem Skript passiert...
Durch spielen und suchen habe ich das soweit raus:
Merlin teilt sich in mehrere Komponenten auf. Es gibt den Server der die Plattform stellt. Dann gibt's den Agent an sich. Also Merlin. Zuerst muss der Server erzeugt werden. Zum laden von Merlin muss ein Handle auf den Server übergeben werden. Es ist auch Möglich mehrere Agenten parallel über den Server zu steuern.
Dann gibts noch unterschiedliche Objekte, mit den Merlin vorlesen kann oder aber Fragen entgegen nimmt.

Wenn man JavaScript verwendet werden alle Komponenten aus dem Netz geladen und nicht die vom PC genommen.

Die Installierten Agenten kann man sich unter %windir%\msagent\chars anschauen.

Man kann den Agent wohl über verschiedene Wege ansprechen. Einen Überblick erhlät man hier

Wenn man sich das auf dem Rechner genauer anschauen will gibts hiereinen OLE Viewer. Im OLE Viewer den Baum wie folgt aufbrechen ObjectClasses ->Grouped by Component Category -> Automation Objects -> Mircosoft Agent Control 2.0 bzw. Mircosoft Agent Server 2.0. Da gibt's dann die benötigten Infos incl. ClassID, Methoden und Methodenparameter
Gruß Hendrik

Beitrag von ewx (Top Expert / 4916 / 332 / 653 ) »
:P :P :P :P 8)
Hi Hendrik!
Das hört sich super an!

Aber wie kann ich das über ABAP ansprechen? die richtige CLSID habe ich.
Aber über Methoden habe ich in dem OLE-Viewer nichts gesehen. Jedenfalls nicht die Methoden, die mir sinnvoll erscheinen.

Allerdings habe ich in dem OLE-Viewer gesehen, dass unter einem extra-Punkt "OLE 1.0 Objects" nur bestimmte Programme aufgeführt waren. Kann man evtl. nur diese mittels OLE ansprechen?

Was muss ich in ABAP machen, um die Objekte zu erzeugen?

Leider erzeugen die BAusteine aus SAP ja auch keine Fehlermeldungen. Entweder es geht oder es geht nicht.

Kannst du mir da noch weiterhelfen?

Gruß, Enno

Beitrag von Flo (Specialist / 161 / 0 / 0 ) »
Hab hier mal bischen Theorie,

wie haben schonmal Objekte über OLE eingebunden das ging dadurch das wir eigene SAP Proxy Objekte für die Klassen geschrieben haben die von cl_gui_object bzw cl_gui_control erben. Im Konstruktor steht die CLS ID. Man kann über 'Anpassung des lokalen Layouts->Optionen' einen GUI Trace anschalten mit dem man den Automation und Control Manager Mittracen kann. Da sieht man dann wie die Objekte erstellt werden. Welche Handles sie erhalten usw. Allerdings schaff ich es noch nicht die Methoden richtig aufzurufen, da er immer meint das die Methodennamen unbekannt sind. Man kann die Methode mit der Methode 'call_method' der gui_object Klasse aufrufen.
Hab aber gerade keine Zeit mehr weiterzuspielen:)


Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.