É possível integrar tags de valor de campo atuais e anteriores na própria tag de expressão. Certifique-se de que os valores de campo não contenham aspas simples nem duplas. Se um valor de campo contiver um número ímpar de aspas simples ou duplas, o valor poderá causar um erro de expressão; assim, o modelo EmailPlusTemplate não será validado corretamente. Essa é uma limitação conhecida no pacote EmailPlus.
Uma abordagem melhor é usar as funções do EmailPlus para avaliar valores de campo. Se você comparar valores de campo, use a função Perl quotemeta() para escapar qualquer caractere não alfanumérico para assegurar que a expressão seja avaliada corretamente. Por exemplo, a expressão a seguir seria avaliada corretamente se o valor do campo não contivesse aspas simples ou duplas:
#@expression::if (#?Description?# ne #%Description%#) { “Description field has changed\n”.#%Description%#; }@#
#@expression::if (quotemeta(Gfv(“Description”)) ne quotemeta(Gfov(“Description”))) { “Description field has changed\n”.Gfov(“Description”); }@#
Como outro exemplo, suponha que você planeja exibir a data de envio do registro de defeito, mas não deseja usar o formato de data padrão. Em vez disso, você deseja exibir a data em um formato diferente. Aqui está um exemplo simples de expressão usando uma meta tag:
#@expression::use Date::Format;use Date::Parse; ctime( str2time( #?SubmitDate?# ));@#
Isso é expandido para o exemplo a seguir. Trata-se de uma expressão sintaticamente válida. Ela retorna um objeto de data.
#@expression::use Date::Format;use Date::Parse; ctime( str2time( “2010-07-12 10:45:18” ));@#
Quando a expressão é avaliada, ela retorna as informações a seguir que são substituídas na mensagem de saída:
Mon Jul 12 10:45:18 2010
A tabela a seguir lista os tipos de dados que são retornados quando um valor de campo antigo ou atual é expandido em uma meta tag.
Tipo de Campo | Expressão retornada |
---|---|
INT | Um inteiro, por exemplo, 54 |
DATE_TIME | Uma sequência de data de 24 horas neste formato “AAAA-MM-DD hh:mm:ss”; por exemplo, “2012-10-20 15:23:04” |
SHORT_STRING, MULTILINE_STRING, ID, STATE, RECORDTYPE, DBID, REFERENCE e qualquer outro tipo não especificado | Um valor de sequência entre aspas duplas; por exemplo: "um texto". As sequências entre aspas duplas que estão integradas no valor do campo original são tratadas corretamente para produzir um valor de sequência sintaticamente correto. |
REFERENCE_LIST | Uma referência para uma matriz de valores colocados entre aspas duplas; por exemplo, ["value 1", "value 2" ] |