1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

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

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

  1. oxystile

    oxystile Гость

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

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

    Ronchik Гость

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

    oxystile Гость

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

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

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

    Ronchik Гость

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

    oxystile Гость

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

    Ronchik Гость

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

    rm2005 Гость

    Репутация:
    0
    А где-нибудь можно скачать Domino Access for Outlook?
     
  9. Hedg

    Hedg Гость

    Репутация:
    0
  10. oxystile

    oxystile Гость

    Репутация:
    0
    вроде как получается....но не могу взять в аутлуке элемент, кот. содержит вложение
    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 в нем лежит тект. файл,
    как обратиться к этому полю?
     
  11. Ronchik

    Ronchik Гость

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

    oxystile Гость

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

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

    Ronchik Гость

    Репутация:
    0
    Код:
    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
     
  14. oxystile

    oxystile Гость

    Репутация:
    0
    да, это превым делом использовала
    вместо 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, "", "путь+имя") -но ведь это ерунда:(
     
  15. Ronchik

    Ronchik Гость

    Репутация:
    0
    Зачем такие сложности
    вот пример копирования из одного поля RT в другое
    Код:
    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
     
  16. oxystile

    oxystile Гость

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

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

    velitchestvo Гость

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

    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
     
  18. Ronchik

    Ronchik Гость

    Репутация:
    0
    <!--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 береться не из лотуса
     
  19. oxystile

    oxystile Гость

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

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