Добрый день,есть внешняя бд необходимо загружать на лету данные из нее в деталь. Как это можно реализовать ?

Нравится

4 комментария

Мы создавали VIEW с использованием Linked Server в MS SQL. А уже на основании VIEW делали объекты для деталей

"Владимир Соколов" написал:

Мы создавали VIEW с использованием Linked Server в MS SQL. А уже на основании VIEW делали объекты для деталей


Владимир можете поподробнее рассказать как Вы это делали или скинуть пример кода

"Головачев Дмитрий Александрович" написал:Владимир можете поподробнее рассказать как Вы это делали или скинуть пример кода

В том-то и прелесть, что нет кода.
1) Настраиваете Linked server, если базы у вас на разных серверах. Если на одном, то вообще всё просто - пишите VIEW как SELECT из другой базы. Не забудьте в этом VIEW добавить такие поля как Id, CreatedById, CreatedOn, ModifiedById, ModifiedOn (как в обычных таблицах)
2) В bpm'online создаете объект, отмечая, что он является отображением VIEW
3) Регистрируете деталь мастером, используете деталь на страницах.
4) Можно кодом спрятать кнопки Add, Edit, Copy, Delete. Или просто правами ограничить. Чтобы ошибки при этих действиях не сыпались.
И всё, в принципе

Как альтернативный вариант, если данные нужны в UI (в таком случае сохранение их в БД тоже Ваша задача)

Если у внешней БД есть API для HTTP запросов, и сервер БД корректно настроен на кросс-доменные запросы (см. настройка CORS).
В случаях с MS SQL Server и Windows Server это может быть ASP.NET Web API 2 with Entity Framework.

В клиентском коде JavaScript (клиентской схемы) используйте базовый XMLHttpRequest
кстати в BPMOnline есть и подключенный jQuery, т.е. и ее ajax к Вашим услугам.

Показать все комментарии