Основы программирования в решениях Docsvision 5 Евгений Колесников Docsvision 28.08.2012.

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



Advertisements
Похожие презентации
Основы программирования в решениях Docsvision 5 Евгений Колесников Docsvision
Advertisements

Docsvision 5 Система управления документами и бизнес-процессами Приложение «Управление документами» Docsvision 5 Система управления документами и бизнес-процессами.
1. Определить последовательность проезда перекрестка
Лекция 2 Раздел 2.1 Windows Phone Темы раздела 3.
Урок повторения по теме: «Сила». Задание 1 Задание 2.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
Модуль переноса решений Как средство распространения партнерских решений Варфоломеев Антон Директор по производству DocsVision.
Г. Москва, тел.: +7 (495) , Internet: Слайды курса «Администрирование работы на сервере.
Docsvision 5 – инструмент современного менеджера.
Типовое решение «Делопроизводство» на базе DocsVision 4.5 SR2 Методический материал Copyright © DocsVision 2011.
Школьная форма Презентация для родительского собрания.
НОВОСИБИРСК Развитие региональных порталов государственных услуг.
Проектирование архитектуры ИСО 1. UML 2 Структура определения языка 4.
DocsVision 4.0 DocsVision 4.0 универсальная система управления документами и бизнес-процессами.
БИТЕК «Бизнес-инжиниринговые технологии» г. Москва, тел.: (495) , Internet: Учебный.
Документооборот не выходя из Офиса Рождественский Алексей Консультант, отдел консалтинга ДоксВижн.
1 Знаток математики Тренажер Таблица умножения 2 класс Школа 21 века ®м®м.
Разработал: Учитель химии, биологии высшей квалификационной категории Баженов Алексей Анатольевич.
Теория Курс пользователя типового реестра государственных и муниципальных услуг 1.

Транксрипт:

Основы программирования в решениях Docsvision 5 Евгений Колесников Docsvision

Слайд: 3 Введение

Слайд: 4 Цель курса Получение знаний и начальных навыков о структуре, объектной модели, интерфейсах прикладного программирования платформы Docsvision, принципах разработки решений на платформе: создание библиотек карточек, расширение функциональности стандартных карточек и разработка собственных с помощью сценариев (скриптов), написание скриптов в бизнес-процессах.

Слайд: 5 Программа курса День 1 Основные элементы Docsvision как платформы. Инструменты конструирования Docsvision 5. Пример простой карточки на Docsvision 5. Структура карточки Docsvision 5. Пример сценария в бизнес-процессе. Другие возможности программного расширения функционала Docsvision 5. Общее описание архитектуры. Docsvision API. Шаблоны решений на платформе День 2 Создание пользовательских сценариев в карточках и бизнес-процессах в Docsvision 5. Практическая работа (2). День 3 Разработка библиотек карточек. Базовая карточка. Практическая работа. Разработка специальных приложений. Практическая работа.

Слайд: 6 Расписание Начало: 10:00 Кофе-брэйк: 11:30 – 11:45 Обед: 13:00 – 14:00 Продолжение занятия: 14:00-15:30 Кофе-брэйк: 15:30-15:45 Продолжение занятия: 15:45-18:00 Вопросы: в любое время!

Слайд: 7 Использование объектной модели Docsvision 5

Слайд: 8 Использование ОМ – где применимо Пользовательские сценарии для карточек (новых, «не VB») Пользовательские сценарии в бизнес-процессах (требуется подключение дополнительных сборок) В собственных карточках – как основу для объектной модели своего решения В собственных карточках – как API существующей функциональности

Слайд: 9 Компоненты ОМ DocsVision.BackOffice.ObjectModel – объектная модель библиотеки «Базовые объекты» Документ Задание Справочники Конструкторы Базовая карточка

Слайд: 10 Компоненты ОМ DocsVision.Platform.ObjectModel – базовые элементы объектной модели ObjectContext BaseObject DocsVisionStore

Слайд: 11 Скрипты в карточках Основной инструмент – Конструктор Разметок Для просмотра (и копирования) существующих скриптов – Конструктор Скриптов

Слайд: 12 Конструктор разметок Позволяет редактировать набор разметок (форм) карточки определенного вида Настройка разметки заключается в добавлении, удалении, расположении элементов управления на карточке, и настройке их свойств Ключевые свойства – источник/элемент данных – обеспечивают автоматическую привязку данных к элементам управления Встроенная функциональность добавления скриптов в качестве обработчиков любых событий элементов карточки, включая ленту инструментов (риббон) и саму карточку

Слайд: 13 Конструктор разметок

Слайд: 14 Конструктор разметок

Слайд: 15 Конструктор разметок

Слайд: 16 Скрипты в карточках Выполняется на клиенте, поэтому следует учитывать производительность Выполнятся от имени текущего пользователя, поэтому следует учитывать права Для отображения диалогов, следует использовать вспомогательные объекты

Слайд: 17 Скрипты в карточках При создании обработчика события, либо нового скрипта в Конструкторе Скриптов, создается основной класс скрипта - Script, где CardType – имя типа карточки; CardSubType – имя вида карточки. Для корневого вида (соответствующего типу) – имя вида в скрипте не учитывается Класс скрипта наследуется либо от скрипта родительского вида карточки, либо от базового класса скрипта (для корневого вида)

Слайд: 18 Скрипты в карточках

Слайд: 19 Свойства и методы класса скрипта Класс скрипта имеет следующие свойства: BaseCardControl CardControl – основной элемент управления карточки; ICardFrame CardFrame – хост-форма элемента управления карточки; BaseCard BaseObject – базовый элемент объектной модели карточки; UserSession Session – пользовательская сессия (для работы через Object Manager); CardData CardData – объект данных карточки (для работы через Object Manager); и метод void RefreshControls() – обновляет содержимое и доступность элементов управления на карточке.

Слайд: 20 Интерфейс ICustomizableControl Позволяет находить элементы управления, расположенные на базовом элементе: T FindPropertyItem (string propertyName) Customizable.FindPropertyItem ("Theme"); Базовый элемент управления карточки реализует интерфейс ICustomizableControl private ICustomizableControl Customizable { get {return CardControl as ICustomizableControl; } }

Слайд: 21 Работа с элементами управления Получение и запись значения элемента управления: ILayoutPropertyItem themeItem = Customizable.FindPropertyItem ("Theme"); MessageBox.Show(themeItem.ControlValue); themeItem.ControlValue = "New Theme"; themeItem.Commit;

Слайд: 22 Работа с элементами объектной модели BaseCard – базовый элемент объектной модели карточки Позволяет читать по ключу значения из произвольных разделов и полей карточки IList GetSection(Guid sectionId) – получение раздела данных Элементы приводятся к типу BaseCardSectionRow – строки раздела данных По индексеру (строковому) из строки можно получить значения конкретных полей: string theme = (string)row["Theme"];

Слайд: 23 Работа с контекстом объектов ObjectContext – универсальный провайдер сервисов и объектов Позволяет загружать типизированные объекты, не привязанные к пользовательской сессии Предоставляет сервисы для работы с объектами системы Получить доступ к контексту объектов можно из скрипта: this.CardControl.ObjectContext

Слайд: 24 Работа с контекстом объектов Получение данных Получение данных по идентификатору в виде типизированных объектов Получение связанных объектов через свойства, загрузка по требованию Работа с ранее загруженными объектами Простой поиск

Слайд: 25 Работа с контекстом объектов Сохранение данных Автоматическое сохранение изменений Сохранение конкретного объекта

Слайд: 26 Работа с контекстом объектов Модель «сервис провайдер» Для выполнения различных действий уровня бизнес-логики используются сервисы Сервис может быть получен из контекста по типу сервиса

Слайд: 27 Работа с контекстом объектов Сервисы карточек Документа и Задания DocumentService, TaskService Сервисы справочников StaffService, PartnersService KindService NumerationRulesService, … Сервисы конструкторов AccessCheckingService, StateService, LayoutService, … Системные сервисы PersistantStore, UserSession

Слайд: 28 Разработка скриптов в бизнес-процессе Конструктор бизнес-процессов – инструмент автоматизации документоцентричных процессов организации Применяется визуальный конструктор – Шаблон Бизнес- процесса Элементами процесса являются: Переменные процесса Активности (функции) процесса Переходы между функциями процесса Одной из функций процесса является «Сценарий» - функциональность которой определяется программным кодом

Слайд: 29 Разработка скриптов в бизнес-процессе

Слайд: 30

Слайд: 31 Разработка скриптов в бизнес-процессе // подключение системных библиотек using System; using System.Xml; // подключение библиотек СУБП using DocsVision.Workflow.Objects; using DocsVision.Workflow.Runtime; using DocsVision.Workflow.Gates; using DocsVision.Platform.HelperAPI; namespace DVScriptHost { class DVScript { // стандартная функция, которая будет вызвана подсистемой СУБП // // входные параметры функции: // // process - информация о процессе. содержит коллекции // Gates - коллекция шлюзов процесса // Variables - коллекция переменных процесса // passInfo - информация о текущем проходе // public void Execute (ProcessInfo process, PassState passInfo) { … } Подключение библиотек Объявление класса Основной метод

Слайд: 32 Разработка скриптов в бизнес-процессе public void Execute (ProcessInfo process, PassState passInfo) { try { // пример: получение переменной процесса с именем Var1 ProcessVariable oVar = process.GetVariableByName("Var1"); // присвоение переменной нового значения oVar.Value = "Scripted"; // запись в журнал процесса process.LogMessage ("Значение переменной изменено"); } catch (Exception ex) { // запись в журнал ошибки исполнения process.LogMessage("Ошибка выполнения скрипта:" + ex.Message); } return; }

Слайд: 33 Разработка скриптов в бизнес-процессе Использование объектной модели BackOffice Подключение пространств имен: using DocsVision.Platform.ObjectModel; using DocsVision.Platform.ObjectModel.Mapping; using DocsVision.Platform.ObjectModel.Persistence; using DocsVision.Platform.Data.Metadata; using DocsVision.BackOffice.ObjectModel; using DocsVision.BackOffice.ObjectModel.Mapping; using DocsVision.BackOffice.ObjectModel.Services; using System.ComponentModel.Design;

Слайд: 34 Разработка скриптов в бизнес-процессе Использование объектной модели BackOffice Инициализация контекста объектов: DVGate m_DVGate = process.Gates[DVGate.GateID] as DVGate; ServiceContainer sessionContainer = new ServiceContainer(); sessionContainer.AddService(Type.GetType("DocsVision.Platform.ObjectManager.UserSession, DocsVision.Platform.ObjectManager, Version= , Culture=neutral, PublicKeyToken=7148afe997f90519"), m_DVGate.UserSession); var objectContext = new ObjectContext(sessionContainer); var mapperFactoryRegistry = objectContext.GetService (); mapperFactoryRegistry.RegisterFactory(typeof(BackOfficeMapperFactory)); var serviceFactoryRegistry = objectContext.GetService (); serviceFactoryRegistry.RegisterFactory(typeof(BackOfficeServiceFactory)); objectContext.AddService (DocsVisionObjectFactory.CreatePersistentStore(new SessionProvider(m_DVGate.UserSession), null)); IMetadataProvider metadataProvider = DocsVisionObjectFactory.CreateMetadataProvider(m_DVGate.UserSession); objectContext.AddService (DocsVisionObjectFactory.CreateMetadataManager(metadataProvider, m_DVGate.UserSession)); objectContext.AddService (metadataProvider);

Слайд: 35 Разработка скриптов в бизнес-процессе Использование объектной модели BackOffice Подключение сборок объектной модели: DocsVision.Platform.ObjectModel.dll DocsVision.BackOffice.ObjectModel.dll Docsvision.Platform.StorageServer.dll

Слайд: 36 Разработка скриптов в бизнес-процессе Использование объектной модели BackOffice support.docsvision.com База знаний -> Форумы Docsvision -> Вопросы по программированию для Docsvision -> Использование объектов Docsvision 5 в скрипте бизнес-процесса

Слайд: 37 Практическая работа Задание 2.1 – Работа с полями в карточке Добавить текстовое поле в карточку Документа вида «Файл». Реализовать проверку этого текстового поля при закрытии карточки: не давать закрыть карточку, если поле не заполнено, если поле содержит значение – выдать сообщение, содержащее это значение. Задание 2.2 – Свойство вида Нумератор Добавить в основную разметку карточки Документа вида «Файл» элемент управления типа «Нумератор». Настроить правило нумерации, согласно которому в элементе выдается номер вида «Ф-N», где N – значение, полученное из нумератора. Разработать скрипт, который при сохранении карточки автоматически выдает номер.

Слайд: 38 Практическая работа Задание 2.3 – Пример разработки БП Разработать бизнес процесс, который по названию организации контрагента в строковой переменной находит ее в справочнике и сохраняет ее ID в другую переменную. Если организации нет в справочнике, то ее необходимо создать. Задание 2.4 – Пример разработки сложного БП Разработать бизнес процесс, который обрабатывает содержимое папки на файловой системе, выбирает из данной папки файлы типов «.doc» и «.docx», и создает по каждому файлу карточку Документа вида «Файл», содержащую этот файл в качестве основного. Если в названии документа содержится слово «Входящий», то создавать карточку Документа вида «Входящий».

Слайд: 39 Использование API базового уровня Компонент ObjectManager – предоставляет программный интерфейс (API) для выполнения всех действий в системе: Подключения к серверу Доступа к данным и метаданным Использования прикладных сервисов И всего остального

Слайд: 40 Использование API базового уровня Структура данных карточки: Общие сведения Схема данных o Секция Строки секции »Подсекция o... Действия Режимы Виртуальные поля Преобразования (шаблоны печати)

Слайд: 41 Использование API базового уровня Типы секций: Структура (хранит общие для всей карточки данные) o Пример: Основная секция всех карточек Коллекция (набор однотипных значений) o Пример: Секция исполнителей задания Дерево (набор однотипных значений, которые зависят друг от друга) o Пример: подразделения в справочнике сотрудников

Слайд: 42 Использование API базового уровня Секция = таблица в базе данных Имя таблицы = dvtable_ Поля секции = колонки таблицы Строки секции = строки таблицы Помимо полей самой секции, таблица также дополняется служебными полями

Слайд: 43 Использование API базового уровня Секция = таблица в базе данных Имя таблицы = dvtable_ Поля секции = колонки таблицы Строки секции = строки таблицы Помимо полей самой секции, таблица также дополняется служебными полями

Слайд: 44 Использование API базового уровня Главный элемент базового API – ObjectManager (DocsVision.Platform.ObjectManager) Для каждого вида задач – свой Manager: SessionManager – соединение с сервером CardManager – доступ к данным FileManager – операции с файлами LogManager – операции с журналом LockManager – механизм блокировок ProfileManager – пользовательские настройки ReportManager – хранимые процедуры ExtensionManager – серверные расширения

Слайд: 45 Использование API базового уровня Главный объект для работы с данными и метаданными – Session.CardManager Задачи: Чтение, изменение и удаление данных карточек Чтение метаданных Поиск карточек Получение данных представления CardData – данные экземпляра карточки SectionData – данные секции RowData – строка секции CardType – описание типа карточки (метаданные)

Слайд: 46 Использование API базового уровня Поиск Виды поиска: Серверный o Полнотекстовый o Атрибутивный Клиентский o Атрибутивный Субъекты поиска: Карточки Строки

Слайд: 47 Использование API базового уровня Формат поиска Серверный поиск: запрос в формате XML Из Навигатора (диалог поиска) Сформированный вручную Объекты API Клиентский поиск: XPath-выражение к данным секции

Слайд: 48 Использование API базового уровня Объектная модель поиска Ключевые объекты: SearchQuery – для поиска карточек SectionQuery – поиск строк Создание: UserSession.CreateSearchQuery UserSession.CreateSectionQuery Выполнение: Поиск карточек: CardManager.FindCards Поиск строк:SectionData.FindRows

Слайд: 49 Использование API базового уровня Состав SearchQuery Ограничения поиска (Scope): По папкам (ScopeFolder) По типам (ScopeCardType) Части запроса: Полнотекстовая (FullTextSearch) Атрибутивная (AttributiveSearch)

Слайд: 50 Использование API базового уровня Атрибутивный поиск CardTypeQuery – типы карточек SectionQuery – секция ConditionGroup – группа условий Condition – условие Join – связывание условий по разным секциям

Слайд: 51 Использование API базового уровня Контейнер карточек Контейнер карточек – среда, в которой выполняются и работают карточки Стандартные контейнеры: Навигатор DVExplorer Web-интерфейс Возможно создание собственных контейнеров!

Слайд: 52 Использование API базового уровня Задачи контейнера Отобразить карточку (на редактирование, на выбор) Отобразить папку Выбрать папку Активировать папку Обновить содержимое …

Слайд: 53 Использование API базового уровня Объект контейнера Основной объект контейнера – CardHost Передается в компоненты карточек: CardControl.CardHost Может быть создан: CardHost.CreateInstance

Слайд: 54 Использование API базового уровня Объект контейнера Основной объект контейнера – CardHost Передается в компоненты карточек: CardControl.CardHost Может быть создан: CardHost.CreateInstance

Слайд: 55 Использование API базового уровня Основные методы CardHost ShowCard – отобразить карточку SelectCard – выбрать карточку SelectFolder – выбрать папку SelectFromCard – выбор строк из карточки ActivateFolder – выбрать папку

Слайд: 56 Практическая работа Задание 2.5 – Выбор карточки Добавить на ленту карточки Документа (в основной разметке вида «Входящая корреспонденция») кнопку, при нажатии на которую производится выбор карточки в Навигаторе, и выбранная карточка добавляется в качестве связанной к текущей карточке Документа. Задание 2.6 – Выбор из справочников, поисковый запрос Добавить на карточку (произвольную) текстовое поле, элемент выбора даты, элемент выбора сотрудника, таблицу и кнопку. По нажатию кнопки должен производиться поиск карточек Документа по заданным атрибутам: названию, дате создания (искать документы, созданные после указанной дате) и автору Документа. Результат вывести в многострочное текстовое поле.

Слайд: 57 Что дальше?

Слайд: 58 Далее в программе Разработка карточек и специализированных утилит Практика!

Спасибо за внимание! «ДоксВижн» , Санкт-Петербург, наб. р. Смоленки, д (812) (812)