Нужна помощь

  • Автор темы sanch
  • Дата начала
S

sanch

кста {Not (([AgentCheck] contains 0) or ([AgentCheck] contains 1))} работает чуть не так мне надо чтоб выбирались все документы в которых нет AgentCheck.Подскажи плз как это сделать?
 
O

oshmianski

кста {Not (([AgentCheck] contains 0) or ([AgentCheck] contains 1))} работает чуть не так мне надо чтоб выбирались все документы в которых нет AgentCheck.Подскажи плз как это сделать?
Код:
	Dim session As New NotesSession	
Dim db As NotesDatabase	
Dim folder As notesview
Dim doc As NotesDocument
Dim count As Double
Dim col As NotesDocumentCollection

Set db = Session.CurrentDatabase

'создание пустой коллекции
Dim vw As notesView
Dim key(0) As String
key(0)="{xxxYYYzzz}"
Set vw = db.Views(0)
Set col = vw.GetAllDocumentsByKey(key)

Set folder = db.GetView("($Inbox)")
Set doc = folder.GetFirstDocument
While Not (doc Is Nothing)
If Not (doc.HasItem("AgentCheck")) Then col.AddDocument doc
Set doc = folder.GetNextDocument(doc)
Wend
 
S

sanch

:D Спасибо.Это то же что получилось у меня 2 недели назад.(Как говорится те же яйца только в профиль).Только тут проблема в другом время выполнения если в базе 3000 писем такой скрипт будет мин 8 выполнятся.
Удачного вечера.я домой. завтра выходите на связь!!!!
 
O

oshmianski

:D Спасибо.Это то же что получилось у меня 2 недели назад.(Как говорится те же яйца только в профиль).Только тут проблема в другом время выполнения если в базе 3000 писем такой скрипт будет мин 8 выполнятся.
Удачного вечера.я домой. завтра выходите на связь!!!!
опиши задачу.
1 - для чего тебе нужны документы без поля AgentCheck?
2 - как будет появлять это поле в документах (и в каких документах)?
3 - что дальше собираешься делать с этими документами без поля AgentCheck?
4 - в какой бд вся эта беда должна быть? общая для всех польхователей или у каждого отдельно?
5 - ты планируешь обработку повесить на агента по расписанию или инициировать будет пользователь?
 
S

sanch

<!--QuoteBegin-oshmianski+17:08:2006, 18:33 -->
<span class="vbquote">(oshmianski @ 17:08:2006, 18:33 )</span><!--QuoteEBegin-->опиши задачу.
1 - для чего тебе нужны документы без поля AgentCheck?
2 - как будет появлять это поле в документах (и в каких документах)?
3 - что дальше собираешься делать с этими документами без поля AgentCheck?
4 - в какой бд вся эта беда должна быть? общая для всех польхователей или у каждого отдельно?
5 - ты планируешь обработку повесить на агента по расписанию или инициировать будет пользователь?
[snapback]42401" rel="nofollow" target="_blank[/snapback]​
[/quote]

Доброе утро!.
Краткое описание задачи:
В почтовой базе необходимо сортировать приходящие письма по папкам.Имя папки - имя отправителя.Если папки нет создать-письмо пребросить, если есть просто пребросить!!!при чем все письма хранятся в Inbox а по папкам разабрасываются ссылки.
Все бы хорошо , но если у чела много писем(1000-2000) то агент будет их просматривать около 5 минут. и так каждий раз при запуске. Я решил пометить обработаные письма полем "AgentCheck", чтоб при создании каллекции такие письма отбрасывать, в таким случае будут обрабатыватся только новые письма.
Запуск агента планирую сделать "Перед приходом новой почты". но тут тоже проблемка. К примеру пришло письмо агент отработал но письмо не увидел, а увидит после прихода еще одного письма. Пробовал запуск "После прихода почты" в токам случае работает вообще черз ж@#у.к примеру письмо пришло а агент запустился мин через 5. Лутше всего работало по нажатию кнопки в меню.
 
O

oshmianski

...
Я решил пометить обработаные письма полем "AgentCheck", чтоб при создании каллекции такие письма отбрасывать, в таким случае будут обрабатыватся только новые письма.
...
хм, странно. вот смотри, ты обработал письмо и записал в поле AgentCheck="1". ну так что ж тебе мешает сделать FTSearch по представлению, как я тебе ранее и советовал. Все необработанные письма не будут содержать в поле значения "1" или вообще не будут содержать этого поля.

search = {NOT ([AgentCheck] contains 1)} 'это если строка

у меня в почтовом ящике у писем нет такого поля и поэтому возвращаются все письма из ($Inbox).
FTSearch работает быстрее, если индекс у бд создан.

...
В почтовой базе необходимо сортировать приходящие письма по папкам.Имя папки - имя отправителя.Если папки нет создать-письмо пребросить, если есть просто пребросить!!!
...
ты представляешь, что будет твориться в бд через пару лет. 100-200 папок - это безобразие. имхо, не есть правильное решение. категоризированный вид!!!

...
Запуск агента планирую сделать "Перед приходом новой почты". но тут тоже проблемка. К примеру пришло письмо агент отработал но письмо не увидел, а увидит после прихода еще одного письма. Пробовал запуск "После прихода почты" в токам случае работает вообще черз ж@#у.к примеру письмо пришло а агент запустился мин через 5. Лутше всего работало по нажатию кнопки в меню.
у меня уже несколько лет без проблем работает агент по обработке входящей почты - Before new mail arrives. все видит, все обрабатывает. не знаю будет ли иметь значение кем подписан агент и + у меня агент с Allow restricted operations with full administration rights.
 
S

sanch

<!--QuoteBegin-oshmianski+18:08:2006, 09:38 -->
<span class="vbquote">(oshmianski @ 18:08:2006, 09:38 )</span><!--QuoteEBegin-->ты представляешь, что будет твориться в бд через пару лет. 100-200 папок - это безобразие. имхо, не есть правильное решение. категоризированный вид!!!
[snapback]42436" rel="nofollow" target="_blank[/snapback]​
[/quote]
И я того же мнения, но раз надо знач надо.
Надо будет подумать как всетаки написать запрос. потому что для такой задачи любой цикл и ftsearch это очень медленно.
 
O

oshmianski

И я того же мнения, но раз надо знач надо.
Надо будет подумать как всетаки написать запрос. потому что для такой задачи любой цикл и ftsearch это очень медленно.
ftsearch работает очень быстро. у меня в представлении 37 тыш доков, поиск отработал за секунду. у бд должен быть сформирован индекс полнотекстового поиска.
 
S

sanch

<!--QuoteBegin-oshmianski+18:08:2006, 12:29 -->
<span class="vbquote">(oshmianski @ 18:08:2006, 12:29 )</span><!--QuoteEBegin-->ftsearch работает очень быстро. у меня в представлении 37 тыш доков, поиск отработал за секунду. у бд должен быть сформирован индекс полнотекстового поиска.
[snapback]42445" rel="nofollow" target="_blank[/snapback]​
[/quote]
круто!!!.Ну а можно ли как-нить связать ftsearch c NotesDocument.

Set folder = db.GetView("($Inbox)")
folder.FTSearch search, 0 в этом случае значение folder изменится?

если поля AgentCheck в документе вообще не существует то как отработает твой запрс?
{NOT ([AgentCheck] contains 1)}
 
O

oshmianski

круто!!!.Ну а можно ли как-нить связать ftsearch c NotesDocument.

Set folder = db.GetView("($Inbox)")
folder.FTSearch search, 0 в этом случае значение folder изменится?

если поля AgentCheck в документе вообще не существует то как отработает твой запрс?
{NOT ([AgentCheck] contains 1)}
1. да, можно. NotesView -> NotesViewEntryCollection - > NotesViewEntry -> Set NotesDocument = NotesViewEntry.Document
2. изменится folder.AllEntries
3. {NOT ([AgentCheck] contains 1)} вернет все доки в которых этого поля нет или оно не содержит "1" (текст)
 
S

sanch

Код:
Set db = session.CurrentDatabase
Set view=db.GetView("($Inbox)")
search= {NOT ([AgentCheck] contains 1)}
view.FTSearch search,0
Set vec=view.AllEntries
Ниче не пойму вроде делаю все как Ты говоришь но view.FTSearch search,0
выполняется сек 6. а в Set vec=view.AllEntries передаются все записи
 
O

oshmianski

Код:
Set db = session.CurrentDatabase
Set view=db.GetView("($Inbox)")
search= {NOT ([AgentCheck] contains 1)}
view.FTSearch search,0
Set vec=view.AllEntries
Ниче не пойму вроде делаю все как Ты говоришь но view.FTSearch search,0
выполняется сек 6. а в Set vec=view.AllEntries передаются все записи
значит что-то не так с полем AgentCheck.
1. может где русские символы в названии.
2. может это поле в доках не текстовое или содержит не "1".
если оно не текстовое, то для сравнения нужно использовать "=".
или в доках просто нет этого поля.
 
S

sanch

Ну, буду думать.
Большое спасибо за помощь!!!!!!!
 
Мы в соцсетях:

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