«Центр Разработки и Внедрения Террасофт Поволжье» Интеграция с внешними системами.

Презентация:



Advertisements
Похожие презентации
«Центр Разработки и Внедрения Террасофт Поволжье» Общие принципы интеграций bpmonline.
Advertisements

Bpmonline PT 1C Connector Центр Разработки и Внедрения Террасофт Поволжье Руководитель Отдела Исследований и Разработки Александр Свистунов.
Центр Разработки и Внедрения Terrasoft Поволжье Документ как основа методологии.
«Центр Разработки и Внедрения Террасофт Поволжье» Пленарная сессия.
«Центр Разработки и Внедрения Террасофт Поволжье» Типичные задачи в Terrasoft 3.Х.
«Центр Разработки и Внедрения Террасофт Поволжье» JS/ExtJS или как сломать мозг программисту C#
«Центр Разработки и Внедрения Террасофт Поволжье» Бизнес - процессы.
«Центр Разработки и Внедрения Террасофт Поволжье» Отчеты. От простого к ужасу.
Инструментальная система разработки распределенных приложений «SiTex»
CRM БИЗНЕС СИСТЕМА. MS TelemarketingSIA "Multi Stream"2 CRM Customer Rrelationship Management - Управление взаимоотношениями с клиентами; Модель взаимодействия,
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Единая система аутентификации Обзор решения Москва, 2012г.
Call Centre сервер Terrasoft CRM на платформе Oktell.
Технические возможности. Наши цели Максимальная гибкость Максимальная скорость считывания и обработки данных Стабильность работы Максимальная простота.
Источники данных LINQ РУБД. LINQ (Language Integrated Query, язык интегрированных запросов ) это технология, которая позволяет разработчикам формировать.
Интегрированная система для совместной работы Lotus Notes / Domino г. Киев, ул. Фрунзе, 69 тел.: +38 (044)
Технические спецификации и программные комплексы E2EDM Белов С.В., Сухоносов С.В., Булгакова К.В ЦОД ВНИИГМИ-МЦД,2006.
ДонНУ, кафедра КТ, проф.В.К.Толстых WCF-службы Создание и тестирование.dll-библиотеки WCF-служб Из цикла лекций «Internet-технологии разработки приложений»
Учебный семинар по ASP.NET Нижегородское сообщество.NET разработчиков Нижегородское сообщество.NET разработчиков Лаборатория информационных технологий.
Объектный доступ к Cache из среды.NET Александр Харитонов, InterSystems.
Транксрипт:

«Центр Разработки и Внедрения Террасофт Поволжье» Интеграция с внешними системами

Содержание Средства и инструменты интеграции Протокол OData Интеграция через Web service PT 1C Connector Quartz.NET

Средства и инструменты интеграции

Цели интеграции Bpmonline 1C Средство интеграции Синхронизация работы подразделений компании Информация вводится один раз Единая база справочников Автоматический обмена данными между системами

Средства интеграции Bpmonline Средство интеграции БП bpmonline SQL bpmonline Web service 1C SQL 1C OData Com Приложение 1C

Дополнительные инструменты интеграции.Net Managed Assemblies Com Dll Промежуточные файлы Подробнее об интеграции:

DEMO Взаимодействие с bpmonline с помощью dll-библиотек

DLL. Добавление dll файла в разделе в конфигураторе

DLL. Добавление Using директив

DLL. Создание бизнес-процесса и написание кода

DLL. Результат работы

Основные схемы интеграции. Мастер-система SQL bpmonline SQL 1C OData Приложение БП bpmonline Web service 1C Мастер-система – система, изменения данных которой являются наиболее приоритетными при интеграции

Интеграция на основе SQL job SQL bpmonline SQL 1C Достоинства Быстрота Безопасность Недостатки On-site 1C только на SQL БД Индивидуальные для каждого проекта хранимые процедуры

Интеграция на основе SQL job. Разработка Дополнительные поля в 1С для хранения id записи из bpmonline Хранимые процедуры интеграции SQL Job запускающий хранимые процедуры в соответствии с расписанием SQL bpmonline SQL 1C

Интеграция через отдельное приложение SQL 1C OData Приложение Com 1C Достоинства On-site и on-demand Файловая и SQL 1C Недостатки Невозможна интеграция по событию Скорость

Интеграция через отдельное приложение. Разработка Дополнительные поля в 1С для хранения id записи из bpmonline либо в bpmonline для хранения кодов, номеров и дат 1С Код Регистрация приложения в Windows Scheduler SQL 1C OData Приложение Com 1C

Протокол OData

Data Protocol (OData) это открытый веб-протокол для запроса и обновления данных Позволяет выполнять операции с ресурсами, используя в качестве запросов HTTP-команды, и получать ответы в форматах Atom, JSON или XML. Microsoft выпустила OData SDK, состоящий из библиотек для.NET Framework, AJAX, PHP, Java, JavaScript, WebOS, и Objective-C.

OData. Поддерживаемые операции Добавление/обновление/удаление объекта Добавление/удаление связей между объектами Получение коллекции объектов Получение конкретного объекта Получение отдельного поля / нескольких полей конкретного объекта Получение N первых объектов коллекции Возврат коллекции объектов, пропустив N объектов (с N+1 объекта) Сортировка объектов

DEMO Взаимодействие с bpmonline по протоколу OData

OData. Генерация прокси-классов сервиса

OData. Работа через WCF-клиент Получение коллекции контактов явным запросом через объект контекста: public static void GetContactCollectionExample() { // Объявление переменной адреса сервиса OData Uri serverUri = new Uri(" /0/ServiceModel/EntityDataService.svc/"); // Определение Uri запроса к сервису, который возвращает коллекцию контактов. Uri contactUri = new Uri(serverUri, "ContactCollection"); // Создание объекта контекста приложения BPMonline. var context = new BPMonline(serverUri); // Указание имени и пароля пользователя BPMonline. context.Credentials = new NetworkCredential("BPMUserName", "BPMUserPassword"); try { // Выполнение явного запроса к сервису вызовом метода Execute(). foreach (Contact contact in context.Execute (contactUri)) { // Выполнение действий с контактами. } } catch (Exception ex) { // Обработка ошибок. } Получение коллекции контактов неявным запросом через объект контекста: public static void GetContactCollectionExample() { // Объявление переменной адреса сервиса OData Uri serverUri = new Uri(" /0/ServiceModel/EntityDataService.svc/"); // Создание объекта контекста приложения BPMonline. var context = new BPMonline(serverUri); // Указание имени и пароля пользователя BPMonline. context.Credentials = new NetworkCredential("BPMUserName", "BPMUserPassword"); try { // Определение неявного запроса к сервису для получения коллекции контактов. DataServiceQuery allContacts = context.ContactCollection; foreach (Contact contact in allContacts) { // Выполнение действий с контактами. } } catch (Exception ex) { // Обработка ошибок. } Пример получения коллекции контактов через LINQ–запрос: public static void GetContactCollectionExample() { // Объявление переменной адреса сервиса OData Uri serverUri = new Uri(" /0/ServiceModel/EntityDataService.svc/"); // Создание контекста приложения BPMonline. var context = new BPMonline(serverUri); // Указание имени и пароля пользователя BPMonline. context.Credentials = new NetworkCredential("BPMUserName", "BPMUserPassword"); try { // Построение запроса LINQ для получение коллекции контактов. var allContacts = from contacts in context.ContactCollection select contacts; foreach (Contact contact in allContacts) { // Выполнение действий с контактами. } } catch (Exception ex) { // Обработка ошибок. }

Особенности использования OData в bpmonline Используя ОData нельзя работать с системными таблицами, например, нельзя создавать пользователей системы, т.к. при работе через протокол OData на уровне ядра запрещен доступ к системным таблицам (с приставкой Sys-) В bpmonline реализована принудительная постранично есть при возврате результирующих коллекций объектов. По умолчанию запрос возвращает первые 40 объектов.

Интеграция через Web service

Интеграция через Web service 1C БП bpmonline Web service 1C Достоинства On-site и on-demand Файловая и SQL 1C Интеграция по событию Недостатки Скорость Web service доступны через интернет

Интеграция через Web service 1C. Разработка БП bpmonline Web service 1C Web service получение данных об объектах, создание новых, удаление (в случае мастер-системы bpmonline) XDTO package 1C Интерфейс БП bpmonline (событийные либо запускающиеся с помощью Quartz.NET)

PT 1C Connector

PT 1C Connector – продукт, позволяющий пользователю bpmonline 7. X настраивать интеграцию с 1С. Гибкое расписание Интеграция справочников и документов Фильтрация данных Иерархии и агрегации Выполнение скриптов в 1С

DEMO

Quartz.NET

Библиотека Quartz.NET Quartz.NET – это библиотека.NET с открытым исходным кодом, написанным на C#. Планировщик оперирует понятиями задание и триггер. Задание (job) представляет собой исполняемую задачу, которая может быть запланирована. Триггер (trigger) представляет собой график выполнения задачи.

Преимущества Quartz.NET Задание может быть создано и сохранено в планировщике независимо от триггера После отрабатывания триггеров задание остается в планировщике и может быть отредактировано или использовано в дальнейшем без повторного переопределения Одно задание может быть связано с несколькими различными триггерами Триггер может быть модифицирован без переопределения связанных с ним заданий

Методы и свойства класса AppScheduler Instance - получение экземпляра планировщика приложения CreateProcessJob() - создание задания для запуска процесса ScheduleImmediateProcessJob() - планирование задачи для немедленного однократного запуска процесса ScheduleMinutelyProcessJob() - планирование задачи для запуска процесса с заданным интервалом, начиная с текущего момента DoesJobExist() - проверка существования задания в заданной группе RemoveJob() - удаление задачи из планировщика Более подробно свойства и методы класса описаны в bpmonline SDK

Примеры работы с AppSheduler и Quartz.NET запуск процесса по графику: начиная с текущего момента, запускать процесс в 10:30, 11:30, 12:30 и 13:30 каждую среду и пятницу // Создание задания для запуска процесса. IJobDetail job = AppScheduler.CreateProcessJob("ReadSomeDataProcessJob", null, "ReadSomeDataProcess", "CurrentWorkspace", "CurrentUserName"); // Создание Cron-триггера, соответствующего графику запуска задания. ITrigger trigger = new CronTriggerImpl("ReadSomeDataProcessTrigger", null, " ? * WED,FRI"); // Добавление задания и триггера в планировщик. AppScheduler.Instance.ScheduleJob(job, trigger); начиная с текущего момента, запускать процесс каждые 15 минут в течение часа // Создание задания для запуска процесса. IJobDetail job = AppScheduler.CreateProcessJob("ReadSomeDataProcessJob", null, "ReadSomeDataProcess", "CurrentWorkspace", "CurrentUserName"); // Создание простого триггера, соответствующего графику запуска задания. ITrigger trigger = new SimpleTriggerImpl("ReadSomeDataProcessTrigger", null, DateTime.UtcNow, DateTime.UtcNow.AddHours(1), MisfireInstruction.SimpleTrigger.RescheduleNextWithExistingCount, TimeSpan.FromMinutes(15)); // Добавление задания и триггера в планировщик. AppScheduler.Instance.ScheduleJob(job, trigger); начиная с текущего момента, запускать процесс с интервалом в 3 часа // Задание интервала запуска процесса (в минутах). int minutleyInterval = 180; // Добавление задания по запуску процесса в планировщик. AppScheduler.ScheduleMinutelyProcessJob("ReadSomeDataProcessJob", null, "ReadSomeDataProcess", "CurrentWorkspace", "CurrentUserName", minutleyInterval);

Пример передачи параметров в БП (для 7.х) // Создание словаря, хранящего параметры var parameters = new Dictionary (); // Добавление параметра в словарь parameters.Add("ConnectorSettingsId", connectorSettings.ToString()); IJobDetail job = AppScheduler.CreateProcessJob("ReadSomeDataProcessJob", null, "ReadSomeDataProcess", "CurrentWorkspace", "CurrentUserName", parameters); // Создание простого триггера, соответствующего графику запуска задания. ITrigger trigger = new SimpleTriggerImpl("ReadSomeDataProcessTrigger", null, DateTime.UtcNow, DateTime.UtcNow.AddHours(1), MisfireInstruction.SimpleTrigger.RescheduleNextWithExistingCount, TimeSpan.FromMinutes(15)); // Добавление задания и триггера в планировщик. AppScheduler.Instance.ScheduleJob(job, trigger);

Россия: Самара, Московское шоссе 4 а +7 (846) , Москва, Ул. Каланчевская, д (495) , Киев, пр-т. Краснозвездный, 115-А +38 (044) Украина: PORTLAND HOUSE, BRESSENDAN PLACE, LONDON SW1E 5RS +44 (2) UK: Alexandria: 901 N Pitt Street, Suite 325 Alexandria +1 (917) m