K
kilcher
Здравствуйте!
возникла проблема в написании агента
Этот агент должен просматривать все документы,которые проходят согласование. И если человек не согласовал какой то(в котором он в списке согласующих),то отправить ему письмо. Проблема в том,что в документе нет поля для тех кто не согласовал и согласовал. Люди проставляют отметку о согласовании,создавая новый документ "answer"(уже вью созданное по новому документу отображается в текущем).
Т. е. получается надо просмотреть коллекцию докментов.в каждом из которых взять значение поля с id,затем по id найти уже документы "ответы" с полями содержащими имена тех кто согласовал.
Вот такой кошмар! Для новых я уже создала три поля:должны согласовть,согласовали и не согласовал. Но вот старые придется обработать агентом,который пытаюсь написать Вот код
Sub Initialize
Dim sess As New NotesSession
Dim db As NotesDatabase
Dim coll As NotesDocumentCollection,col As NotesDocumentCollection
Dim doc As NotesDocument,doc1 As NotesDocument
Dim bodytext As Variant
Dim sss As String
Dim newDoc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim ord As Variant, ans As Variant
Dim vDB As NotesView
Dim answers() As String
Set db = sess.CurrentDatabase
Set coll = db.Search({Form = "Order"}, Nothing, 0)
Set doc = coll.GetFirstDocument
Set vDB= db.GetView("Answer")
While Not doc Is Nothing
ord = doc.GetItemValue( "order_id ") ' берем id
Set col = vDB.GetAllDocumentsByKey(ord )'ищем по нему
Set doc1= col.GetFirstDocument
While Not doc1 Is Nothing
ans = doc1.GetItemValue( "answer_name")'берем имя согласовавшего
'Если подписал
Redim Preserve answers(Lbound(answers) To Ubound(answers) + 1)'создаем список
answers(Ubound( answers)) = doc.soglasovali'заносим его в поле согласовали
Set doc1= col.GetNextDocument(doc1)
Wend
Set doc = coll.GetNextDocument(doc)
Wend
End Sub
Пожалуйста помогите!!!!!
возникла проблема в написании агента
Этот агент должен просматривать все документы,которые проходят согласование. И если человек не согласовал какой то(в котором он в списке согласующих),то отправить ему письмо. Проблема в том,что в документе нет поля для тех кто не согласовал и согласовал. Люди проставляют отметку о согласовании,создавая новый документ "answer"(уже вью созданное по новому документу отображается в текущем).
Т. е. получается надо просмотреть коллекцию докментов.в каждом из которых взять значение поля с id,затем по id найти уже документы "ответы" с полями содержащими имена тех кто согласовал.
Вот такой кошмар! Для новых я уже создала три поля:должны согласовть,согласовали и не согласовал. Но вот старые придется обработать агентом,который пытаюсь написать Вот код
Sub Initialize
Dim sess As New NotesSession
Dim db As NotesDatabase
Dim coll As NotesDocumentCollection,col As NotesDocumentCollection
Dim doc As NotesDocument,doc1 As NotesDocument
Dim bodytext As Variant
Dim sss As String
Dim newDoc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim ord As Variant, ans As Variant
Dim vDB As NotesView
Dim answers() As String
Set db = sess.CurrentDatabase
Set coll = db.Search({Form = "Order"}, Nothing, 0)
Set doc = coll.GetFirstDocument
Set vDB= db.GetView("Answer")
While Not doc Is Nothing
ord = doc.GetItemValue( "order_id ") ' берем id
Set col = vDB.GetAllDocumentsByKey(ord )'ищем по нему
Set doc1= col.GetFirstDocument
While Not doc1 Is Nothing
ans = doc1.GetItemValue( "answer_name")'берем имя согласовавшего
'Если подписал
Redim Preserve answers(Lbound(answers) To Ubound(answers) + 1)'создаем список
answers(Ubound( answers)) = doc.soglasovali'заносим его в поле согласовали
Set doc1= col.GetNextDocument(doc1)
Wend
Set doc = coll.GetNextDocument(doc)
Wend
End Sub
Пожалуйста помогите!!!!!