Функционал интегратора OeBS, прямо скажем, не совершенен.
Глюки, с которыми сталкивался я:
1. Добавление атрибутов в интерфейс
4. Добавление атрибутов в мэппинг BNE_MAPPING_LINES (внимательно!)
Порядок столбцов в формируемом документе excel можно узнать запросом:
Глюки, с которыми сталкивался я:
- быстрее и проще создать интегратор с нуля, чем править уже имеющийся. При удалении объектов интегратора не удаляются внутренние связи, и если удалить, например, один контент и создать новый под другим именем, мэппинг будет упорно ссылаться на старый;
- если в интеграторе нет ошибок, это ещё не значит, что он будет корректно выполнять свою задачу. Это касается, например, добавления новых колонок в шаблон и интерфейсную таблицу. Колонки созданы, изменения в интерфейсе, мэппинге и контенте проведены, шаблон выгружается и загружается нормально, но данные просто не попадают в таблицу. Никаких ошибок, никакого результата;
- при создании разметки полей документа двигать их по одному, пока не добьешься нужного порядка - занятие неэффективное, но другого инструмента BNE не предоставляет. Почему бы не выводить окошко с номером сразу для всех колонок? Здесь глюк был в том, что если спускать колонку сверху вниз, то на середине пути она замирает и не реагирует на нажатия кнопок "вверх", "вниз".
1. Добавление атрибутов в интерфейс
BEGIN BNE_INTERFACE_COLS "2" //увеличивать это число OWNER = "ANONYMOUS" OBJECT_VERSION_NUMBER = "2" INTERFACE_COL_TYPE = "1" INTERFACE_COL_NAME = "LOAD_CODE" ENABLED_FLAG = "Y" REQUIRED_FLAG = "N" DISPLAY_FLAG = "Y" READ_ONLY_FLAG = "N" NOT_NULL_FLAG = "N" SUMMARY_FLAG = "N" MAPPING_ENABLED_FLAG = "Y" DATA_TYPE = "1" FIELD_SIZE = "22" DEFAULT_TYPE = "PARAMETER" DEFAULT_VALUE = "XXIP361_CODE" VAL_COMPONENT = "" "" DISPLAY_ORDER = "2" //увеличивать это число PROMPT_LEFT = "Код загрузки" PROMPT_ABOVE = "LOAD_CODE" LAST_UPDATE_DATE = "2013/05/24" VAL_QUERY = "" "" EXPANDED_SQL = "" "" END BNE_INTERFACE_COLS2. Добавление атрибутов в контент
BEGIN BNE_CONTENT_COLS "3" //увеличивать это число OBJECT_VERSION_NUMBER = "1" OWNER = "ANONYMOUS" COL_NAME = "PROJECT_CODE" USER_NAME = "PROJECT_CODE" LAST_UPDATE_DATE = "2013/05/24" READ_ONLY_FLAG = "N" END BNE_CONTENT_COLS3. Правка таблицы BNE_STORED_SQL. Запрос апдейтим напрямую, добавив новые поля интерфейсной таблицы.
4. Добавление атрибутов в мэппинг BNE_MAPPING_LINES (внимательно!)
BEGIN BNE_MAPPING_LINES "2" //увеличиваем это число INTERFACE_ASN = "XXMY" INTERFACE_CODE = "XXMY_LOAD_X_INTF1" INTERFACE_SEQ_NUM = "12" //ID атрибута интерфейса OWNER = "ANONYMOUS" DECODE_FLAG = "N" OBJECT_VERSION_NUMBER = "1" CONTENT_ASN = "XXRT" CONTENT_CODE = "XXMY_LOAD_CNT2" CONTENT_SEQ_NUM = "2" //ID атрибута контента LAST_UPDATE_DATE = "2013/05/24" END BNE_MAPPING_LINES5. Добавление атрибутов в LAYOUT (внимательно!)
BEGIN BNE_LAYOUT_COLS "520" //увеличиваем число с шагом в 10 OWNER = "APANIN" OBJECT_VERSION_NUMBER = "1" INTERFACE_ASN = "XXMY" INTERFACE_CODE = "XXMY_LOAD_X_INTF1" INTERFACE_SEQ_NUM = "45" //ID атрибута интерфейса DISPLAY_WIDTH = "15" LAST_UPDATE_DATE = "2014/02/13" READ_ONLY_FLAG = "N" END BNE_LAYOUT_COLSПосле этих манипуляций интегратор должен работать с новыми колонками.
Порядок столбцов в формируемом документе excel можно узнать запросом:
with col_order as (select intr.interface_col_name, col.sequence_num from BNE_LAYOUTS_B lay, BNE_LAYOUT_BLOCKS_B blo, BNE_LAYOUT_COLS col, BNE_INTERFACE_COLS_B intr where lay.layout_code = blo.layout_code and blo.layout_code = col.layout_code and blo.block_id = col.block_id and intr.sequence_num = col.interface_seq_num and intr.interface_code = 'XXMY_LOAD_X_INTF1' and lay.layout_code = 'XXMY_CORRECT_LOAD' and blo.block_id = 2 //номер блока (1 - шапка документа) order by col.sequence_num) select co.interface_col_name, co.sequence_num from col_order co;Для изменения порядка делаем апдейт таблицы BNE_LAYOUT_COLS.