OBS/Adminhilfe/ScriptLibrary

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
Für diese Seite wurde eine Zugriffsbeschränkung eingerichtet. Falls du diese Nachricht siehst, bist du nicht berechtigt, diese Seite einzusehen.

Dies ist eine zugriffsgeschützte Seite.


Admin-Hilfe

OBS-Administration / Installation
kundenspezifische Anpassungen
OBS Protokolle
Shop-Administration

Script Library

Die Script Library ist eine Sammlung von Scripten, die innerhalb von OBS an verschiedenen Stellen genutzt werden können. Dieses Modul wurde erstellt, um eine strikte Trennung von OBS Installationsmakros und anderen Scripten zu haben. Die hier enthaltenen Scripte werden derzeit nicht mit den Updates ausgeliefert und sind pro Kunde verschieden. Scripte die hier erstellt werden, werden in der Regel auf Kundenwunsch erstellt und nach Aufwand berechnet.

ScriptResult (Zusatzinformationen der Positionserfassung)

Beispiel


Mit Hilfe dieser Scripte lassen sich innerhalb der Positionserfassung diverse Zusatzinformationen anzeigen, welche an die Bedürfnisse der Kunden angepasst sind. Dabei kann eine Benutzernummer hinterlegt werden, welche benutzerbezogenen Info anzeigt. Benutzer 000 ist Global und gilt für alle Nutzer. Die Namen der Scripte, die für die Zusatzinfos geschrieben werden, setzen sich aus folgenden Teilen zusammen:

*TYP (DMS Typ)
*_Vorgang

Beispiel:

AN_VORGANG für Benutzer 000
AU_VORGANG für Benutzer 001

Innerhalb dieser Scripte kann es dann verschiedenste Funktionen geben. Derzeit wird folgende Funktion für die Zusatzinfo benötigt:

  • function VORGANG_ZUSATZINFO_START(cVorg: String):String ;

Beispiel:

Anzeige von Infos, die dem Vorgang hinterlegt sind
function VORGANG_ZUSATZINFO_START(cVorgang: String):String;
 var cSQL    : String;
     qScript : TxFQuery;
 begin
 
 //Infos
    Result := Result + 'Hinterlegte Informationen:';
    Result := Result + CRLF;
    Result := Result + CRLF;

    cSQL := 'SELECT * FROM BRIEF' +
            ' WHERE br_refnr = ' + DB_SQLVal(cVorgang) +
            ' AND br_doktyp  = ' + DB_SQLVal('9102');

    if (DB_SOpen(oDB,cSQL,qScript)) then begin
        while not qScript.EoF do begin
            Result := Result + RTFToPlainText(qScript.A2C('br_bemerk'));
            Result := Result + CRLF;
            qScript.Next;
        end;
    end;
    DB_Close(qScript);
end;

Verbuchen von Vorgängen mit Macro

HINWEIS: Dieses Macro muss sich in der Script-Libary befinden.

Beispiel für Vorgänge in Aufträgen:

GetScript(oDB, 'VERBUCHEN', 'AUFTRAG');

Scribt_Lib Name: VERBUCHEN_AUFTRAG_
DispatchMethod: 'Verbuchen'
Parameter: Vorgangs Nummer

Der Rückgabewert 'OK' ermöglicht das Verbuchen des Vorganges, sonst wird das Verbuchen des Satzes nicht ausgeführt
Beispiel:

function Verbuchen(cVogNr:String):String;
begin
    Result := 'OK'
end;

In OBS wurde dies auf diese Art realisiert:

function  TVerbuchen.Check_Script_Verbuchen(const cMacro:String; const cVorgNr:String):Boolean;
var oScripter  : TxScriptRunner;
    cKommentar : String;
begin
    Result     := True;
    cKommentar := '';

    if (not Empty(cMacro) and not Empty(cVorgNr)) then begin

        oScripter            := TxScriptRunner.Create(NIL, oDB);
        oScripter.lProtokoll := False;

        oScripter.LoadScript(cMacro, '', stPax);

        try
            Result := (Upper(oScripter.DispatchMethod('Verbuchen',[cVorgNr])) = 'OK');

            if (not Result) then begin

                //Hier muss noch eine Variable ausgelesen werden
                //cKommentar := oScripter.Parameter.V1;

                Self.ProtokollError(' Vorgang : ' + cVorgNr+ ' -> Abgelehnt durch User-Macro!');

                if (not Empty(cKommentar)) then begin
                    Self.ProtokollError('Kommentar : '+cKommentar);
                end;
            end;

        except
            //nichts
        end;

        MyFreeAndNil(oScripter);
    end;
end;