SOG-Helpcenter Logo SOG Business - Software

SOG ERP Web-Server


 

Beschreibung


SOGERPSrv ermöglicht unter anderem durch Verwendung von XML-Webdiensten die Verarbeitung vorbereiteter Anfragen an das Warenwirtschaftssystem SOG ERP (VACOS) und die Bereitstellung der angefragten Auskünfte. SOGERPSrv fungiert dabei als Webserver. Die Kommunikation zwischen einem Client und dem SOGERPSrv findet über HTTP statt.

Aufruf



SOGERPSrv -x webserv
         -ServicesConfig Konfigurationsdatei
         -Port Portnummer
         -LocalAddress IP-Adresse
         -Cache true|false
        [-DumpDirectory Verzeichnispfad]


Parameter

 

 

-x webserv

Start des SOG ERPSrv als Webserver

-ServicesConfig

Dateiname der Konfigurationsdatei des Webservers. Die Konfigurationsdatei wird in den Verzeichnissen gesucht, die in der Environment-Variablen "FRMCFGPATH" angegeben sind.

-Port

Portnummer des Webservers

-LocalAddress

IP-Addresse des Webservers. any für alle möglichen Adressen.

-DumpDirectory

Verzeichnis, in dem Dumpfiles der Kommunikation zwischen den Clients und SOGERPSrv abgelegt werden (Sollte nur zur Fehleranalyse genutzt werden).

SOG ERPSrv als Windows-Dienst


Installation


Die Installtion des SOGERPSrv als Windows-Dienst erfolgt über folgenden Aufruf:

SOGERPSrv -install

Bei der Installation muss das Benutzerkonto mit Passwort angegeben werden, unter dem der Dienst laufen soll.

Konfiguration des Dienstes


Beim Betrieb des SOGERPSrv als Windows-Dienst werden die Startparameter über die Konfigurationsdatei "SOGERPService_cfg.xml" angegeben. Diese Konfigurationsdatei wird in den in der Environment-Variablen "FRMCFGPATH angegebenen Verzeichnissen gesucht.

Beispiel:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
     <appSettings>
          <add key="Service_1" value="vacos,01,WebServ,15" />
          <add key="Service_1_ServicesConfig" value="webserv_cfg.xml" />
          <add key="Service_1_External" value="true" />
          <add key="Service_1_Port" value="4401" />
          <add key="Service_1_LocalAddress" value="any" />
          <add key="Service_1_Cache" value="false" />
          <add key="Service_1_DumpDirectory" value="C:\temp" />
          <add key="Service_1_RestartAfterMinutes" value="120" />
     </appSettings>
</configuration>

Über den "add"-Knoten mit dem Attribut "Service_[fortlaufende Dienstnummer]" wird die Umgebung des SOGERPSrv eingestellt. Das "value"-Attribut wird dabei nach folgendem Schema aufgebaut:

Projekt,Firmennummer,Startoption des SOGERPSrv,Sleeptime

Bei der Angabe von Parametern muss das "key"-Attribut des "add"-Knoten immer nach dem Schema "Service_[fortlaufende Dienstnummer]_[Parametername]" angegeben werden.

Allgemeine Konfigurationseinträge



<?xml version="1.0" encoding="utf-8" ?>
<configuration>
     <appSettings>
          <add key="SetEnv1" value="variable=wert" />
          <add key="SetEnv2" value="variable=wert" />
          <add key="LogonScript" value="\\Server\Freigabe\LogonService.bat" />
          <add key="LogonCommand1" value="\\Server\Freigabe\cmd1.bat" />
          <add key="LogonParms1" value="x1 x2 x3" />
          <add key="LogonCommand2" value="\\Server\Freigabe\cmd1.bat" />
          <add key="LogonParms2" value="x1 x2 x3" />
          <add key="ReorgTempHours" value="{AnzahlStunden}" />
          <add key="ReorgTempHours" value="{AnzahlStunden}" />
     </appSettings>
</configuration>

Bedeutung der Parameter:

 

SetEnv{n}

Ermöglicht das Setzen von "Echten" Umgebungsvariablen.

LogonScript

Aufruf eines Logon-Scriptes. Achtung: Das Script darf keine Eingaben abfordern!

LogonCommand{n}

Aufruf eines Logon-Kommandos. Das Kommando darf keine Eingaben abfordern!

LogonParms{2}

Parameter zu dem Kommando.

ReorgTempHours

Ist der Wert nicht "0", wird bei jedem Start des SOGERPSrv ein Reorg des Verzeichnisses ${TEMP}\sogtemp durchgeführt. Dabei werden alle Dateien gelöscht, auf die seit der hier eingestellten Anzahl von Stunden nicht mehr zugegriffen worden ist. Initialwert=24!

TermAppOnExit

(Veraltet) Ist der Parameter auf "true" eingestellt, wird beim beenden des Dienstes versucht, auch alle gestarteten Folgeprogramme durch ein Terminierungssignal zu beenden. Ob die Programme auf dieses Signal reagieren, hängt von deren Implementierung ab.

Deinstallation


Der installierte Dienst kann über den Aufruf

SOGERPSrv -uninstall

wieder deinstalliert werden

Konfiguration des Webservers


Der Webserver wird über eine XML-Datei konfiguriert, dessen Pfad beim Start des SOGERPSrv als Parameter übergeben wird (siehe Parameter "ServicesConfig").

Aufbau der Konfigurationsdatei


Beispiel:

<?xml version="1.0" encoding="utf-8" ?>
<Config Namespace="http://www.sog.de/VacosInfo/" HostExtern="localhost">
     <Service Name="Vorgang" Prompt="Vorgangsauskunft" />
     <Service Name="Vorgangsposition" Prompt="Vorgangspositionsauskunft" />
     <User Pwd="dGVzdDp0ZXN0" />
</Config>


Über das "Prompt"-Attribut kann eine abweichende Bezeichnung für den Webdienst hinterlegt werden.

Namespace

Namespace, der bei der Kommunikation zwischen dem Client und dem Webserver innerhalb der XML-Definitionen des Webdienstes verwendet wird.

HostExtern

Alternative Angabe eines Hosts oder einer IP-Adresse, die als Teil der URL innerhalb der WSDL-Definition des Webdienstes verwendet werden soll. Andernfalls wird innerhalb der WSDL-Definition die IP-Adresse des Webservers verwendet.

Service

Name des Webdienstes. Innerhalb des "Config"-Knotens können dabei alle Webdienste angegeben werden, die über den SOGERPSrv publiziert werden sollen. Der angegebene Name muss zu den dazugehörigen xmlinfo- und sogformref-Dateien passen.

Beispiel:
"Vorgang" -> "Vorgang_xmlinfo.xml" und "Vorgang.sogformref"

User

Die optionale Angabe eines Benutzernamens und Passworts erlaubt hier einen passwortgeschützten Zugriff auf den Webserver. Dabei müssen Benutzername und Passwort im Format "user:pwd" angegeben und Base64 codiert werden.
Zur Umwandlung eines Textes in Base64-Schreibweise verwenden Sie z.B. das Programm "SOGERPconsole -tobase64 Text"

Verwendung der Webdienste


Über den Aufruf der URL (z.B. "http://127.0.0.1:4401/") des Webservers im Browser gelangt man zur Startseite des Webservers. Hier befindet sich unter anderem eine Auflistung aller verfügbaren Webdienste. Zu jedem Webdienst sind hier folgende Optionen aufrufbar:

 

Test

Testseite des Webservice. Hier können zu Testzwecken Anfragen an den Webdienst gestellt werden.

XML

Beschreibung der XML-Anfrage und XML-Antwort des Webdienstes.

WSDL

Beschreibung des Webdienstes in der "Webservice Description Language".

Discovery

Beschreibung aller verfügbaren Webdienste im "DISCO"-Format.

Erweiterung der Web-Dienste über Scripting


Über Scripting können die angebotenen WebDienste erweitert und verändert werden.
Siehe Scripting

Siehe auch


Erstellung eines Webdienst-Proxy für SOG ERP (VACOS)-Webdienste

Erweiterte Konfiguration von Web-Diensten


Bei Verwendung der erweiterten Konfiguration von Web-Diensten kann auf den Einsatz einer "sogformref" Datei vollständig verzichtet werden. Alle notwendigen Angaben werden dabei in die Web-Dienst Konfigurationsdatei geschrieben.
Beispiel für eine erweiterte Konfiguration:

<?xml version="1.0" encoding="utf-8" ?>

<Config Namespace="http://www.sog.de/VacosInfo/" HostExtern="localhost">

  <Service Name="Aufgabe1" Prompt="Aufgabe"
           Class="SOGLuebeck.Vacos.GetInfo"
           Assembly="vacos"
           Function="GetXmlInfo"
           XmlInfoType="Aufgabe"
           OutputDef="Aufgabe" >
    <Para Name="Aufgabe" Prompt="Schluessel" Default="heydor/20070723/1539" Type="string"/>
  </Service>

  <Service Name="Aufgabe2" Prompt="Aufgabe2"
           XmlInfoType="DataObject"
           OutputDef="Aufgabe" >
    <Para Name="Class" Value="Aufgaben" />
    <Para Name="Key" Prompt="Schluessel" Default="heydor200707231539" Type="string"/>
  </Service>

  <Service Name="Kunden" Prompt="Kunden"
           XmlInfoType="DataObjectList"
           OutputDef="${PROJ}\testdata\firm01hdltest\Test_getinfo\Test2_xmlinfo.xmldata" >
    <Para Name="Class" Value="Kundenstamm" />
    <Para Name="Key1" Prompt="Schluessel 1" Default="01100055206" Type="string"/>
    <Para Name="Key2" Prompt="Schluessel 1" Default="01100015000" Type="string"/>
  </Service>

  <Service Name="Calc" Prompt="Calc"
           Assembly="Script"
           Class="Script.XmlInfoScript"
           XmlInfoType="ScriptCalc"
           OutputDef="ScriptCalc" >
    <Para Name="op1" Prompt="Op 1" Default="17" Type="decimal"/>
    <Para Name="op2" Prompt="Op 2" Default="4" Type="decimal"/>
    <Para Name="opcode" Prompt="Op Code" Default="+" Type="decimal"/>
  </Service>
</Config>

In diesem Beispiel werden einige Dienste vollständig konfiguriert.
Die Angaben "Class", "Assembly" und "Function" können entfallen. Es werden dann die Standardwerte dafür angenommen.
Wird bei der Definition eines Parameters "Value" verwendet, ist der Parameter fest vorbelegt, und kann nicht von außen beeinflusst werden.
Im letzten Beispiel wird das Einstiegsobjekt des Web-Dienstes über ein Script bestimmt. Ein Beispiel für ein entsprechendes Script finden Sie hier.

Zugriff auf die SOG ERP (VACOS)-Hilfe über den XML-Webservice


Für den Zugriff auf die SOG ERP (VACOS)-Hilfe über den XML-Webservice ist folgende Konfiguration notwendig:

  <Service Name="GetHelp" Prompt="Hilfe"
           XmlInfoType="GetHelp"
           OutputDef="GetHelp" >
    <Para Name="Url" Prompt="Url" Default="root" />
    <Para Name="Lang" Prompt="Sprache" Default="ger" />
  </Service>

  <Service Name="RelSearch" Prompt="Releasenotes suchen"
           XmlInfoType="RelSearch"
           OutputDef="RelSearch" >
    <Para Name="from" Prompt="Von Datum" Default="2009-01-01" />
    <Para Name="to" Prompt="Bis Datum" Default="2009-12-31" />
    <Para Name="kat1" Prompt="Kategorie 1" Default="" />
    <Para Name="kat2" Prompt="Kategorie 2" Default="" />
    <Para Name="t1a" Prompt="Suchtext 1" Default="" />
    <Para Name="t1b" Prompt="und (1)" Default="" />
    <Para Name="t1c" Prompt="und (1)" Default="" />
    <Para Name="t2a" Prompt="oder 2" Default="" />
    <Para Name="t2b" Prompt="und (2)" Default="" />
    <Para Name="t2c" Prompt="und (2)" Default="" />
    <Para Name="t3a" Prompt="oder 3" Default="" />
    <Para Name="t3b" Prompt="und (3)" Default="" />
    <Para Name="t3c" Prompt="und (3)" Default="" />
    <Para Name="SelNeu" Prompt="Neuerung" Default="true" />
    <Para Name="SelChg" Prompt="Aenderung" Default="true" />
    <Para Name="SelHigh" Prompt="Highlight" Default="true" />
    <Para Name="SelErr" Prompt="Fehler" Default="true" />
    <Para Name="SelTip" Prompt="Tipp" Default="true" />
    <Para Name="SelBed" Prompt="Ergonomie" Default="true" />
    <Para Name="SelMod" Prompt="Neues Modul" Default="true" />
    <Para Name="SelMan" Prompt="Manueller Eingriff" Default="true" />
  </Service>

Der "RelSearch" kann über die "RelSearch_xmlinfo.xml" so konfiguriert werden, dass entweder nur eine URL, oder bereits mehr Informationen geliefert werden.
Die URL kann als Zugriffsurl für "GetHelp" verwendet werden, um einen vollständigen Hilfepunkt zu einer Releasenote zu erhalten.