Banner - Use BEP on the user-defined tables
BEP, Banner Events Publisher, can be used to capture the data change on the specific tables, like ODI
There are a lot of pre-defined events for the Ellucian delivered tables
Today, I will show you how to use BEP for the user-defined tables.
First, lets create a test table, two columns {TABLE_NAME}_VPDI_CODE and {TABLE_NAME}_GUID are mandatory, because the trigger the BEP generated uses these two columns. We don’t have to fill them.
create table baninst1.bep_test_1( id number, name varchar2(30), gender char(1), comments varchar2(3000), bep_test_1_VPDI_CODE varchar2(6), bep_test_1_guid varchar2(36), constraint pk_bep_test_1 primary key (id) )
Then, go to the BEP console, create a new event.
I use USER. as the prefix of the event name. The prefix is used by RabbitMQ to route data to the different queues.
Go to Capture Data tab to add this table into the event.
I am using ID as the reference column.
In BEP, the reference column can only be one column, we can use GUID if it is meaningful.
Go to Triggers table to make sure the trigger was created. If not, click Activate and then Refresh
To the RabbitMQ:
http://emb1.pprd.odu.edu:15672/
Create a queue named user_defined_queue, with a binding
Then, we can insert a data into baninst1.bep_test_1
insert into baninst1.bep_test_1 values(8,'bbb','F','ccc','dasda','dasdasdsadasd'); commit;
Then, monitor table baninst1.bep_test_1 to wait until the message is consumed
select * from cdcadmin.BEP_MULTI_CONSUMER_TABLE
Go to the page of the queue user_defined_queue
We can check the message in RabbitMQ here
The format of the message in “DEFAULT” integration type:
Message 1 The server reported 2 messages remaining. Exchange bep_events_topic Routing Key USER.BEP_TEST_1 Redelivered Properties app_id: BEP priority: 0 delivery_mode: 2 headers: event: USER.BEP_TEST_1 content_type: application/json Payload 624 bytes Encoding: string { "businessEvent": "USER.BEP_TEST_1", "messageId": "161572425917", "timeStamp": "2020-06-03T15:53:22.897-04:00", "sourceOfChange": "Banner", "key": "8", "entity": "BEP_TEST_1", "changeType": "INSERT", "changeData": [ { "name": "ID", "new": "8" }, { "name": "NAME", "new": "bbb" }, { "name": "GENDER", "new": "F" }, { "name": "COMMENTS", "new": "ccc" }, { "name": "BEP_TEST_1_VPDI_CODE", "new": "dasda" }, { "name": "BEP_TEST_1_GUID", "new": "dasdasdsadasd" } ], "additionalData": [] } Message 2 The server reported 1 messages remaining. Exchange bep_events_topic Routing Key USER.BEP_TEST_1 Redelivered Properties app_id: BEP priority: 0 delivery_mode: 2 headers: event: USER.BEP_TEST_1 content_type: application/json Payload 624 bytes Encoding: string { "businessEvent": "USER.BEP_TEST_1", "messageId": "161572451091", "timeStamp": "2020-06-03T16:00:26.028-04:00", "sourceOfChange": "Banner", "key": "8", "entity": "BEP_TEST_1", "changeType": "DELETE", "changeData": [ { "name": "ID", "old": "8" }, { "name": "NAME", "old": "bbb" }, { "name": "GENDER", "old": "F" }, { "name": "COMMENTS", "old": "ccc" }, { "name": "BEP_TEST_1_VPDI_CODE", "old": "dasda" }, { "name": "BEP_TEST_1_GUID", "old": "dasdasdsadasd" } ], "additionalData": [] } Message 3 The server reported 0 messages remaining. Exchange bep_events_topic Routing Key USER.BEP_TEST_1 Redelivered Properties app_id: BEP priority: 0 delivery_mode: 2 headers: event: USER.BEP_TEST_1 content_type: application/json Payload 752 bytes Encoding: string { "businessEvent": "USER.BEP_TEST_1", "messageId": "161572557570", "timeStamp": "2020-06-03T16:30:32.796-04:00", "sourceOfChange": "Banner", "key": "7", "entity": "BEP_TEST_1", "changeType": "UPDATE", "changeData": [ { "name": "ID", "old": "7", "new": "7" }, { "name": "NAME", "old": "bbb", "new": "bbb" }, { "name": "GENDER", "old": "M", "new": "F" }, { "name": "COMMENTS", "old": "ccc", "new": "ccc" }, { "name": "BEP_TEST_1_VPDI_CODE", "old": "dasda", "new": "dasda" }, { "name": "BEP_TEST_1_GUID", "old": "dasdasdsadasd", "new": "dasdasdsadasd" } ], "additionalData": [] }