19.02 Voraussetzungen, technische Hintergründe
Die infraWebCom-Schnittstelle erlaubt den Aufruf von infra-Prozeduren (siehe Kapitel 15.02 infra-Prozeduren (Callbacks)) über Verknüpfungen (Links), die in eine HTML-Seite eingebettet sind. Beim Klicken eines derartigen Links wird geprüft, ob infra:NET auf dem betroffenen Client bereits aktiv ist. Falls nicht, wird infra:NET automatisch gestartet, bevor die gewünschte infra-Prozedur gestartet wird.
Bei der Erstellung solcher HTML-Seiten können alle gestalterischen Mittel der HTML-Sprache und die verfügbaren Erweiterungen des Internet Explorers - üblicherweise über ein entsprechendes HTML-Werkzeug - genutzt werden, um dem Anwender ein ansprechendes Layout zur Verfügung zu stellen.
Die infraWebCom-Schnittstelle besteht aus zwei Komponenten.
-
Ein COM-Server (infraWebCom.DLL) bildet eine scriptfähige Schnittstelle für den Internet Explorer oder anderen Instanzen, die die Microsoft COM-Technik nutzen können.Dieser COM-Server muss dem jeweiligen Betriebssystem bekannt gemacht werden,und er benötigt einige wichtige Einstellungen aus der Registry des jeweiligen infra-Arbeitsplatzes (per Arbeitsplatz-Setup, siehe unten).
-
Die zweite Komponente ist ein infra-Plugin (INFRAWCR.DLL), das die infraseitige Kommunikation mit dem COM-Server übernimmt.Dieses Plugin ist im Standard bereits aktiviert (siehe unten).
Voraussetzungen
-
Der COM-Server InfraWebCom.DLL wird durch das Arbeitsplatz-Setup bereits dem Betriebssystem bekannt gemacht.Ansonsten muss über "REGSVR32 –s infrawebcom.dll" manuell registriert werden.
-
Folgender Schlüssel wird durch das Arbeitsplatz-Setup bereits in die Registry eingetragen:HKEY_LOCAL_MACHINE\SOFTWARE\infraGmbH\InfraWebCom.
-
Der Microsoft Internet Explorer muss auf dem jeweiligen Arbeitsplatz zur Verfügung stehen.
-
Im Beispiel ist auf der Seite mit den Links zu den Internet-Seiten eine MOV-Datei eingebettet.Um diese abspielen zu lassen, wird ein entsprechendes PlugIn im Internet Explorer benötigt.Dieses wird bei der Installation des QuickTime-Players automatisch mit installiert.Ansonsten kann die Seite auch entsprechend abgeändert werden.
-
In der SIBPPS.INI-Datei muss in Sektion [PLUGIN] der Eintrag "InfraWebComRx=infrawcr" aktiviert sein (Standard).
-
Um in einem HTML-Dokument eine Verknüpfung mit dem infraWebCom-Interface bzw. mit infra:NET herzustellen, muss zunächst in das jeweilige HTML-Dokument eine kleine Script-Funktion eingebettet werden:<SCRIPT LANGUAGE = "JScript"><!--function infra_execute(callback,data){var obj = new ActiveXObject("InfraWebCom.link");obj.execute(callback,data);return false;}--></SCRIPT>Die Script-Funktion infra_execute(...) kann nun an jeder Stelle des HTML-Dokuments benutzt werden, um eine infra-Prozedur zu starten.Ein Link zum Aufruf eines infra-Programms über die Script-Funktion infra_execute(...) kann dann wie folgt aussehen (siehe z.B. in INFRA.HTM):<A HREF="" onclick="return infra_execute('CBsExecModProc','111');">Teilestamm bearbeiten</A>Da hier eine Funktion des HTML-Dokuments aufgerufen werden soll, bleibt die Hyperlink-Angabe leer.Auf das Klick-Ereignis der Verknüpfung wird der Aufruf der Script-Funktion infra_execute(...) gelegt.Die Parameter der Script-Funktion infra_execute(...) entsprechen den Angaben in der Dokumentation der infra-Prozeduren.Der erste Parameter ist der Name der gewünschten infra-Prozedur, hier CBsExecModProc.Der zweite Parameter wird direkt an die aufgerufene infra-Prozedur übergeben und hat je nach verwendeter infra-Prozedur eine andere Bedeutung, hier das zu startende infra-Programm.
-
Bei Nutzung über den in das infra-Hauptfenster eingebetteten Internet Explorer wird folgendes benötigt, wobei im Standard die INI-Einträge für den Benutzer "webcom" in der userabhängigen INI-Datei WEBCOM.INI hinterlegt sind (siehe INI-Eintrag "webcom=WEBCOM.INI" in Sektion [LOGIN]).
-
INI-Eintrag "Navigation = MAINHTML,MAINHTML_START" in Sektion [LAYOUT]
-
MAINHTML.CGW im infra-Screenverzeichnis (Standard)
-
INI-Eintrag "INFRAInternetExplorer = infraweb, ShowMainURL:file:grafikverzeichnis\html\infra.htm" in Sektion [PLUGIN].
-
grafikverzeichnis steht für das infra-Grafik-Verzeichnis, z.B. K:\INFRA\GRAFIK.
-
Alle für das Beispiel benutzten Dateien sind im infra-grafikverzeichnis\html hinterlegt.
-
Es muss eine infra-Arbeitsplatz-Installation mit den entsprechenden Registrierungen durchgeführt werden.
-
Die Datei INFRA.HTM enthält Beispiele, wie die Verknüpfungen zu infra-Programmen in einem HTML-Dokument zu hinterlegen sind.Im Beispiel wird ein möglicher Ablauf im Bereich Verkaufabgebildet.
-
Die Datei PROG.HTM enthält Links zu Tools, die ein Sachbearbeiter ggf. für seine tägliche Arbeit benötigt, z.B. ein Editor oder die Microsoft Office Programme.Diese Links werden ebenfalls über die infra-Prozedur infra_execute, allerdings mit "Launch" als erstem Parameter, realisiert.Die durch infra_execute aufgerufene InfraWebCom-Methode "execute" führt in diesem Fall das als zweiten Parameter übergebene Kommando direkt in der Betriebssystem-Umgebung aus. Das hat den Vorteil, dass der Speicherort eines aufzurufenden Windows-Programms nicht bekannt sein muss, sondern das Betriebssystem das gewünschte Programm über die PATH-Umgebungsvariable oder eine Registrierung suchenund starten kann (z.B. onclick="return infra_execute('Launch','CMD.EXE /C start OUTLOOK.EXE');"Die Links zu unserer Partnersoftware DATEV und GenesisWorld sind im Beispiel nicht hinterlegt und müssen ggf. ergänzt werden.Novaline wird nach Version 7.9 nicht mehr unterstützt!
-
Die Datei INTER.HTM enthält Links zu wichtigen Internet-Seiten.
Bestimmte infra-Sitzung steuern
Wird an einem Arbeitsplatz mit mehreren infra-Sitzungen parallel gearbeitet, kann es sinnvoll sein, per InfraWebCom nur eine bestimmte Sitzung zu steuern. Dazu muss eine infra-Sitzung eindeutig für COM identifizierbar sein. In der INI-Sektion [InfraWebCom] kann mit dem Schlüssel "SessionID“ einer infra-Sitzung eine Kennung zugeordnet werden. Mit Hilfe der üblichen Differenzierungsmechanismen (eigene INI je Sitzung) kann so für jede infra-Sitzung eine eindeutige SessionID vergeben werden:
[InfraWebCom]
SessionID=123
Diese Sitzungskennung kann nun über die COM-Schnittstelle "setSessionID“ genutzt werden, um eine bestimmte infra-Sitzung zu steuern:
<script language = "JScript">
<!--
function infra_execute(callback,data)
{
var obj = new ActiveXObject("InfraWebCom.link");
obj.setSessionID("123");
obj.execute(callback,data);
return false;
}
-->
</script>
Falls die zu steuernde Sitzung noch nicht aktiv ist, versucht InfraWebCom die in der Registry hinterlegte infra-Sitzung zu starten. Es ist sicherzustellen, dass tatsächlich die infra-Sitzung gestartet wird, die mit der jeweiligen SessionID angesprochen werden soll. Ansonsten werden keine COM-Befehle verarbeitet.
