Das Programm "SOGERPSrv" bietet unter anderem die Möglichkeit zur Anbindung von Fremdsoftware über WebServices.
Ab der Version 2.8.0923.31 unterstützt SOGERPSrv dabei auch Funktionen, die über Scripting realisiert werden.
Um Scripting-Webservices zu nutzen sind folgende Vorbereitungen zu treffen.
Das Beispiel implementiert eine einfache Taschenrechner-Funktion über als WebService "ScriptCalc" über Scripting.
(Die Konfigurationsdateien werden über die Pfad-Variable "FRMCFGPATH" gesucht).
Für jeden unterstützten Dienst ist ein Eintrag in der Konfigurationsdatei "WebServ_cfg.xml" erforderlich.
Beispiel für eine "WebServ_cfg.xml":
<?xml version="1.0" encoding="utf-8" ?>
<Config Namespace="http://www.sog.de/VacosInfo/" HostExtern="localhost">
<Service Name="Vorgang" Prompt="Vorgangsauskunft" />
...
<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>
Erstellung eines Dienste-Scriptes
Das eigentliche Script kann nun wie gewohnt als CSharp-Script-Datei erstellt werden.
Ein Beispiel findet sich unter: Sources\SOG.ERP.Script\Script.Basis\Test\XmlInfoScript.cs
Der Parameter XmlInfoType" entspricht dem Eintrag "XmlInfoType" in der Dienstekonfiguration, und soll dafür sorgen, dass mehrere Dienste in einem Script realisiert werden können.
Die Parameter werden der Einstiegsfunktion als eine Liste von SOGValuePairs übergeben. Diese Liste wird in diesem Beispiel der einfachheit halber in ein SOGObjectDictionary gewandelt. Diese Klasse entspricht einem "Dictionary<string,object>", und ist um einige Funktionen für den Typgerechten Zugriff auf die enthaltenen Daten erweitert worden.
Die Parameter werden grundsätzlich über die aktuelle "IOCultureInfo" gewandelt, und sollten daher in englischer Schreibweise (Komma = Punkt, Datumsformat englisch oder ISO) übergeben werden.