La regla de asignación para elementos de datos de contexto en un CBE podría ocasionar que éstos tuvieran el mismo nombre de atributo en el evento de Enterprise, pero el servidor de eventos no lo permite. El mecanismo de asignación elimina dicha posibilidad añadiendo el prefijo "ctx." a los nombres de atributos creados de los elementos de datos de contexto en el evento CBE.
Las colisiones con el nombre de otro elemento de datos de contexto que ya se ha asignado al evento de Enterprise Console provocará que se descarten los elementos de datos de contexto que se repiten.
Como ejemplo, observe un evento CBE con los elementos de datos de contexto siguientes:
<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>
Los atributos resultantes y los valores correspondientes del evento de Enterprise Console serían los siguientes:
ctx.repeat_count=contextValue ctx.repeat_count.type=String ctx.my_Context=contextValue ctx.my_Context.type=String
El primer elemento "repeat_count" tiene el mismo nombre que un atributo de la clase EVENT de Enterprise Console, pero la adición del prefijo ctx evita la colisión de nombres.
El segundo elemento de datos de contexto denominado "my_Context" no está asignado porque produciría un nombre de atributo duplicado en el evento de Enterprise Console resultante.
El tercer elemento de datos de contexto denominado "my_Context" no se ha asignado porque el carácter ":" no es un carácter válido en un nombre de atributo para un evento de Enterprise Console y ha tenido que sustituirse por un carácter "_" (subrayado) para poderse asignar a un atributo del evento de Enterprise Console. Puesto que el nombre resultante "my_Context" ya se ha utilizado, el elemento de datos de contexto se descarta.
Los elementos de datos ampliados se asignan antes que los elementos de datos de contexto. En este sentido, los conflictos de nombres entre el nombre convertido de un elemento de datos ampliados y el nombre convertido de un elemento de datos de contexto harán que se descarte el elemento de datos de contexto.
Como ejemplo, observe un evento CBE con los elementos de datos de contexto siguientes:
<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>
Los atributos resultantes y los valores correspondientes del evento de Enterprise Console serían los siguientes:
ctx.my_Context='my value'
El elemento de datos de contexto denominado "my_Context" no está asignado porque produciría un nombre de atributo duplicado en el evento de Enterprise Console resultante. Observe que cuando existe una colisión entre nombres para un elemento de datos de contexto, tampoco se crea el ctx.ContextDataElement.name.type asociado.