Как в действии по объекту анализировать документ архива

Здесь обсуждаем систему TDM/PDM/Workflow Lotsia PDM PLUS (PartY PLUS).
vlad_simple
Новый участник
Сообщения: 13
Зарегистрирован: 13 янв 2011, 00:07
Используемое ПО: Lotsia PDM PLUS

Re: Как в действии по объекту анализировать документ архива

Сообщение vlad_simple »

gali писал(а):думаю, вполне реализуемое желание. Если можно "руками" установить захват, а в списке функций такой нет, надо обратиться к авторам с соответствующей просьбой
Не совсем понял.
Вы уверены, что такой функции нет??
Или не уверены, но предлагаете обратится к авторам когда я убежусь что нет??
gali
Активный участник
Сообщения: 285
Зарегистрирован: 27 мар 2007, 07:43

Re: Как в действии по объекту анализировать документ архива

Сообщение gali »

у меня такой задачи не было, поэтому своим опытом порадовать не могу.
я сейчас пробежалась по списку функций, относящихся к файлам архива - не нашла чего-то похожего. Функция, открывающая файл архива, практически без параметров.
Обычно я о своих желаниях, выходящих за рамки предоставляемых возможностей, сообщаю в техподдержку. И очень часто через некоторое время получаю нужный мне инструмент.
vlad_simple
Новый участник
Сообщения: 13
Зарегистрирован: 13 янв 2011, 00:07
Используемое ПО: Lotsia PDM PLUS

Re: Как в действии по объекту анализировать документ архива

Сообщение vlad_simple »

Я вообще немного в шоке.
Функция открытия документа архива есть, а вот функции получения документа по объекту нет!!
Отсюда непонятно как возможно открыть документ из действия.
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Re: Как в действии по объекту анализировать документ архива

Сообщение Александр »

в шоке это не в этом форуме - здесь есть все :wink:
http://www.lplm.ru/phpBB2/viewtopic.php?f=2&t=634делаешь запросец и получаешь все что нужно :wink:
например

Код: Выделить всё

select --st1.id storage_id, 
--       fl1.file_name,
       fl1.object_reference_id object_id, 
       fv1.ver_label,
       fl1.cd,
       st1.Path + Empl.name+'\'+
             case when patindex('%.%_',fl1.file_name)=0 then fl1.file_name+fv1.ver_label
                  else substring(fl1.file_name, 1, patindex('%.%_',fl1.file_name)-1)+
                       fv1.ver_label+substring(fl1.file_name, patindex('%.%_',fl1.file_name),
                       len(fl1.file_name)-patindex('%.%_',fl1.file_name)+1) end,
  --     fl1.id file_id, 
  --     fv1.id ver_id, 
       fv1.orig_filepath
  from LSDBO.File1 fl1 left join LSDBO.EmplUsers Empl on fl1.author_id=Empl.id 
       inner join LSDBO.file_ver fv1 on fl1.id=fv1.file_id
       inner join LSDBO.Storage st1 on fl1.storage_id=st1.id 
       
--       where fl1.object_reference_id=100001470100039 --несколько документов
   --    where fl1.object_reference_id=100000001200013  --версии
   --      where fl1.object_reference_id in(100001470100039,100000001200013)
  
       order by fv1.ver_label desc, fl1.cd desc

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

gali
Активный участник
Сообщения: 285
Зарегистрирован: 27 мар 2007, 07:43

Re: Как в действии по объекту анализировать документ архива

Сообщение gali »

да, согласна, я тоже не всегда могу смириться с предложенной логикой.
На самом деле все можно, только не вполне традиционным способом :)
и да, верно подсказывает Александр - все могут запросы
Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Re: Как в действии по объекту анализировать документ архива

Сообщение Anderyt »

vlad_simple писал(а): Функция открытия документа архива есть, а вот функции получения документа по объекту нет!!
в этом нет ничего странного, это следует из структуры данных. документ привязан к ОДНОМУ объекту, поэтому однозначно определить объект по документу можно одной функцией. то же самое - с определением документа по версии, такая функция есть.
а вот обратно - нет. в одном объекте может быть несколько документов. в одном документе - несколько версий. какую из них должна вернуть функция?? а открывать функцией можно тот документ, который юзер выберет в стандартном интерфейсе (хотя не помню, чтобы такое у нас использовалось :-) )
можно говорить о случае с одним документом и одной версией и функции для этого случая, но... ;-)
запросом это вытаскивается без проблем.
пример Александра меня немного пугает ;-), но для получения единственного документа из объекта в действии можно использовать вот такую функцию:

Код: Выделить всё

Doc = SetById (number( f_ExecSQLSelect_2 (select top 1 id from lsdbo.file_v where object_reference_id = ' +a_Object , '','') ))
, где a_object - текущий объект, Doc - переменная типа Документ архива
ну это мы получим документ, а не его версию. хотя, в случае с единственной версией у документа этот запрос возвращает как раз ее ИД.
а вот когда документов в объекте несколько - там уже могут быть вариации..
лучше день потерять, потом за пять минут долететь!
gali
Активный участник
Сообщения: 285
Зарегистрирован: 27 мар 2007, 07:43

Re: Как в действии по объекту анализировать документ архива

Сообщение gali »

в работах я достаю версии файлов из объекта так:
f_ExecSQLSelect ( 'select lsdbo.file_ver_v.id
from lsdbo.file_ver_v, lsdbo.file_v
where lsdbo.file_ver_v.file_id = lsdbo.file_v.id
and lsdbo.file_v.object_reference_id = ' + ObjStart.ID , '', ',')

а потом разбираю
f_StringToArray ( ver_ids , ',' )

таким же образом можно делать и в действии
Аватара пользователя
Старик Крупский
Активный участник
Сообщения: 803
Зарегистрирован: 27 июл 2006, 22:17
Откуда: Москва

Re: Как в действии по объекту анализировать документ архива

Сообщение Старик Крупский »

vlad_simple писал(а):Я вообще немного в шоке.
Функция открытия документа архива есть, а вот функции получения документа по объекту нет!!
Отсюда непонятно как возможно открыть документ из действия.
Вы чё, ребята! Заработались что ли? :mrgreen: В свойствах переменной типа версия уже сто лет как есть условие отбора по объекту. Всего дело-то. Включил условие и в форму с автозавершением. А получать документ по объекту бессмысленно. Объект один, а документов может быть хоть немерено.
"Лучше меньше, да лучше" (C)
Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Re: Как в действии по объекту анализировать документ архива

Сообщение Anderyt »

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

Код: Выделить всё

Var_array_version_IDs = Set ( f_ExecSQLSelect_2 ('execute lsdbo.custom_proc_get_ver_ids_of_object '+a_Object, '',';')+';' )
и форма для этого не нужна ;-)
возня с ";" была сделана для анализа строки через поиск этого символа, хотя в действиях над объектами можно сделать и через вырезание кусков определенной длины (в работах такое вроде не проходит, для f_StringToArray нужно использовать какой-то символ для разделения ИД, как в примере gali)
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Старик Крупский
Активный участник
Сообщения: 803
Зарегистрирован: 27 июл 2006, 22:17
Откуда: Москва

Re: Как в действии по объекту анализировать документ архива

Сообщение Старик Крупский »

Ой, давно... Пару лет - точно. Работает так же, как условия отбора для объектов. Только для объектов указывается тип и/или атрибуты, а для версии объект или документ. Смотря, что известно. У версии все равно ведь один документ и один объект, так что здесь выбора для юзера никакого нет. Но если у объекта несколько документов и несколько версий, откроется, как обычно, окно выбора.

Хотя я тоже юзаю SQL. Он же совсем простой...
"Лучше меньше, да лучше" (C)
gali
Активный участник
Сообщения: 285
Зарегистрирован: 27 мар 2007, 07:43

Re: Как в действии по объекту анализировать документ архива

Сообщение gali »

Старик Крупский прав. Эта фишка существует давно. Раньше, чем я познакомилась с лоцией - это точно. Мне из техподдержки ее посоветовали для решения простенькой задачки. К сожалению, этого оказалось не достаточно для всего многообразия желаний. Пришлось прибегать к запросам.
vlad_simple
Новый участник
Сообщения: 13
Зарегистрирован: 13 янв 2011, 00:07
Используемое ПО: Lotsia PDM PLUS

Re: Как в действии по объекту анализировать документ архива

Сообщение vlad_simple »

Всем спасибо большое.
Есть большое поле для размышления.
Через фильтр версий пока не получается, хоть версия всего одна. Пока получаю через SQL.
Наверное просто пока опыта обращения не хватает.
Теперь у меня еще вопросик.
А как все-таки организовать захват документа, а не его открытие?
Так чтоб можно было выбрать куда его класть локально и как назвать файл.
Возможно есть какой-то недокументированный параметр DocVerOpen?
Или совсем другая функция?
gali
Активный участник
Сообщения: 285
Зарегистрирован: 27 мар 2007, 07:43

Re: Как в действии по объекту анализировать документ архива

Сообщение gali »

я тут снова перечитывала документацию по методам...
что если настроить метод открытия, указав автозахват?
тогда из действия обычной командой.
Правда, ни место, ни имя файла задать не удастся
vlad_simple
Новый участник
Сообщения: 13
Зарегистрирован: 13 янв 2011, 00:07
Используемое ПО: Lotsia PDM PLUS

Re: Как в действии по объекту анализировать документ архива

Сообщение vlad_simple »

А хочется вот такого странного.
Возможно по-другому - экспортом (DOCExport).
ТОгда можно указать куда класть и как назвать, но нельзя указать в базе что файл захвачен на редактирование.
А механизм захвата не описан, поэтому прописать в базе вручную не получится.
Получается, самому надо заводить флаг захвата, атрибут "захватчика"....
Обидно, что вроде как имеем мощный продукт надо такие примитивные вещи делать вручную.

Кстати, по-поводу SQL-запросов в формах атрибутов объектов.
Это только у меня мигает курсор циклично переключаясь с песочных часов на стрелку и обратно?
Такое ощущение, что программа постоянно повторяет эти запросы чтоб иметь на форме актуальную информацию.
gali
Активный участник
Сообщения: 285
Зарегистрирован: 27 мар 2007, 07:43

Re: Как в действии по объекту анализировать документ архива

Сообщение gali »

я бы порекомендовала обратиться в поддержку со своими странными :) желаниями.
Мой опыт обращений имеет положительный баланс.
Относительно запросов на форме, совершенно верно, они выполняются постоянно. Я как-то сделала форму с запросом - это катастрофа.
По мне, так лучше на форму кнопку, а к ней действие с запросом
Ответить