getFileNameおよびgetAbsoluteFileNameの構文

getFileName および getAbsoluteFileName メソッドを使用して、スプールディレクトリーにある特定のファイルの名前を返すことができます。RICOH ProcessDirectorはジョブごとに固有のジョブ番号を割り当て、ファイル名にそのジョブ番号を使用するため、役に立ちます。2 つのメソッドの主な違いは、明確に要求したファイルが存在しない場合に getAbsoluteFileName は失敗すること、getFileName は代替スプールファイルの名前を返すことができることです。

RICOH ProcessDirectorgetFileNameメソッドまたはgetAbsoluteFileNameメソッドを使用するには、シンボル表記を使用して、RICOH ProcessDirectorシンボル式としてこれらのメソッドを参照してください。次のいずれかの構文を使用します。

構文 1、単一検索:

${getFileName(UsageKeyword, DatatypeKeyword, FileaccessKeyword)}

${getAbsoluteFileName(UsageKeyword, DatatypeKeyword, FileaccessKeyword)}

構文 2、反復検索:

${getFileName(UsageKeyword, (DatatypeKeyword1, DatatypeKeyword2...), 
FileaccessKeyword)}

${getAbsoluteFileName(UsageKeyword, (DatatypeKeyword1, 
DatatypeKeyword2...), FileaccessKeyword)}

ここで、

UsageKeyword
スプールファイルの使用タイプを識別する、大/小文字の区別があるキーワード。許可ユーザーが指定できる値は、スプールファイル名の使用タイプ部分に指定できる値と同じです。たとえば、aiwlistcontroloverridesprintなどのRICOH ProcessDirector提供のキーワードを指定できます。また、独自のユーザー定義キーワードを指定することもできます。
DatatypeKeyword または (DatatypeKeyword1, DatatypeKeyword2...)
スプールファイルのデータタイプを指定する、大/小文字の区別があるキーワード。許可ユーザーが指定できる値は、スプールファイルのデータタイプ部分に指定できる値と同じです。たとえば、 RICOH ProcessDirector提供のキーワード(jdfpdf、またはgif)を指定できます。また、独自のユーザー定義キーワードを指定することもできます。

最初のタイプのスプールファイルが見つからなくても、 RICOH ProcessDirectorに別のスプールファイルの検索を続行させたい場合は、複数のデータタイプキーワードを指定できます。キーワードは、コンマで区切り、括弧で囲んでください。例:

${getFileName(UsageKeyword, (print, pdf), FileaccessKeyword)}

この例では、まず getFileName メソッドは、データタイプ print のスプールファイルを探します。一致するファイル名が見つからない場合、データタイプ pdf のスプールファイルを探します。一致するスプールファイル名が見つからない場合は、データタイプが[不明]のスプールファイルを探します。このスプールファイルが存在しない場合、 RICOH ProcessDirectorはエラーメッセージを出します。

注意: 処理において、ファイルの名前をRICOH ProcessDirectorが解決しようと試みる時点で、メソッドがファイルを検索するかどうかが決定されます。ワークフローで SetJobPropsFromTextFile ステップが組み込まれている場合、getFileName メソッドの代わりに getAbsoluteFileName メソッドを使用してください。SetJobPropsFromTextFileステップは、入力装置がジョブを作成した後、すぐにgetFileNameメソッドが提示するファイル名を解決しようと試みます。処理において、この時点ですべてのスプールファイルを使用できるわけではありません。RICOH ProcessDirectorは、ジョブを作成した後、すぐにgetAbsoluteFileNameメソッドが提示するファイル名を解決しようとしません

また、複数のデータタイプ値を getAbsoluteFileName メソッドで指定することもできます。例:

${getAbsoluteFileName(UsageKeyword, (pdf, postscript, text), 
FileaccessKeyword)}

getAbsoluteFileName メソッドは getFileName メソッドと同じ方法でスプールファイルを探しますが、1 つだけ例外があります。指定されているどのデータタイプのスプールファイルも存在しない場合、デフォルトでは、getAbsoluteFileName メソッドはデータタイプ unknown のスプールファイルを探しません。

FileaccessKeyword
読み込みまたは書き込みのいずれかのファイルアクセス権のキーワードにより、外部プログラムがファイルをスプールディレクトリーから読み込むかどうか、またはファイルをスプールディレクトリーに書き込むかどうかを指定します。RICOH ProcessDirectorは、外部プログラムがファイルを読み込みまたは書き込みするかどうかに応じて、スプールディレクトリーのサブディレクトリーにファイルを作成します。
\checkpoints サブディレクトリー
外部プログラムが書き込み操作によってファイルを変更した場合、RICOH ProcessDirectorはファイルのオリジナルバージョンをこのサブディレクトリーに移動します。その後で許可ユーザーから再処理アクションが要求された場合、RICOH ProcessDirector\checkpointsサブディレクトリーからオリジナルのスプールファイルを復元できます。これで、外部プログラムは、最初にファイルを処理したときと同じ入力を書き込み操作で使用できます。
\tmp サブディレクトリー
外部プログラムが新しいファイルを作成した場合、RICOH ProcessDirectorは外部プログラムを呼び出した外部ステップが終了するまで、そのファイルをこのサブディレクトリーに保管します。ステップが完了すると、RICOH ProcessDirectorは、その新しいファイルをスプールディレクトリーに移動します。
注意: 子ジョブを作成する外部プログラムは、それらをジョブのスプールディレクトリーの\childrenサブディレクトリーに書き込む必要があります。外部プログラムが作成する子ジョブのファイル名は、次の形式である必要があります。
JobNumber.Usagetype.Datatype,ChildGroupID,Job.JobType=JobType
ChildGroupIDは、単一の子ジョブに関連付けられているすべてのファイルで同じである必要があります。外部プログラムが複数の子ジョブを生成する場合は、新しい子ジョブに関連付けられたファイルセットごとに ChildGroupID を増やす必要があります。

外部プログラムはファイル名に ,Job.JobType= を追加します。これは、ワークフロープロパティーのデータベース名です。JobType 値は、子ジョブが必要とするワークフローの名前です。このワークフローは、存在していて使用可能になっていなければなりません。

getFileName および getAbsoluteFileName の読み取りの例

これらの例はすべて、スプールディレクトリーを使用しています。

  • C:\aiw\aiw1\spool\default\10000006(Windows)

スプールディレクトリーには、次のスプールファイルが含まれます。

10000006.banner_attributes.text
10000006.control.text
10000006.overrides.text
10000006.print.pdf
10000006.print.unknown
10000006.resources.pdf
10000006.resources.log
10000006.resources.outlines

これらの例は、[入力データストリーム]ジョブプロパティーの値が、どのような方法でも (例えば、ワークフローのジョブデフォルトまたは検出ステップによって) 設定されなかったことが前提となっています。そのため、データタイプ unknown のスプールファイルがスプールディレクトリーに存在しています。

  • 外部プログラムがファイルに対して読み取り操作を実行できるよう、ジョブの制御ファイルのパスと名前C:\aiw\aiw1\spool\default\10000006\10000006.control.textを返すには、次のようにします。
    ${getFileName(control, text, read)}
    
    ${getAbsoluteFileName(control, text, read)}
  • 外部プログラムがファイルに対して読み取り操作を実行できるよう、ジョブの入力ファイルのパスと名前 C:\aiw\aiw1\spool\10000006\10000006.print.unknown (Windows)を返すには、次のようにします。
    ${getFileName(print, unknown, read)}
    
    ${getAbsoluteFileName(print, unknown, read)}

この例では、スプールディレクトリーを使用します。

  • C:\aiw\aiw1\spool\default\10000009

スプールディレクトリーには、次のスプールファイルが含まれます。

10000009.banner_attributes.text
10000009.control.text
10000009.overrides.text
10000009.print.ps
10000009.resources.pdf
10000009.resources.log
10000009.resources.outlines

この例では、入力データストリームのタイプが検出され、10000009.print.ps はオリジナルの入力ファイルのコピーです。サポートされているいずれかの PostScript 形式の入力ファイルを検索するには、次のようにします。

${getFileName(print, (pdf, ps), read)}

${getAbsoluteFileName(print, (pdf, ps), read)}

どちらのメソッドも、まず名前 10000009.print.pdf のスプールファイルを探します。ただし、このファイルは存在しないため、メソッドは引き続き名前 10000009.print.ps のスプールファイルを探します。

getFileName および getAbsoluteFileName の書き込みの例

これらの例はすべて、スプールディレクトリーを使用しています。

  • C:\aiw\aiw1\spool\default\10000006
  • 新しい統計レコードファイルをスプールディレクトリーに書き込む、外部プログラムによる書き込み操作をセットアップするには、次のようにします。
    ${getFileName(statistics, record, write)}
    
    ${getAbsoluteFileName(statistics, record, write)}

    RICOH ProcessDirectorには、パスおよびファイル名 C:\aiw\aiw1\spool\default\10000006\10000006.statistics.record の外部プログラムが用意されています。

  • スプールディレクトリー内の AFP 印刷ファイルを更新する、外部プログラムによる書き込み操作をセットアップするには、次のようにします。
    ${getFileName(print, pdf, write)}
    
    ${getAbsoluteFileName(print, pdf, write)}

    RICOH ProcessDirector は、ジョブのスプールディレクトリーの checkpoint サブディレクトリーに、10000006.print.pdf という名前のファイル (存在する場合) をチェックポイント指定します。

    また、RICOH ProcessDirectorには、パスおよびファイル名C:\aiw\aiw1\spool\default\10000006\tmp\10000006.print.pdf の外部プログラムが用意されています。

    • プログラムが失敗した場合、外部プログラムがRICOH ProcessDirector\tmpサブディレクトリーに移動したファイルに書き込んだため、ジョブのスプールディレクトリーは変更されません。RICOH ProcessDirectorは、外部プログラムを呼び出す外部ステップが正常に完了した場合にのみ、ファイルをスプールディレクトリーに移動します。
    • プログラムが成功した場合、RICOH ProcessDirectorは、ファイルを\tmpサブディレクトリーからスプールディレクトリーに移動します。その名前のファイルがスプールディレクトリー内にすでに存在する場合、RICOH ProcessDirectorはそのファイルをチェックポイントサブディレクトリーに移動してから、新たに作成したファイルを\tmpからジョブのスプールディレクトリーに移動します。