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

Тема в разделе "Lotus - Программирование", создана пользователем phantom76, 17 окт 2013.

  1. phantom76

    phantom76 Lotus team
    Lotus team

    Регистрация:
    25 фев 2005
    Сообщения:
    363
    Симпатии:
    9
    Не кому не встречалась подобная задача? Нужно сгенерировать приглашение на собрание из LS и послать в Outlook.

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

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

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

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

    Crock Active Member

    Регистрация:
    12 ноя 2012
    Сообщения:
    38
    Симпатии:
    0
  3. phantom76

    phantom76 Lotus team
    Lotus team

    Регистрация:
    25 фев 2005
    Сообщения:
    363
    Симпатии:
    9
    Спасибо, я это все уже видел, собственно меня интересовал вопрос, нужно ли генерить файлик .ics , теперь точно знаю, что нет :)
     
  4. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    phantom76
    если блокнотом открыть структура такая:
    Если да, то что мешает его создать?)
     
  5. phantom76

    phantom76 Lotus team
    Lotus team

    Регистрация:
    25 фев 2005
    Сообщения:
    363
    Симпатии:
    9
    Собственно ничего не мешает :) Просто создавать его не нужно. При анализе кода библиотек шаблона почтового ящика я не нашел чтобы файл создавался, в исходящем сообщении файла тоже не существует. Судя по всему файлик генерится уже на стороне Outlooka. Создал тестовый агент, который формирует почтовое уведомление, протестировал, работает :)
     
  6. swyatogor

    swyatogor Lotus team
    Lotus team

    Регистрация:
    24 фев 2014
    Сообщения:
    432
    Симпатии:
    10
    Покажи как? если не жалко.. а то поставили задачу сделать удверждение заявок через травелер - а там только одна возможность - приглашения на собрания(.. по другому туда код не передать(( а линки на базу видетели не нравятся((
     
  7. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    Самое простое в письме при отправке рисовать href с созданием письма, в тему зашиваешь идентификатор, в кому адрес mail-in базы, в базе обрабатываешь событие прихода сообщений.

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

    swyatogor Lotus team
    Lotus team

    Регистрация:
    24 фев 2014
    Сообщения:
    432
    Симпатии:
    10
    xpage не ковырял.. не знаю с какой стороны к ним подступиться вообще(( даже элементарно что запустить нуно чтоб редактор появился не понял)) правда и мануалов не курил по этой теме - не до них еще..
     
  9. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    Если есть желание создать утверждение на xpages, мы тебе поможем. Ед. у меня в свое время функционал не работал на старых win mobile. Завтра на пальцах объясним как навоять, создай тему в соответствующем разделе.
     
  10. swyatogor

    swyatogor Lotus team
    Lotus team

    Регистрация:
    24 фев 2014
    Сообщения:
    432
    Симпатии:
    10
    А как оно будет выглядеть то? т.е. сама механика.. челу пришло какое-то сообщение в травелер, а дальше что?
    зы а как в ричтекст хреф вставить?.. руками как знаю)) а вот программно не получается(
     
  11. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    Например, там ссылка на xPages страничку, при ее открытии открывается список всех заявок на рассмотрении.

    MIME
     
  12. swyatogor

    swyatogor Lotus team
    Lotus team

    Регистрация:
    24 фев 2014
    Сообщения:
    432
    Симпатии:
    10
    ээ.. а как эта стриничка будет отображаться на иосах и андроидах?? нормально?? есть где посмотреть?
     
  13. phantom76

    phantom76 Lotus team
    Lotus team

    Регистрация:
    25 фев 2005
    Сообщения:
    363
    Симпатии:
    9
    так я тоже делал именно приглашения на собрания, это не утверждение. Вот процедура, которая отправляет приглашения., в ней вероятнее всего много лишнего, но для урезания не было времени:

    Код (LotusScript):
    %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 должен быть опубликован во вне.
     
  14. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    #14 susinmn, 12 мар 2014
    Последнее редактирование модератором: 23 мар 2016
Загрузка...

Поделиться этой страницей