Die Zuordnungsregel für Kontextdatenelemente in einem CBE könnte verursachen, dass sie den gleichen Attributnamen im Enterprise Console-Ereignis haben, was vom Ereignisserver aus nicht zulässig ist. Der Zuordnungsmechanismus räumt diese Möglichkeit aus, indem er das Präfix "ctx." an die Attributnamen anhängt, die von den Kontextdatenelementen im CBE-Ereignis erstellt werden.
Konflikte mit dem Namen eines anderen Kontextdatenelements, das bereits im Enterprise Console-Ereignis zugeordnet wurde, führen dazu, dass sich wiederholende Kontextdatenelemente verworfen werden.
Nehmen Sie als Beispiel ein CBE-Ereignis mit den folgenden Kontextdatenelementen:
<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>
Die sich ergebenden Attribute und entsprechenden Werte im Enterprise Console-Ereignis wären:
ctx.repeat_count=contextValue ctx.repeat_count.type=String ctx.my_Context=contextValue ctx.my_Context.type=String
Das erste Element "repeat_count" hat den gleichen Namen wie ein Attribut in der Enterprise Console-Ereignisklasse, aber das Präfix ctx als Zusatz verhindert den Namenskonflikt.
Das zweite Kontextdatenelement mit der Bezeichnung "my_Context" wird nicht zugeordnet, da es einen doppelten Attributnamen im resultierenden Enterprise Console-Ereignis verursachen würde.
Das dritte Kontextdatenelement mit der Bezeichnung "my:Context" wird nicht zugeordnet, das das Zeichen ":" kein gültiges Zeichen in einem Attributnamen für ein Enterprise Console-Ereignis ist und durch das Unterstreichungszeichen ("_") ersetzt werden müsste, bevor es einem Attribut im Enterprise Console-Ereignis zugeordnet werden kann. Da der resultierende Name "my_Context" bereits verwendet wird, wird das Kontextdatenelement verworfen.
Erweiterte Datenelemente werden vor Kontextdatenelementen zugeordnet. Das bedeutet, dass bei einem Konflikt zwischen einem konvertierten Namen eines erweiterten Datenelements und einem konvertierten Namen eines Kontextdatenelements, der Letztere verworfen wird.
Nehmen Sie als Beispiel ein CBE-Ereignis mit den folgenden Kontextdatenelementen:
<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>
Die sich ergebenden Attribute und entsprechenden Werte im Enterprise Console-Ereignis wären:
ctx.my_Context='my value'
Das Kontextdatenelement mit der Bezeichnung "my_Context" wird nicht zugeordnet, da es einen doppelten Attributnamen im resultierenden Enterprise Console-Ereignis verursachen würde. Beachten Sie, dass im Falle eines Namenskonflikts für ein Kontextdatenelement auch das zugehörige ctx.ContextDataElement.name.type nicht erstellt wird.
Kontextdatenelemente im Common Base Event-Format dem Enterprise Console-Ereignisformat zuordnen