L'exemple suivant montre comment ajouter du code HTML pour changer la couleur du texte, en fonction de la valeur de la zone Priority (Priorité). Si la priorité est définie sur 1, le texte s'affichera en rouge.
#@EXPRESSION::if ( #?Priority?# eq "1 - High" ) {"<FONT COLOR=\"red\">";} elsif ( #?Priority?# eq "2 - Medium" ) { "<FONT COLOR=\"orange\">";} elsif ( #?Priority?# eq "3 - Low" ) { "<FONT COLOR=\"yellow\">";}@#Priority: #?Priority?# </FONT>
L'exemple de code suivant imprime tous les ID d'enregistrement des enregistrements associés sur la même ligne, en les séparant par des espaces. Si aucun enregistrement associé n'est associé à l'enregistrement, rien n'est imprimé.
#@EXPRESSION::if ( scalar( @{#?RelatedRecords?#} ) ) { "Related Records: ".join(" ",@{#?RelatedRecords?#}); } else { ""; }@#
L'exemple de code suivant imprime la valeur actuelle de la zone State ((Etat). Si elle est modifiée, la valeur précédente de la zone State (Etat) est également imprimée.
State: #?State?# #@EXPRESSION::if (#?State?# ne #%State%#) { "(Old Value: ". #%State%# .")"; }@#
Bien que les balises meta de zone puissent être utilisées dans les expressions EmailPlus, il peut arriver que des expressions ne soient pas évaluées correctement. Plus précisément, c'est lorsqu'une valeur de zone contient un nombre impair de guillemets doubles ou simples que l'expression n'est pas évaluée correctement. Dans ce cas, vous pouvez utiliser des fonctions dans les scripts globaux EmailPlus pour résoudre des valeurs de zone au lieu d'utiliser les balises meta de zone. De plus, utilisez la fonction Perl quotemeta pour échapper tout caractère non alphanumérique dans une valeur de zone. A l'aide de cette fonction, vous pouvez comparer efficacement les valeurs de zone dans les expressions EmailPlus. Cet exemple compare la valeur de la zone Description avec la valeur de la zone Description originale. Si elles ne sont pas identiques, la notification EmailPlus inclut un message déclarant que la zone Description a changé.
#@EXPRESSION::if ( quotemeta(Gfv("Description")) ne quotemeta(Gfov("Description") ) { "The Description field has changed: “.Gfv(“Description") ; }@#
L'exemple suivant ajoute des détails à propos des pièces jointes d'enregistrement ajoutées à la notification. Consultez les commentaires inclus dans le code pour obtenir des explications à propos des détails ajoutés :
#@EXPRESSION::
# Obtenir une liste des zones pièces jointes dans ce type d'enregistrement...
my($AttachmentFields) = $entity->GetAttachmentFields();
# Indiquer le nombre de zones pièces jointes et afficher leur
# nom...
$M = $M . "This entity contains " . $AttachmentFields->Count() .
" attachment field(s)\n";
for ($A = 0; $A < $AttachmentFields->Count(); $A++)
{
$M = $M . " " . ($AttachmentFields->Item($A) )->GetFieldName() . "\n";
}
$M .= "\n";
# Itérer sur les zones pièces jointes. Pour chacune d'elles, répertorier
# les pièces jointes qu'elles contiennent dans l'enregistrement en cours...
for (my($AF) = 0; $AF <$AttachmentFields->Count(); $AF++) {
my ($AttachmentField) = $AttachmentFields->Item($AF);
$M = $M ."Attachment field '"
. $AttachmentField->GetFieldName().
"' contains:\n";
# Itérer sur les pièces jointes dans cette zone...
my($Attachments) = $AttachmentField->GetAttachments();
for (my($A) = 0; $A <$Attachments->Count(); $A++) {
my($Attachment) = $Attachments->Item($A);
# Rapporter des informations à propos de cette pièce jointe...
$M = $M .
" Filename='" . $Attachment->GetFileName() . "'" .
" FileSize=" . $Attachment->GetFileSize() .
" Description='" . $Attachment->GetDescription() . "'" .
"\n";
}
$M = $M ."Total attachments: ". $Attachments->Count() ."\n\n";
}
# Afficher les résultats...
$M;
@#