powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Поиск писем в IBM Notes с помощью C#
8 сообщений из 8, страница 1 из 1
Поиск писем в IBM Notes с помощью C#
    #39506396
msleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Смог реализовать поиск писем в IBM Notes по одному критерию (отправитель). А мне нужно как минимум по 2 критериям: отправитель и (дата доставки или дата отправления) письма. Что мне нужно изменить в коде?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
            String NoteServer = "Адрес сервера";
            string NateMailFile = "расположение MailFile на сервере .nsf";

            NotesDateTime _datetime = null;

            NotesSession session = new NotesSession();
            session.Initialize("");

            //Get connection to database.
            Domino.NotesDatabase NotesDb = session.GetDatabase(NoteServer, NateMailFile, false);
            //NotesDb.Open();

            Console.WriteLine(NotesDb.Title);
            Console.WriteLine("");
            
            //Отбираю письма которые содержат значения в отправителе
            NotesDocumentCollection NotesDocuments = NotesDb.Search("@Contains(From;'MicroStrategy Distribution Services')", _datetime,0);
            //NotesDb.Search("@Contains(Subject;'SQL Server Job System:')"
   
            Console.WriteLine(NotesDocuments.Count);
...
Рейтинг: 0 / 0
Поиск писем в IBM Notes с помощью C#
    #39507884
Фотография Vincent Vega
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msleg,

Если память не изменяет, то так должно работать:

Код: plaintext
NotesDocumentCollection NotesDocuments = NotesDb.Search("@Contains(From;'MicroStrategy Distribution Services') & @Contains(Subject;'SQL Server Job System:')", _datetime,0);
...
Рейтинг: 0 / 0
Поиск писем в IBM Notes с помощью C#
    #39508680
msleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vincent Vega,
Поменял код
Код: c#
1.
NotesDocumentCollection NotesDocuments = NotesDb.Search("@Contains(From;'MicroStrategy Distribution Services') & @Contains(DeliveredDate; '20.12.2016')", _datetime,0);


Вроде ошибки не вызывает. Но при этом писем не находит(( Хотя письма точно есть. Может быть это связанно с форматом даты?





Сделал вывод писем по одному критерию, чтобы убедиться что есть нужные письма с датой
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
            NotesDocumentCollection NotesDocuments = NotesDb.Search("@Contains(From;'MicroStrategy Distribution Services')", _datetime, 0);
            
            if (NotesDocuments.Count > 0)
            {
                NotesDocument document = NotesDocuments.GetFirstDocument();
                while (document != null)
                {
                    
                    Console.WriteLine(document.GetItemValue("DeliveredDate")[0]);
                    Console.WriteLine(document.GetItemValue("body")[0]);

                    document = NotesDocuments.GetNextDocument(document);
                }
            }



Вот что выводит
...
Рейтинг: 0 / 0
Поиск писем в IBM Notes с помощью C#
    #39508748
Фотография Vincent Vega
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msleg,

@Contains(DeliveredDate; '20.12.2016') работает только со стрингом ( https://www.ibm.com/support/knowledgecenter/de/SSVRGU_9.0.0/com.ibm.designer.domino.main.doc/H_CONTAINS.html)

DeliveredDate - это поле имеет тип "Data Type: Time/Date"

Поэтому, либо преобразовывайте дату в текст либо ищите по дате DeliveredDate = @Date(...)
...
Рейтинг: 0 / 0
Поиск писем в IBM Notes с помощью C#
    #39508821
msleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vincent Vega,

Спасибо. Все получилось

Код: c#
1.
2.
NotesDocumentCollection NotesDocuments = NotesDb.Search("@Contains(From;'MicroStrategy Distribution Services') " +
                "& @Contains(@Text(@Day(DeliveredDate)) + '.' + @Text(@Month(DeliveredDate)) + '.' +  @Text(@Year(DeliveredDate)) ; '20.12.2016')", _datetime,0);
...
Рейтинг: 0 / 0
Поиск писем в IBM Notes с помощью C#
    #39508870
msleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Поиск писем в IBM Notes с помощью C#
    #39509134
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vincent Vegamsleg,

@Contains(DeliveredDate; '20.12.2016') работает только со стрингом ( https://www.ibm.com/support/knowledgecenter/de/SSVRGU_9.0.0/com.ibm.designer.domino.main.doc/H_CONTAINS.html)

DeliveredDate - это поле имеет тип "Data Type: Time/Date"

Поэтому, либо преобразовывайте дату в текст либо ищите по дате DeliveredDate = @Date(...)
Намного проще сделать так:
Код: sql
1.
DeliveredDate=[20.12.2016]
...
Рейтинг: 0 / 0
Поиск писем в IBM Notes с помощью C#
    #39509209
msleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Garrick,
ну да)) так как-то красивей и меньше кода)

Код: c#
1.
NotesDocumentCollection NotesDocuments = NotesDb.Search("@Contains(From;'MicroStrategy Distribution Services') & DeliveredDate=[22.08.2017]", _datetime, 0);
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Поиск писем в IBM Notes с помощью C#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]