外部コマンド

RunExternalProgramステップテンプレートを使用する場合、ステップテンプレートの作成を始める前に、使用するコマンドについて理解してください。RICOH ProcessDirectorシンボル表記を使用する外部コマンドの例を次に示します。

新しい印刷ファイルを宛先にコピーする

次の例では、Linux cpコマンドが、ソースファイルが宛先ファイルよりも新しい場合にのみ、ジョブのスプールディレクトリーからJobNumber.print.pdfファイルをコピーします。
cp -u ${getAbsoluteFileName(print, pdf, read)} /tmp/jobarchives

${getAbsoluteFileName(print, pdf, read)}は、スプールディレクトリーにあるPDF印刷ファイルの名前を返すRICOH ProcessDirectorシンボル式です。PDF印刷ファイルがスプールディレクトリーにない場合は、外部プログラムの実行時にエラーが発生します。

印刷ファイルを更新してそれをスプールディレクトリーに書き込む

次の例では、外部プログラムmyprogramがスプールディレクトリーからJobNumber.print.pdfファイルを読み取り、リダイレクトを使用してファイルの更新バージョンをスプールディレクトリーに書き込みます。
myprogram -i ${getFileName(print, pdf, read)} > ${getFileName(print, pdf, write)}

${getFileName(print, pdf, read)}は、スプールディレクトリーにあるPDF印刷ファイルの名前を返すRICOH ProcessDirectorシンボル式です。外部プログラムの実行時にスプールディレクトリーにPDF印刷ファイルがない場合、RICOH ProcessDirectorはジョブの入力ファイル名JobNumber.print.unknownを返します。そのファイルがスプールディレクトリー内にない場合、エラーが発生します。

印刷ジョブの指定変更ファイルを読み取って統計ファイルをスプールディレクトリーに書き込む

次の例では、外部プログラムauditstatisticsがスプールディレクトリーからJobNumber.overrides.textファイルを読み取り、新しい統計ファイルJobNumber.statistics.textをスプールディレクトリーに書き込みます。
auditstatistics inputfile=${getFileName(overrides, text, read)} 
outputfile=${getFileName(statistics, text, write)}

個別のファイルを使用してプロパティー値を印刷ファイルとともに外部プログラムに渡す

この例では、Linux cpコマンドが、既存のRICOH ProcessDirector制御ファイルに対応するCSVファイルを生成します。制御ファイルは、9個のRICOH ProcessDirectorジョブプロパティーに対するシンボルをリストします。
cp ${getControlFileName()} /aiw/aiw1/samples/${Job.ID}.info.csv

${getControlFileName()}は、RICOH ProcessDirector解決された制御ファイルの名前を返すシンボル式です。RICOH ProcessDirectorは、指定した制御ファイルテンプレートから制御ファイルを生成します。

制御ファイルはgetChildFileNameメソッドを使用して子ファイルの名前を返すことにより、外部プログラムがファイルをスプールディレクトリーのchildrenサブディレクトリーに書き込むことができるようにします。外部プログラムは子ジョブファイルのファイル名を、次の形式で書き込む必要があります。

JobNumber.UsageType.DataType.n,Job.JobType=JobTypeName
JobTypeNameは、子ジョブが必要とするワークフローの名前です。ワークフローは、存在していて使用可能になっている必要があります。

RunExternalProgramステップテンプレートに基づくステップを[ジョブタイプ]プロパティーノートブックを使用するワークフローに追加すると、ジョブのデフォルト設定で[受信]と表示されているプロパティーが、ステップの追加先である実際のフェーズを反映するように変わります。

完全パス名を使用してコマンドを呼び出す

この例では、完全パス名を使用してユーザーに提供された外部プログラムmytransformを呼び出してファイルをPDF形式に変換します。mytransformは入力ファイルと出力ファイルの名前を制御ファイルから読み取ります。
/opt/myprograms/bin/mytransform -c ${getControlFileName()}

印刷ファイルをWindowsシステムにアーカイブする

次の例では、外部プログラムがWindows copyコマンドを使用して、スプールディレクトリーからのJobNumber.print.pdfファイルのコピーをWindowsシステム上のアーカイブディレクトリーに書き込みます。
copy ${getAbsoluteFileName(print,pdf,read)} d:\archive\pdf
    注意:
  • WindowsシステムディレクトリーにRICOH ProcessDirectorがインストールされ、Windowsアプリケーションサーバーが1次サーバーと接続されている必要があります。
  • Windowsディレクトリーは、ディレクトリー名のネイティブWindows形式を使用して指定します。
  • 必要に応じて、Windows Services for UNIX(SFU)コマンドの代わりにネイティブWindowsコマンドを使用します。例えば、cpコマンドの代わりにcopyコマンドを使用してください。すべてのSFUコマンドがWindowsシステムで使用できるわけではありません。
  • コマンドによっては、Windowsシステム上のディレクトリーがなくてもよい場合があります。このコマンドにより、Windowsシステム上にディレクトリーが作成されます。
  • ステップテンプレートがWindowsアプリケーションサーバー上でのみ実行されるように調整されていることを確認します。LinuxとAIXではディレクトリー名の形式が異なるため、このステップテンプレートに基づくステップをRICOH ProcessDirectorがWindows以外のシステムで実行しようとすると失敗します。