Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемМаргарита Ястребова
1 Основы программирования в решениях Docsvision 5 Евгений Колесников Docsvision
3 Слайд: 3 Введение
4 Слайд: 4 Цель курса Получение знаний и начальных навыков о структуре, объектной модели, интерфейсах прикладного программирования платформы Docsvision, принципах разработки решений на платформе: создание библиотек карточек, расширение функциональности стандартных карточек и разработка собственных с помощью сценариев (скриптов), написание скриптов в бизнес-процессах.
5 Слайд: 5 Программа курса День 1 Основные элементы Docsvision как платформы. Инструменты конструирования Docsvision 5. Пример простой карточки на Docsvision 5. Структура карточки Docsvision 5. Пример сценария в бизнес-процессе. Другие возможности программного расширения функционала Docsvision 5. Общее описание архитектуры. Docsvision API. Шаблоны решений на платформе День 2 Создание пользовательских сценариев в карточках и бизнес-процессах в Docsvision 5. Практическая работа (2). День 3 Разработка библиотек карточек. Базовая карточка. Практическая работа. Разработка специальных приложений. Практическая работа.
6 Слайд: 6 Расписание Начало: 10:00 Кофе-брэйк: 11:30 – 11:45 Обед: 13:00 – 14:00 Продолжение занятия: 14:00-15:30 Кофе-брэйк: 15:30-15:45 Продолжение занятия: 15:45-18:00 Вопросы: в любое время!
7 Слайд: 7 Использование объектной модели Docsvision 5
8 Слайд: 8 Использование ОМ – где применимо Пользовательские сценарии для карточек (новых, «не VB») Пользовательские сценарии в бизнес-процессах (требуется подключение дополнительных сборок) В собственных карточках – как основу для объектной модели своего решения В собственных карточках – как API существующей функциональности
9 Слайд: 9 Компоненты ОМ DocsVision.BackOffice.ObjectModel – объектная модель библиотеки «Базовые объекты» Документ Задание Справочники Конструкторы Базовая карточка
10 Слайд: 10 Компоненты ОМ DocsVision.Platform.ObjectModel – базовые элементы объектной модели ObjectContext BaseObject DocsVisionStore
11 Слайд: 11 Скрипты в карточках Основной инструмент – Конструктор Разметок Для просмотра (и копирования) существующих скриптов – Конструктор Скриптов
12 Слайд: 12 Конструктор разметок Позволяет редактировать набор разметок (форм) карточки определенного вида Настройка разметки заключается в добавлении, удалении, расположении элементов управления на карточке, и настройке их свойств Ключевые свойства – источник/элемент данных – обеспечивают автоматическую привязку данных к элементам управления Встроенная функциональность добавления скриптов в качестве обработчиков любых событий элементов карточки, включая ленту инструментов (риббон) и саму карточку
13 Слайд: 13 Конструктор разметок
14 Слайд: 14 Конструктор разметок
15 Слайд: 15 Конструктор разметок
16 Слайд: 16 Скрипты в карточках Выполняется на клиенте, поэтому следует учитывать производительность Выполнятся от имени текущего пользователя, поэтому следует учитывать права Для отображения диалогов, следует использовать вспомогательные объекты
17 Слайд: 17 Скрипты в карточках При создании обработчика события, либо нового скрипта в Конструкторе Скриптов, создается основной класс скрипта - Script, где CardType – имя типа карточки; CardSubType – имя вида карточки. Для корневого вида (соответствующего типу) – имя вида в скрипте не учитывается Класс скрипта наследуется либо от скрипта родительского вида карточки, либо от базового класса скрипта (для корневого вида)
18 Слайд: 18 Скрипты в карточках
19 Слайд: 19 Свойства и методы класса скрипта Класс скрипта имеет следующие свойства: BaseCardControl CardControl – основной элемент управления карточки; ICardFrame CardFrame – хост-форма элемента управления карточки; BaseCard BaseObject – базовый элемент объектной модели карточки; UserSession Session – пользовательская сессия (для работы через Object Manager); CardData CardData – объект данных карточки (для работы через Object Manager); и метод void RefreshControls() – обновляет содержимое и доступность элементов управления на карточке.
20 Слайд: 20 Интерфейс ICustomizableControl Позволяет находить элементы управления, расположенные на базовом элементе: T FindPropertyItem (string propertyName) Customizable.FindPropertyItem ("Theme"); Базовый элемент управления карточки реализует интерфейс ICustomizableControl private ICustomizableControl Customizable { get {return CardControl as ICustomizableControl; } }
21 Слайд: 21 Работа с элементами управления Получение и запись значения элемента управления: ILayoutPropertyItem themeItem = Customizable.FindPropertyItem ("Theme"); MessageBox.Show(themeItem.ControlValue); themeItem.ControlValue = "New Theme"; themeItem.Commit;
22 Слайд: 22 Работа с элементами объектной модели BaseCard – базовый элемент объектной модели карточки Позволяет читать по ключу значения из произвольных разделов и полей карточки IList GetSection(Guid sectionId) – получение раздела данных Элементы приводятся к типу BaseCardSectionRow – строки раздела данных По индексеру (строковому) из строки можно получить значения конкретных полей: string theme = (string)row["Theme"];
23 Слайд: 23 Работа с контекстом объектов ObjectContext – универсальный провайдер сервисов и объектов Позволяет загружать типизированные объекты, не привязанные к пользовательской сессии Предоставляет сервисы для работы с объектами системы Получить доступ к контексту объектов можно из скрипта: this.CardControl.ObjectContext
24 Слайд: 24 Работа с контекстом объектов Получение данных Получение данных по идентификатору в виде типизированных объектов Получение связанных объектов через свойства, загрузка по требованию Работа с ранее загруженными объектами Простой поиск
25 Слайд: 25 Работа с контекстом объектов Сохранение данных Автоматическое сохранение изменений Сохранение конкретного объекта
26 Слайд: 26 Работа с контекстом объектов Модель «сервис провайдер» Для выполнения различных действий уровня бизнес-логики используются сервисы Сервис может быть получен из контекста по типу сервиса
27 Слайд: 27 Работа с контекстом объектов Сервисы карточек Документа и Задания DocumentService, TaskService Сервисы справочников StaffService, PartnersService KindService NumerationRulesService, … Сервисы конструкторов AccessCheckingService, StateService, LayoutService, … Системные сервисы PersistantStore, UserSession
28 Слайд: 28 Разработка скриптов в бизнес-процессе Конструктор бизнес-процессов – инструмент автоматизации документоцентричных процессов организации Применяется визуальный конструктор – Шаблон Бизнес- процесса Элементами процесса являются: Переменные процесса Активности (функции) процесса Переходы между функциями процесса Одной из функций процесса является «Сценарий» - функциональность которой определяется программным кодом
29 Слайд: 29 Разработка скриптов в бизнес-процессе
30 Слайд: 30
31 Слайд: 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 Слайд: 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 Слайд: 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 Слайд: 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 Слайд: 35 Разработка скриптов в бизнес-процессе Использование объектной модели BackOffice Подключение сборок объектной модели: DocsVision.Platform.ObjectModel.dll DocsVision.BackOffice.ObjectModel.dll Docsvision.Platform.StorageServer.dll
36 Слайд: 36 Разработка скриптов в бизнес-процессе Использование объектной модели BackOffice support.docsvision.com База знаний -> Форумы Docsvision -> Вопросы по программированию для Docsvision -> Использование объектов Docsvision 5 в скрипте бизнес-процесса
37 Слайд: 37 Практическая работа Задание 2.1 – Работа с полями в карточке Добавить текстовое поле в карточку Документа вида «Файл». Реализовать проверку этого текстового поля при закрытии карточки: не давать закрыть карточку, если поле не заполнено, если поле содержит значение – выдать сообщение, содержащее это значение. Задание 2.2 – Свойство вида Нумератор Добавить в основную разметку карточки Документа вида «Файл» элемент управления типа «Нумератор». Настроить правило нумерации, согласно которому в элементе выдается номер вида «Ф-N», где N – значение, полученное из нумератора. Разработать скрипт, который при сохранении карточки автоматически выдает номер.
38 Слайд: 38 Практическая работа Задание 2.3 – Пример разработки БП Разработать бизнес процесс, который по названию организации контрагента в строковой переменной находит ее в справочнике и сохраняет ее ID в другую переменную. Если организации нет в справочнике, то ее необходимо создать. Задание 2.4 – Пример разработки сложного БП Разработать бизнес процесс, который обрабатывает содержимое папки на файловой системе, выбирает из данной папки файлы типов «.doc» и «.docx», и создает по каждому файлу карточку Документа вида «Файл», содержащую этот файл в качестве основного. Если в названии документа содержится слово «Входящий», то создавать карточку Документа вида «Входящий».
39 Слайд: 39 Использование API базового уровня Компонент ObjectManager – предоставляет программный интерфейс (API) для выполнения всех действий в системе: Подключения к серверу Доступа к данным и метаданным Использования прикладных сервисов И всего остального
40 Слайд: 40 Использование API базового уровня Структура данных карточки: Общие сведения Схема данных o Секция Строки секции »Подсекция o... Действия Режимы Виртуальные поля Преобразования (шаблоны печати)
41 Слайд: 41 Использование API базового уровня Типы секций: Структура (хранит общие для всей карточки данные) o Пример: Основная секция всех карточек Коллекция (набор однотипных значений) o Пример: Секция исполнителей задания Дерево (набор однотипных значений, которые зависят друг от друга) o Пример: подразделения в справочнике сотрудников
42 Слайд: 42 Использование API базового уровня Секция = таблица в базе данных Имя таблицы = dvtable_ Поля секции = колонки таблицы Строки секции = строки таблицы Помимо полей самой секции, таблица также дополняется служебными полями
43 Слайд: 43 Использование API базового уровня Секция = таблица в базе данных Имя таблицы = dvtable_ Поля секции = колонки таблицы Строки секции = строки таблицы Помимо полей самой секции, таблица также дополняется служебными полями
44 Слайд: 44 Использование API базового уровня Главный элемент базового API – ObjectManager (DocsVision.Platform.ObjectManager) Для каждого вида задач – свой Manager: SessionManager – соединение с сервером CardManager – доступ к данным FileManager – операции с файлами LogManager – операции с журналом LockManager – механизм блокировок ProfileManager – пользовательские настройки ReportManager – хранимые процедуры ExtensionManager – серверные расширения
45 Слайд: 45 Использование API базового уровня Главный объект для работы с данными и метаданными – Session.CardManager Задачи: Чтение, изменение и удаление данных карточек Чтение метаданных Поиск карточек Получение данных представления CardData – данные экземпляра карточки SectionData – данные секции RowData – строка секции CardType – описание типа карточки (метаданные)
46 Слайд: 46 Использование API базового уровня Поиск Виды поиска: Серверный o Полнотекстовый o Атрибутивный Клиентский o Атрибутивный Субъекты поиска: Карточки Строки
47 Слайд: 47 Использование API базового уровня Формат поиска Серверный поиск: запрос в формате XML Из Навигатора (диалог поиска) Сформированный вручную Объекты API Клиентский поиск: XPath-выражение к данным секции
48 Слайд: 48 Использование API базового уровня Объектная модель поиска Ключевые объекты: SearchQuery – для поиска карточек SectionQuery – поиск строк Создание: UserSession.CreateSearchQuery UserSession.CreateSectionQuery Выполнение: Поиск карточек: CardManager.FindCards Поиск строк:SectionData.FindRows
49 Слайд: 49 Использование API базового уровня Состав SearchQuery Ограничения поиска (Scope): По папкам (ScopeFolder) По типам (ScopeCardType) Части запроса: Полнотекстовая (FullTextSearch) Атрибутивная (AttributiveSearch)
50 Слайд: 50 Использование API базового уровня Атрибутивный поиск CardTypeQuery – типы карточек SectionQuery – секция ConditionGroup – группа условий Condition – условие Join – связывание условий по разным секциям
51 Слайд: 51 Использование API базового уровня Контейнер карточек Контейнер карточек – среда, в которой выполняются и работают карточки Стандартные контейнеры: Навигатор DVExplorer Web-интерфейс Возможно создание собственных контейнеров!
52 Слайд: 52 Использование API базового уровня Задачи контейнера Отобразить карточку (на редактирование, на выбор) Отобразить папку Выбрать папку Активировать папку Обновить содержимое …
53 Слайд: 53 Использование API базового уровня Объект контейнера Основной объект контейнера – CardHost Передается в компоненты карточек: CardControl.CardHost Может быть создан: CardHost.CreateInstance
54 Слайд: 54 Использование API базового уровня Объект контейнера Основной объект контейнера – CardHost Передается в компоненты карточек: CardControl.CardHost Может быть создан: CardHost.CreateInstance
55 Слайд: 55 Использование API базового уровня Основные методы CardHost ShowCard – отобразить карточку SelectCard – выбрать карточку SelectFolder – выбрать папку SelectFromCard – выбор строк из карточки ActivateFolder – выбрать папку
56 Слайд: 56 Практическая работа Задание 2.5 – Выбор карточки Добавить на ленту карточки Документа (в основной разметке вида «Входящая корреспонденция») кнопку, при нажатии на которую производится выбор карточки в Навигаторе, и выбранная карточка добавляется в качестве связанной к текущей карточке Документа. Задание 2.6 – Выбор из справочников, поисковый запрос Добавить на карточку (произвольную) текстовое поле, элемент выбора даты, элемент выбора сотрудника, таблицу и кнопку. По нажатию кнопки должен производиться поиск карточек Документа по заданным атрибутам: названию, дате создания (искать документы, созданные после указанной дате) и автору Документа. Результат вывести в многострочное текстовое поле.
57 Слайд: 57 Что дальше?
58 Слайд: 58 Далее в программе Разработка карточек и специализированных утилит Практика!
59 Спасибо за внимание! «ДоксВижн» , Санкт-Петербург, наб. р. Смоленки, д (812) (812)
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.