1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

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

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

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

  1. newlord

    newlord Гость

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

    Akupaka А че я?.. О.о

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

    newlord Гость

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

    Akupaka А че я?.. О.о

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

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

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

    element = notesRichTextNavigator.GetElement
     
  5. newlord

    newlord Гость

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

    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 А че я?.. О.о

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

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

    newlord Гость

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

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

    Akupaka А че я?.. О.о

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

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

    Код:
    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 Гость

    Репутация:
    0
    Огромное спасибо. Самое то;)

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

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