вытяжка данных из аутлука в лотус

Тема в разделе "Lotus - Программирование", создана пользователем oxystile, 21 май 2007.

  1. oxystile

    oxystile Гость

    в аутлуке расположены документы на основе формы созданной в конструкторе(документы расположены на пути общие папки/все общие папки/....)
    хотелось бы экспортировать все эти документы в БД лотуса, форма в лотусе идентична по виду атлушной, единственное что имена полей не совпадают

    предполагаю, что у же кто-то сталкивался с самой задачкой, буду благодарна за код и советы как это реализовать
     
  2. Ronchik

    Ronchik Гость

    создай в локальной адресной книжке акаунты на инет почту и ничего не придеться вытаскивать mail будет приходить прямо на лотус
     
  3. oxystile

    oxystile Гость

    нет, я не про почту
    Один проект ведет в аутлуке свою разработку, с почтой не связано.
    формы содержат набор поей: №, тема сообщения, заметки...
    в общей папке аутлука размещено порядка 3-х тысяч таких документов.
    Хотим разрабоку вести в лотусе, но прежде надо перетащить уже созданные разработки в аутлуке в лотус
     
  4. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: oxystile
    А может Вам Domino Access for Outlook поможет? или не то опять?
     
  5. Ronchik

    Ronchik Гость

    Понятно, тогда попробуй использовать OLE
     
  6. oxystile

    oxystile Гость

    Domino Access for Outlook вроде не то....
    а вот с OLE хотелось бы примерчик, может кто такое уже писал
     
  7. Ronchik

    Ronchik Гость

    Точно так-же как с Ex или Word только объект создаешь "OutLook.Application" и потом в любой скриптовой библиотеке на закладке Referens найдешь все то что касаемо этого объекта
     
  8. rm2005

    rm2005 Гость

    А где-нибудь можно скачать Domino Access for Outlook?
     
  9. oxystile

    oxystile Гость

    вроде как получается....но не могу взять в аутлуке элемент, кот. содержит вложение
    Set appOutlook = GetObject(, "Outlook.Application")
    Set nms = appOutlook.GetNamespace("MAPI")
    Set fld = nms.PickFolder
    lngCount = fld.Items.Count
    For i = 1 To lngCount' цикл по всем записям в папке
    Set item = fld.Items.Item(i)
    Set docNew = db.CreateDocument
    ss2=item.FullName ' это текстовое поле, его получила
    docNew.NameFirst=ss2 'получилось

    есть поле NotesName в нем лежит тект. файл,
    как обратиться к этому полю?
     
  10. Ronchik

    Ronchik Гость

    см. ItemProperty дальше через Value as Variant....по идее должно вернуть значение любого поля
     
  11. oxystile

    oxystile Гость

    вообщем что-то нашла, но все еще не то...
    Set vAttach = item.Attachments - получаю вообще все вложения, ну, и ладно, все равно они все должно загнаться в одно поле
    kol_attach=item.Attachments.Count -кол-во

    потом можно сделать цикл по ним:
    For j=1 To kol_attach
    'Set Attach=item.Attachments(j)
    'Next
    т.о. я их все уже получила, но как теперь их еще и поместить в поле docNew.Attach на форме лотуса?
     
  12. Ronchik

    Ronchik Гость

    Код (Text):
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Dim rtitem As NotesRichTextItem
    Dim object As NotesEmbeddedObject
    Set db = session.CurrentDatabase
    Set doc = New NotesDocument( db )
    Set rtitem = New NotesRichTextItem( doc, "Body" )
    Set object = rtitem.EmbedObject _
    ( EMBED_OBJECT, "", "c:\jim.sam")
    doc.Form = "Main Topic"
    doc.Subject = _
    "Here's Jim's document, as an embedded object"
    Call doc.Save( True, True )
    см. в хелпе дотуса NotesRichTextItem
     
  13. oxystile

    oxystile Гость

    да, это превым делом использовала
    вместо Set object = rtitem.EmbedObject _
    ( EMBED_OBJECT, "", "c:\jim.sam")

    написано
    Set vAttach =item.Attachments(1) - получил тип object
    Set object = rtitem.EmbedObject ( EMBED_ATTACHMENT, "", vAttach) - тут возвращена ошибка:)

    беда как раз и в том состоит, что получается надо скопировать объект vAttach на винт
    а потом Set object = rtitem.EmbedObject ( EMBED_ATTACHMENT, "", "путь+имя") -но ведь это ерунда:(
     
  14. Ronchik

    Ronchik Гость

    Зачем такие сложности
    вот пример копирования из одного поля RT в другое
    Код (Text):
    Sub Click(Source As Button)
    Dim w As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim docA As NotesDocument
    Dim rtitemA As Variant
    Dim rtitemB As Variant
    Set uidoc = w.CurrentDocument
    Set docA = uidoc.Document
    Call uidoc.Save
    Set rtitemA = docA.GetFirstItem( "Body" )
    Set rtitemB = docA.GetFirstItem( "Body1" )
    If ( rtitemA.Type = RICHTEXT And _
    rtitemB.Type = RICHTEXT ) Then
    Call rtitemA.AddNewLine(1)
    Call rtitemA.AppendRTItem( rtitemB )
    docA.body1 = " "
    docA.SaveOptions = "0"
    Call docA.Save(False, True)
    Call uidoc.Close
    End IF
    End Sub
     
  15. oxystile

    oxystile Гость

    этот пример работает, когда Set rtitemA берется из лотус документа
    а тут я пытаюсь установить Set rtitemB -вложение из аутлука
    в дебаггере смотрю напротив rtitemB -записано тип: object, и все больше никахи данных по нему.

    а код выше на строке if rtitemB.Type = RICHTEXT и ниже соответсвенно Call rtitemA.AppendRTItem( rtitemB ) -возращает ошибку
     
  16. velitchestvo

    velitchestvo Гость

    попробуй так, может получиться:

    Sub Click(Source As Button)
    Dim w As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim docA As NotesDocument
    Dim rtitemA As Variant
    Dim rtitemB As Variant
    Set uidoc = w.CurrentDocument
    Set docA = uidoc.Document
    Call uidoc.Save(True,True)
    Set rtitemA = docA.GetFirstItem( "Body" )
    Set rtitemB = docA.GetFirstItem( "Body1" )
    If ( rtitemA.Type = RICHTEXT And _
    rtitemB.Type = RICHTEXT ) Then
    Call rtitemA.AddNewLine(1)
    Call rtitemA.AppendRTItem( rtitemB )
    docA.body1 = " "
    docA.SaveOptions = "0"
    Call docA.Save(False, True)
    Call uidoc.Close
    End IF
    End Sub
     
  17. Ronchik

    Ronchik Гость

    <!--QuoteBegin-oxystile+25:05:2007, 11:11 -->
    <span class="vbquote">(oxystile @ 25:05:2007, 11:11 )</span><!--QuoteEBegin-->а код выше на строке if rtitemB.Type = RICHTEXT и ниже соответсвенно Call rtitemA.AppendRTItem( rtitemB ) -возращает ошибку
    [snapback]67089" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Вот эта проверка if rtitemB.Type = RICHTEXT не верна т.к. переменная rtitemB береться не из лотуса
     
  18. oxystile

    oxystile Гость

    <<<Вот эта проверка if rtitemB.Type = RICHTEXT не верна>>>
    так в том то и дело, т.к. rtitemB.Type =object (см. в дебаггере)
    так неужели и вправду единственный выход-это сохранять предварительно вложения из аутлука на жестком диске а потом из жесткого диска в лотусе??? :)
     
Загрузка...

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