• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Значение Поля $ref Скопировать В Другое Поле

  • Автор темы juk-777
  • Дата начала
J

juk-777

Доброго времени суток, уважаемые. Давно не создавал темы здесь, но без вас не могу почему-то справиться.
Читал статью Как Lotus Notes поддерживает иерархию документов по адресу .
Цитата из статьи:
"Известен следующий приём, когда значение поля $Ref копируется в другое поле (допустим, Ref1), а само поле вычищается из документа
В этом случае системная иерархия главный документ - документ-ответ отсутствует, она существует только в конкретном приложении, но разработчик может создать на основе этих значений иерархическое представление какой ему нужно иерархии сущностей"

Собственно Вопрос: каким образом в лотус скрипте скопировать поле $ref в другое поле?

Я просто делаю аналогичную задачу и хочу при создании потомка брать значение поля родителя, которое определяется собакой как @DocumentUniqueID (то есть в поле реальный унид, а не его текстовое значение).
То есть из поля IDPodrazdelenie хочу при создании дочки взять его значение и перенести в поле UniRoditelya. НО че-то как-то не получается.
Пока получилось сделать так:
для поля UniRoditelya на собаках написал следующий код
@If (HeadPodrazdelenie = ""; @Unavailable; @DbLookup (""; ""; "TempView-Podrazdelenie"; HeadPodrazdelenie; "IDPodrazdelenie"))
где HeadPodrazdelenie - это поле документа отвечающее за название родительского подразделения
TempView-Podrazdelenie - простая вьюшка с отбором подразделений
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
простите, а зачем копировать? Можно просто переприсвоить значения
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
ну так а каким образом ты работать с юнидами собираешься?
 
J

juk-777

ну так а каким образом ты работать с юнидами собираешься?
я работал с юнидами раньше в таком виде: делал поля вычисляемые при создании в родителе и дочке допустим IDDOC , писал формулу
@text(@documentuniqueid)
Потом при создании дочки из родителя писал в поле дочки universalid родителя (то есть curdoc.parentid=pardoc.universalid)
Вот и получалась связь для дальнейшего использования.
Но в поле получалось что записывался не реальный унид документа, а его текстовый вариант, который я так понимаю не подходит для того, чтобы сделать иерархическую вьюшку с использованием конструкции DEFAULT $REF:=parentid

Вот поэтому и хотел как-то при создании дочки из рожителя передать реальный унид родителя в дочку, а не текстовый вариант ( то есть вместо curdoc.parentid=pardoc.universalid использовать надо другую какую-то конструкцию)
 
T

ty3uk

из того что увидел...
set z_item=z_doc.getfirstitem("$ref")
call z_item.copyitemtodoucmnet(x_doc,"$ref")
самый железный 100% способ (я его использую + использую подобный, когда один документ нужно сделать ответом к нескольким, естественно, что x_doc становиться документом источником + сохраняю не в $ref а в другое поле + для нормально работы, зачастую, в таких базах, у меня нет чистого $ref (особенность базы, когда в разных представлениях нужно документ прицепить ответом к разным документам, естественно что во вьюхе, не забываем выставить: default $ref:=$my_other_ref) )
в реальных скриптах, выглядит примерно так (у меня даж ответные документы формируются через LS с ручной привязкой)
Код:
call new_doc.makeresponce(main_doc)
set t_item=new_doc.getfirstitem("$ref")
call t_item.copytodocument(new_doc,"$parent_ref")
call t_item.remove()
 
H

hosm

на форуме обсуждали [post="152664"]тут вот пример[/post] + ниже на 2 и 4 сообщения можно глянуть
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!