Customizando as tarefas do monitor de recursos MFT com substituição de variáveis

Quando as condições acionadoras de um monitor de recurso ativo são satisfeitas, a tarefa definida é chamada. Além de chamar a tarefa de transferência ou de comando sempre com o mesmo agente de destino ou o mesmo nome do arquivo de destino, também é possível modificar a definição da tarefa no tempo de execução. Faça isso inserindo nomes de variáveis no XML de definição de tarefa. Quando o monitor determina que as condições acionadoras são satisfeitas e que a definição de tarefa contém nomes de variáveis, ele substitui os nomes de variáveis pelos valores de variáveis e, em seguida, chama a tarefa.

Atenção: Os nomes variáveis não são sensíveis ao caso.

As variáveis usadas para substituição estão disponíveis somente para condições acionadoras positivas. Apenas as condições acionadoras match e fileSize farão com que as variáveis sejam substituídas. Se uma condição noMatch for usada e houver nomes de variáveis de substituição na definição de tarefa, a tarefa não será chamada e o monitor levantará um código de retorno de 110 e mensagem de erroBFGDM0060E.

Se o Recurso Monitorado é uma Fila

O valor de qualquer propriedade de mensagem IBM® MQ na primeira mensagem a ser lida a partir da fila monitorada pode ser substituída na definição XML de tarefa.

As propriedades de mensagem definidas pelo usuário são prefixadas com usr. mas não inclua este prefixo no nome da variável. Os nomes de variáveis devem ser precedidos por um caractere de símbolo de dólar ($) e colocados entre chaves {}.

Por exemplo, ${destFileName} é substituído pelo valor da propriedade da mensagem usr.destFileName da primeira mensagem a ser lida a partir da fila de origem. Para obter mais informações, consulte Propriedades da mensagemMQ lidas pela MFT a partir de mensagens nas filas de origem e Monitoramento de uma fila e uso de substituição de variáveis.

Se uma variável não estiver definida como uma propriedade de mensagem, o monitor relatará um erro BFGDM0060E e retornará o código de retorno 110 (falha na substituição da variável da tarefa do Monitor). Além disso, o agente grava a seguinte mensagem de erro em seu log de eventos (outputN.log):
BFGDM0113W: Trigger failure for <monitor name> for reason BFGDM0060E: A monitor task could 
not complete as a variable substitution <variable name> was not present.
Se o log do monitor de recursos moderado ou detalhado estiver ativado para o monitor, o monitor gravará a seguinte mensagem no log de eventos do monitor de recursos do agente (resmoneventN.log):
BFGDM0060E: A monitor task could not complete as a variable substitution 
<variable name> was not present.

Consulte Registro de monitores de recursos da MFT para obter mais informações sobre o registro de monitores de recursos.

A tabela a seguir mostra quais variáveis de substituição são fornecidas por padrão. Por exemplo, ${AGENTNAME} é substituído pelo nome do agente do monitor de recurso.
Tabela 1. Variáveis de substituição fornecidas por padrão
Variável Descrição
AGENTNAME O nome do agente do monitor de recurso.
QUEUENAME O nome da fila que está sendo monitorada.
ENCODING A codificação de caractere da primeira mensagem na fila ou da primeira mensagem em um grupo.
MESSAGEID O ID da mensagem IBM MQ da primeira mensagem na fila ou a primeira mensagem no grupo.
GROUPID O ID do grupo IBM MQ do grupo ou o ID da mensagem se apenas uma única mensagem for encontrada. Essa variável é configurada apenas se você estiver monitorando para grupos completos.
CurrentTimeStamp Um registro de data e hora baseado no horário local no qual o monitor é acionado. O valor de registro de data e hora é exclusivo para o agente.
CurrentTimeStampUTC Um registro de data e hora baseado no horário, no fuso horário UTC, no qual o monitor é acionado. O valor de registro de data e hora é exclusivo para o agente.

Se o recurso monitorado for um diretório

A tabela a seguir mostra o conjunto de nomes de variáveis que podem ser substituídos na definição do XML da tarefa.
Tabela 2. Variáveis que podem ser substituídas
Variável Descrição
FilePath O nome do caminho completo do arquivo do acionador.
FileName A parte de nome do arquivo do acionador.
LastModifiedTime O horário em que o arquivo acionador foi alterado pela última vez. Esse horário é expresso como o horário local do fuso horário no qual o agente está em execução e é formatado como um horário ISO 8601.
LastModifiedDate A data em que o arquivo acionador foi modificado pela última vez. Essa data é expressa como a data local do fuso horário no qual o agente está em execução e é formatada como uma data ISO 8601.
LastModifiedTimeUTC O horário em que o arquivo acionador foi alterado pela última vez. Esse horário é expresso como o horário local convertido para o fuso horário UTC e é formatado como um horário ISO 8601
LastModifiedDateUTC A data em que o arquivo acionador foi modificado pela última vez. Esta data é expressa como a data local convertida para o fuso horário UTC e é formatada como uma data ISO 8601.
AgentName O nome do agente do monitor de recurso.
CurrentTimeStamp Um registro de data e hora baseado no horário local no qual o monitor é acionado. O valor de registro de data e hora é exclusivo para o agente.
CurrentTimeStampUTC Um registro de data e hora baseado no horário do fuso horário UTC no qual o monitor é acionado. O valor de registro de data e hora é exclusivo para o agente.

Se o recurso monitorado for um arquivo acionador

A tabela a seguir mostra o conjunto de nomes de variáveis que podem ser substituídos quando um monitor de recursos está usando o conteúdo de um arquivo acionador para determinar os arquivos que precisam ser transferidos.
Tabela 3. Variáveis que podem ser substituídas ao usar um arquivo acionador
Variável Descrição
contentSource O nome completo do caminho do arquivo de origem.
contentDestination O nome completo do caminho do arquivo de destino.

Os nomes de variáveis devem ser precedidos por um caractere cifrão ($) e colocados entre chaves, {}. Por exemplo, ${FilePath} é substituído pelo caminho de arquivo totalmente qualificado do arquivo acionador correspondente.

Há duas palavras-chave especiais que podem ser aplicadas a nomes de variáveis para fornecer refinamento melhor. São elas:
token
O índice de token a ser substituído (começando com 1 da esquerda e começando com -1 da direita)
separador
Um único caractere para converter em token o valor da variável. O padrão é o caractere de barra (/) nas plataformas AIX® and Linux® ou caractere de barra inversa (\) em plataformas Windows , mas o separador pode ser qualquer caractere válido que possa aparecer no valor variável.

Se a palavra-chave do separador for especificado em um nome de variável, o valor da variável será dividido em tokens de acordo com o caractere separador.

O valor designado à palavra-chave do token é usado como um índice para selecionar qual token será usado para substituir o nome da variável. O índice de token é relativo ao primeiro caractere na variável e começa em 1. Se a palavra-chave do token não for especificada, a variável inteira será inserida.

Os valores substituídos em um nome do agente no XML da mensagem são tratados sem distinção entre maiúsculas e minúsculas. Todos os nomes Managed File Transfer Agent são maiúsos. Se o valor Paris for substituído em um atributo de agente no XML da mensagem, esse valor será interpretado como uma referência ao agente PARIS.