Hallo zusammen,
ich steh mir wahrscheinlich grad mal wieder selber im Weg...
Lange Vorgeschichte:
- Wir haben nen ERP (WinForms, Clientbasiert), an dem man so einiges customizen kann.
- Unter Anderem kann man da sogenannte Infoscreens erstellen, die sich in den Modulen in der Oberfläche beliebig einhängen lassen. Diese Infoscreens sind quasi dynamische HTML-Seiten, aber technologisch ne Mischung aus VB-Script, VBA (die Älteren erinnern sich vielleicht noch...) und HTML/CSS. Gruselig zu entwickeln, weil alles in einem Textblock stecken muss, keine fertigen Komponenten nutzbar sind, etc. Geht irgendwie, aber vom Aufwand her zum Ergebnis einfach bäh. Zumal HTML/CSS auch eingeschränkt ist, da das Ganze dann im ERP auf dem guten, alten Browsercontrol auf IE7-Basis läuft. Das wird gleich noch wichtig: Ausführung der Scripte war komplett lokal am Client.
- In diesem Konstrukt konnte man aber Links auf andere Datenobjekte im ERP aufbauen (Logikbeispiel: ERP://contact=12345). Das Ganze funktioniert auch aus anderen Apps heraus (HTML-Mails, etc.), da der Handler auch im System registriert ist. Entscheidender Punkt: Innerhalb der Darstellung im ERP fängt das jetzige Browsercontrol die angeklickten Links ab und öffnet das passende Modul samt Datensatz.
- Nachdem ich nun ne Weile mit Blazor unterwegs bin kam die Idee auf, ob man das nicht darüber abfackeln könnte. Entsprechende Seiten zu bauen ist kein Problem, parametrisierter Aufruf auch nicht. Knackpunkt: Das alte Browsercontrol kann den Kram nicht mehr sauber darstellen. Meistens machen die JavaScript-Teile Probleme.
- Lösungsansatz: Man kann auch net-basierte Plugins/Usercontrols in die ERP-Oberfläche einbinden. Also nen Plugin mit WebView2 gebaut und dem ganzen untergeschoben. Funktioniert soweit super! Alles wird sauber dargestellt. Aber wir nähern uns dem eigentlichen Problem...
Kurze Frage:
Die Blazor-Seiten laufen ja aufm Server, der Client (hier im lokalen ERP-Plugin) stellt nur dar. Wenn nun in den Seiten einer der oben beschriebenen Links auf eines der anderen Datenobjekte angeklickt wird, dann würde die Blazor-Seite das ja an den Server schicken, wo mir das nichts nützt. Ich brauche die Info lokal am Client, um dort das andere Objekt aufzurufen. Den Objektaufruf dem ERP unterschieben ist kein Problem. Aber wie komme ich beim WebView2-Control an die Info, dass da ein Link aufgerufen wurde und welcher?
Danke schon mal für sachdienliche Hinweise?
VG Uwe