• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

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

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Серверные события: заполнение строкового атрибута

Автор Pavor, 11.04.20, 23:37:34

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

Pavor

Есть вроде бы простая задача:
при создании элемента типа "Деталь" в Лоцмане присваивать заданное значение атрибуту "Наименование".
По публикациям на форуме составился вот такой код, он не рабочий, к сожалению (атрибут не заполняется).
Возможно, это из-за того, что в методе UpAttrValue нужно указывать параметр
BSTR stIdUnit,// уникальный идентификатор единицы измерения
Какой параметр нужно указывать для заполнения строкового атрибута? Пробовал несколько вариантов - всё без толку (в коде на месте этого параметра стоит Null).


Хотелось бы еще изучить побольше рабочих примеров (WSC), есть ли какие-то пособия по написанию обработчиков серверных событий?

PS: пишу для Лоцман 2011
function Run(las, params, returnCode, errorMessage, flowDirectionCode)

 pObjType = params(0, 1)
 pObjProduct = params(1, 1)
 pObjVersion = params(2, 1)

if (pObjType="Деталь") then
 las.UpAttrValue pObjType, pObjProduct, pObjVersion, "Наименование", "Деталь апрель", Null, false, returnCode, errorMessage
end if


end function

Chipollino

Во-первых, не работает код потому, что в массив значений params для события "После создания объекта" в нулевой элемент передаётся IdVersion созданного объекта, а не его тип.
Во-вторых, если для атрибута нет измеряемой сущности, то в качестве идентификатора stIdUnit передавайте пустую строку - ""

Вот в таком виде код работает:
Цитироватьfunction Run(las, params, returnCode, errorMessage, flowDirectionCode)

 pObjType = params(1, 1)
 pObjProduct = params(2, 1)
 pObjVersion = params(3, 1)

 if pObjType = "Деталь" then
  las.UpAttrValue pObjType, pObjProduct, pObjVersion, "Наименование", "Деталь апрель", "", false, returnCode, errorMessage
 end if
end function

Pavor

Большое спасибо! Все сработало!

Не подскажете, что можно почитать на тему создания обработчиков серверных событий?

Chipollino

Цитата: Pavor от 22.04.20, 21:58:14Не подскажете, что можно почитать на тему создания обработчиков серверных событий?
Кроме этой справки я не уверен, что ещё что-то есть - ASCON\Loodsman\SDK\AppServer\Серверные события.chm