Webseiten-Werkzeuge

Benutzer-Werkzeuge


Skript Phase 1

Das Skript wird vom Gateway Phase 1 genutzt. Seine Aufgabe besteht lediglich darin, eine Kopie des zu unterzeichnenden Dokuments im Arbeitsverzeichnis des Monitor-Gateways abzulegen.

Das Skript erhält als ersten Parameter den Pfad, in dem sich das Skript selbst befindet. Als zweiter Parameter wird der Pfad zum Spool-Verzeichnis des Gateways sowie der interne Name des zu bearbeitenden Dokuments übergeben

Da der interne Name des Dokuments ein vom Gateway automatisch erzeugter Name aus der Objektbezeichnung des Gateways selbst und einer laufenden Nummer ist, ist dieser Name natürlich für die spätere Zusammenführung von Dokument und Unterschriften unbrauchbar.

Das Skript muss daher auch die eindeutige Dokumentkennzeichnung aus der Indexdatei auslesen. Dies ist das Kennzeichen, das letztlich auch in den Barcodes neben den Unterschriftfeldern kodiert ist. Hier ein Auszug aus dieser Datei für das Testbeispiel:

[p2f]134676745
[Client]3.5.1.5797;A$O4ER.XML
[Param]3.0;10.1.17.59
 
[Time]30.01.18 14:38:43
[Process]N0I4E38.XML
[0100F902B6]Kabel GmbH
...
[01037C06A0]Servicevertrag:
[01037C08AE]0018/5
[0103DE06A0]Nachweisnummer:
[0103DE08AE]0004.3805
[01043F06A0]Auftrag:
[01043F08AE]1705
[01050106A0]Kundennummer:
[01050108AE]347-57897
[01056206A0]Sachbearbeiter:
...
[Page]
[End]


Im Beispieldokument ist diese Kennzeichnung an der Indexposition 0103DE08AE zu finden. Mit Hilfe eines regulären Ausdrucks werden die zwei Zifferngruppen aufgenommen und zu einem Kennzeichen verkettet. Das ist nahezu identisch zum Suchfeld aus dem Formular sign2forms.

Wurde ein korrektes Dokumentkennzeichen gefunden, erhält das Dokument dieses Kennzeichen als neuen Namen. Die Indexdatei wird im weiteren Verlauf des Prozesses nicht mehr benötigt und kann gelöscht werden.

sign_1.php
<?php
// Gateway command line: php "%1\sign_1.php" "%1" "%2" %4
 
// (c) 2018 by SPE Systemhaus GmbH
 
$Script   = $argv [1];                                      /* path to script */
$Spool    = $argv [2];                            /* path to spooled document */
$Document = $argv [3];                                    /* name of document */
 
if ($Script == "" || $Spool == "" || $Document == "") { exit (-1); }
 
chdir ($Spool);                /* make it current directory to shorten pathes */
 
$Identifier = ""; 
 
$Index = fopen ($Document . ".ctl", "r"); 
 
if ($Index) {
    while (($Line = fgets ($Index, 4096)) !== false) {
        if (preg_match ("/\[0103DE08AE\]([0-9]+)\.([0-9]+)/", $Line, $Matches)) {
            $Identifier = $Matches [1] . $Matches [2]; 
            break; 
        }
    }
    fclose ($Index); 
}
 
if ($Identifier == "") { exit (-1); }                  /* wrong document type */
 
rename ($Document . ".pcl", $Identifier . ".pcl"); 
unlink ($Document . ".ctl");                              /* no longer needed */
 
exit (0); 
?>


Hinweise

  • Wird dieses Skript mit den hier bereitgestellten Testdokument aufgerufen, wird eine Datei mit dem Namen  00043805.PCL  zurückgelassen.
  • Das Spool-Verzeichnis dieses Gateways ist so konfiguriert, dass es das gleiche Verzeichnis ist, das das Monitor-Gateway Phase 2 im überwachten Verzeichnis als Arbeitsverzeichnis automatisch angelegt hat.
  • Für den Fall, dass kein Dokumentkennzeichen ermittelt werden konnte, wird ein negativer Wert an den Aufrufer des Skripts zurückgegeben. Demzufolge wird in der Ablaufverfolgung des Gateways Phase 1 diese Situation aufgezeichnet und kann entsprechend ausgewertet und abgestellt werden. Das Dokument und seine Indexdatei bleiben im Spool-Verzeichnis stehen.
  • Zum Testen des Skripts sollte erst einmal der Aufruf der Funktion unlink auskommentiert werden.
print2forms/sign2forms/skript1.txt · Zuletzt geändert: 2018-02-21 15:10 (Externe Bearbeitung)