Форумы Интермех
 ° Начало ° Ответить ° Статистика ° Регистрация ° Поиск ° RSS ° Wiki °

Форумы Интермех / Search, ImProject / Вопрос по GetDocStatus
Автор Сообщение
Yuri
Участник
ОАО "Ижорские Заводы", Санкт-Петербург

Дата: 3 Май 2011 12:09:22


Здравствуйте!

Функция GetDocStatus на некоторых "чужих" документах возвращает 0, даже если документ взят на редактирование.
В самом Search документы подсвечиваются, как взятые на редактирование.
На своих документах все работает корректно.
Из-за чего это может быть?
Спасибо!

Версия Search 8.2 Sp15

Yuri
Участник
ОАО "Ижорские Заводы", Санкт-Петербург

Дата: 3 Май 2011 15:13:39


Похоже раскопал, как это получается:

поэтапно:

- Пользователь создает новую версию своего документа и берет эту версию на редактирование (при этом старая версия остается возвращенной в архив)
- Другой пользователь пытается через API GetDocStatus узнать взят ли документ на редактирование и вот в этом случает функция вернет 0

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

Xabalov
Участник
ОАО "ЗМЗ" г.Заволжье Нижегородская обл.

Дата: 3 Май 2011 15:43:23


Проверил. Скрипт в "Инструментах".
Работает как надо.
Search 10СП3

Set SelItems = s4app.GetSelectedItems 'получение интерфейса отметок
if SelItems.FirstSelected = 1 then 'переход к первой отмеченной записи
For i = 1 to Selitems.SelectedCount 'цикл по отмеченным записям
id = SelItems.ActiveDocId 'инвентарный номер отмеченного документа
if id > 0 then
s4app.OpenDocument(id) 'делаем документ текущим, чтобы можно было пользоваться функциями API для работы с ним
msgbox(s4app.GetDocStatus)
end if
next
end if

Думаю и в маршрутизаторе не наврет. Про 8-ю версию не помню.

Yuri
Участник
ОАО "Ижорские Заводы", Санкт-Петербург

Дата: 3 Май 2011 15:54:21


Xabalov пишет:
Проверил. Скрипт в "Инструментах".
Работает как надо.


А у Вас есть документы в состоянии, как я написал выше,
т.е. чужой документ с созданной и взятой на редактирование версии?

Xabalov
Участник
ОАО "ЗМЗ" г.Заволжье Нижегородская обл.

Дата: 3 Май 2011 16:36:19


Именно на чужих и проверял. На "серых". Возвращает ID пользователя взявшего док-т.
У меня своих почти нет.

Xabalov
Участник
ОАО "ЗМЗ" г.Заволжье Нижегородская обл.

Дата: 3 Май 2011 16:38:37


Пардон, эти серые были 0-й версии. Смотрю еще.

Xabalov
Участник
ОАО "ЗМЗ" г.Заволжье Нижегородская обл.

Дата: 3 Май 2011 16:58:46


Нашел.
Вместо s4app.OpenDocument(id) использовать
s4app.OpenDocVersion id,4 (ID документа и ID версии)

Определить ID в маршрутизаторе:
Set Att = Activity.Attachments.Items(i)
id_doc= Att.DocID,
id_vers= Att.Version

Yuri
Участник
ОАО "Ижорские Заводы", Санкт-Петербург

Дата: 4 Май 2011 12:04:49



Xabalov пишет:
s4app.OpenDocVersion id,4 (ID документа и ID версии)


ОК, эта функа помогла

Большое спасибо за помощь!!!

Ваш ответ

Bold Style  Italic Style  Underlined Style  Image Link  Insert URL 
...



Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 

На форуме сейчас: гостей - 1
пользователей - 0
Наибольшее количество посетителей: 87 [1 Янв 2017 02:23:26]
гостей - 87 / пользователей - 0


miniВВ © 2001-2021