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)

Расширение возможностей скриптов карточек

Как известно, скрипты в карточках делопроизводства создаются на VisualBasic Script (VBS). Возникает вопрос - а можно ли в скрипте показать форму? Ответ - можно, но только создав внешний компонент с данной формой.

Итак, пример. Создадим дополнительную команду в контекстном меню Навигатора, которая будет создавать задачу в Outlook с напоминанием. При создании задачи у пользователя будем запрашивать дату и время напоминания.


Создаем проект в VisualStudio6: ActiveX Dll (ссылка на файлы внизу).
В данном проекте создаем класс OTaks с методом CreateTask.


Добавляем форму



И описываем её логику.


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

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

В скрипте создаем наш объект через CreateObject. В нашей реализации в метод CreateTask передается Subject - тема задания, и Body - текст. В качеcтве темы получаем имя карточки и полный номер. Текст - значение из поля Digest

Sub DoEvent(UserSession, CardHost, FolderType, FolderID, SelectionIDs)
On Error Resume Next
Set oTask=CreateObject("DVMHelper.OTask")
For Each Id In SelectionIDs
Set oCard = UserSession.CardManager.CardData(Id)
Set oMain = oCard.Sections.Item(oCard.Type.Sections.GetByAlias("MainInfo").ID).FirstRow

Body=CStr(oMain.Value("Digest"))
Number=CStr(oMain.Value("FullNumber"))
Subject=Number+" " + CStr(oMain.Value("Name"))
oTask.CreateTask CStr(Subject),CStr(Body)
Next
Set oTask=Nothing
End Sub


После переоткрытия Навигатора в контекстном меню появляется команда.



При выборе запускается сценарий и появляется окно из нашего объекта


После работы скрипта, в Outlook видна задача.


Ниже приведена ссылка на пример проекта и на библиотеку, которую уже можно использовать.

Скачать проект и библиотеку Читать дальше

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

Как назначить права в скрипте карточки

Пример назначения прав на карточку из скрипта карточки (через ADSI):

' Rights
iRights = &H1 + &H2 ' read+change!
aEmpl = Array ("DOMAIN\User1","DOMAIN\User2")

' Get secure object
Set oSecureObj = UserSession.AccessManager.GetSecureCard(CardData.ID)
Set oSD = oSecureObj.ADsSecurityDescriptor
Set oDACL = oSD.DiscretionaryAcl

' remove old ace's
Do
bFlag = False
For Each oACE In oDACL
oDACL.RemoveAce (oACE)
bFlag = True
Next
Loop Until bFlag = False

' Add Rights
For n = 0 To iCount
sEmpl = aEmpl(n)
If CStr(sEmpl) <> "" Then
Set oNewAce = CreateObject("AccessControlEntry")
oNewAce.AccessMask = iRights
oNewAce.AceType = 0 ' allowed
oNewAce.AceFlags = 2 'inherit
oNewAce.Trustee = sEmpl
oDACL.AddAce oNewAce
End If
Next
Set oSecureObj.ADsSecurityDescriptor = oSD



Список прав (все значения являются битовой маской и могут суммироваться):

"000F001F"
Полный доступ

"00000001"
Чтение данных объекта

"00000002"
Изменение данных объекта

"00000004"
Создание дочерних объектов

"00000008"
Удаление дочерних объектов

"00000010"
Копирование объекта

"00010000"
Удаление объекта

"00020000"
Чтение разрешений

"00040000"
Изменение разрешений

"00080000"
Смена владельца

"00020001"
Чтение

"0000001E"
Изменение

"00010000"
Удаление

"000C0000"
Владение


При назначении прав в бизнес-процессе или из .net приложений, нужно пользоваться методами .net framework Читать дальше

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

Использование сессии в сценариях бизнес-процессов

Чтобы пользоваться сессией - объект UserSession, в сценариях, нужно её создать.

Делается это так:

C#
// получаем шлюз
DVGate oGate = (DVGate)process.Gates[DVGate.GateID];
// получаем сессию
UserSession oSession = oGate.Session;


VB.NET
' получаем шлюз
Dim oGate As DVGate = CType(process.Gates(DVGate.GateID), DVGate)
' получаем сессию
Dim oSession As DocsVision.Platform.ObjectManager.UserSession = oGate.Session



Нельзя пользоваться сессией Workflow: process.Session Читать дальше

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

Настройка прав на папку

Задача. Нужно урезать пользователям права на папки в DocsVision 4.1, так чтобы у них была возможность создавать в папке карточки и подпапки, но удалить папку или изменить её название было нельзя.

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

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

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

Если не приходят задания по задаче или согласованию

Наверное один из самых актуальных вопросов, который довольно просто решается.

Симптом
Запускается задача или согласование на исполнение, но исполнители не получают свои задания.

В чем причина
За рассылку заданий отвечает подсистема бизнес-процессов (Workflow). Возможные причины.
  1. Остановлены системные процессы «Экземпляр процесса Мониторинг задач» («Instance of process Approval Monitoring») и/или «Экземпляр процесса Мониторинг согласований» («Instance of process Resolution Monitoring»)
  2. Сервис бизнес-процессов остановлен и не обрабатывает процессы
  3. При создании задачи или согласования установлена опция «Обрабатывать в отдельном процессе» («Use approving function in own process»), и при этом экземпляр процесса, который отвечает за обработку согласований остановлен или не существует.

Что нужно сделать
1. Проверьте, что системные процессы «Экземпляр процесса Мониторинг задач» («Instance of process Approval Monitoring») и/или «Экземпляр процесса Мониторинг согласований» («Instance of process Resolution Monitoring») работают. Для этого найдите данные экземпляры при помощи атрибутивного поиска, указав в качестве условия название экземпляра процесса.

Откройте каждый из этих экземпляров. Если они остановлены, запустите их. Проверьте, приходят ли задания исполнителям

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

3. Если в карточке задачи или согласования установлена опция «Обрабатывать в отдельном процессе» («Use approving function in own process»), то нужно выяснить, запущен ли бизнес-процесс, который отвечает за обработку задач и согласований. О наличии данного процесса должен сообщить поставщик решения.

Настройка устанавливается
a) в карточке задачи, в параметрах бизнес-процесса (кнопка на панели)


b) в карточке согласования в настройках


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

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

Установка клиентской части на OS Windows Vista или Windows Server 2008

Ситуация
На компьютерах с ОС Windows Vista Business (Premium) или Windows 2008 Server установлены клиенты DocsVision Навигатор. При создании карточек недоступны настроенные виды документов, только типы, при попытке создать документ стандартного типа возникает ошибка: "Не удалось создать новый список файлов. 8002801D: Automation error. Library not registered."

В чем причина
Из-за измененной схемы безопасности в Vista.

Что нужно сделать
Необходимо производить установку клиентской части в режиме "для всех пользователей". Данная инструкция так же продублирована в документе HowToInstall.html Читать дальше

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

Ошибка "Базу данных обрабатывает максимальное количество серверов, указанное в лицензии"

Ситуация
Переустановили сервер DocsVision на новую машину, после подключения сервера к базе произошла ошибка при входе в Навигатор: "Базу данных обрабатывает максимальное количество серверов, указанное в лицензии".

Либо после разворачивания кластера NLB при входе в Навигатор появляется сообщение "Базу данных обрабатывает максимальное количество серверов, указанное в лицензии"

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

Что нужно сделать
1. Если вы настраиваете кластер NLB, то необходимо, чтобы в лицензионном ключе была указана возможность создания кластера.

2. Если просто переносился бекап на другой сервер, или сервер DocsVision изменил имя, то для того, чтобы убрать ошибку нужно удалить всю информацию о сессиях:
DELETE FROM dvsys_sessions Читать дальше

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

Блокировка базы

Ситуация
После выполнения операций с базой данных, например, обновление или создание новой. При входе в Навигатор, или других операциях в Консоли настройки появляется сообщение об ошибке "Работа с системой временно запрещена администратором"

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

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

Если ошибка была при создании базы, то попытаться создать базу снова. Если ошибка не исчезает, то нужно её устранить.

И последнее. Базу можно разблокировать, выполнив запрос:
UPDATE dbo.dvsys_globalinfo SET Disabled='false' Читать дальше

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

Настройка шлюза в SharePoint

С сегодняшнего дня стартует раздел "Разбор полетов" в котором будем разбирать некоторые инциденты и методы их решения. Таким образом будет формироваться некая база знаний.

Ситуация.
Установили шлюз в SharePoint2007, при попытке добавить в бизнес-процесс переменную из данного шлюза (например, Элемент библиотеки документов). Появляется окно в предложением ввести логин и пароль. После ввода логина и пароля появляется сообщение "Доступ запрещен".

В чем причина
При добавлении переменной шлюз производит попытку соединения с сервисом SharePointAccessService.asmx для получения данных об объектах. Авторизация происходит:
а) по встроенной аутентификации, в случае если в настройках шлюза не указана конкретная учетная запись
б) по базовой аутентификации если в настройках шлюза указана конкретная учетная запись.
Настройки шлюза задаются в "Консоли настройки", ветка Шлюз в SharePoint.

Следовательно причина может быть такова
а) Сервис SharePointAccessService.asmx не установлен на сервере SharePoint
б) Произошла ошибка доступа к сервису SharePointAccessService.asmx
в) Произошла ошибка доступа сервиса SharePointAccessService.asmx к службам SharePoint
г) Произошла ошибка при работе сервиса SharePointAccessService.asmx

Что нужно сделать
1. Проверить, что на сервере SharePoint установлен компонент AccessService (Веб сервис доступа), из дистрибутива шлюза в SharePoint 2007. Если нет, то произвести установку
2. Проверить на сервере SharePoint, что в ключе задано значение.
HKEY_LOCAL_MACHINE\SOFTWARE\DocsVision\SharePointGate2007\4.1\TemplatesDir
- папка, и существует ли она. Если нет, то нужно указать значение C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\.
3. Проверить в логах IIS на сервере SharePoint нет ли ошибок доступа к SharePointAccessService.asmx. Если есть, то нужно разбираться в причинах
4. Проверить, что пользователь, под которым осуществляется подключение, имеет права на доступ к SharePoint. Данный пользователь должен быть заведен на самом портале.


Так же нужно помнить, что если подключение шлюза идет по встроенной аутентификации, то при работе экземпляра бизнес-процесса соединение с SharePoint будет происходить под учетной записью, под которой запущен сервис Workflow.

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

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

DocsVision + FireFox + Opera + Safari =

Вот это да! DocsVision Навигатор теперь можно запускать не только в Internet Explorer и FireFox, но и в Opera и Safari (для Windows)!



Как же воспользоваться такой возможностью.

[Отредактировано 14.07.2009 18:45]

1. Скачать плагин
2. Установить DocsVisionPlugin.msi на клиенте.
2. Заменить файл StartPage.js (для 4.3) или Start.js (для 4.1) в папке "<директория_установки>\DocsVision\Platform\4.1\Server\Site" на соответствующий файл из архива.

Данный плагин подходит для всех версий DocsVision линейки 4.1 и 4.3.
Так же можно использовать и для работы с DocsVision 4.0. Для этого возьмите файл Start.js. Найдите в тексте строку version="4.1" и замените на version="4.0". Далее файлик надо заменить в "<директория_установки>\DocsVision\Platform\4.0\Server\Site"

Все. Теперь Навигатор можно открыть в Internet Explorer, FireFox, Opera и Safari (для Windows). Хоть во всех сразу.

Known issues.
1. В Safari не работает ключ disableNTLM=1. Вход возможен только по встроенной авторизации
2. Для браузеров кроме IE параметры отображения панелей, скрытия заставки и т.п., которые передаются в адресной строке, не работают.
3. В Google Chrome Навигатор открывается но не работает :)


Плагин создан в DocsVision. Пока предоставлятся в режиме "как есть", т.е. без гарантий. Подумаем о включении в поставку в будущем. Обо всех ошибках пишите в коментариях к публикации.

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

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

DocsVision + FireFox =

Итак, летняя новость, - кто находится в отпуске не узнают, - теперь клиентскую часть DocsVision Навигатор можно запускать в FireFox!


Что нужно сделать. Прежде всего скачать файлы

1. Установить плагин DocsVision.xpi стандартным для FireFox способом (откыть этот файл в FireFox).
2. Заменить файл StartPage.js (для 4.3.1826) или Start.js (для 4.1.1640) в папке "<директория_установки>\DocsVision\Platform\4.1\Server\Site" на соответствующий файл из архива.
3. Положить файл DocsVision.xpi в "<директория_установки>\DocsVision\Platform\4.1\Server\Site\Setup"

Навигатор будет открываться как в InternetExplorer, так и в FireFox.

И на закуску, скриншот веб-расширений 4.3, которые еще разрабатываются.

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

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

Запуск одного бизнес-процесса из другого при помощи сценария

Проще, конечно, воспользоваться ф-цией "Подпроцесс", но если очень нужно запустить при помощи сценария, то можно воспользоваться объектом DocsVision.Workflow.Objects.Library (из DocsVision.Workflow.Runtime).

У данного объекта есть метод CreateProcess:

Public Function CreateProcess(ByVal Template As DocsVision.Workflow.Objects.Process) As DocsVision.Workflow.Objects.Process


На вход функция принимает шаблон процесса, а на выходе возвращает экземпляр.
У экземпляра нужно вызвать метод Start:

Public Sub Start(ByVal AccountName As String, ByVal Library As DocsVision.Workflow.Objects.Dictionary)

Да, и в конструкторе Library нужно передать сессию, и два параметра 1 и 1 - это размер пула шлюзов и функций.

Public Sub New(ByVal session As UserSession, ByVal SessionPoolSize As Integer, ByVal GatePoolSize As Integer) Читать дальше

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

Что такое поддержка разработчиков

В чем, на ваш взгляд, заключается поддержка разработчиков? Читать дальше

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

Генерация расширенного отчета

При генерации отчета в браузере (по преобразованию) в результирующий файл после преобразования записывается в начало и конец следующий код:



Т.е. при создании xslt шаблона это надо учитывать, и писать сразу тело (то, что будет потом между <body> < /body>)

В связи с этим опрос. Убирать ли эту добавку при генерации отчета в будущих версиях модуля? Это, например, позволит менять название страницы в <title> < /title>.

Ответы на опрос в комментах. Например: "Убирать не надо, потому, что мы все отчеты делали изначально с учетом этого. Придется переделывать". Читать дальше

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

Красота

Блог испытал на себе косметический ремонт: новый шаблон + ярлыки в виде облака.
Теперь не только читать, но и смотреть приятно.

Нравится? Читать дальше

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

Виртуальная машина с демоверсией, и немного видео

На сайте DocsVision, в разделе "загрузки" выложена виртуальная машина с демонстрационной редакцией системы DocsVision 4.1 SR2, демобазой, сопутствующей документацией и вспомогательными материалами.
Теперь для ознакомления с системой не нужно разворачивать всю инфраструктуру и инсталлировать DocsVision. В общем чрезвычайно удобно.

Так же доступны два видеоролика http://docsvision.com/nc/video/
  • Демонстрация типового примера организации делопроизводства на базе системы DocsVision 4.1
  • Демонстрация возможностей автоматизации бизнес-процессов в DocsVision 4.1
Читать дальше

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