Welche Methoden/Properties hat ein in SAP eingebundenes ActiveX-Objekt?

Getting started ... Alles für einen gelungenen Start.
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Welche Methoden/Properties hat ein in SAP eingebundenes ActiveX-Objekt?

Beitrag von Kay23 (ForumUser / 4 / 2 / 0 ) »
Hallo zusammen,

ich arbeite aktuell mit dem CL_GUI_HTML_VIEWER und habe Verständnisprobleme bzgl. der Funktionsweise des Control-Frameworks.

Die Architektur habe ich grob verstanden. Es wird ein (ActiveX-)Control eingebunden, dessen Methoden/Properties über eine Wrapper-Methode angesteuert werden.

Dazu müssen im Fall von Methoden die Methoden-Namen als Text im CL_GUI_OBJECT->CALL_METHOD mitgegeben werden.

Einige Verständnisfragen dazu:

1. Die Frage, die sich nun für mich im Kontext des HTML-Controls (WebView2) stellt, ist, wie ich erfahren kann, welche Methoden mir das HTML-Control anbietet?

2. Sind die Frontend-Methoden eines Controls (z.B. "ShowUrl" beim CL_GUI_HTML_VIEWER) von SAP oder direkt vom (ActiveX-)Objekt? Könnte ich also bspw. wenn ich weiß, welche Methoden ein eingebundenes Objekt hat, mit CL_GUI_OBJECT->CALL_METHOD dessen Methoden ansprechen?

3. Laut der WebView2-Dokumentation gibt es Properties wie Opacity, ZoomFactor und Co. Könnte ich diese bspw. mit CL_GUI_OBJECT->SET_PROPERTIES anpassen?

Vielen Dank

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


Re: Welche Methoden/Properties hat ein in SAP eingebundenes ActiveX-Objekt?

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
ad 1) Mit z.B. VisualStudio oder Delphi kann man die von OCX, DLL usw. angebotenen Funktionen einsehen. Gibt auch sicher noch Freewarte Tools dafür.

ad 2) Wenn die Funktion mit CALL_METHOD aufgerufen wurde, gibt es auch eine entsprechende Funktion im OCX. Zu deiner Frage: Ja, man kann auch Methoden ansprechen die SAP (noch) nicht kennt. Man sollte aber aufpassen, weil diese Funktionen möglicherweise nicht Abwärts- oder Aufwärtskompatibel sind, weil der Hersteller (SAP) diese (noch) nicht offiziell supported und daher Unterschiede in der Schnittstelle usw. zwischen GUI-Versionen sein können.

ad 3) Nein. Der HTML-Viewer oder besser das OCX-Control ist eine SAP Entwicklung und diese hat WebView2 selbst nur eingebunden. Die Schnittstelle des OCX folgt dabei aber den Guidelines von SAP damit das OCX kompatibel zum "alten" HTML Viewer (IE) ist. Was aber nicht heißt, dass es nicht irgendwelche "versteckten" Funktionen gibt, die im SAP System nur noch nicht bekannt gemacht wurden. Was aber immer geht, ist das OCX von SAP in einem eigenen Control zu "überladen" und dann zusätzliche Funktionen zu ergänzen. Wer Erfahrung mit WindowFunction, FensterHandle, Message, DLL-Injection usw. hat, weiß wie "leicht" man unter Windows Funktionen "nachrüsten" kann. Natürlich hat man dann aber auch eine andere GUID und muss in SAP die Controlklasse ebenfalls überladen bzw. kopieren.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Kay23

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Welche Methoden/Properties hat ein in SAP eingebundenes ActiveX-Objekt?

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
Hier noch ein kleines Beispiel wo ich mir mal eine "versteckte" OCX-Funktion der SAP zu Nutze gemacht habe:
Die Klasse CL_GUI_FRONTEND_SERVICES bietet ziemlich viele Methode rund um Datei-Manipulation auf dem Client usw.
Will man wissen wie "alt" eine Datei ist, kann man sich über DIRECTORY_LIST_FILES behelfen. Möchte man das "Alter" ändern ("touch" unter Linux) kann man das aber nur indem man die Datei einliest und erneut schreibt. Das mag bei kleinen Dateien noch funktionieren aber je größer desto inperformanter wird das Ganze. Auch das Ablegen eines Scriptes auf dem Client PC und dann ausführen eines PowerShell-Befehls hat so seine Tücken. Daher habe ich mir mal das OCX "SAPfewin.OCX" hinter der Klasse angesehen und siehe da, die SAP hat eine Funktion "SetFileDateTime" dafür vorgesehen nur diese leider nie öffentlich zugänglich gemacht. Vielleicht auch, weil die Schnittstelle etwas "krude" ist. Anstatt eines Datums oder Zeitstempels wird eine getrennte Angabe von Jahr, Monat, Wochentag(!), Tag, Stunde, Minute, Sekunde erwartet. Genau diese Funktion hab ich in einer eigenen Control-Klasse nutzbar gemacht.

EDIT:
Einen zustätzlichen Fallstrick hat die Funktion. Sie ist abhängig von einem Registry-Wert ob die Zeitangabe als UTC oder Lokal interpretiert wird.
("System\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal")

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
ewx

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Welche Methoden/Properties hat ein in SAP eingebundenes ActiveX-Objekt?

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Ich habe an der Stelle mal stümperhaft recherchiert. Stümperhaft, weil ich mich mit Windows-Programmierung so gar nicht auskenne.
Hier jedoch ein paar Beispiele, die vielleicht dem Verständnis und deiner weiteren Recherche dienlich sind:
https://tricktresor.de/blog/slider-2/
https://tricktresor.de/blog/ocx-selbst-erstellt/

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
a-dead-trousers


Re: Welche Methoden/Properties hat ein in SAP eingebundenes ActiveX-Objekt?

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
Stimmt. Den Slider hab ich auch schon mal testweise eingebunden. Danke übrigens für die Anleitung. 😎
Die Sache mit dem DataProvider hab ich bislang noch nicht gebraucht aber ich denke mal die Anleitung bezieht sich auf das OCX "sapdatap.ocx". Wie man das in einem eigenen Control instanziert sollte nicht viel anders ablaufen, wie für andere Windows-Applikationen auch und entsprechende Anleitungen sollten sich im Netz (oder mit ChatGPT 😇) finden lassen. Der Rest, wie man dann die Daten tatsächlich auslesen kann, ist eigentlich recht gut (prosaisch) beschrieben und sollte, wenn man sich da ein wenig einarbeitet, umsetzbar sein.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Welche Methoden/Properties hat ein in SAP eingebundenes ActiveX-Objekt?

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
damals hatte ich noch kein ChatGPT... 😘
Den Data Provider habe ich nie verstanden, da Windows nur eine bestimmte Menge an Daten "direkt" verwalten/ austauschen kann (32KB? irgendwie sowas). Bei mehr läuft das eben über diesen Data Provider. Wie gesagt: habe ich nie verstanden und deswegen auch nie zum Laufen bekommen.

Re: Welche Methoden/Properties hat ein in SAP eingebundenes ActiveX-Objekt?

Beitrag von Kay23 (ForumUser / 4 / 2 / 0 ) »
Hallo zusammen,
danke für die zahlreichen Antworten.

Wenn ich das richtig sehe, müsste "SAPChromiumEdge.dll" der Wrapper über msedgewebview2.exe sein, oder?

Inwiefern unterscheiden sich OCX und DLL? Könnte man pauschal sagen, dass OCX-Dateien wahrscheinlich auf "ältere" Technik basieren wie z.B. der Internet Explorer?

Re: Welche Methoden/Properties hat ein in SAP eingebundenes ActiveX-Objekt?

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
MWn enthalten DLL ausschließlich Funktionen. OCX können auch Design-Elemente (forms) enthalten.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
Kay23


Seite 1 von 1

Vergleichbare Themen

1
Antw.
157
Views
OLE2 // Welche Methoden/Properties hat ein OLE-Objekt?
von Kay23 » 25.01.2024 13:17 • Verfasst in ABAP® für Anfänger
6
Antw.
4194
Views
OLE2-Zugriff auf EXCEL: Methoden und Properties
von matthes » 28.02.2007 09:26 • Verfasst in ABAP® Core
1
Antw.
1636
Views
ActiveX Objekt Java
von Adrian » 27.08.2014 09:29 • Verfasst in ABAP® für Anfänger
1
Antw.
1006
Views
ActiveX components
von Ben Nibang » 22.07.2005 10:54 • Verfasst in ABAP® Core
1
Antw.
1099
Views
Context-Bindung des Properties SELECTED_KEY kann nicht...
von vcelik » 18.05.2017 09:42 • Verfasst in ABAP® für Anfänger

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.