Sintaxe getFileName e getAbsoluteFileName

Você pode utilizar os métodos getFileName e getAbsoluteFileName para retornar o nome de um arquivo específico no diretório spool. Isso é útil porque o RICOH ProcessDirector designa um número de tarefa exclusivo para cada tarefa e inclui o número da tarefa nos nomes dos arquivos. A principal diferença entre os dois métodos é que o getAbsoluteFileName falha se o arquivo solicitado especificamente não existir; getFileName pode retornar o nome de um arquivo em spool alternativo.

Para utilizar o método getFileName do RICOH ProcessDirector ou o método getAbsoluteFileName, utilize a notação simbólica para se referir a eles como fórmulas simbólicas do RICOH ProcessDirector. Utilize uma das seguintes sintaxes:

Sintaxe 1, procura única:

${getFileName(UsageKeyword, DatatypeKeyword, FileaccessKeyword)}

${getAbsoluteFileName(UsageKeyword, DatatypeKeyword, FileaccessKeyword)}

Sintaxe 2, procura iterativa:

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

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

em que:

UsageKeyword
Uma palavra-chave com distinção entre maiúsculas e minúsculas que identifica o tipo de uso do arquivo em spool. Os valores que os usuários autorizados podem especificar são os mesmos valores que a parte do tipo de uso do nome do arquivo em spool pode conter. Por exemplo, você pode especificar estas palavras-chave fornecidas pelo RICOH ProcessDirector: aiwlist, control, overrides ou print. Também é possível especificar suas próprias palavras-chave definidas pelo usuário.
DatatypeKeyword ou (DatatypeKeyword1, DatatypeKeyword2...)
Uma palavra-chave com distinção entre maiúsculas e minúsculas que especifica o tipo de dados do arquivo em spool. Os valores que os usuários autorizados podem especificar são os mesmos valores que a parte do tipo de dados que o arquivo em spool pode conter. Por exemplo, é possível especificar palavras-chave fornecidas por RICOH ProcessDirector, como jdf, pdf ou gif. Também é possível especificar suas próprias palavras-chave definidas pelo usuário.

Se quiser que o RICOH ProcessDirector continue procurando outro arquivo em spool caso ele não localize um arquivo em spool do tipo inicial, você pode especificar diversas palavras-chave de tipos de dados. Separe-as com vírgulas e coloque-as entre parênteses. Por exemplo:

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

Neste exemplo, o método getFileName primeiro procura um arquivo em spool com um tipo de dados de impressão. Se não localizar um nome de arquivo em spool correspondente, ele procura um arquivo em spool com tipo de dados pdf. Se ainda não localizar um nome de arquivo em spool correspondente, ele procura um arquivo em spool com um tipo de dados desconhecido. Se esse arquivo em spool não existir, o RICOH ProcessDirector emitirá uma mensagem de erro.

Obs.: O ponto de processamento em que o RICOH ProcessDirector tenta resolver o nome do arquivo determina se o método localizará o arquivo. Se o fluxo de trabalho incluir a etapa SetJobPropsFromTextFile, utilize o método getAbsoluteFileName no lugar do método getFileName. A etapa SetJobPropsFromTextFile tenta resolver o nome do arquivo que o método getFileName representa imediatamente após o dispositivo de entrada criar a tarefa; nem todos os arquivos em spool estão disponíveis nesse ponto no processamento. RICOH ProcessDirectornão tenta resolver o nome do arquivo que o método getAbsoluteFileName representa imediatamente depois da criação da tarefa.

Também é possível especificar diversos valores de tipo de dados com o método getAbsoluteFileName, como:

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

O método getAbsoluteFileName procura arquivos em spool da mesma maneira que o método getFileName, com uma exceção. Se não existir nenhum arquivo em spool com qualquer um dos tipos de dados especificados, o padrão é que o método getAbsoluteFileName não procure um arquivo em spool com o tipo de dados desconhecido.

FileaccessKeyword
A palavra-chave de acesso ao arquivo, que é read ou write, especifica se o programa externo lê o arquivo no diretório em spool ou grava o arquivo no diretório em spool. RICOH ProcessDirector cria arquivos nos subdiretórios do diretório em spool, dependendo se o programa externo lê ou grava um arquivo:
subdiretório checkpoints
Quando o programa externo faz alterações no arquivo através de uma operação de gravação, o RICOH ProcessDirector move a versão original do arquivo para seu subdiretório. Se um usuário autorizado solicitar subsequentemente uma ação processar-novamente, o RICOH ProcessDirector pode restaurar o arquivo em spool original a partir do subdiretório checkpoints. Isso garante que o programa externo tenha a mesma entrada disponível para sua operação de gravação que da primeira vez em que processou o arquivo.
subdiretório tmp
Quando o programa externo cria um novo arquivo, o RICOH ProcessDirector armazena o novo arquivo neste subdiretório até que a etapa externa que chama o programa seja concluída. Quando a etapa é concluída, o RICOH ProcessDirector move o novo arquivo para o diretório spool.
Obs.: Programas externos que criam tarefas filhas devem gravá-las no subdiretório filhos do diretório spool para a tarefa. O nome do arquivo da tarefa filha que o programa externo cria deve estar neste formato:
JobNumber.Usagetype.Datatype,ChildGroupID,Job.JobType=JobType
O ChildGroupID deve ser o mesmo para todos os arquivos associados a uma única tarefa filho. Se o programa externo gerar mais uma tarefa filho, ele deve incrementar o ChildGroupID para cada conjunto de arquivos associado com a nova tarefa filho.

O programa externo anexa ,Job.JobType= ao nome do arquivo, que é o nome do banco de dados para a propriedade do fluxo de trabalho. O valor JobType é o nome do fluxo de trabalho que a tarefa filho exige; o fluxo de trabalho deve existir e deve estar ativado.

Exemplos de Leitura de getFileName e getAbsoluteFileName

Todos esses exemplos usam o diretório de spool:

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

O diretório de spool contém estes arquivos de spool:

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

Para fins desses exemplos, o valor da propriedade da tarefa Fluxo de dados de entrada não foi configurado de qualquer maneira, como por meio de um padrão de tarefa no fluxo de trabalho ou por uma etapa de detecção. No entanto, um arquivo em spool com um tipo de dados desconhecido está presente no diretório spool:

  • Para retornar o caminho e o nome do arquivo de controle para a tarefa, que é /aiw/aiw1/spool/default/10000006/10000006.control.text (Linux) ou C:\aiw\aiw1\spool\default\10000006\10000006.control.text (Windows), para que o programa externo possa realizar uma operação de leitura no arquivo:
    ${getFileName(control, text, read)}
    
    ${getAbsoluteFileName(control, text, read)}
  • Para retornar o caminho e o nome do arquivo de entrada para a tarefa, que é /aiw/aiw1/spool/10000006/10000006.print.unknown (Linux) ou C:\aiw\aiw1\spool\10000006\10000006.print.unknown (Windows), para que o programa externo possa realizar uma operação de leitura no arquivo:
    ${getFileName(print, unknown, read)}
    
    ${getAbsoluteFileName(print, unknown, read)}

Estes exemplos usam o diretório de spool:

  • /aiw/aiw1/spool/default/10000009 (Linux)
  • C:\aiw\aiw1\spool\default\10000009 (Windows)

O diretório de spool contém estes arquivos de spool:

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

Neste exemplo, o tipo de fluxo de dados de entrada foi detectado e 10000009.print.ps é a cópia do arquivo de entrada original. Para procurar um arquivo de entrada em um dos formatos PostScript suportados:

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

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

Os dois métodos procuram primeiro um arquivo em spool com o nome 10000009.print.pdf. Como o arquivo em spool não está presente, os métodos continuam procurando um arquivo em spool com o nome 10000009.print.ps.

Exemplos de Gravação de getFileName e getAbsoluteFileName

Todos esses exemplos usam o diretório de spool:

  • /aiw/aiw1/spool/default/10000006 (Linux)
  • C:\aiw\aiw1\spool\default\10000006 (Windows)
  • Para configurar uma operação de gravação por um programa externo que grave um novo arquivo de registro de estatísticas no diretório spool:
    ${getFileName(statistics, record, write)}
    
    ${getAbsoluteFileName(statistics, record, write)}

    O RICOH ProcessDirector fornece ao programa externo o caminho e o nome do arquivo /aiw/aiw1/spool/default/10000006/10000006.statistics.record no Linux e C:\aiw\aiw1\spool\default\10000006\10000006.statistics.record no Windows.

  • Para configurar uma operação de gravação por um programa externo que atualize o arquivo impresso PDF no diretório spool:
    ${getFileName(print, pdf, write)}
    
    ${getAbsoluteFileName(print, pdf, write)}

    RICOH ProcessDirectorverifica um arquivo com o nome 10000006.print.pdf, e se ele existe no subdiretório pontos de verificação do diretório de spool da tarefa.

    O RICOH ProcessDirector também fornece ao programa externo o caminho e o nome do arquivo /aiw/aiw1/spool/default/10000006/tmp/10000006.print.pdf no Linux e C:\aiw\aiw1\spool\default\10000006\tmp\10000006.print.pdf no Windows.

    • Se o programa falhar, o diretório em spool da tarefa não será alterado porque o programa externo gravou em um arquivo que o RICOH ProcessDirector moveu para o subdiretório tmp. RICOH ProcessDirector só moverá o arquivo para o diretório em spool se a etapa externa que chama o programa externo for concluída.
    • Se o programa for bem-sucedido, o RICOH ProcessDirector move o arquivo do subdiretório tmp para o diretório spool. Se um arquivo com esse nome já existir no diretório spool, o RICOH ProcessDirector moverá o arquivo para o subdiretório checkpoint e depois moverá o arquivo recém-criado do tmp para o diretório spool para a tarefa.