|
0 / 0 / 0
Регистрация: 21.01.2008
Сообщений: 240
|
|
Написание агента15.01.2009, 15:22. Показов 15393. Ответов 10
Метки нет (Все метки)
Здравствуйте!
возникла проблема в написании агента :unsure: Этот агент должен просматривать все документы,которые проходят согласование. И если человек не согласовал какой то(в котором он в списке согласующих),то отправить ему письмо. Проблема в том,что в документе нет поля для тех кто не согласовал и согласовал. Люди проставляют отметку о согласовании,создавая новый документ "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"}, Nothyng, 0) Set doc = coll.GetFirstDocument Set vDB= db.GetView("Answer") While Not doc Is Nothyng ord = doc.GetItemValue( "order_id ") берем id Set col = vDB.GetAllDocumentsByKey(ord )ищем по нему Set doc1= col.GetFirstDocument While Not doc1 Is Nothyng ans = doc1.GetItemValue( "answer_name")берем имя согласовавшего Если подписал Redym 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 Пожалуйста помогите!!!!!
0
|
|
| 15.01.2009, 15:22 | |
|
Ответы с готовыми решениями:
10
Написание агента Mail написание агента "автоответчик" вызов Ls-агента с показом диалогового окна из Java-агента |
|
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
|
||||||
| 15.01.2009, 15:41 | ||||||
|
Ну не такой уж и кошмар. Нормально по-моему. :unsure:
Можно на собаках написать. Гораздо проще будет. Что-то типа:
0
|
||||||
|
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
|
|
| 15.01.2009, 15:45 | |
|
+1 за "не кошмар"
0
|
|
|
0 / 0 / 0
Регистрация: 21.01.2008
Сообщений: 240
|
|
| 15.01.2009, 16:08 | |
|
Спасибо!!!!!!!!! чего я сразу не догадалась :unsure: Только я да это можно сказать не согласование,а просто ознакомление с документом. Вот еще надо теперь подумать как копии им рассылать ;)
0
|
|
|
0 / 0 / 0
Регистрация: 21.01.2008
Сообщений: 240
|
|
| 28.01.2009, 09:51 | |
|
Прошу о помощи все с тем же агентом. :lol: Пришлось писать скриптом конечно вычисления всех этих полей. Два я вычислила легко: кто должен согласовать answer1 и уже согласовал. А вот кто остался не вычисляется. В чем может быть ошибка?
Set coll = db.Search({Form = "Order"}, Nothyng, 0) Set doc = coll.GetFirstDocument Dim num As Integer While Not doc Is Nothyng обнуляем поля doc.answer1="" doc.soglasovali="" doc.ne_soglasovali="" Set item = doc.GetFirstItem( "answer1" ) Set item1 = doc.GetFirstItem( "soglasovali" ) заполняем поле именами тех,кто должен проставить отметку Call item.AppendToTextList( doc.GetItemValue("order_dp") ) Call item.AppendToTextList( doc.GetItemValue("order_mp") ) Call item.AppendToTextList( doc.GetItemValue("member_name") ) если кто-то уже проставил независимость ищем документ "Answer"и берем от туда имя пользователя Set view = db.GetView("Answer" ) Set dc = view.GetAllDocumentsByKey(doc.order_id, False) Set doc1= dc.GetFirstDocument While Not(doc1 Is Nothyng) Call item1.AppendToTextList( doc1.GetItemValue("From") ) сравниваем значение полей кто должен проставить отметку и кто уже проставил. f1 = doc.GetFirstItem("answer1").Values f2 = doc.GetFirstItem("soglasovali").Values f3 = Fulltrim(Arrayreplace(f1, f2, "")) Call doc.ReplaceItemValue("ne_soglasovali", f3) doc.ComputeWithForm False, False doc.Save True, True Set doc1 = dc.GetNextDocument (doc1) Wend
0
|
|
|
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
|
||||||
| 28.01.2009, 15:55 | ||||||
|
Делай на собаках. Проще будет.
0
|
||||||
|
0 / 0 / 0
Регистрация: 21.01.2008
Сообщений: 240
|
||
| 28.01.2009, 17:30 | ||
Спасибо! Я уже разобралась почему не работал агент. Я никогда не видела агента по рассписанию на собаках. На них разве можно коллекцию просмотреть доков?
0
|
||
|
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
|
|
| 29.01.2009, 08:19 | |
|
Что значит коллекцию просмотреть доков?
0
|
|
|
0 / 0 / 0
Регистрация: 21.01.2008
Сообщений: 240
|
|
| 29.01.2009, 08:41 | |
|
Как взять коллекцию я представлю на собаках,а как переходить по документам? Ну что то типа GetNextDocument
Или на собаках не так делается?
0
|
|
|
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
|
|
| 29.01.2009, 08:49 | |
|
На собаках формула применяется ко всем отобранным документам.
0
|
|
|
0 / 0 / 0
Регистрация: 21.01.2008
Сообщений: 240
|
|
| 29.01.2009, 09:32 | |
|
Здорово!
Вот к чему ведет не знание Спасибо!!!!!!!
0
|
|
| 29.01.2009, 09:32 | |
|
Помогаю со студенческими работами здесь
11
Проблема запуска Агента из агента! запуск агента Статус агента. Log агента Ошибка агента. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|