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.
SOGERPSrv -x webserv
-ServicesConfig Konfigurationsdatei
-Port Portnummer
-LocalAddress IP-Adresse
-Cache true|false
[-DumpDirectory Verzeichnispfad]
Start des SOG ERPSrv als Webserver
Dateiname der Konfigurationsdatei des Webservers. Die Konfigurationsdatei wird in den Verzeichnissen gesucht, die in der Environment-Variablen "FRMCFGPATH" angegeben sind.
Portnummer des Webservers
IP-Addresse des Webservers. any für alle möglichen Adressen.
Verzeichnis, in dem Dumpfiles der Kommunikation zwischen den Clients und SOGERPSrv abgelegt werden (Sollte nur zur Fehleranalyse genutzt werden).
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.
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:
Ermöglicht das Setzen von "Echten" Umgebungsvariablen.
Aufruf eines Logon-Scriptes. Achtung: Das Script darf keine Eingaben abfordern!
Aufruf eines Logon-Kommandos. Das Kommando darf keine Eingaben abfordern!
Parameter zu dem Kommando.
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!
(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.
Der installierte Dienst kann über den Aufruf
SOGERPSrv -uninstall
wieder deinstalliert werden
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, der bei der Kommunikation zwischen dem Client und dem Webserver innerhalb der XML-Definitionen des Webdienstes verwendet wird.
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.
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"
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"
Ü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:
Testseite des Webservice. Hier können zu Testzwecken Anfragen an den Webdienst gestellt werden.
Beschreibung der XML-Anfrage und XML-Antwort des Webdienstes.
Beschreibung des Webdienstes in der "Webservice Description Language".
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
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.