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)

Десять SQL скриптов для DocsVision

Это первая публикация со T-SQL скриптами для решения различных задач в DocsVision.
Скрипты подходят для версий 4.0 и 4.1

1. Перевод всех поисковых запросов на виртуальной папке в режим таблицы

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

DECLARE @Query as varchar (1024)
-- Задайте имя поискового запроса
SET @Query='test'

DELETE FROM dbo.[dvtable_{DC8A71DC-D2BB-4875-8B9F-0BBFF04383F7}]
WHERE ParentRowID=
(

SELECT TOP (1) RowID FROM dbo.[dvtable_{FB2AC41F-1911-4F7C-B631-18CFAEB311BD}]
WHERE [Name]=@Query

)


2. Очистка журнала экземпляра бизнес-процесса

DECLARE @ProcessID uniqueidentifier
SET @ProcessID='' -- здесь нужно указать идентификатор карточки экземпляра бизнес-процесса без скобок {}
DELETE FROM dbo.[dvtable_{388F390F-139E-498E-A461-A24FBA160487}]
WHERE InstanceID=@ProcessID


3. Включение отображения диалога о несовпадении версий в Навигаторе.

Начиная с версии 4.0 показ диалога о несовпадении версий библиотек можно отключить, установив опцию в окне. Чтобы включить отображение этого сообщения нужно выполнить приложенный скрипт (подходит и для 4.1)

В поле @AccountName указывается учетная запись пользователя DOMAIN\Name

DECLARE @AccountName AS varchar(256)
SET @AccountName='учетная запись пользователя'

DELETE ProfileSettings FROM [dbo].[dvtable_{EBAF1DE7-AB00-44D4-82AC-2CF3C16C93DC}] AS ProfileSettings
JOIN dvsys_users AS Users ON Users.UserRefID=ProfileSettings.InstanceID
WHERE ObjectID='FB028B36-5F93-4923-9580-15F5E1021831'
AND Users.AccountName=@AccountName


4. Запуск всех бизнес-процессов, которые приостановлены по ошибке

UPDATE dbo.[dvtable_{97CC73BA-1953-4A70-8460-415BD4BCAAAE}]
SET State=2
WHERE State = 5
UPDATE dbo.[dvtable_{0EF6BCCA-7A09-4027-A3A2-D2EEECA1BF4D}]
SET State=1, ReadyToRun='true'
WHERE State = 3


5. Запуск всех бизнес-процессов, которые приостановлены (нажата кнопка "пауза")

UPDATE dbo.[dvtable_{0EF6BCCA-7A09-4027-A3A2-D2EEECA1BF4D}]
SET State=1, ReadyToRun='true'
WHERE State = 2


6. Назначить всем объектам в системе прав Everyone - FullAccess

UPDATE dvsys_security SET SecurityDesc='AQAEjDAAAABAAAAAAAAAABQAAAACABwAAQAAAAADFAAfAA8QAQEAAAAAAAEAAAAAAQIAAAAAAAUgAAAAIAIAAAEBAAAAAAAFEgAAAA=='


7. Поиск в журнале Навигатора операций создания карточки

За временной период:

DECLARE @StartDate AS datetime
DECLARE @EndDate AS datetime

-- Задание временных рамок поиска
SET @StartDate = '20080703 00:00:00'
SET @EndDate = '20090116 23:59:59'

SELECT AccountName,Date,ComputerName, InstanceID,Description FROM dvsys_log AS L
INNER JOIN dvsys_users as U
ON L.UserID=U.UserID
INNER JOIN dvsys_instances AS I
ON L.ResourceID=I.InstanceID
WHERE Operation=3
AND Date>@StartDate AND Date<@EndDate


По идентификатору:

DECLARE @CardID AS uniqueidentifier

SET @CardID = 'FF841489-E3DC-4E5C-96A8-01B1609EBC47' --идентификатор карточки

SELECT AccountName,Date,ComputerName, InstanceID,Description FROM dvsys_log AS L
INNER JOIN dvsys_users as U
ON L.UserID=U.UserID
INNER JOIN dvsys_instances AS I
ON L.ResourceID=I.InstanceID
WHERE Operation=3
AND ResourceID=@CardID


8. Получение идентификатора сильного ярлыка карточки.

DECLARE @CardID uniqueidentifier
SET @CardID='19C91B93-A195-41AD-B4C1-831DCB191A02' -- идентификатор карточки

SELECT RowID FROM [dbo].[dvtable_{EB1D77DD-45BD-4A5E-82A7-A0E3B1EB1D74}]
WHERE HardCardID=@CardID


9. Получение списка папок на которых стоят ограничения на создание определенных типов карточек.

SELECT Folders.RowID,Folders.[Name]
FROM dbo.[dvtable_{5B7091C7-18DA-4E82-9C62-883F5237EED2}] AS Types
LEFT JOIN dbo.[dvtable_{FE27631D-EEEA-4E2E-A04C-D4351282FB55}] AS Folders
ON Types.ParentRowID=Folders.RowID


10. Снимаем блокировки от пользователей, сессий которых больше нет

-- Удаляем старые сессии
DECLARE @RC int
EXECUTE @RC = [dbo].[dvsys_session_clear_old]

-- Снимаем блокировки с объектов, сессий которых уже не существует
DELETE FROM dvsys_locks
WHERE (LockOwnerID NOT IN (SELECT UserID FROM dvsys_sessions))


Если нужно снять блокировки только с файлов, то запрос должен быть таким. Внимание, пользователи могут выгружать файлы (CheckOut) в работу. Автоматически снимать блокировки с файлов не совсем корректно.

DELETE FROM dvsys_locks
WHERE (ResourceType=2 AND LockOwnerID NOT IN (SELECT UserID FROM dvsys_sessions)) Читать дальше

4 коммент.:

Irhen комментирует...

По поводу 7-го скрипта.
Периодически приходится делать отчёт об активности пользователей в системе, по принципу: кто, когда и какую карточку открывал. Сейчас я делаю это выгружая лог навигатора и обрабатывая полученный xml-файл.
С помощью скрипта sql нужный отчёт можно получить значительно быстрее и проще.
Спасибо за идею!
Только не знаю, какой код для операции открытия карточки? Интересно также понять общий принцип: какой операции соответствует код Operation?

Михаил Захаров комментирует...

Код операции открытия карточки = 40.

Приведу наиболее полезные коды операций.
Вход = 1
Выход = 2
Создание карточки = 3
Удаление карточки в корзину = 4
Установка признака прочтения = 5
Удаление карточки = 6
Копирование карточки = 7
Создание строки = 8
Обновление строки = 9
Удаление строки = 10
Архивирование карточки = 32
Извлечение с архива = 33


Самостоятельно узнать код операции можно следующам образом.
1. Выполните операцию
2. Откройте журнал Навигатора.
3. Выполните поиск операции по названию.
4. Затем выполните запрос к таблице dvsys_log в котором ищите строчку по дате операции (которую можно выяснить из журнала Навигатора), и по имени компьютера - чтобы сузить варианты.

Irhen комментирует...

Спасибо за информацию и сэкономленное время, а то бы действительно пришлось искать таким не самым быстрым способом.

Vadim Skipin комментирует...

Код операции можно посмотреть в библиотеки ObjectManager (используя OLE View или возможности студии).

// Операции системного журнала
typedef [v1_enum] enum EventOperationEnum
{
EVENT_OPERATION_NONE = 0,
EVENT_OPERATION_LOGIN = 1,
EVENT_OPERATION_LOGOUT = 2,
EVENT_OPERATION_CREATE_CARD = 3,
EVENT_OPERATION_MARK_CARD_AS_DELETED = 4,
EVENT_OPERATION_MARK_CARD_AS_READ = 5,
EVENT_OPERATION_DELETE_CARD = 6,
EVENT_OPERATION_COPY_CARD = 7,
EVENT_OPERATION_ADD_ROW = 8,
EVENT_OPERATION_UPDATE_ROW = 9,
EVENT_OPERATION_DELETE_ROW = 10,
EVENT_OPERATION_MOVE_ROW = 11,
EVENT_OPERATION_COPY_ROW = 12,
EVENT_OPERATION_ROW_RIGHTS_CHANGED = 13,
EVENT_OPERATION_CREATE_FILE = 14,
EVENT_OPERATION_OPEN_FILE = 15,
EVENT_OPERATION_WRITE_FILE = 16,
EVENT_OPERATION_CLOSE_FILE = 17,
EVENT_OPERATION_DELETE_FILE = 18,
EVENT_OPERATION_SECTION_RIGHTS_CHANGED = 19,
EVENT_OPERATION_CARD_RIGHTS_CHANGED = 20,
EVENT_OPERATION_FILE_RIGHTS_CHANGED = 21,
EVENT_OPERATION_OBJECT_RIGHTS_CHANGED = 22,
EVENT_OPERATION_REPORT_RIGHTS_CHANGED = 23,
EVENT_OPERATION_COPY_FILE = 24,
EVENT_OPERATION_REPLACE_FILE = 25,
EVENT_OPERATION_TYPE_RIGHTS_CHANGED = 26,
EVENT_OPERATION_ADD_TO_TOPIC_CHAIN = 27,
EVENT_OPERATION_TAKE_FILE_OFFLINE = 28,
EVENT_OPERATION_BRING_FILE_ONLINE = 29,
EVENT_OPERATION_ARCHIVE_FILE = 30,
EVENT_OPERATION_DEARCHIVE_FILE = 31,
EVENT_OPERATION_ARCHIVE_CARD = 32,
EVENT_OPERATION_DEARCHIVE_CARD = 33,
EVENT_OPERATION_NUMERATOR_CHANGE_LEFT_BOUND = 34,
EVENT_OPERATION_NUMERATOR_CHANGE_RIGHT_BOUND = 35,
EVENT_OPERATION_NUMERATOR_ALLOCATE_NUMBER = 36,
EVENT_OPERATION_NUMERATOR_ALLOCATE_NUMBERS = 37,
EVENT_OPERATION_NUMERATOR_RELEASE_NUMBER = 38,
EVENT_OPERATION_NUMERATOR_RELEASE_NUMBERS = 39,
EVENT_OPERATION_OPEN_CARD = 40,
EVENT_OPERATION_EXPORT_CARD = 41,
EVENT_OPERATION_CREATE_SHORTCUT = 42,
EVENT_OPERATION_DELETE_SHORTCUT = 43,
EVENT_OPERATION_MOVE_SHORTCUT = 44,
EVENT_OPERATION_COPY_SHORTCUT = 45,
EVENT_OPERATION_SESSION_TERMINATE = 46
} EventOperationEnum;

Отправить комментарий