как работать с объектами в Workflow

Здесь обсуждаем систему TDM/PDM/Workflow Lotsia PDM PLUS (PartY PLUS).
Ответить
Аватара пользователя
Александр
Активный участник
Сообщения: 1658
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

как работать с объектами в Workflow

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

написал сюда сначала-потому что не в курсе...
а скажите... я запускаю работу (один информационный диалог) и в нем мне нужно поработать с несколькими объектами id которых лежат в объекте по которому запущена работа
получается что к данным объектам и их атрибутам я могу добраться только своими запросами

или быть может есть человеческий подход как в Party - установить объект, прочитать его атрибут, установить его атрибут :roll:

я конечно понимаю, что все это не более чем те-же запросы, но работать то не в пример удобнее

или быть может есть какие-то функции под это дело?

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

Троянов
Новый участник
Сообщения: 12
Зарегистрирован: 09 окт 2007, 16:14

Сообщение Троянов »

Александр, если речь идет о примерно такой ситуации:

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

То можно попробовать воспользоваться функцией LinkGetChild, в цикле уже делать все нужное.

Если они никак не связаны, то я не знаю :(
Аватара пользователя
Александр
Активный участник
Сообщения: 1658
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

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

фактически прямые связи отсутствуют, главный объект просто содержит адреса других объектов - т.е. работаю только по прямой адресации (id)
Связи вообще - использую только для визуального представления отдельных проектов - на этом принципе и построена вся система

в принципе мне конечно без разницы своим запросом или запросом оформленным как функция - все дело в быстродействии с одной стороны и с удобства разработки/редактирования с другой
поскольку в данном диалоге мне нужно представить минимум 10 объектов с атрибутами (это порядка 30 переменных) и положить сверху около 5 массивов по 300 значений

вот сижу и думаю как же все это будет тормозить... :roll: на моменте инициализации

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

Троянов
Новый участник
Сообщения: 12
Зарегистрирован: 09 окт 2007, 16:14

Сообщение Троянов »

SQL запросами можно все! :)
Аватара пользователя
Александр
Активный участник
Сообщения: 1658
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

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

гениально... :wink: :wink: блин...

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

Троянов
Новый участник
Сообщения: 12
Зарегистрирован: 09 окт 2007, 16:14

Сообщение Троянов »

Александр писал(а):гениально... :wink: :wink: блин...
все гениальное - просто!
:mrgreen:
Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Сообщение Disillusioned »

SQL-запросами изменять данные некрасиво.
Для добавления/изменения объектов/атрибутов в Workflow предусмотрена возможность вызова действий над объектами (в действие передаем ID и используем SetByID, если надо вернуть ID, заводим числовую переменную и используем obj_id=set(obj)).
Если надо получить число-код объекта-документа работы, в выражении указываем Объект.ID
Аватара пользователя
Александр
Активный участник
Сообщения: 1658
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

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

т.е. подожди - речь идет только о инициализации кучи переменных Workflow значениями существующих объектов (изменения понятно - что через действия-нет вопросов? но чтение то зачем)
пременных просто очень много (я пока еще не все запросы написал) и мне кажется что с момента нажатия на кнопку и до момента инициализации диалога - вообще пройдет сек 5, вот и думаю где ускориться - до показа формы или после или все сразу не показывать а только по событию???

хотя до меня дошло если мы читаем переменные действием то оно же может вернуть их значения аргументами в работу т.е. эквивалентно запуску работы с аргументами что пока не реализовано - да? или нет?

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

Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Сообщение Disillusioned »

Если разговор идет только о получении данных SQL-запросы вещь неплохая, но лично мне не нравится действия над переменными, набитые кодами атрибутов, иногда в них легко можно заблудиться.
При помощи действия над объектами, на мой взгляд, это реализовать проще. Что касается времени выборки данных, то в течении упомянутых тобою 5 секунд (а может не 5, а 2, здесь только опытным путем можно определить) пользователь будет лицезреть "Обработка действия" Загрузка данных..., что позволит ему настроится на плодотворную работу... :D
Под параметрами работы (которые сейчас передавать нельзя) я имел в ввиду некие флаги, позволяющие управлять логикой работы шаблона (например задать фильтр обрабатываемых объектов изделия: КД или ТД), сейчас я для этого использую документы работы (существует документ, значит КД, нет значит ТД).
Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Сообщение Disillusioned »

Если разговор идет только о получении данных SQL-запросы вещь неплохая, но лично мне не нравится действия над переменными, набитые кодами атрибутов, иногда в них легко можно заблудиться.
При помощи действия над объектами, на мой взгляд, это реализовать проще. Что касается времени выборки данных, то в течении упомянутых тобою 5 секунд (а может не 5, а 2, здесь только опытным путем можно определить) пользователь будет лицезреть "Обработка действия" Загрузка данных..., что позволит ему настроится на плодотворную работу... :D
Аватара пользователя
Старик Крупский
Активный участник
Сообщения: 803
Зарегистрирован: 27 июл 2006, 22:17
Откуда: Москва

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

Позвольте вклиниться. Насколько я понял, Александру может помочь вот что. Прицепляешь действие над объектом и ему на вход подаешь значение атрибута с ID требуемого объекта из атрибута. Собака именно здесь и порылась, т.к. этот ID не надо получать другим действием и сохранять в переменной. В документообороте на задаче добавляешь действие над объектами, в которое надо передать этот ID. Затем добавляешь строчку с переменной, в которую надо передать ID. А потом щелкаешь в левом поле и открываешь редактор выражений. Там внизу слева вкладка "Атрибуты". Выделяешь там в самом низу документ, справа отрисовывается дерево атрибутов. Щелкаешь два раза по нужному атрибуту и в верхнее поле возвращается что-то типа Объект.ID_траляля
ID_траляля - это название твоего атрибута. Т.о. дается указание передать на вход действия значение указанного атрибута.
Понимаешь о чем я? Не надо промежуточных сохранений.
А, вспомнил. Есть нюанс. Названия атрибутов не должны содержать недопустимые символы. Если у тебя есть атрибут с названием Масса (кг), то редактор выражений его выплюнет и не обработает. Поэтому лучше сразу переименовать какие-то атрибуты, например в Масса_кг. Точки и подчеркивания проходят. Да, и по-моему, если в текущей сессии добавлен новый атрибут, то нужно перевойти, чтобы он показался в дереве атрибутов.
Аватара пользователя
Disillusioned
Активный участник
Сообщения: 420
Зарегистрирован: 15 июл 2004, 15:12
Используемое ПО: Lotsia PDM PLUS
Откуда: Подольск
Контактная информация:

Сообщение Disillusioned »

Есть еще один нюанс: конструкции типа Документ.Имя_атрибута работают только в том случае если объект в работе фигурирует как документ. К сожалению, документы и переменные обрабатываются не одинаково - если из действия мы возвращаем переменную типа число, то она сразу же становится доступна для использования в других действиях :D ; если возвращаем документ то его новое значение будет доступно только на следующей задаче :cry: .
Аватара пользователя
Старик Крупский
Активный участник
Сообщения: 803
Зарегистрирован: 27 июл 2006, 22:17
Откуда: Москва

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

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