RSS Подписка на статьи RSS Подписка на комментарии Панель инструментов

Блог профессионалов стал частью сайта технической поддержки DocsVision http://support.docsvision.com. Новые материалы будут появляться уже на этом сайте.

Поиск

Ярлыки

авто генерация кода (1) Администрирование DocsVision (60) Атрибутивный поиск (3) База данных (24) Базы знаний (1) Безопасность (1) Бизнес-процессы (20) Блог (2) Вы увидите это первыми (1) Групповые политики (1) Диаграммы (2) Задания (2) Интеграция (2) Карточки DocsVision (14) Конструктор Решений (11) Маркетинг и продажи (4) Навигатор (3) Новое (3) Новости (32) Опрос (4) Опросы DocsVision (4) Оптимизация (3) Отчеты (2) Ошибки (1) Поддержка (14) Полезные ссылки (1) Представления (4) Производительность (5) Разбор полетов (18) Разработка для Workflow (7) разработка карточек (2) Разработка на платформе DocsVision (41) Разработка решений (43) Расширение платформы (1) Расширенные отчеты (9) Решения на платформе DocsVision (6) Сервисы DocsVision (3) Сканеры (3) Справочник сотрудников (1) Справочник типов (1) Установка (1) Утилиты (13) Шлюз в SharePoint (8) Штрихкод (2) Cкрипты карточек (7) DocsVision внутри (1) DocsVision Live (1) FileStream (1) FireFox (2) Opera (1) Powershell (5) Safari (1) SharePoint2007 (1) SharePoint2010 (2) Silverlight (1) UltraViews (1) Vista (1)

Некоторые представления

Ниже будут представлены ряд представлений, которые могут быть интересны (все представления находятся в ftp://ftp.docsvision.com/blog/views41.rar):

1. В представлении выводится название задание бизнес процесса и папка, в которой находится его ярлык (Задание бп и папка где лежит.xml).

2. Выводятся только те карточки входящих документов, отправитель в которых входит в определенную группу в справочнике контрагентов (Вывод по названию группы отправителя.xml).

3. Выводятся все роли справочника сотрудников, с содержанием и должностями сотрудников (Роли.xml).

4. Представление по карточке согласования, чтобы было видно, кто из согласователей на каком цикле какие замечания внес (Согласование.xml).

Цикл 1

Согласователь1; Замечания согласователя

Согласователь2; Замечания согласователя

Цикл 2

Согласователь1; Замечания согласователя

Согласователь2;Замечания согласователя

5. В данном представлении выводятся табличные свойства карточки в виде таблицы (таблицы 1.xml)

Читать дальше

Оставить комментарий (всего: 1)

Как найти карточку, в которой чего-то нет

Например, нет файла или свойства с каким-то названием, нет задач с определенным статусом и т.п.

Используйте для такого поиска условие на Количество. Такое поле вы можете найти в каждой коллекционной секции.

Если просто указать Количество=0, то будут найдены карточки, в которых совсем нет строк в данной секции. Например, запрос на рисунке найдет карточки входящих, которые совсем не содержат свойств.
Если нужно найти карточки, в которых нет свойств с определенным названием, добавьте условие на Название под условие на Количество.
Или вот пример запроса, который находит карточки без файлов с заданным названием (к вопросу red). Читать дальше

Оставить комментарий (всего: 3)

Сбор дампов встроенными отладчиками

В операционных системах Windows есть встроенные отладчики, которые собирают дамп при аварийном завершении приложения (окно вида "Приложение совершило недопустимую операцию и будет закрыто"). Дампы необходимы нашим разработчикам, чтобы понять, что послужило причиной падения приложения. В этой статье я расскажу как настройть отладчики для сбора дампов в разных версиях DocsVision.


В Windows XP и Windows Server 2003 отладчик - приложение Doctor Watson (DrWatson).
Для вызова настроек нужно набрать в коммандной строке drwtsn32

Выставьте тип дампа Full (Полный). Опции Visual Notification (Визуальное оповещение) и Create Crash Dump File (Создать файл дампа).
При сбое файл дампа будет сохранен в папке, которая указана в поле Crash Dump.

Так же необходимо установить Dr Watson как отладчик по умолчанию. Для этого выполните в командной строке drwtsn32 –i


В Windows Vista и Windows Server 2008 присутствует целый механизм, который называется Windows Error Reporting (http://www.microsoft.com/whdc/winlogo/maintain/StartWER.mspx). Фиксация всех сбоев происходит в консоли Problem Reports and Solutions (Control Panel).

Нажав на ссылку View Problem History можно получить список всех сбоев.


Но если в контекстном меню конкретной записи выбрать View problem details, то там может не быть информации о собранных дампах. По умолчанию, сбор дампов при сбое не производится.


Чтобы включить сбор дампа нужно создать DWORD значение ForceQueue = 1 в ключе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting
После этого, если аварийное завершение было, дампы можно получить при помощи пункта View a temporary copy of these files.


В Windows 7 механизм остался таким же как и в Windows Vista и Windows Server 2008. Но изменилось расположение консолей. Так же нужно создать DWORD значение ForceQueue = 1 в ключе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting

Список проблем отображается в консоли Control Panel / Action Center


Сначала нужно нажать на Settings и выбрать пункт "Each time a problem occurs, ask me before checking for solution".



А список проблем можно посмотреть по ссылке "View reliability history"

Дампы получаются по ссылке "View a temporary comy of theese files"

Читать дальше

Оставить комментарий (всего: 0)

Поиск по свойствам

Довольно часто поступают обращения, связанные с построением запроса по нескольким значениям коллекционных секций (например, секции Свойства или Сотрудники карточек документов) с объединением их по И.
Пример:
Задача – найти карточки входящих документов, в которых свойство Вес = Параметр И свойство Получатель = Параметр.
Начиная с версии 4.1, создавать такие запросы стало возможно, используя редактор запросов.
1. Добавьте условия на название и значение одного свойства, измените логический оператор, объединяющий эти два условия, на И.
2. Для создания условия на второе и последующие свойства используйте команду контекстного меню Создать новую группу секции.


3. В новой группе добавьте условия на название и значение другого свойства, также измените оператор на И.
4. Измените оператор, объединяющий обе группы условий, на И.
Результат должен быть такой:

В версиях младше 4.1 создать такой запрос можно только путем редактирования xml запроса.
1. Создаем запрос, добавляем необходимые условия к обычным разделам и добавляем условия на свойства – в нашем примере это свойство «Вес».

2. Добавляем условия на второе свойство «Получатель», при помощи контекстного меню переключаем тип логического объединения условий в «И».


3. Переключаемся в режим редактирования XML (обратно переключиться нельзя, поэтому надо максимально продумать и подготовить запрос перед редактированием XML). Выделяем в XML запрос к разделу (SectionQuery), чтобы отличить его от остальных надо поискать условия, которые мы добавляли – для свойств Вес и Получатель.

4. Разбиваем SectionQuery на две части – два однотипных SectionQuery, в каждом из которых оставляем условия только на одно свойство (т.е. на его название и на его значение). Для этого копируем выделенный блок SectionQuery в буфер, удаляем условия на название и значение второго свойства. Затем вставляем копию из буфера и удаляем в ней запрос к названию и значению первого свойства.

Запрос готов к использованию – сохраняем его и назначаем на виртуальную папку. Рекомендуется сохранить исходный запрос, сделанный в конструкторе, для последующих исправлений. Читать дальше

Оставить комментарий (всего: 1)

Сценарии совместной работы DocsVision и SharePoint

В версии 4.3 изменилась комплектация продуктов DocsVision, предназначенных для совместной работы с SharePoint. Ушел в прошлое продукт DocsVision "Делопроизводство для SharePoint", теперь будет специальная редакция DocsVision SharePoint Edition, включающая Легкий Клиент, Шлюз к SharePoint и новый модуль - DocsVision SharePoint Extentions. Соответсвенно каждый из этих продуктов в отдельности и все вместе должны удовлетворять определенным сценариям, в которых заказчик хочет использовать эти продукты вместе.
Мы перечислили набор сценариев и хотели бы получить комментарии от партнеров, внедряющих SharePoint и DocsVision вместе и по отдельности. Возможно есть сценарии которых мы не видим, а те что видим - видим неправильно. Давайте посмотрим вместе. 1. SharePoint как место хранения и публикации документов, согласуемых и утверждаемых с помощью DocsVision (Архив на SharePoint)

1. SharePoint как место хранения и публикации документов, согласуемых и утверждаемых с помощью DocsVision (Архив на SharePoint)
Ситуация – заказчиком организовано хранение документов (готовых, согласованных, утвержденных) на базе SharePoint. При этом процессы подготовки и согласования документов проводятся традиционно – в электронной почте, на локальных рабочих станциях, файловых серверах и их (эти процессы) нужно упорядочить.
Большая часть пользователей документы использует справочно – нужно документ найти и прочитать. В процессах подготовки, согласования и утверждения документов участвует меньшинство пользователей
2. SharePoint как фронт-энд корпоративного приложения класса WorkFlow (обработка заявок, обращений и проч.) Тут принципиально что таких задач много, они изменчивы и их можно создавать и модифицировать без программирования
Ситуация – у заказчика имеется некая служба, функционально и организационно выделенная (отдел кадров, АХО, финотдел, ИТ-департамент и т.п.) которая общается с большинством персонала через заявки и их исполнение. Workflow внутри службы реализуется на DocsVision, заявки принимаются через SharePoint, ход исполнения заявок также публикуется на SharePoint (в стиле “мои заявки»). Контроль исполнения заявок, поддержка worflow по заявке и отчетность функциональной службы реализована на DocsVision. Вариант – отчетность также публикуется на SharePoint.
3. Хранение и основные задачи работы с документами на базе SharePoint
Хранилище документов реализуется полностью на SharePoint. DocsVision выступает как движок документооборота, поддерживая маршруты документов, необходимый workflow.
4. Классическое делопроизводство на SharePoint
Приложение Делопроизводство DocsVision закрывает весь функционал необходимый СЭДО. SharePoint выступает как интерфейсный frontend для доступа к функциональности Делопроизводства DocsVision
5. DocsVision как средство интеграции SharePoint с корпоративными приложениями
Шлюзы DocsVision и Wrkflow движок используются для организации обмена данными SharePoint и приложений (например 1С)


Читать дальше

Оставить комментарий (всего: 0)

API reference & community content

В пакет разработчика (SDK) версии 4.3 включена справочная документация в формате CHM, содержащая описания классов и методов объектной модели платформы:

  • COMReference.chm - описание COM-интерфейсов (ObjectManager.dll и CardHost.dll)
  • Reference.chm - описание .NET-интерфейсов (DocsVision.Platform.ObjectManager и DocsVision.Platfrom.WinForms.dll)
В ближайшее время будет также выпущена дополнительная справка WorkflowReference.chm, включающая в себя описания классов из сборок DocsVision.Workflow.Runtime (объектная модель ядра Workflow) и DocsVision.Workflow.Gates (объектные модели стандартных шлюзов).

Эти справочные руководства генерируются автоматически на основании скомпилированных сборок и комментариев к методам из исходного кода. Поэтому не следует искать там пути решения конкретных задач, примеры кода, советы, и .д. - для этой цели по прежнему служит отдельный документ - "Руководство разработчика на платформе DocsVision". Скорее, следует расценивать их как способ быстро посмотреть сигнатуру тех или иных методов; отследить взаимосвязи классов; уточнить значения перечислений; и т.д. В этом смысле, справочные руководства сейчас аналогичны по функциональности простому браузеру объектов (нажать F2 в Visual Basic 6, или Ctrl+Alt+J в Visual Studio 2005-2008)...

Но со временем мы рассчитываем дополнять данные справочные руководства, и расширять их теми самыми описаниыми, советами, примерами кода (аналогично http://msdn.microsoft.com/) - а документ "Руководство разработчика на платформе" упразднить.

Однако, это длительная и сложная работа (т.к. объем документации очень велик), и потому мы возлагаем надежды на помощь сообщества в этом деле. С этой целью, в справочные руководства включен так называемый community content - возможность всем читателям оставлять свои комментарии к статьям, задавать вопросы, писать ответы (примерно также, как это делается в блоге). С помощью данного инструмента станет возможным пополнение документации усилиями партнеров, обмен опытом между ними напрямую - без использования посредников в виде форумов или этого блога. И в конечном счете, выгодно это будет всем.

Функции community content включают в себя:

1) Возможность оставлять публичные (видимые всем), или личные (видимые только автору) заметки к любой статье, а также просматривать публичные комментарии других читателей:






2) Возможность фильтровать отображаемые комментарии:






3) Возможность оценивать полезность статей с помощью рейтинга:



Для написания комментариев, требуется минимальная регистрация (имя, пароль). Регистрация сквозная на всю документацию (не требуется отдельной регистрации на каждое руководство).

Все комментарии к документации будут модерироваться нами, с целью исключения спама и не относящихся к делу обсуждений.

Внимание! Данная услуга пока запущена нами в тестовом режиме, с целью изучения ее востребованности и актуальности. В связи с этим, возможны перебои в ее работе, или исчезновение оставленных комментариев. Просим отнестись к этому с понимаем. При высокой степени востребованности данной услуги, она будет развиваться и совершенствоваться.

Скачать последнюю версию DocsVision 4.3 SDK можно по ссылке: ftp://ftp.docsvision.com/DownloadArea/Temp/SDK1838.zip Читать дальше

Оставить комментарий (всего: 0)

Если не печатается штрих-код

Симптом.
В настройке справочника делопроизводства опция "Не печатать штрих-код" не стоит
Если нажать кнопку печать штрих-кода, и выбрать принтер – печатается пустая страница.
При этом штрих-код выделяется. Если посмотреть в XML карточки, то он есть

В чем причина.
По какой-то причине, на машине, отсутствует шрифт с штрихкодом. И на печать ничего не идет

Что нужно сделать.
Проверьте наличие на данных машинах шрифта FRE3OF9X.TTF (Free 3 of 9 Extended). Если нет, то его нужно установить. Читать дальше

Оставить комментарий (всего: 1)

Выпущена виртуальная машина с DocsVision 4.3 и демонстрационная база.

Выпущена демонстрационная версия DocsVision 4.3 на виртуальной машине. Виртуальная машина - самый быстрый способ начать изучение системы на практике: не нужно разворачивать инфраструктуру (Windows и SQL Server), самостоятельно инсталлировать DocsVision. Всё это уже сделано (сколько ж времени-то экономит)!




Получить машину можно на странице "Загрузки", сайта DocsVision.

Виртуальная машина включает в себя установленное программное обеспечение  и данные:
  • Microsoft Windows Server 2003 Enterprise;
  • Microsoft SQL Server 2008 Enterprise;
  • Microsoft Office 2007 Enterprise;
  • DocsVision 4.3 (Корпоративная редакция);
  • Базу данных DocsVision и дополнительные файлы данных с демонстрационными примерами:
    • Пример типового решения по организации делопроизводства и контроля исполнительской дисциплины;
    • Пример решения по автоматизации бизнес-процесса «Обработка заявок на платёж».
Поскольку вам доступны в демоверсии все возможности настройки, вы можете пробовать моделировать на ней собственные решения. Вы также можете установить к этой демоверсии любые дополнительные модули DocsVision, доступные для ознакомления на сайте DocsVision.

Примечание: Виртуальная машина не является контроллером домена и на ней не установлен Microsoft Exchange Server. Поэтому для демонстрации системы доступна только on-line маршрутизация заданий, нельзя использовать off-line client.На данной виртуальной машине не установлен модуль расширенных отчетов и, соответственно, нет возможности их построения.

Так же отдельно выпущена новая демонстрационная база для 4.3.1838, которая содердержит пример типового решения по организации делопроизводства и контроля исполнительской дисциплины, и пример решения по автоматизации бизнес-процесса «Обработка заявок на платёж».

Получить демобазу можно так же на странице "Загрузки", сайта DocsVision

При невозможности или затрудненности скачивания архива с виртуальной машиной, обратитесь в коммерческий отдел DocsVision по электронной почте sales@docsvision.com или по телефону +7 (812) 356-7124 Читать дальше

Оставить комментарий (всего: 0)

Пример эксплуатации

Итак, повторюсь... У нас используется DocsVision для процесса производства: багтрекинг, управления требованиями, и для поддержки: система helpdesk'а. Решение называется DVManagement (карточки, отчеты в ReportingService и бизнес-процессы), отдельно не распостраняется, поскольку сильно заточено под наши процессы. Читателю было бы интересно, а на каком железе работает сервер и какой режим эксплуатации. Рассказываю.

Всего пользуются сисемой около 40 пользователей. Количество создаваемых карточек около 100 в день, примерно половина регистрируется бизнес-процессами (по письмам, или по другим карточкам). Всего работающих бизнес-процессов 14 постоянных (осуществляют различные мониторинги), плюс порождаемые экземпляры подпроцессов - 30 в час (удаляются после исполнения). Основная работа пользователей осуществляется через виртуальные папки, которые отображают нужные карточки.
Сервер - выделенный физический: Intel Core2 Quad Q6600 2.4 Гц. Память 4Гб. Два диска 300 Гб соеденены в RAID1. Материнская плата - серверная от Intel. В общем, как хорошая рабочая станция - никаких сверхмощностей. Работает на Windows 2008 64bit и SQL Server 2008 (СУБД на этой же машине).

Используется DocsVision 4.3.1838.Включен полнотекстовый поиск. Дополнительные модули - Модуль расширенных отчетов (для 1838 пока сами ждем релиза модуля). Никаких эксклюзивных библиотек нет - продукт из тиража.

Обслуживание.
1. Ежедневный полный бекап.
2. Ежедневная реорганизация индексов

Данную информацию можно использовать для оценок мощностей при небольших внедрениях. Читать дальше

Оставить комментарий (всего: 7)

UltraViews 2.0 и диаграммы

Не так давно я проводил вебинар по UltraViews - платформе для постоения интерактивных отчетов и рабочих мест для DocsVision и говорил про выход UltraViews 2.0 и про новые возможности библиотеки. Одна из таких возможностей - скриптинг на C# и подключение дополнительных библиотек к отчетам. Например, можно подключить компонент для построения диаграмм. После вебинара меня просили выпустить вместе с новой версией библиотеки и несколько примеров построения диаграмм.

Мы сделали два таких предварительных примера. Но хочется реализовать примеры, которые были бы не просто иллюстрацией использования UltraViews, а реально полезными и использовались as is сразу после их установки. Всех интересующихся прошу посмотреть описание примеров под катом и высказать в комментариях свои соображения и пожелания. Шансы на реализацию каких-то из них велики.


Итак, примеры. Построены они на базе замечательного компонента ZedGraph. Количество и качество данных для диаграмм сомнительное, но в данном случае скриншоты нужны только как иллюстрации.
1. Строит круговую диаграмму, показывающую количество документов различных типов (по справочнику типов). Используются все неудаленные входящие, исходящие, внутренние и универсальные документы.


2. Строит сравнительную статистику количества входов пользователей в систему. По умолчанию сравниваются последние 10 дней и 10 дней 2 недели назад (калькуляция в неделях нужна для совпадения дней недели и сравнения понедельник-понедельник, а не понедельник-суббота).


Читать дальше

Оставить комментарий (всего: 0)

Настройка "Автоматически отключать сессии неактивные более N минут"

В консоли настройки есть опция "Автоматически отключать сессии неактивные более N минут". Данная опция указывает через какое время закрывать неактивные сессии.


Важно то, что эта настройка хранится в базе данных, а не в реестре. Поэтому, если база по умолчанию изменена, то эта настройка так же будет изменена.

И если установить новую версию DocsVision с сохранением настроек предыдущей версии, создать новую базу, то это значение будет установлено на значение по умолчанию при создании базы. Читать дальше

Оставить комментарий (всего: 4)

Изменение информации о сервере Workflow при переносе бекапа базы

Симптом.
Развернули бекап с рабочего сервера на тестовой машине, после чего бизнес-процессы на рабочем сервере перестали выполняться. В реестре замечено изменение настроек Workflow.

В чем причина.
Настройки сервисов Workflow храняться не только в реестре, но и в базе банных. При разворачивании бекапа на тестовом сервере, настройки подключения остались для рабочего сервера. Сервис Workflow с тестовой машины с данными настройками соединяется с рабочей базой.

Что нужно сделать.
В случае если бекап базы с одной машины разворачивается на другой, нужно заменить имя сервера в таблице dvsys_workflow_services:


UPDATE dvsys_workflow_services SET ServiceID='имя сервера'
Читать дальше

Оставить комментарий (всего: 0)

Новости

Мы перевели свой внутренний сервер на DocsVision 4.3.1838. Для тех, кто не знает, мы используем DocsVision для процесса производства: багтрекинг, управления требованиями, и для поддержки: система helpdesk'а. Решение называется DVManagement (карточки, отчеты в ReportingService и бизнес-процессы), отдельно не распостраняется, поскольку сильно заточено под наши процессы. В общем, сапожник в сапогах :)

Так же в блог добавили модуль подсветки синтаксиса кода. (см. пример на http://dvprofessionals.blogspot.com/2009/08/blog-post_11.html) . Модуль написан на javascript. Отличная вещь! Рекомендую ознакомиться http://alexgorbatchev.com/wiki/SyntaxHighlighter

Теперь есть возможность убирать длинные статьи под ссылку "Читать далее". Подписчики RSS не пострадают, статьи по подписке будут приходить полностью.

Ну и наконец, ссылка "Отправить комментарий" переместилась вниз статьи Читать дальше

Оставить комментарий (всего: 1)

Появление окна ввода логина и пароля при открытии задачи

Симптом
При открытии заданий бизнес-процесса появляется окно авторизации (ввод имени и пароля).

В чем причина
Текст задания формируется в виде html. При этом преобразование для формирования получается с сервера (вызовом страницы Fetch.aspx). Если к странице нет доступа, то появляется окно авторизации.

Что нужно сделать
1. В настройках InternetExplorer добавить сервер DocsVision в группу TrustedSites
2. Для зоны TrustedSites в настройках безопасности для пункта «Проверка подлинности пользователя» (User Authentication) установить «Автоматический вход в сеть с текущим именем пользователя и паролем» (Automatic logon with current username and password)
3. В IIS указать безопасность для виртуальных папок

DocsVision:
-Enable anonymous access
-Integrated Windows authentication
-Basic authentication (в случае если пользователи входят по базовой авторизации)

StorageServer:
-Integrated Windows authentication
-Basic authentication (в случае если пользователи входят по базовой авторизации)

Бывает так, что даже выставленные настройки не помогают решить проблему. Нужно попробовать сбросить все настройки в InternetExplorer, при помощи кнопки в Reset Internet Explorer Settings и настроить все «с чистого листа» Читать дальше

Оставить комментарий (всего: 3)

Ограничение на размер прикрепляемых к карточке файлов

Часто приходит вопрос - можно ли ограничить размер прикрепляемого к карточке файла? Цель понятна. Даже если используется FileStream администрировать базу в сотни гигабайт, большую часть из которых составляют отсканированные в 2400 dpi *.bmp картинки мягко говоря не удобно.

В текущих версиях через настройки такого ограничения выставить нельзя (требование зафиксировано). Однако, почему бы не попробовать делать проверку в скрипте на какое-либо событие?

Итак, где же хранится размер файла? Структура прикрепления файлов к карточкам документов (внутренний, входящий, исходящий, универсальный) следующая:

Карточка документа -- Список файлов -- Карточка файла -- Карточка файла с версиями -- Файл.

чертой обозначена ссылка.

Карточка "Список файлов" хранит ссылки на карточки файлов, поэтому в ней навряд-ли хранится размер. Поэтому, смотрим на схему карточки файла. Вот удача! В секции "Основная информация" есть поле FileSize. Обытным путем устанавливаем, что это поле хранит размер в килобайтах. Остается только написать скрипт, который будет по ссылкам из списка файлов получать карточки файлов и суммировать размер.



Function DoEvent(UserSession, CardFrame, CardData, ActivateFlags, ModeID, FolderID)
' Check size of all files

MaxSize = 1024 ' max size of files in KB

' Get FileList Card
Set MainRow = CardData.Sections(CardData.Type.Sections.GetByAlias("MainInfo").ID).FirstRow
If Not IsNull(MainRow.Value("FilesID")) Then
FilesID = CStr(MainRow.Value("FilesID")) ' if card has a FileList
Else
Exit Function ' exit
End If
Set FileList = UserSession.CardManager.CardData(FilesID)

' Get FileCard and size

Set FileRefs = FileList.Sections(FileList.Type.Sections.GetByAlias("FileReferences").ID).Rows

SummSize = 0
For Each SingleRow In FileRefs
CardFileID = CStr(SingleRow.Value("CardFileID"))
Set CardFile = UserSession.CardManager.CardData(CardFileID)
Set CardFileMainRow = CardFile.Sections(CardFile.Type.Sections.GetByAlias("MainInfo").ID).FirstRow
SummSize = SummSize + CInt(CardFileMainRow.Value("FileSize"))
Next

If SummSize > MaxSize Then
DoEvent = -1

CardFrame.ShowMessage "Внимание", "Превышен допустимый размер приложенных файлов", , 3
End If
End Function


Данный скрипт нужно разместить на событие "Закрытие" карточки. Если размер файлов превышен, карточка не будет закрываться. Читать дальше

Оставить комментарий (всего: 2)

Настройка подсистемы управления процессами (Workflow)

Подсистема "Управление процессами" содержит ряд настроек, которые касаются производительности. Задача установки оптимальных параметров возникает довольно часто. В данной статье описано из каких критериев нужно исходить при выборе значений.

Значение параметров приведено в руководстве администратора.
Время между тиками (сек) — пауза между периодами активности сервера бизнес-процессов («тиками»); по умолчанию этот интервал равен 10 секундам, при большом количестве активных процессов рекомендуется его увеличить;

Максимальный объем памяти (Мб), который может использовать при работе сервер управления процессами; по умолчанию его значение равно 512 Мб;

Время ожидания выполнения функции в потоке (сек) — период задержки перед повторным исполнением функции в циклическом бизнес-процессе; этот период используется, если в настройках функции в поле "Период опроса" не указан другой интервал;

Время тика — продолжительность активности сервера бизнес-процессов;

Функций за тик — количество функций одного бизнес-процесса, обрабатываемых сервером бизнес-процессов за один период активности;

Число процессов в одном пакете — максимальное количество бизнес-процессов в одной «порции» (пакете), которые обрабатываются одновременно; общая продолжительность тика зависит от количества пакетов, однако размер пакета следует ограничивать соразмерно с объемом оперативной памяти компьютера;

Размер пула шлюза, где пул шлюзов — это совокупность параллельно работающих экземпляров шлюзов одного типа с одинаковыми настройками, выделяемых для обработки процессов;

Размер пула сессий, где пул сессий — это совокупность параллельно работающих сессий с одинаковыми настройками подключения, выделяемых для обработки процессов;

Время ожидания выполнения метода Storage Server (сек) — период ожидания ответа сервера, после которого возвращается сообщение об ошибке (Сервер недоступен»).

Оценивая возможности подсистемы Workflow необходимо учитывать, что разные функции дают разную нагрузку на систему. Например, ф-ции, которые работают с карточками или любыми данными в базе выполняют соединение с сервером DocsVision и скорость их работы определяется так же производительностью сервера (выполнение запросов в базе, обработка результатов и т.п.). А функции сценарий, практически не задействуют сервер и БД (разве, что, для чтения настроек). Т.о. функция "Мониторинг DocsVision" может выполняться долго, если в поисковом запросе участвует много карточек. А функция задание может выполниться мгновенно если ожидает изменений в карточке.

Поэтому, довольно трудно дать формулу, в которую можно подставить число экземпляров, частоту процессора, количество ядер и объем ОЗУ, и в результате получить значение параметров.

Какие же профили можно использовать для решения конкретных задач?

1. Если необходимо более часто брать в обработку процессы - уменьшаем число функций за тик. Максимально частой обработке новых процессов соответствует 1 функция за тик (при неизменном желаемом времени тика).
Т.е. чтобы проходило меньше времени между тем как пользователь или функция подпроцесс запустит новый процесс, и тем моментом, как функция "Старт" в них станет обработанной.

2. Если хочется максимально быстро обрабатывать "длинные" процессы - увеличиваем число функций за тик. Например до 50-100. Но тут уже возникает опасность постоянной обработки какого-нибудь цикла, который не несет полезной нагрузки (например, какая-нибудь функция зацикленная на себя при помощи связи по ошибке)

3. Чтобы не зависеть от функций, которые долго выполняются или вообще подвисают на какой-нибудь операции с внешней системой, можно уменьшить "Время ожидания функции в потоке". С 900 секунд, до 180.

Параметры справедливы для машины с любым количеством ядер. Ну разве что не стоит выставлять размер пакета процессов меньше, чем число потоков, которые система может обрабатывать параллельно.
(Чисто теоретически это число вычислительных ядер в системе. Если поддерживается HyperThreading - то число ядер умножается на 2. Т.е. в принципе, в современном однопроцессорном четырехядерном сервере может параллельно обрабатываться до 8 потоков. А сверху число потоков ограничено максимальным размером пула потоков: 64 т.е. ставить размер пакета больше 64 тоже смысла нет)

Средними настройками, подходящими под большинство решений, являются:
  • Время между тиками – от 2 до 10 с;
  • Количество функции за тик – от 5 до 15;
  • Число процессов в пакете- от 10 до 40;
  • Время ожидания выполнения функции в потоке – 900 с;
  • Время ожидания выполнения метода Storage Server – 600 c;
  • Время тика – 300 с;
  • Максимальный объем памяти – от 512 до 1536 Mb.

Читать дальше

Оставить комментарий (всего: 4)

Как переносить данные из справочника типов между базами данных.

Предположим, стоит задача перенести данные из справочника типов из тестовой базы в рабочую. Путей решения несколько, в зависимости от исходного состояния.
(конечно, эту задачу можно выполнить модулем переноса решений, но модуль может не подойти, если нужно перенести только один вид)

Состояние 1.
Идентификаторы существующих записей в справочнике типов рабочей базы совпадают с аналогичными записями тестовой. Обычно это происходит, если тестовая база является бэкапом рабочей. Если это так и на тестовой базе просто добавлены новые виды, то достаточно на из тестовой базы получить xml справочника, а затем импортировать его на рабочий сервер.

Состояние 2.
Гораздо сложнее перенести отдельные записи справочника, если идентификаторы разные. Например, вид "Письмо" имеет один идентификатор в рабочей базе, и другой в тестовой. Или в тестовой базе вообще нет такого типа. Такое возможно, когда тестовая база наполняется по аналогии с рабочей. В данном случае необходимо редактировать xml справочника вручную.

Для этого.
1. Получаем xml справочника типов из тестовой базы
2. Получаем xml справочника типов из рабочей базы
3. Редактируем xml из рабочей базы, копируем туда секцию </my:DocumentTypesRow> с новым типом из xml тестовой (см. п.1)
4. Импортируем новый xml в рабочую базу.

И, конечно, не делайте никаких изменений в базе, предварительно не сделав бэкап рабочей базы. Читать дальше

Оставить комментарий (всего: 0)

Оптимизация работы DocsVision при работе в схеме Центр-Филиалы

Достаточно часто при внедрении DocsVision выясняется, что у организации есть несколько филиалов. В них обычно также необходимо дать доступ к центральной базе DocsVision.

При этом есть различные подходы для организации такого удаленного доступа: терминальный клиент, доступ по http или через vpn. У всех есть свои плюсы и минусы и все они неплохо работают, если у филиала есть широкий канал к центральному офису. Однако при наличии "узкого" канала реальный выбор остается только один: использование терминальных клиентов. Происходит это из-за того, что DocsVision весьма требователен к каналам и гонит через них большое количество трафика.

Однако существует способ существенно снизить объем трафика и дать возможность удаленным филиалам сравнительно комфортно работать с центральной базой DocsVision. Для этого достаточно в филиал поставить собственный сервер DocsVision и настроить его на работу с той же базой данных, что и в центральном офисе. Все пользователи в этом филиале будут подключаться к собственному серверу DocsVision. На практике такой подход неплохо работает и ощутимо добавляет скорости клиенту DocsVision. Помимо всего прочего, еще и разгружается центральный сервер.

Существует несколько нюансов при использовании такого механизма.
Во-первых, необходимо остановить workflow-сервис в филиале. Он там просто не нужен. В связи с этим (это упоминалось в одном из прошлых постов в блоге) решение должно быть построено таким образом, чтобы из филиала не требовался прямой запуск бизнес-процессов, как и их администрирование. Если учитывать это при внедрении, то все это несложно осуществить.
Во-вторых, начиная с версии 4.1, в лицензии DocsVision должна быть прописана возможность использовать несколько серверов на одной базе данных. Читать дальше

Оставить комментарий (всего: 0)

Импорт и экспорт таблиц базы данных

Как решить задачу сравнения записей в двух таблицах на разных серверах БД. Если используется MS SQL Server 2008, то можно составить t-sql запрос сразу к двум серверам - это данная СУБД позволяет делать.
В случае если используется более ранняя версия, то я выгружаю таблицу из одной базы и загружаю её во временную таблицу другой. Возможно, есть более просто способ, но я пользуюсь таким.

Для выгрузки используется утилита bcp.exe, которая входит в поставку MS SQL Server:
bcp.exe <полное имя таблицы> out <полный путь к файлу> -T -c -C RAW

bcp.exe basename1.dbo.dvsys_users out C:\temp\table.dat -T -c -C RAW


Далее в той базе, в которую будем импортировать нужно создать временную таблицу, с такими же колонками. Проще всего это сделать, получив скрипт создания таблицы.

Для этого выбираем нужную таблицу в базе (в нашем примере это dvsys_users) и в контекстном меню вызываем следующий пункт

Script table as / Create to / New query editor window

Получаем:

USE [dv1640]
GO

/****** Object: Table [dbo].[dvsys_users] Script Date: 08/05/2009 18:52:59 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[dvsys_users](
[UserID] [uniqueidentifier] ROWGUIDCOL NOT NULL,
[AccountName] [varchar](64) NOT NULL,
[UserRefID] [uniqueidentifier] NULL,
[SID] [varchar](128) NOT NULL,
[Timestamp] [timestamp] NULL,
CONSTRAINT [pk_dvsys_users] PRIMARY KEY NONCLUSTERED
(
[UserID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
.....

Ключи нам не нужны, оставляем только создание таблицы и колонок:

CREATE TABLE [dbo].[dvsys_TMPusers](
[UserID] [uniqueidentifier],
[AccountName] [varchar](64),
[UserRefID] [uniqueidentifier],
[SID] [varchar](128),
[Timestamp] [timestamp]
)


Все, осталось только загрузить данные

bcp.exe basename2.dbo.dvsys_TMPusers in C:\temp\table.dat -T -c -C RAW

и выполнить запрос, например поиск записей, у которых одинаковый AccountName и разный UserID

SELECT * FROM dvsys_users AS t1
JOIN dvsys_TMPusers AS t2 ON t1.AccountName=t2.AccountName
WHERE t1.UserID<>t2.UserID
Читать дальше

Оставить комментарий (всего: 3)

Модернизация отменена

В блоге добавляем механизм, который будет отображать на главной странице не весь пост а только его часть + ссылку "читать далее" (как "кат" в ЖЖ).
Добавление коментария пока будет происходить в новом окне. Если есть желание прочитать все комментарии, без добавления, то кликайте по названию поста.


Результат


Эксперименты показали.

1. Добавить ссылку "Читать больше" можно без проблем.

2.Комментарии в виде дерева сделать можно, но пользоваться ими довольно неудобно.




Все изменения откатил назад. Живем как прежде. Читать дальше

Оставить комментарий (всего: 2)

Перенос базы DocsVision с редакции Enterprise на другую

Симптом
Создали бекап базы данных на MSSQL Enterprise. Во время восстановления данного бекапа на редакции MSSQL Standart возникает ошибка:

"Нельзя запустить базу данных '' в данном выпуске SQL Server, поскольку она содержит функцию секционирования 'dvpfn_log_range'. Секционирование поддерживается только в выпуске SQL Server Enterprise Edition."

или так

"Database '' cannot be started in this edition of SQL Server because it contains a partition function 'dvpfn_log_range'. Only Enterprise edition of SQL Server supports partitioning."

В чем причина
Некоторые процедуры в базе данных используют функции, которые существуют только в редакции Enterprise. Сделано это с целью оптимизации.
При создании базы данных, консоль настройки определяет редакцию СУБД, и в случае если используется Enterprise или Developer,то устанавливаются процедуры, которые используют секционирование.
Следовательно, если бекап такой базы перенести на редакцию, которая не поддерживает секционирование, то при восстановлении возникнет ошибка.

Что нужно сделать
В первую очередь не переносить базы между редакциями. Но если ситуация такова что сделать это необходимо, то в службе технической поддержки DocsVision есть скрипт, который позволит заменить эти процедуры. Читать дальше

Оставить комментарий (всего: 7)

Вышел релиз DocsVision 4.3 (1838)

Ура! Читать дальше

Оставить комментарий (всего: 3)