Отображение изменений в задаче

Автор Тема: Отображение изменений в задаче  (Прочитано 24082 раз)

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Отображение изменений в задаче
« : 24 Ноябрь 2009, 12:16:07 »
Добрый день. Появился такой вопрос.
Есть база, в ней создаю документ, нажимаю на кнопку, например Отправить, и пользователю указанному в документе отправляется письмо на почту в виде Задачи (Task). Заполняю Task:
Dim memo As New NotesDocument( db )
memo.Form = "Task"
memo.Subject = note.Title(0)

memo.Importance= note.Priority(0)
memo.CalendarDateTime = note.DateProm(0)
memo.DueDate=note.DateProm2(0)
....
проблема в том, что после того, как пришла задача пользователю и он изменил в самом документе какие-то поля, то в задаче эти изменения не получается отобразить. Подскажите пожалуйста, как это сделать

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Отображение изменений в задаче
« Ответ #1 : 09 Декабрь 2009, 10:08:48 »
Добрый день. Наконец возвращаюсь к задаче, т.к. не было времени на нее.
Понимаю, что надо проверять было ли изменено какое-либо поле в базе, где создаются документы, а потом менять их в почтовых задачах. Но не знаю как это сделать. Не подскажете?

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Отображение изменений в задаче
« Ответ #2 : 09 Декабрь 2009, 17:45:57 »
Скажите, может кто-то делал агент, который проверяет соотвествие полей в базе почтовой и еще одной базы. Если делали, то подскажите с чего вообще начать

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Отображение изменений в задаче
« Ответ #3 : 22 Декабрь 2009, 15:18:43 »
если задачи в почтовом ящике я создаю:
Dim memo As New NotesDocument( db )
memo.Form = "Task"
                    memo.Subject = db.Title + " : " + note.Title(0)
memo.Importance= note.Priority(0)
memo.CalendarDateTime = note.DateTime(0)
                     ......................
тогда (если я правильно понимаю) мне нужен агент , который будет работать по этому же принципу. Или что-то не то?!


в агенте
для обновления поля - @SetField("pole1" ; обновленное поле);
@True;
SELECT @All

??
а как именно в почтовой базе обновить поле "pole1" ??


« Последнее редактирование: 22 Декабрь 2009, 15:42:56 от K85 »

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Отображение изменений в задаче
« Ответ #4 : 22 Декабрь 2009, 16:30:23 »
начал делать агент:
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim maildb As NotesDatabase
Dim doc As NotesDocument
Dim mailDBName As Variant
Dim uidoc As NotesUIDocument

Set uidoc = ws.CurrentDocument

mailDBName = Evaluate({@MailDbName})
Set maildb = session.GetDatabase(mailDBName(0), mailDBName(1), False)
Set doc = maildb.CreateDocument
doc.Form = "Task"
doc.Subject =   uidoc.FieldGetText( "Title" )

Call ws.EditDocument(True, doc, False)

в этой строчке ошибка - doc.Subject =   uidoc.FieldGetText( "Title" )
не знаю как надо записать!?
« Последнее редактирование: 22 Декабрь 2009, 16:50:40 от K85 »

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Отображение изменений в задаче
« Ответ #5 : 23 Декабрь 2009, 09:42:25 »
Не забывайте приводить текст ошибки!

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Отображение изменений в задаче
« Ответ #6 : 23 Декабрь 2009, 10:12:48 »
Ошибка: Object variable not set
в строке: doc.Subject =   uidoc.FieldGetText( "Title" )

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Отображение изменений в задаче
« Ответ #7 : 23 Декабрь 2009, 10:18:40 »
Продебажьте, посмотрите почему пустой объект.

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Отображение изменений в задаче
« Ответ #8 : 23 Декабрь 2009, 11:08:49 »
понял... не в ту сторону начал смотреть.... не подходит такой вариант, его надо запускать в самом доке да и с оздавать новую задачу, а не редактировать старую  >:(

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Отображение изменений в задаче
« Ответ #9 : 12 Январь 2010, 16:31:06 »
Dim directory As NotesDbDirectory
Dim db As NotesDatabase
server$ = "NameServer"
Set directory = New NotesDbDirectory( server$ )
dbType% = DATABASE
Set db = directory.GetFirstDatabase( dbType% )
counter% = 0
While Not ( db Is Nothing )
counter% = counter% + 1
Set db = directory.GetNextDatabase
If Cstr(Lcase(Left(db.Filepath, 4))) = "mail" Then
Messagebox db.FilePath,,server$
Dim ProcessDb As New NotesDatabase("", "")
Call ProcessDb.Open(db.Server, db.Filepath)
If ProcesDb.IsOpen Then
Dim collection As NotesDocumentCollection
Set collection = db.Search(.....) мне надо найти документы, которые есть в базе (я так понимаю по их Unid)
If collection.Count > 0 Then
.... ' обновить данные в почтовых базах
End If
End If
End If
Wend
Правильно ли я понял и как найти документы по Unid и обновить данные в почтовых базах?

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Отображение изменений в задаче
« Ответ #10 : 12 Январь 2010, 16:47:03 »
Если известен UNID документа, тогда db.Getdocumentbyunid(Noteunid)
      

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Отображение изменений в задаче
« Ответ #11 : 12 Январь 2010, 17:04:16 »
пытаюсь проверить...
в строке
Set collection = ProcessDb.Search({Subject = "111"} , Nothing,0)
проверяются все базы, в моей почтовой базе есть задание с такой темой, он доходит до определенного пользователя и выдает ошибку в строке If ProcesDb.IsOpen Then. Ошибка Variant does not contain an object
Не скажете из-за чего?
Агент запускаю админом с Full Access Administration

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Отображение изменений в задаче
« Ответ #12 : 12 Январь 2010, 17:08:59 »
Если добавить "s" к Proces, возможно перестанет.

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Отображение изменений в задаче
« Ответ #13 : 12 Январь 2010, 17:19:03 »
точно спасибо

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Отображение изменений в задаче
« Ответ #14 : 13 Январь 2010, 15:48:08 »
Помогите, пожалуйста. Какой-то ужас с этим агентом.
Не могу сообразить. Сейчас получается, что агент доходит до строки
If ProcesDb.IsOpen Then
и после этой строки, сразу переходит в строку
End If
End If
End If
Wend
Не могу понять, как по полю из рабочей базы искать задачи в почтовой базе пользователей.