Externe Befehle

Wenn Sie sich dafür entscheiden, die Schrittvorlage RunExternalProgram zu verwenden, entscheiden Sie sich zunächst, welchen Befehl Sie verwenden möchten, bevor Sie damit beginnen, Ihre Schrittvorlage zu erstellen. Hier sind einige Beispiele von Befehlen, die eine RICOH ProcessDirector-Symbolschreibweise verwenden.

Kopieren einer neueren Druckdatei in ein Verzeichnis

In dem folgenden Beispiel kopiert der Linux-Befehl cp nur dann die Datei Jobnummer.print.pdf aus dem Spoolverzeichnis für den Job, wenn die Quellendatei jünger als die Zieldatei ist:
cp -u ${getAbsoluteFileName(print, pdf, read)} /tmp/jobarchives

${getAbsoluteFileName(print, pdf, read)} ist die RICOH ProcessDirector-Symbolformel, die den Namen der PDF-Druckdatei in dem Spoolverzeichnis zurückgibt. Ist die PDF-Druckdatei bei der Ausführung des externen Programms im Spoolverzeichnis nicht vorhanden, tritt ein Fehler auf.

Aktualisieren einer Druckdatei und anschließendes Schreiben der Datei in das Spoolverzeichnis

In dem folgenden Beispiel liest das externe Programm Mein_Programm die Datei Jobnummer.print.pdf aus dem Spoolverzeichnis und schreibt eine aktualisierte Version der Datei unter Verwendung der Umleitung in das Spoolverzeichnis:
myprogram -i ${getFileName(print, pdf, read)} > 
${getFileName(print, pdf, write)}

${getFileName(print, pdf, read)} ist die RICOH ProcessDirector-Symbolformel, die den Namen der PDF-Druckdatei in dem Spoolverzeichnis zurückgibt. Ist die PDF-Druckdatei bei der Ausführung des externen Programms in dem Spoolverzeichnis nicht vorhanden, gibt RICOH ProcessDirector den Namen der Eingabedatei für den Job (Jobnummer.print.unknown) zurück. Ist diese Datei in dem Spoolverzeichnis nicht vorhanden, tritt ein Fehler auf.

Lesen der Überschreibungsdatei für einen Druckjob und Schreiben einer Statistikdatei in das Spoolverzeichnis

In dem folgenden Beispiel liest das externe Programm auditstatistics die Datei Jobnummer.overrides.text aus dem Spoolverzeichnis und schreibt die neue Statistikdatei Jobnummer.statistics.text in das Spoolverzeichnis:
auditstatistics inputfile=${getFileName(overrides, text, read)} 
outputfile=${getFileName(statistics, text, write)}

Verwendung einer separaten Datei zur Übergabe von Merkmalwerten an ein externes Programm mit Hilfe der Druckdatei

In dem folgenden Beispiel erstellt der Linux cp-Befehl eine CSV-Datei, für die eine entsprechende RICOH ProcessDirector-Steuerdatei vorhanden ist. Die Steuerdatei verfügt über eine Symbolliste für neun RICOH ProcessDirector-Jobmerkmale:
cp ${getControlFileName()} /aiw/aiw1/samples/${Job.ID}.info.csv

${getControlFileName()} ist die RICOH ProcessDirector-Symbolformel, die den Namen der aufgelösten Steuerdatei zurückgibt. RICOH ProcessDirector generiert die Steuerdatei aus der angegebenen Steuerdateischablone.

Die Steuerdatei kann die Methode getChildFileName verwenden, um den Namen einer untergeordneten Datei zurückzugeben, damit das externe Programm eine Datei in das Unterverzeichnis children des Spoolverzeichnisses schreiben kann. Das externe Programm muss die Dateinamen von Dateien untergeordneter Jobs in dem folgenden Format schreiben:

JobNumber.UsageType.DataType.n,Job.JobType=JobTypeName
JobTypeName ist der Name des Workflows, den der untergeordnete Job benötigt. Der Workflow muss vorhanden und aktiviert sein.

Wenn Sie einem Workflow mit Hilfe des Merkmalnotizbuchs Jobtypen einen Schritt hinzufügen, der auf der Schrittvorlage RunExternalProgram basiert, ändern sich die Merkmale, für die in den Jobstandardwerten die Phase [Empfang] angegeben ist, in die Phase, der der Schritt hinzugefügt wird.

Ausführung eines Befehls unter Verwendung eines vollständigen Pfadnamens

In diesem Beispiel wird ein vollständiger Pfadname verwendet, um das vom Benutzer bereitgestellte externe Programm mytransform aufzurufen und eine Datei in ein PDF-Format umzuwandeln. mytransform liest die Namen der Eingabe- und Ausgabedateien aus einer Steuerdatei:
/opt/myprograms/bin/mytransform -c ${getControlFileName()}

Archivieren einer Druckdatei in einem Windows-System

In dem folgenden Beispiel benutzt der externe Schritt den Windows-Befehl copy, um eine Kopie der Datei Jobnummer.print.pdf aus dem Spoolverzeichnis in ein Archivverzeichnis auf dem Windows-System zu kopieren:
copy ${getAbsoluteFileName(print,pdf,read)} d:\archive\pdf
    Hinweis:
  • Auf dem Windows-Systemverzeichnis muss RICOH ProcessDirector installiert sein und der Windows-Anwendungsserver muss mit dem primären Server verbunden sein.
  • Geben Sie das Windows-Verzeichnis in dem Windows-spezifischen Format als Verzeichnisnamen an.
  • Benutzen Sie native Windows-Befehle und keine SFU-Befehle (Windows Services for UNIX, SUF), wo dies geeignet ist. Benutzen Sie beispielsweise den Befehl copy und nicht den Befehl cp. Nicht alle SFU-Befehle sind auf Windows-Systemen verfügbar.
  • Je nach Befehl muss nicht zwingend ein Verzeichnis auf dem Windows-System vorhanden sein. Der Befehl kann das Verzeichnis auf dem Windows-System erstellen.
  • Stellen Sie sicher, dass Sie die Schrittvorlage so optimieren, dass die Ausführung nur auf einem Windows-Anwendungsserver erfolgt. Da die Verzeichnisnamen auf einem Linux-System ein anderes Format haben als auf einem Windows-System, scheitert ein auf dieser Schrittvorlage basierender Befehl, wenn RICOH ProcessDirector versucht, den Schritt auf einem Nicht-Windows-System auszuführen.