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)

Два нововведения в системе обработки обращений

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


Вашему обращению присвоен новый приоритет или изменен ответственный.
Приоритет: Плановый
Ответственный: Zakharov Mikhail
Состояние: Ожидает ответа инженера технической поддержки

Your incident has a new priority or a new responsible person.
Priority: Planned
Responsible: Zakharov Mikhail
State: Waiting for solution

29.09.2010 17:47


Какие бывают состояния, и что они означают?

Инцидент может иметь следующие состояния:
  1. Открыт - устанавливается при регистрации нового обращения на время до взятия его в работу. 
  2. Ожидает ответа инженера технической поддержки - это означает, что инцидент поставлен в очередь и ждет рассмотрения инженером
  3. Ожидает ответа инженера технической поддержки. Требуется консультация разработчика - инцидент был рассмотрен инженером, но потребовались уточнения разработчика, и ему отправлен вопрос.
  4. Ожидает ответа от вас - ответ был отправлен вам
  5. Решен - ответ был отправлен вам, мы считаем, что он полностью отвечает на вопрос и ждем соответствующего подтверждения
  6. Закрыт - инцидент был закрыт.

Необходимо помнить, что вне зависимости от статусов 1,2 и 3. наш ответ всегда будет отправлен в соответствии с регламентом и приоритетом.

Нет, штука в том, что теперь можно отправить на ящик службы ТП письмо с темо

?[Incident 12345]

И в ответ придет информация о текущем статусе вашего инцидента. Естественно, нужно указать номер вместо 12345. Есть ограничение, информация отправляется только автору обращения, т.е. с отправленный другим человеком он будет бесполезен.

Сервис №2. Отправив запрос с темой
??[Incident 12345]

Вы сможете получить последнюю переписку по данному инциденту. Все ограничения аналогичны. Читать дальше

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

Сохранение данных карточки в скрипте конструктора решений.

Задача сохранения данных карточки бывает двух видов: сохранение данных из контролов в CardData, и сохранение CardData на сервер.

Решением первого случая будет вызов
this.PropertyController.Save();
Для сохранения данных на сервер нужно воспользоваться неким трюком. Для решения подошел бы метод SaveData, используемый внутри карточки, но он не является открытым (вероятно, это будет изменено в следующих версиях). Сейчас им можно воспользоваться следующим способом:
typeof(BaseCardControl).GetMethod("SaveData", System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Instance).Invoke(CardControl, null);
Читать дальше

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

Новая версия мастера сбора данных при сбоях

Немного обновлен мастер сбора данных при сбоях.

Скачать можно по ссылке.
Либо воспользовавшись кнопкой "Проверить наличие обновлений"

Все функции работают только при анализе сбоев DocsVision 4.1. На всех остальных версиях можно собирать дамп.

Поддерживается Windows 7 Читать дальше

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

Получаем список открытых сессий при помощи скрипта Powershell

Многие операции я предпочитаю делать из командной строки, для чего использую консоль Powershell. О перезагрузке сервисов я уже писал ранее.
Теперь поговорим об операциях с сессиями.

Частой задачей является просмотр идентификатора сессии и получение списка открытых сессий. Напишем для этого соответствующий скрипт.

В объектной модели DocsVision уже есть соответствующий класс DocsVision.Platform.ObjectManager.SessionManager. А в его объекте метод GetOpenSessions. Поэтому вся задача разбивается на три:
  • Подключение сборки к скрипту PowerShell
  • Создание сессии и получение списка сессий
  • Вывод данных
 Поскольку сборка зарегистрирована, то подключать её будем по имени
[System.Reflection.Assembly]::LoadWithPartialName("DocsVision.Platform.ObjectManager")   
На вход наш скрипт будет принимать два аргумента: адрес сервера и имя базы.
[string]$ConnStr=$args[0]
[string]$Base=$args[1]
Есть поле для доработок - эти данные можно читать прямо из реестра.

Полный текст скрипта:
[System.Reflection.Assembly]::LoadWithPartialName("DocsVision.Platform.ObjectManager")        
[string]$ConnStr=$args[0]
[string]$Base=$args[1]

write-host($ConnStr)

# Создаем сессию
$SM = [DocsVision.Platform.ObjectManager.SessionManager]::CreateInstance()
$SM.Connect($ConnStr,$Base)
[DocsVision.Platform.ObjectManager.UserSession]$US=$SM.CreateSession()
Write-Host ("--------------------------------------------------------------------------------------")
write-host "YOUR SESSION ID: ", $US.ID
Try
{
    # Получаем открытые сессии
    [DocsVision.Platform.ObjectManager.InfoRowCollection]$Sessions = $SM.GetOpenSessions()
    write-host "SESSION COUNT: ", $Sessions.Count
    write-host ("Session ID`t`t`t","Account`t","Login time`t","Last access`t","Computer","IP") -Separator "`t"
    foreach ($Row in $Sessions)
    {
        write-host ($Row.Item(0),$Row.Item(1),$Row.Item(2),$Row.Item(3),$Row.Item(4),$Row.Item(5)) -Separator "`t"

    }
}
Finally
{
    $SM.CloseSession($US.ID)
}

Скачать скрипт

UPD: Будет работать на 4.5 и 4.3. На машине, на которой запускается скрипт как минимум должны стоять клиентские компоненты DocsVision.
UPD2: Пример запуска скрипта: get-dv45-sessions http://server/DocsVision/StorageServer/StorageServerService.asmx dv1966
Читать дальше

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

64 битная версия Microsoft Office

Используется ли в вашей компании (если вы пользователь DocsVision), или у компании заказчика 64 битная версия Microsoft Office?
Речь не идет о единичных пользователях, или админах. А о рядовых сотрудниках. Планируете ли переход на данную редакцию Office?

Опрос включен в левой колонке, сверху. Читать дальше

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

Конструктор решений. Запуск бизнес-процесса из скрипта на событие

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

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

Работа DocsVision 4.5 через ISA сервер

 В прошлом посте я описал случаи возникновения ошибки "Не удалось разобрать SOAP сообщение, полученное от сервера". В версии DocsVision 4.5 мы столкнулись с еще одним случаем, который связан с настройкой ISA сервера.

Началось все с инцидента, в котором была описана вроде бы типичная ситуация. Пользователь при входе получает данное сообщение об ошибке. Отличие было в том, что пользователь был внешний, а HTTP трафик от клиента (Навигатора) шел ко внутреннему серверу DocsVision через ISA сервер.

Исследование было начато по привычному плану: запущен HTTP отладчик Fiddler и открыт Навигатор. Далее при исследовании ответа от сервера (я то ожидал в логе увидеть что-нибудь вида ошибки 403) было обнаружено, что пакет приходит вполне обычный.
Тогда возник вопрос. Может сам пакет каким-либо образом поврежден, что не дает возможности правильно его интерпретировать. И точно. Выяснилось следующее.
В версии DocsVision 4.5. для оптимизации производительности и ускорения передачи данных по пути клиент-сервер, сервером DocsVision производится сжатие пакетов по протоколу deflate.
Таким образом в заголовке HTTP пакета установлен флаг "Content-Encoding: deflate" (см. верхний скриншот). Выявлено, что при прохождении данного пакета через ISA сервер происходит его изменение. Флаг "Content-Encoding: deflate" установлен, но при этом само содержимое пакета не сжато.

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

Если эту операцию выполнить, то никакого текста не будет.
Таким образом клиентский компонент, который использует Навигатор пытается распаковать этот пакет, но в результате ничего не получает. Отсюда и ошибка.

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

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

Не удалось разобрать SOAP сообщение, полученное от сервера

При открытии Навигатора, либо при программном соединении с сервером вы можете встретить сообщение об ошибке "Не удалось разобрать SOAP сообщение, полученное от сервера". В чем может быть причина.

Данное сообщение об ошибке отображается в случае если ожидается ответ от сервера в определенном формате, а приходит что-то другое.




В каких случаях это может быть?
1. Сервер возвращает какую-либо страницу об ошибке: 403, 404
2. Подключение идет по неверному адресу (к другому сайту и т.п.)

Для проверки нужно под пользователем, под которым производится соединение открыть страницу http://server/DocsVision/StorageServer/StorageServerService.asmx

Либо можете другим способом. Переведите транспортный протокол в консоли настройки на HTTP+SOAP. Затем запустите на машине, на которой работает ваш код какой-либо HTTP отладчик. Например Fiddler. И посмотрите, какой ответ возвращает сервер.

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

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

Особенности обновления скриптов карточек при переходе на 4.5

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

1. Из скрипта на событие "изменение свойства" записать новое состояние невозможно, т.к. оно всегда перезаписывается на то, что в данный момент выбрано в UI.
Смену состояния надо делать в скрипте кнопки тулбара (функция), сохранения или закрытия.
Для кнопки тулбара есть специальный флаг DoEvent = 1024 показывающий то, что состояние было изменено.

2. При возврате DoEvent=16 - сохранение изменений, значения из вкладки "Основная" будут записаны из UI в CardData. Т.е. если вы в скрипте на кнопку-функцию изменили, например Название карточки, а затем вернули DoEvent=16, то ваши изменения будут затерты значениями из UI. Решением для такого случая будет перенос кода, который изменяет поля, на событие "сохранение". Событие "Сохранение" теперь вызывается каждый раз при возврате DoEvent=16

3. Если карточка только что создана, а в скрипте на кнопку-функцию вы возвращаете флаг DoEvent=64 (установка признака сохранения), то при первом закрытии так же будет отображаться диалог с предложением сохранить карточку. Дело в том, что в 4.5 при первом сохранении создается ярлык на карточку (чего не делается при указании флага 64). Следовательно появляется данный диалог Читать дальше

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