La règle de mappage des éléments de données de contexte d'un événement CBE peut entraîner la création d'un nom d'attribut identique à celui d'un autre attribut dans l'événement Enterprise Console, ce qui n'est pas autorisé par le serveur d'événements. Le mécanisme de mappage écarte cette possibilité en ajoutant le préfixe "ctx." aux noms d'attribut créés à partir d'éléments de données de contexte de l'événement CBE.
Tout conflit avec le nom d'un autre élément de données de contexte ayant déjà été mappé dans l'événement Enterprise Console entraîne l'élimination des éléments de données de contexte en double.
Prenons pour exemple un événement CBE ayant les éléments de données de contexte suivants :
<CommonBaseEvent ...> <contextDataElements name="repeat_count" type="String"> <contextValue>contextValue</contextValue> </contextDataElements> <contextDataElements name="my_Context" type="String"> <contextValue>contextValue</contextValue> </contextDataElements> <contextDataElements name="my_Context" type="other_type"> <contextId>http://www.ibm.com</contextId> </contextDataElements> <contextDataElements name="my:Context" type="other_type"> <contextId>http://www.ibm.com</contextId> </contextDataElements> ... </CommonBaseEvent>
Les attributs résultants, et les valeurs correspondantes, dans l'événement Enterprise Console seraient :
ctx.repeat_count=contextValue ctx.repeat_count.type=String ctx.my_Context=contextValue ctx.my_Context.type=String
Le premier élément "repeat_count" a le même nom qu'un attribut de la classe d'événement Enterprise Console, mais l'ajout du préfixe ctx empêche le conflit de noms.
Le second élément de données de contexte nommé "my_Context" n'est pas mappé car cela entraînerait la création d'un nom d'attribut en double dans l'événement Enterprise Console résultant.
Le troisième élément de données de contexte nommé "my:Context" n'est pas mappé car le caractère ":" n'est pas valide dans un nom d'attribut d'un événement Enterprise Console et doit être remplacé par le caractère "_" (trait de soulignement) avant de pouvoir être mappé à un attribut dans l'événement Enterprise Console. Le nom résultant "my_Context" étant déjà utilisé, l'élément de données de contexte est éliminé.
Les éléments de données étendus sont mappés avant les éléments de données de contexte. Par conséquent, tout conflit entre le nom converti d'un élément de données étendu et celui d'un élément de données de contexte entraîne l'élimination de l'élément de données de contexte.
Prenons pour exemple un événement CBE ayant les éléments de données de contexte suivants :
<CommonBaseEvent ...> <extendedDataElements name="ctx.my_Context" type="string"> <values>ma valeur</values> </extendedDataElements> <contextDataElements name="my_Context" type="other_type"> <contextId>http://www.ibm.com</contextId> </contextDataElements> ... </CommonBaseEvent>
Les attributs résultants, et les valeurs correspondantes, dans l'événement Enterprise Console seraient :
ctx.my_Context='ma valeur'
L'élément de données de contexte nommé "my_Context" n'est pas mappé car cela entraînerait la création d'un nom d'attribut en double dans l'événement Enterprise Console résultant. Notez qu'en cas de conflit de noms pour un élément de données de contexte, le nom d'attribut associé ctx.ContextDataElement.name.type n'est pas créé non plus.