Непонятка с шэдульным агентом

  • Автор темы allex
  • Дата начала
A

allex

Есть агент, он заглядывает в профильный док и берет там из поля значение.

Вопрос - при работе как Шэдульный агент возникает ошибка в последней строчке "Type mistmach", хотя поле Integer.
а вот при запуске его из спика агентов (не шедульный) - все замечательно отрабатывает.

В чем мистика ?

Код:
	Dim s As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim item1 As NotesItem
Dim item2 As NotesItem
Dim view As NotesView
Set db = s.CurrentDatabase

Set profdoc = db.GetProfileDocument("(dbconf)", s.UserName)
Dim n1 As Integer
n1 = profdoc.n_day(0)
 
Y

Yakov

Принудительно приведите тип к нужному: n1 = Cint(profdoc.n_day(0)).
 
O

Omh

Полагаю, при запуске нешедульно берётся профайл, в котором есть значение в поле n_day, а при запуске шедульно берётся другой профайл.

db.GetProfileDocument("(dbconf)", s.UserName)
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
вместо n1 = profdoc.n_day(0)
напиши print profdoc.n_day(0)
и посмотри что возвращает когда запуск по шедулеру
 
O

Omh

Вообще, сделать проверку на IsNumeric и, в зависимости от её результата смотреть по обстоятельствам :)
 
A

allex

Полагаю, при запуске нешедульно берётся профайл, в котором есть значение в поле n_day, а при запуске шедульно берётся другой профайл.

db.GetProfileDocument("(dbconf)", s.UserName)

Типа серверный userName берется, но подписан он мной и в настройках сервера указан я как исполнитель агентов
 
N

nvyush

Типа серверный userName берется, но подписан он мной и в настройках сервера указан я как исполнитель агентов

Профайлы кэшируются. Может на клиентской машине в кэше одно значение, а на серверной - другое?
 
A

allex

Сессия серверная, поэтому и значения в профильный документе не существует.

Создавать профильный док с серверной записью нужно тогда, но нехотелось бы

А от имения пользователя реально инициализировать ?
 
N

nvyush

Сессия серверная, поэтому и значения в профильный документе не существует.

Создавать профильный док с серверной записью нужно тогда, но нехотелось бы

А от имения пользователя реально инициализировать ?

А что мешает явно указать имя пользователя вместо s.Username или вообще может для данной задачи можно обойтись безымянным профилем?
 
A

allex

2 nvy Сдесь задача в том чтоб у каждого пользователя был профильный документ.
Вообще по смыслу нужно каждый день просматривать представление на наличие нужных доков

Решение - вешается мой код на postopen и всех делов.

Да.. только где гарантия что пользователь будет каждый день открывать БД
 
30.05.2006
1 345
12
BIT
0
А от имения пользователя реально инициализировать ?
Тогда следовало-б написать не session.UserName, а к примеру agent.Owner


2 nvy Сдесь задача в том чтоб у каждого пользователя был профильный документ.
Вообще по смыслу нужно каждый день просматривать представление на наличие нужных доков
.. типа - адресованных КАЖДОМУ юзеру?

Ну, тадЫ см. метод notesDatabase.GetProfileDocCollection. Юзеров, которые ни разу в базу не заходили, там не будет (если ТЫ за них не наследишь)
 
A

allex

Задачу решил созданием профильного дока с серверной записью. Таким образом разделив на профильные настройки и системные.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!