CARL Source - Facility
Message dynamique
Personnalisation > Fonctions de personnalisation > Modèle de message > Message dynamique

L'objectif des expressions utilisées dans les modèles de message est de pouvoir adapter l'objet ou le corps du message au contexte. Ainsi, dans l'objet même du courriel reçu, le destinataire aura directement des informations sur l'événement.

Il pourra même ouvrir directement l'objet référencé dans CARL Source, grâce aux liens hypertextes.

Attributs de l'entité en paramètre du modèle de message

Ces attributs sont relatifs à l'entité référencée sur le modèle de message.
L'entité n'est pas forcément renseignée pour un message d'indicateur, elle ne l'est jamais pour un message de traitement automatique.

 

Attributs simples de l'entité

Pour pouvoir afficher la valeur des attributs d'une entité, renseignez le champ "Entité" du modèle de message.

Ensuite, ajoutez à l'objet ou au corps les attributs de l'entité entre accolades.
Les entités et leurs attributs sont consultables dans le dictionnaire.

Exemple :

 

Attributs complexes de l'entité

Vous pouvez également afficher la valeur d'attributs d'objets associés à l'entité, de manière indirecte, en écrivant entre accolades les noms des objets hiérarchiques suivis de l'attribut du dernier objet, séparés par des points.
Vous pouvez ainsi descendre en cascade les objets liés.

Exemple 1 :

 

Exemple 2 :

Ces expressions sont comparables à celles utilisées dans la définition des indicateurs.

 

Détail d'un changement d'état

Vous pouvez afficher toutes les informations du changement d'état, qui sont disponibles dans l' historique des états. Il est nécessaire pour cela de connaître le code de l'état (voir Workflow d'états).

Exemple :

 

Élément d'une collection liée

Vous pouvez également afficher le détail d'une collection, si vous connaissez la position de l'élément à afficher, en la mettant entre [].

Exemple :

 

Élément d'une liste de valeurs

Afin de pouvoir récupérer la description d’une valueList dans un modèle de message, il faut ajouter l’expression suivante : {valueListDesc(<attribut> )}. L’attribut peut aussi provenir d’une autre entité.

Exemples :

 

Gestion multi-fuseaux horaires

Dans un contexte international, vous pouvez préciser le fuseau horaire dans lequel vous souhaitez afficher un champ de type Date ou Date-heure dans un modèle de message.

Il est désormais possible d'utiliser une conversion de contexte temporel dans les expressions dynamiques via l'opérateur @<contexte temporel> . Celui-ci permet de convertir une valeur temporelle dans un contexte temporel donné. Autrement dit, il permet par exemple d'exprimer une date-heure dans un fuseau horaire différent.

Le format est :

Quelques exemples utilisables dans des messages sur Occupation

 

Quelques exemples utilisables dans des messages sur Travaux

Toutes les valeurs temporelles de CARL Source ont leur propre contexte temporel. Par conséquent, si rien n'est précisé dans le template du message, les valeurs temporelles sont affichées dans leur contexte propre.

Pour afficher l'identifiant de la TimeZone (ex : Europe/Paris) avec la valeur temporelle, il faut utiliser un pattern avec le symbole VV. Exemple : dd/MM/yyyy HH:mm:ss VV    

L’utilisation de cette conversion fonctionne également lorsque des opérations sont faites sur les données temporelles : addition, soustraction, etc.

Exemples :

Lorsque l'on précise un pattern dans les formatages des dates-heures, on peut utiliser les symboles suivants (extrait de la documentation d'ICU http://userguide.icu-project.org/formatparse/datetime)

Table des symboles pour le formatage des dates-heures

Symbole

Signification

Exemple(s)

G

era designator

G, GG, or GGG
GGGG
GGGGG

AD
Anno Domini
A

y

year

yy
y or yyyy

96
1996

Y

year of "Week of Year"

Y

1997

u

extended year

u

4601

U

cyclic year name, as in Chinese lunar calendar

U

甲子

r

related Gregorian year

r

1996

Q

quarter

Q
QQ
QQQ
QQQQ
QQQQQ

2
02
Q2
2nd quarter
2

q

Stand Alone quarter

q
qq
qqq
qqqq
qqqqq

2
02
Q2
2nd quarter
2

M

month in year

M
MM
MMM
MMMM
MMMMM

9
09
Sep
September
S

L

Stand Alone month in year

L
LL
LLL
LLLL
LLLLL

9
09
Sep
September
S

w

week of year

w
ww

27
27

W\

week of month

W

2

d

day in month

d
dd

2
02

D

day of year

D

189

F

day of week in month

F

2 (2nd Wed in July)

g

modified julian day

g

2451334

E

day of week

E, EE, or EEE
EEEE
EEEEE
EEEEEE

Tue
Tuesday
T
Tu

e

local day of week
example: if Monday is 1st day, Tuesday is 2nd )

e or ee
eee
eeee
eeeee
eeeeee

2
Tue
Tuesday
T
Tu

c

Stand Alone local day of week

c or cc
ccc
cccc
ccccc
cccccc

2
Tue
Tuesday
T
Tu

a

am/pm marker

a

pm

h

hour in am/pm (1~12)

h
hh

7
07

H

hour in day (0~23)

H
HH

0
00

k

hour in day (1~24)

k
kk

24
24

K

hour in am/pm (0~11)

K
KK

0
00

m

minute in hour

m
mm

4
04

s

second in minute

s
ss

5
05

S

fractional second - truncates (like other time fields)
to the count of letters when formatting. Appends
zeros if more than 3 letters specified. Truncates at
three significant digits when parsing.

S
SS
SSS
SSSS

2
23
235
2350

A

milliseconds in day

A

61201235

z

Time Zone: specific non-location

z, zz, or zzz
zzzz

PDT
Pacific Daylight Time

Z

Time Zone: ISO8601 basic hms? / RFC 822
Time Zone: long localized GMT (=OOOO)
TIme Zone: ISO8601 extended hms? (=XXXXX)

Z, ZZ, or ZZZ
ZZZZ

-0800
GMT-08:00
-08:00, -07:52:58, Z

O

Time Zone: short localized GMT
Time Zone: long localized GMT (=ZZZZ)

O
OOOO

GMT-8
GMT-08:00

v

Time Zone: generic non-location
(falls back first to VVVV)

v
vvvv

PT
Pacific Time or Los Angeles Time

V

Time Zone: short time zone ID
Time Zone: long time zone ID
Time Zone: time zone exemplar city
Time Zone: generic location (falls back to OOOO)

V
VV
VVV
VVVV

uslax
America/Los_Angeles
Los Angeles
Los Angeles Time

X

Time Zone: ISO8601 basic hm?, with Z for 0
Time Zone: ISO8601 basic hm, with Z
Time Zone: ISO8601 extended hm, with Z
Time Zone: ISO8601 basic hms?, with Z
Time Zone: ISO8601 extended hms?, with Z

X
XX
XXX
XXXX
XXXXX

-08, +0530, Z
-0800, Z
-08:00, Z
-0800, -075258, Z
-08:00, -07:52:58, Z

x

Time Zone: ISO8601 basic hm?, without Z for 0
Time Zone: ISO8601 basic hm, without Z
Time Zone: ISO8601 extended hm, without Z
Time Zone: ISO8601 basic hms?, without Z
Time Zone: ISO8601 extended hms?, without Z

x
xx
xxx
xxxx
xxxxx

-08, +0530
-0800
-08:00
-0800, -075258
-08:00, -07:52:58

'

escape for text

'

(nothing)

' '

two single quotes produce one

' '

'

 

Liens hypertextes

Vous pouvez inclure dans le corps du message un lien hypertexte vers la fiche de détail de l'élément.

Il suffit pour cela de mettre le texte entre les parenthèses de l'expression : {detailLink()}.

Vous pouvez également préciser l'identifiant du formulaire souhaité, au cas où il y ait plusieurs formulaires (détail et compte-rendu intervention, DT et DT à prendre en compte).    

Cette expression est également à employer s'il existe un formulaire personnalisé à appliquer.

Dans ce cas, écrivez : {detailLink(<attribut> ,<Identifiant formulaire> , <Libellé du lien> )}.

Exemple 1 :

 

Exemple 2 :

Les liens hypertextes ne sont possibles que si le message est au format "HTML".
Si le format est "Texte", utilisez le mot-clé {detailUrl} qui sera remplacé par l'adresse du détail de l'objet ou {baseUrl} qui sera remplacé par l'adresse de CARL Source.

 

Lien vers un élément connexe

Vous pouvez aussi inclure dans le corps du message un lien hypertexte vers le détail d'un attribut de l'élément.
Par exemple : le Matériel de la DT, le fournisseur de la commande, etc.

Il suffit pour cela d'indiquer l'attribut dans la parenthèse, suivi du libellé du lien hypertexte : {detailLink(<attribut> ,{valeur libellé})}.

Exemple :

 

Expressions spécifiques au modèle de message pour un indicateur

Si le modèle de message est utilisé sur un indicateur, vous disposez de mots clés particuliers.

 

Modèle de message pour un traitement automatique

Si le modèle de message est utilisé sur un traitement automatique, vous pouvez faire apparaître les attributs du traitement automatique, comme si cela était l'entité référencée.

Exemple :