CBE 中之環境定義資料元素的對映規則會讓它們在 Enterprise Console 事件中都具有相同的屬性名稱, 但事件伺服器不允許發生這樣的狀況。對映機制會在 CBE 事件中之環境定義資料元素所建立的屬性名稱中新增 "ctx." 字首,以消除該可能性。
與另一個已對映至 Enterprise Console 事件之環境定義資料元素的名稱衝突時,會捨棄重複的環境定義資料元素。
例如,請考慮具有下列環境定義資料元素的 CBE 事件
<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>
在 Enterprise Console 事件中產生的屬性及對應值會是:
ctx.repeat_count=contextValue ctx.repeat_count.type=String ctx.my_Context=contextValue ctx.my_Context.type=String
第一個元素 "repeat_count" 的名稱與 Enterprise Console EVENT 類型中的屬性相同, 但是增加 ctx 字首可以預防名稱衝突。
因為名稱為 "my_Context" 的第二個環境定義資料元素會讓所產生之 Enterprise Console 事件中的屬性名稱重複, 所以不會對映該環境定義資料元素。
因為 ":" 字元不是 Enterprise Console 事件之屬性名稱中的有效字元, 而且必須在對映成 Enterprise Console 事件中的屬性之前取代為 "_" (底線) 字元, 所以不會對映名稱為 "my:Context" 的第三個環境定義資料元素。因為已使用產生的名稱 "my_Context", 所以會捨棄環境定義資料元素。
延伸資料元素會在環境定義資料元素之前進行對映。這表示,若延伸資料元素的已轉換名稱與環境定義資料元素的已轉換名稱之間有衝突的名稱,則會捨棄環境定義資料元素。
例如,請考慮具有下列環境定義資料元素的 CBE 事件
<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>
在 Enterprise Console 事件中產生的屬性及對應值會是:
ctx.my_Context='my value'
因為名稱為 "my_Context" 的環境定義資料元素會讓所產生之 Enterprise Console 事件中的屬性名稱重複, 所以不會對映該環境定義資料元素。請注意,環境定義資料元素發生名稱衝突時, 也不會建立相關聯的 ctx.ContextDataElement.name.type。
將「共用基本事件」格式的環境定義資料元素對映成 Enterprise Console 事件格式