Сгенерировать И Отправить В Outlook Invite

phantom76

Lotus team
25.02.2005
360
4
#1
Не кому не встречалась подобная задача? Нужно сгенерировать приглашение на собрание из LS и послать в Outlook.

Может у кого есть описание формата документа отправляемого в outlook?

Лотусовый invite отлично понимает Оutlook? - уже проверил.

НАсколько я понимаю, генерим документ со спец. полями для календаря, генерим файлик - *.ics, вкладываем его в doc и отправляем.

Идея пока такая, сейчас пороюсь в почтовом шаблоне на предмет генерации приглашений из календаря, но вдруг, кто-то уже имеет описание данных сущностей?
 

phantom76

Lotus team
25.02.2005
360
4
#3
Гугл сходу предлагает
http://www-10.lotus.com/ldd/nd6forum.nsf/8...66?OpenDocument
еще можно поискать по "create lotus notes invite (appintment) with lotus script", примеров достаточно много
Спасибо, я это все уже видел, собственно меня интересовал вопрос, нужно ли генерить файлик .ics , теперь точно знаю, что нет :)
 

savl

Lotus team
28.10.2011
2 136
105
#4
phantom76
если блокнотом открыть структура такая:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
DTSTART:20100623T1101100Z
DTEND:20100623T1401400Z
SUMMARY: England v Slovenia
LOCATION: Some where in South Africa
END:VEVENT
BEGIN:VEVENT
DTSTART:20100624T1101100Z
DTEND:20100624T1401400Z
SUMMARY: England v Slovenia again (replay)
LOCATION: Some where in South Africa
END:VEVENT
END:VCALENDAR
Если да, то что мешает его создать?)
 

phantom76

Lotus team
25.02.2005
360
4
#5
phantom76
если блокнотом открыть структура такая:
<tag thing='Раскрывающийся Текст'></tag>
Если да, то что мешает его создать?)
Собственно ничего не мешает :) Просто создавать его не нужно. При анализе кода библиотек шаблона почтового ящика я не нашел чтобы файл создавался, в исходящем сообщении файла тоже не существует. Судя по всему файлик генерится уже на стороне Outlooka. Создал тестовый агент, который формирует почтовое уведомление, протестировал, работает :)
 

swyatogor

Lotus team
24.02.2014
479
10
#6
Покажи как? если не жалко.. а то поставили задачу сделать удверждение заявок через травелер - а там только одна возможность - приглашения на собрания(.. по другому туда код не передать(( а линки на базу видетели не нравятся((
 

susinmn

Well-known member
16.10.2007
529
3
#7
Покажи как? если не жалко.. а то поставили задачу сделать удверждение заявок через травелер - а там только одна возможность - приглашения на собрания(.. по другому туда код не передать(( а линки на базу видетели не нравятся((
Самое простое в письме при отправке рисовать href с созданием письма, в тему зашиваешь идентификатор, в кому адрес mail-in базы, в базе обрабатываешь событие прихода сообщений.

P.S.: Xpage не ковырял?
 

swyatogor

Lotus team
24.02.2014
479
10
#8
xpage не ковырял.. не знаю с какой стороны к ним подступиться вообще(( даже элементарно что запустить нуно чтоб редактор появился не понял)) правда и мануалов не курил по этой теме - не до них еще..
 

susinmn

Well-known member
16.10.2007
529
3
#9
xpage не ковырял.. не знаю с какой стороны к ним подступиться вообще(( даже элементарно что запустить нуно чтоб редактор появился не понял)) правда и мануалов не курил по этой теме - не до них еще..
Если есть желание создать утверждение на xpages, мы тебе поможем. Ед. у меня в свое время функционал не работал на старых win mobile. Завтра на пальцах объясним как навоять, создай тему в соответствующем разделе.
 

swyatogor

Lotus team
24.02.2014
479
10
#10
А как оно будет выглядеть то? т.е. сама механика.. челу пришло какое-то сообщение в травелер, а дальше что?
зы а как в ричтекст хреф вставить?.. руками как знаю)) а вот программно не получается(
 

susinmn

Well-known member
16.10.2007
529
3
#11
А как оно будет выглядеть то? т.е. сама механика.. челу пришло какое-то сообщение в травелер, а дальше что?
Например, там ссылка на xPages страничку, при ее открытии открывается список всех заявок на рассмотрении.

зы а как в ричтекст хреф вставить?.. руками как знаю)) а вот программно не получается(
MIME
 

swyatogor

Lotus team
24.02.2014
479
10
#12
ээ.. а как эта стриничка будет отображаться на иосах и андроидах?? нормально?? есть где посмотреть?
 

phantom76

Lotus team
25.02.2005
360
4
#13
Покажи как? если не жалко.. а то поставили задачу сделать удверждение заявок через травелер - а там только одна возможность - приглашения на собрания(.. по другому туда код не передать(( а линки на базу видетели не нравятся((
так я тоже делал именно приглашения на собрания, это не утверждение. Вот процедура, которая отправляет приглашения., в ней вероятнее всего много лишнего, но для урезания не было времени:

Код:
%REM
Sub SendInvition
Description: создает и отправляет приглашение в календарь outlook
idoc - Документ приглашение из БД заседания
lst - готовый список получателей
lst2 - готовый список получателей замов\секретарей
%END REM
Sub SendInvition ( idoc As NotesDocument, lst As Variant, lst2 As Variant)
On Error GoTo Handler

Dim invitation As NotesDocument
Dim item As NotesItem
Dim startdttm As NotesDateTime
Dim startdt As NotesDateTime ' стартовая дата
Dim starttm As NotesDateTime ' стартовое время
Dim enddttm As NotesDateTime
Dim rtitem As NotesRichTextItem
Dim prompt As String
Dim language As String
Dim tasktype As String
Dim line1 As String
Dim tmpItem As NotesItem
Dim db As NotesDatabase
Dim ses As New NotesSession
Dim frm As String
frm = "КомпаниМедиа <CM@firma.ru>"
'Dim nn As New NotesName(frm)

'Compute SendTo and CopyTo items
Dim SendTo$, CopyTo$
SendTo$ = " <SV@firma.ru>"
Set db= ses.currentdatabase

Set invitation = New NotesDocument( db )
With invitation
.ReplaceItemValue "$altPrincipal", frm
.ReplaceItemValue "$CSVersion", "2"
.ReplaceItemValue "$EncryptionStatus", "0"
.ReplaceItemValue "$PublicAccess", "1"
.ReplaceItemValue "$SignatureStatus", "0"
.ReplaceItemValue "$SMTPKeepNotesItems", "1"
.ReplaceItemValue "AppointmentType", "3" '3
.ReplaceItemValue "Broadcast", "1"
.ReplaceItemValue "Encrypt", "0"
.ReplaceItemValue "Form", "Notice"
.ReplaceItemValue "PreventCounter", "1"
.ReplaceItemValue "PreventDelegate", "1"
.ReplaceItemValue "Principal", frm
.ReplaceItemValue "From", frm 
.ReplaceItemValue "InetFrom", frm 
.ReplaceItemValue "SendTo", lst 'SendTo$ 
.ReplaceItemValue "Recipients", lst
.ReplaceItemValue "RequiredAttendees", lst
.ReplaceItemValue "CopyTo", lst2
.ReplaceItemValue "SequenceNum", 1
Set tmpItem = New NotesItem(invitation, "StorageRequiredNames", "1", NAMES)
tmpItem.IsSummary = True
.ReplaceItemValue "UpdateSeq", 1
.ReplaceItemValue "$CSWISL", Evaluate({@Explode("$S:1;$L:1;$B:1;$R:1;$E:1;$W:1;$O:1;$M:1;RequiredAttendees:1;INetRequiredNames:1;AltRequiredNames:1;StorageRequiredNames:1;OptionalAttendees:1;INetOptionalNames:1;AltOptionalNames:1;StorageOptionalNames:1"; ";")})
.ReplaceItemValue "$HFFlags", "1"
.ReplaceItemValue "$IconSwitcher", "Meeting"
.ReplaceItemValue "$StorageCc", ""
.ReplaceItemValue "$StorageTo", "1"
.ReplaceItemValue "$TableSwitcher", "FindAvailTimes"
.ReplaceItemValue "$WatchedItems", Evaluate({@Explode("$S;$L;$B;$R;$E;$W;$O;$M;RequiredAttendees;INetRequiredNames;AltRequiredNames;StorageRequiredNames
;OptionalAttendees;INetOptionalNames;AltOptionalNames;StorageOptionalNames"; ";")})
.ReplaceItemValue "ApptUNID", .UniversalID
.ReplaceItemValue "IsBroadcast", "0"
.ReplaceItemValue "Logo", "StdNotesLtr25"
.ReplaceItemValue "NoticeType", "I"
.ReplaceItemValue "OrgTable", "C0"
.ReplaceItemValue "SchedulerSwitcher", "1"
.ReplaceItemValue "Sign", ""
.ReplaceItemValue "Subject", "Приглашение на заседание " + idoc.SDof(0)
.ReplaceItemValue "_ViewIcon", 133
.Replaceitemvalue "Location", idoc.SovetAddr(0)
End With

'Set the Body RT field
Set rtitem = New NotesRichTextItem(invitation, "Body" )
Call rtitem.Appendrtitem(idoc.Getfirstitem("Text"))
Call rtitem.Addnewline(2)

'устанавливаем поля даты и времени , продолжительность 1 час
Dim dtitem As NotesItem
Dim tmitem As NotesItem
Set dtitem = idoc.Getfirstitem("SovetDate")
Set tmitem = idoc.Getfirstitem("SovetTime")
Set Startdt = dtitem.Datetimevalue
Set Starttm = tmitem.Datetimevalue
Set startdttm = New NotesDateTime( Startdt.Dateonly +" "+ Starttm.Timeonly)
'Print "ДАТА1: " startdttm.Dateonly +" "+ startdttm.Timeonly
Set enddttm = New NotesDateTime( Startdt.Dateonly +" "+ Starttm.Timeonly)
Call enddttm.Adjusthour(1)
'Print "ДАТА2: " enddttm.Dateonly +" "+ enddttm.Timeonly
Set invitation.StartDateTime = startdttm '.LocalTime
invitation.StartDate = startdttm.Dateonly 'startdttm '.LocalTime
invitation.StartTime = startdttm.Timeonly 'startdttm '.LocalTime
invitation.StartTimeZone = Evaluate({@GetCurrentTimeZone})
Set invitation.EndDateTime = enddttm '.LocalTime
invitation.EndDate = enddttm.Dateonly'enddttm '.LocalTime
invitation.EndTime = enddttm.Timeonly 'enddttm '.LocalTime
invitation.EndTimeZone = Evaluate({@GetCurrentTimeZone})
On Error 4294 Resume next
Invitation.Send(False)

Exit sub
Handler:
Print "Ошибка в Agent Отправить приглашение в календарь в Sub SendInvition: " & Error & +Str(Err)+" в строке " & CStr(Erl())
Exit sub
End Sub
Добавлено:
Например, там ссылка на xPages страничку, при ее открытии открывается список всех заявок на рассмотрении.



MIME
имеет смысл сделать оговорку, если пользователи сервиса "внешние" , то для работы данного механизма веб-интерфейс от Xpages должен быть опубликован во вне.