È possibile integrare le tag dei valori del campo corrente e precedente nella tag dell'espressione. Assicurarsi che i valori del campo non contengano virgolette singole o doppie. Se il valore di un campo contiene un numero dispari di virgolette singole o doppie, il valore potrebbe causare un errore dell'espressione; quindi, il modello EmailPlusTemplate non verrà convalidato correttamente. Si tratta di una limitazione nota nel package EmailPlus.
Un approccio migliore consiste nell'utilizzare le funzioni di EmailPlus per valutare i valori del campo. Se si confrontano i valori del campo, utilizzare la funzione Perl quotemeta() per eseguire l'escape dei caratteri non alfanumerici per verificare che l'espressione sia valutata correttamente. Ad esempio, la seguente espressione viene valutata correttamente se il valore del campo non contiene virgolette singole o doppie:
#@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”); }@#
Come altro esempio, si immagini di voler visualizzare la data di inoltro dal proprio record con errore e che non si desideri utilizzare il formato predefinito della data. Al contrario, si desidera visualizzare la data in un formato diverso. Di seguito è riportato un esempio di espressione semplice utilizzando una tag meta:
#@expression::use Date::Format;use Date::Parse; ctime( str2time( #?SubmitDate?# ));@#
Questo viene esteso al seguente esempio. Si tratta di un'espressione sintatticamente valida. Restituisce un oggetto data.
#@expression::use Date::Format;use Date::Parse; ctime( str2time( “2010-07-12 10:45:18” ));@#
Quando l'espressione viene valutata, restituisce le seguenti informazioni che vengono sostituite nel messaggio di output:
Mon Jul 12 10:45:18 2010
La seguente tabella elenca le tipologie di tipi di dati restituite quando un valore del vecchio campo o un valore del campo corrente viene espanso all'interno di una tag meta.
Tipo di campo | Espressione restituita |
---|---|
INT | Un numero intero, ad esempio, 54 |
DATE_TIME | Una stringa della data di 24 ore in formato “AAAA-MM-GG hh:mm:ss”, ad esempio “2012-10-20 15:23:04” |
SHORT_STRING, MULTILINE_STRING, ID, STATE, RECORDTYPE, DBID, REFERENCE a altri tipi non specificati | Un valore stringa tra virgolette, ad esempio: "del testo". Le stringhe tra virgolette integrate nel valore del campo originale vengono gestite correttamente per produrre un valore stringa sintatticamente corretto. |
REFERENCE_LIST | Un riferimento ad un array di valori indicati tra virgolette, ad esempio ["value 1", "value 2" ] |