ОШИБКА Switchboard и Updateattach

lensu1

Active member
06.09.2010
37
0
#1
Ситуация такая.
Есть скрипт, который из документа выдергивает заголовок, аттачи, вызывает форму, где все это перечислено, выбираешь из формы адресата и все это счастье пересылается в отдельную почтовую базу в виде письма.

Все работает, если это кнопка. Но как только делаешь агента на той же форме с таким же текстом - вылазят 2 ошибки

1) Dim sb As New Switchboard - Class or type name not found: SWITCHBOARD и соответственно:
Set staffDB = sb.GetDatabase ("ITStaffManager") - Illegal parenthesized reference: GETDATABASE

2) Call updateAttach2(note, wdDoc) - Not a sub or function name: UPDATEATTACH4


Я в скриптах новичок, не кидайте тапками. Может какую библиотеку включить?..
И почему кнопкой работает...
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#2
в агенте в USE нужно указать ту же библиотеку что и в форме, в кнопке библиотеку необязательно указівать, скорее всего библиотека указана в глобалах формы и возможно называется так же USE "SWITCHBOARD"
и подозреваю что её когд вынесен во внешний файл :)
 

lensu1

Active member
06.09.2010
37
0
#3
в агенте в USE нужно указать ту же библиотеку что и в форме, в кнопке библиотеку необязательно указівать, скорее всего библиотека указана в глобалах формы и возможно называется так же USE "SWITCHBOARD"
и подозреваю что её когд вынесен во внешний файл :)

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

hosm

* so what *
18.05.2009
2 442
6
#5
2) Call updateAttach2(note, wdDoc) - Not a sub or function name: UPDATEATTACH4
получается, что updateAttach2 юзает UPDATEATTACH4, которое где-то описано в подключенных библиотеках (ну, или где-то в кнопке или глобальных областях того элемента дизайна, на котором расположена кнопка).
Дабы устранить вторую, которая видимо тоже на библиотеках завязана, задаю еще один вопрос - где удобнее всего поискать наличие тех или иных функций в библиотеках? Чтоб самим найти библиотеку?
если код открыт и доступен - поиском имени ф-ции по лотусскриптовым библиотекам в дизайнере. в старых версиях (6-7) можно задействовать синопсис в дизайнере и еще бывают довольно удобные платные утилиты.
 

lensu1

Active member
06.09.2010
37
0
#6
А что делать, если lotus не может подгрузить соответствующий модуль/библиотеку, в которой находиться жизненно важная функция?
 

hosm

* so what *
18.05.2009
2 442
6
#7
а библиотека, которая не может подгрузиться, идет с открытым кодом и не содержит ошибок? Библиотеки, которые она использует (если есть), тоже не содержат ошибок? возможно, придется перекомпилировать лотусскрипт в БД или пересохранить нужные элементы дизайна вручную в порядке использования.
кстати, "не может подгрузить" - это как? в дизайнере или это на этапе исполнения уже ошибка?
 

lensu1

Active member
06.09.2010
37
0
#8
а библиотека, которая не может подгрузиться, идет с открытым кодом и не содержит ошибок? Библиотеки, которые она использует (если есть), тоже не содержат ошибок? возможно, придется перекомпилировать лотусскрипт в БД или пересохранить нужные элементы дизайна вручную в порядке использования.
кстати, "не может подгрузить" - это как? в дизайнере или это на этапе исполнения уже ошибка?
Ошибка возникает в дизайнере - ругается на функцию UpdateAttach2/3/4
Поиском определила, что данная функция есть в библиотеке PrintDocAppl.lss в части ScriptLibraries базы, в которой я делаю агента.
Попытка подключить эту базу вызывает ошибку Duplicate PUBLIC name TITLEERROR in USE module PrintDocAppl.
В вышеупомянутой библиотеке ошибок нет.

В свою очередь подключила все библиотеки, которые есть на форме из options - но все равно не находит этот чертов UpdateAttach((
 

hosm

* so what *
18.05.2009
2 442
6
#9
Duplicate PUBLIC name TITLEERROR in USE module PrintDocAppl.
не знаю, в какой БД у вас эта ошибка проявляется, когда-то давно такая была, пофиксили убиранием глобальности, т.е. описали в PrintDocAppl
Private Const TitleError =

Добавлено: перенесла тему в специальный раздел.