Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум программистов _ Lotus - Программирование _ Восстановление дочерних документов

Автор: PavelT100 6:05:2008, 14:28

LN 7.0.3
В результате каких-то глюков пропал документ. У него были дочерние. Они в базе остались. Вручную восстановили этот документ, но теперь у него, естесственно, другой UNID. Как лучше всего восстановить теперь связи с дочерними документами ?
Можно ли скриптом менять $REF у дочерних документов, корректно ли это будет ?

Автор: Morpheus 6:05:2008, 14:32

PavelT100
можно, это всего лиш текстовое поле

а взять эти доки можно просто наядя ( NotesDatabase.Search ) документы с нужным унидом в поле REF

Автор: Sandr 6:05:2008, 15:11

найти документы скриптом и сделать их респонсами к другому через мейкреспонс.

реф - это не просто текстовое поле...

Автор: PavelT100 6:05:2008, 15:13

Цитата(Morpheus @ 6:05:2008, 16:32 ) *
PavelT100
можно, это всего лиш текстовое поле

а взять эти доки можно просто наядя ( NotesDatabase.Search ) документы с нужным унидом в поле REF

Поиск документов у меня пока проблем не вызывает.
А вот мои эксперименты показывают, что это увы не текстовое поле, в свойствах документа на типе поля $REF написано Response.
После того как я пишу примерно так
CODE
....
Set item = doc.ReplaceItemValue( "$REF", "F95820C40:F84E7C3C-NC3257441:002D1E17" )
Call doc.Save( True, True )
.....

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

Цитата(Sandr @ 6:05:2008, 17:11 ) *
найти документы скриптом и сделать их респонсами к другому через мейкреспонс.

реф - это не просто текстовое поле...

А спасибо, сейчас и попробую.

Автор: Morpheus 6:05:2008, 15:18

Цитата(Sandr @ 6:05:2008 - 17:11) *
реф - это не просто текстовое поле...

вижу, был неправ

Автор: Kee_Keekkenen 6:05:2008, 16:27

как вариант, можно поменять юнид родителя..

Автор: Medevic 7:05:2008, 05:01

Ручной метод: скопировать документы в буфер обмена, поставить курсор в представлении на нужном документе(родителе) и вставить. smile.gif

Автор: Omh 7:05:2008, 06:19

Ну или всех найти и сделать .MakeResponse(NewParent)

Автор: PavelT100 7:05:2008, 06:51

Цитата(Kee_Keekkenen @ 6:05:2008, 18:27 ) *
как вариант, можно поменять юнид родителя..

А как это можно сделать ?

Автор: Constantin A Chervonenko 9:05:2008, 16:20

Цитата(Morpheus @ 6:05:2008, 17:32 ) *
PavelT100
можно, это всего лиш текстовое поле

Это не ПРОСТО текстовое поле, тип у него другой. Текстовую ссылку можно юзать в формулах типа @GetDocField($REF; "fieldName"), но в UI она работать не будет


Цитата(PavelT100 @ 6:05:2008, 17:28 ) *
Можно ли скриптом менять $REF у дочерних документов, корректно ли это будет ?

Можно. Есть такой метод doc.MakeResponse parent

Но можно зайти и с другой стороны: восстановить "родителя" с заданным UNID-ом!

О.. Опоздал

Русская версия Invision Power Board (http://www.nulled.ws)
© Invision Power Services (http://www.nulled.ws)