A regra de mapeamento para elementos de dados do contexto em um CBE poderia fazer com que eles tivessem o mesmo nome de atributo no evento do Console Corporativo, o que não é permitido pelo servidor de eventos. O mecanismo de mapeamento elimina essa possibilidade incluindo o prefixo "ctx." aos nomes dos atributos criados a partir dos elementos de dados do contexto no evento CBE.
Conflitos com o nome de outro elemento de dados do contexto que já tenha sido mapeado no evento do Console Corporativo fará com que a repetição dos elementos de dados do contexto seja descartada.
Como exemplo, considere um evento CBE com os seguintes elementos de dados do contexto
<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>
Os atributos resultantes e os valores correspondentes no evento do Console Corporativo seriam:
ctx.repeat_count=contextValue ctx.repeat_count.type=String ctx.my_Context=contextValue ctx.my_Context.type=String
O primeiro elemento "repeat_count" tem o mesmo nome de um atributo da classe EVENT no Console Corporativo, mas a inclusão do prefixo ctx evita o conflito de nomes.
O segundo elemento de dados do contexto chamado "my_Context" não é mapeado, pois causaria uma duplicação no nome do atributo no evento resultante do Console Corporativo.
O terceiro elemento de dados do contexto chamado "my:Context" não é mapeado, pois o caractere ":" não é um caractere válido em um nome de atributo para um evento do Console Corporativo e deve ser substituído por um caractere "_" (sublinhado) para que possa ser mapeado como um atributo no evento do Console Corporativo. Como o nome resultante "my_Context" já está sendo utilizado, o elemento de dados do contexto é descartado.
Os elementos de dados estendidos são mapeados antes dos elementos de dados do contexto. Desse modo, o conflito de nomes entre o nome convertido de um elemento de dados estendidos e o nome convertido de um elemento de dados do contexto fará com que o elemento de dados do contexto seja descartado.
Como exemplo, considere um evento CBE com os seguintes elementos de dados do contexto
<CommonBaseEvent ...> <extendedDataElements name="ctx.my_Context" type="string"> <values>my value</values> </extendedDataElements> <contextDataElements name="my_Context" type="other_type"> <contextId>http://www.ibm.com</contextId> </contextDataElements> ... </CommonBaseEvent>
Os atributos resultantes e os valores correspondentes no evento do Console Corporativo seriam:
ctx.my_Context='my value'
O elemento de dados do contexto chamado "my_Context" não é mapeado, pois causaria uma duplicação no nome do atributo no evento resultante do Console Corporativo. Observe que quando há um conflito de nomes em um elemento de dados do contexto, o ctx.ContextDataElement.name.type associado também não é criado.