infra:NET Expert
 
×
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.
    Siehe dazu auch die Beschreibung samt Parametern im Kapitel 02 Registry-Einträge.
  • 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.
    Der Player kann auf der Apple-Homepage heruntergeladen werden (http://www.apple.com/quicktime/).
    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 suchen
    und 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.