Объединение дочернего и родительского документа

  • Автор темы Ols
  • Дата начала
Статус
Закрыто для дальнейших ответов.
O

Ols

Подскажите, пожалуйста, по следующей ситуации:
у каждого родительского докумена есть один дочерний. От дочернего решили отказаться - его поля поместить в основной. Соответственно надо агента для старых документов, чтоб перенести поля из дочернего в родительский и удалить дочерний.

UNID=doc.GetItemValue("$REF")(0)
Set pdoc=db.GetDocumentByUNID(UNID)
Call doc.CopyAllItems(pdoc,True) - но тогда со всеми полями скопируется и "REF", и еще порядочное количество полей: UpdatedBy и пр. Computed самих на себя. Это потом каждое из таких удалять RemoveItem'ом? А по другому как нибудь можно, чтоб эти Computed сами на себя не копировались? И какие еще возможны неприятные моменты при таком копировании айтемов из дочернего в родительский док.?
 
D

Domino6

1. doc.Responces - получаем коллекцию ответов
2 Составить список итемом в ответе которые нужно копировать и переносит по одному при этом проверяя наличие в главном через hasitem
 
G

GROMILA

Ну предлагаю универсальный врьянт:
1. Делаешь копию своего документа в некий DocCopy
2. Потом делаешь свой Call doc.CopyAllItems(pdoc,True)
3. И перетираешь отпять из копии Call doc.CopyAllItems(DocCopy,True)

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

Примечание: Сей вариант не подойдет, если тебе нужно значения пересекающихся полей заменить на значения их дочернего документа. В этом случае см. варьянт от Domino6

Может чаво и не сработает :)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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