В тулсах на стороне сибеля
Создаём таблицу в бд сибеля с двумя пользовательскими полями (D - числовое и Str - строковое). Не забывайте сначала заставить тулсы создать таблицу в базе (кнопка apply/ddl) и активировать её (вторая кнопка)
на основе этой таблицы создаём БК. Причём культурно создаём, через контекстное меню, визард и так далее
Создаём новый БО. Добавляем в него созданный на предыдущем шаге БК и делаем его главным для данного БО (ибо он там единственный)
Все созданные объекты надо добавить в репозиторий и подложить на сервер сибеля под русскую и английскую (это самое важное) версии
В тулките на стороне шины
Создаём поток используя ноду сибелёвского адаптера
далее выбираем проект подключения к сибелёвскому серверу (или создаём проект подключения если у нас раньше его не было).
Примечание: для создания нового проекта подключения вам понадобятся файлы Siebel.jar и SiebelJI_enu.jar (взять с сервера сибеля)
Далее надо будет выбрать (или создать, там кнопочка "new...") мессаджсет (message set) для адаптера, который необходимо диплоить вместе с ним, при любом изменении набора полей выбираемых адаптером из БК на стороне сибеля.
Примеры работы с адаптером
Вот такой у нас мессаджсет получился
ESQL-код в компуте-ноде
declare myns namespace '
http://www.ibm.com/xmlns/prod/wbi/j2ca/siebel/BOTestObjBCTestComp1';
CREATE COMPUTE MODULE flow1_Compute
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
CREATE FIELD OutputRoot.DataObject.myns:BOTestObjBCTestComp1;
DECLARE custref REFERENCE TO OutputRoot.DataObject.myns:BOTestObjBCTestComp1;
set custref.Str='ppoott';
set custref.D=6666;
RETURN TRUE;
END;
END MODULE;
вот так выглядит группа выполнения с нашим потоком:
1)Создание новой записи
до входа в адаптер:
на выходе из адаптера:
Как видно появилось ай-ди новосозданной записи
2)Поиск записей
set custref.Str='*';
на входе в адаптер(говорим, что искать все записи имеющие не пустое поле Str):
Также можно подавать "pon*" или "*on*" и так далее и любой набор полей. Все поданные поля будут участвовать в поиске
на выходе из адаптера мы получаем все найденные записи:
работать с ними можно с помощью следующей конструкции (взято из другого проекта).
InputRoot.DataObject.phoneContainer:BOAlternatePhoneBCAlternatePhoneContainer[<].BOAlternatePhoneBCAlternatePhone[I].Address;