поменять Replicaid в ссылке на документ

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

  1. newlord

    newlord Гость

    Есть база DB1, в ней есть линки на документы в базе DB2.
    У базы DB2 поменлась ReplicaID.
    Можно как нибудь поменять ID и в линках первой базы?
    Вообще линки редактируются?
     
  2. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    NotesRichTextDocLink class?
     
  3. newlord

    newlord Гость

    Да, я уже смотрю его ;)
    тока еще не очень разобрался
     
  4. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    задавай вопросы, разберемся вместе ;)

    element = notesRichTextNavigator.GetFirstElement( type% )
    notesRichTextNavigator.FindFirstElement( type% )

    type%
    Constant. The type of element:
    RTELEM_TYPE_DOCLINK (5)
    ...

    element = notesRichTextNavigator.GetElement
     
  5. newlord

    newlord Гость

    В общем я в хелпе все нашел;)
    вот что получилось

    Dim session As NotesSession
    Dim db As NotesDatabase
    Dim dc As NotesDocumentCollection
    Dim doc As NotesDocument
    Dim rti As NotesRichTextItem
    Dim rtnav As NotesRichTextNavigator
    Dim rtlink As NotesRichTextDocLink

    Set session = New NotesSession
    Set db = session.CurrentDatabase
    Set dc = db.UnprocessedDocuments
    Set doc = dc.GetFirstDocument
    Set rti = doc.GetFirstItem("ZZ")
    Set rtnav = rti.CreateNavigator


    If Not rtnav.FindFirstElement(RTELEM_TYPE_DOCLINK) Then
    Messagebox "No doclinks in Body item",, "No doclinks"
    Exit Sub
    End If
    Set rtlink = rtnav.GetElement

    If rtlink.DBReplicaID = "C32572F0002DEAAF" Then
    rtlink.DBReplicaID = "C32575AF00351EAB"
    End If

    Call doc.Save(True,True)
     
  6. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    молодец!

    единственное, что...
    а одна ли только ссылка в том поле может быть? в твоем коде только первая проверяется.
    Messagebox "No doclinks in Body item",, "No doclinks" - не самый красивый месадж, но, если только для себя...
    rtlink.DBReplicaID = "C32572F0002DEAAF" - подобные значения иногда лучше не константами делать, вдруг пригодится в аналогичном случае, но с другими данными...
     
  7. newlord

    newlord Гость

    В поле только одна ссылка
    мессадж остался из хелпа;)
    про константы понятно, просто очень срочно надо было делать, некогда облагораживать:(

    единственное не пойму...
    я сделал на агент по выбранным документам, а он не отрабатывает по всем, только один первый
     
  8. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ну, если вышеуказанный код - весь код, то не удивительно ;)

    Код (Text):
    Set dc = db.UnprocessedDocuments
    Set doc = dc.GetFirstDocument
    while not(doc is nothing)
    ...
    обработка документа
    ...
    set doc = dc.getNextDocument(doc)
    wend

    Код (Text):
    Dim session As NotesSession
    Dim db As NotesDatabase
    Dim dc As NotesDocumentCollection
    Dim doc As NotesDocument
    Dim rti As NotesRichTextItem
    Dim rtnav As NotesRichTextNavigator
    Dim rtlink As NotesRichTextDocLink

    Set session = New NotesSession
    Set db = session.CurrentDatabase
    Set dc = db.UnprocessedDocuments
    Set doc = dc.GetFirstDocument


    while not(doc is nothing)
    Set rti = doc.GetFirstItem("ZZ")
    Set rtnav = rti.CreateNavigator
    If rtnav.FindFirstElement(RTELEM_TYPE_DOCLINK) Then
    Set rtlink = rtnav.GetElement
    If rtlink.DBReplicaID = "C32572F0002DEAAF" Then
    rtlink.DBReplicaID = "C32575AF00351EAB"
    Call doc.Save(True, True)
    End If
    End If
    Set rti = nothing
    Set rtnav = nothing
    set doc = dc.getNextDocument(doc)
    wend

    msgbox "Усьо"
    где-то так
     
  9. newlord

    newlord Гость

    Огромное спасибо. Самое то;)

    сорри за тупость:(
     
Загрузка...

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