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

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

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

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

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

Повторное Получение Документа В Одной Сессии

Тема в разделе "Lotus - Программирование", создана пользователем Serduko, 9 июл 2014.

  1. Serduko

    Serduko Well-Known Member

    Репутация:
    0
    Регистрация:
    11 окт 2011
    Сообщения:
    170
    Симпатии:
    0
    Есть ссылка на документ, полученная в начале исполнения (например агента на клиенте), в процессе исполнения, в другой сессии, другим пользователем изменяются данные в этом документе. Как получить ссылку на тот же документ с измененными данными, в рамках исполнения текущей сессии (агента), повторная инициализация (например Getdocumentbyunid) не помогает?
     
  2. savl

    savl Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    28 окт 2011
    Сообщения:
    2.116
    Симпатии:
    157
    Getdocumentbyunid - как раз таки помогает, но только если данные точно уже изменены, документ сохранен и приехал на этот сервер.
    Если он еще не сохранен, то никаких изменений нет.
     
  3. Serduko

    Serduko Well-Known Member

    Репутация:
    0
    Регистрация:
    11 окт 2011
    Сообщения:
    170
    Симпатии:
    0
    Документ сохранен и приехал на тот сервер, я проверял. Getdocumentbyunid ловит старый документ.
     
  4. Domino-Designer

    Domino-Designer Well-Known Member
    Lotus team

    Репутация:
    1
    Регистрация:
    6 дек 2011
    Сообщения:
    367
    Симпатии:
    67
    view.GetDocumentByKey вас спасет, но 1 раз =)
     
  5. savl

    savl Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    28 окт 2011
    Сообщения:
    2.116
    Симпатии:
    157
    Serduko
    Что-то я не верю... Сейчас сам еще раз перепроверю, пока отчет строится не могу.
    У меня такая штука используется для обработки конфликтов, так что странно.
    Правда я в другую переменную записываю. Попробуйте пока обнулить свой первоначальный документ и записать потом туда его снова.

    Domino-Designer
    Ну да, осталось только сделать вьюху и индекс в ней построить.
     
  6. Serduko

    Serduko Well-Known Member

    Репутация:
    0
    Регистрация:
    11 окт 2011
    Сообщения:
    170
    Симпатии:
    0
    Пробовал
     
  7. savl

    savl Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    28 окт 2011
    Сообщения:
    2.116
    Симпатии:
    157
    Поковырял, такое дело:
    Надо обнулить док и получать его снова через переменную, где содержится UNID
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код</div></div><div class="sp-body"><div class="sp-content">
    Код:
    	Dim ses As New NotesSession
    Dim db As NotesDatabase
    Dim ag As notesagent
    Dim doc As NotesDocument
    Dim doc2 As NotesDocument
    Dim stri As String
    Dim unid As String
    Set db = ses.Currentdatabase
    
    Set ag = db.Getagent("du")
    'В агенте DU пробег по всем документам, test = "1" и save.
    Set doc = db.Unprocesseddocuments.Getfirstdocument()
    
    unid = doc.Universalid
    
    stri = "" & doc.Lastmodified & Chr(10) & Chr(13)
    Call ag.Run()
    
    Set doc = nothing
    Set doc = db.Getdocumentbyunid(unid)
    stri = stri & doc.Lastmodified & Chr(10) & Chr(13)
    
    Call ag.Run()
    
    Set db = ses.Currentdatabase
    Set doc2 = db.Getdocumentbyunid(unid)
    stri = stri & doc2.Lastmodified & Chr(10) & Chr(13)
    
    MsgBox stri
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Результат</div></div><div class="sp-body"><div class="sp-content">---------------------------
    ---------------------------
    09.07.2014 14:54:28

    09.07.2014 14:56:49

    09.07.2014 14:56:49
    ---------------------------
    ОК
    ---------------------------
     
  8. Andre

    Andre Well-Known Member

    Репутация:
    0
    Регистрация:
    29 июл 2004
    Сообщения:
    108
    Симпатии:
    0
    Имхо, ход мысли правильный, а вот способ реализации ...
    Для этого существует statement Delete . Подробности в букваре
     
  9. alexas1

    alexas1 Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    10 апр 2014
    Сообщения:
    650
    Симпатии:
    227
    nothing делает ровно тоже самое.
     
  10. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Репутация:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    3.186
    Симпатии:
    22
    а всё из-за "Оптимизации" скрипта, когда индусы подумали что не гоже каждый раз брать один и тот же обьект и задёргивать базу :(
     
  11. savl

    savl Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    28 окт 2011
    Сообщения:
    2.116
    Симпатии:
    157
    Боюсь представить какой у LS GC, вернее его реализация.
     
Загрузка...
Похожие Темы - Повторное Получение Документа
  1. Elektrolife
    Ответов:
    5
    Просмотров:
    151
  2. AL04E
    Ответов:
    3
    Просмотров:
    1.533
  3. ITman2K17
    Ответов:
    26
    Просмотров:
    2.544
  4. ITman2K17
    Ответов:
    15
    Просмотров:
    2.524
  5. ArthurPatriot
    Ответов:
    3
    Просмотров:
    213

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