Коллекция объектов в качестве параметра процесса
Добрый день!
В процессе использую параметр с типом Коллекция объектов. Значение данного параметра передается в процесс из родительского процесса. Далее в элементе с типом задание сценарий происходит некая работа с коллекцией (по сути коллекция передается в другой метод, сами ее значения не меняются). После чего по условию БП либо идет дальше, либо возвращается в данный же кубик задание сценарий и должен снова вызвать метод и передать данную коллекцию в качестве параметра. Однако, при повторном заходе в задание сценарий, БП падает с ошибкой
Terrasoft.Common.ItemNotFoundException: Элемент с идентификатором "00000000-0000-0000-0000-000000000000" не найден в Terrasoft.Core.ManagerItemCollection`1.GetByUId(Guid uid) в Terrasoft.Core.Manager`2.GetInstanceByUId(Guid uid) в Terrasoft.Core.Process.GetGoldWarrantyAmountProcess.get_ProductConditionCollection() в Terrasoft.Core.Process.GetGoldWarrantyAmountProcess.ScriptTask1Execute(ProcessExecutingContext context) в Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)
Насколько я понимаю, это именно ошибка чтения параметра - коллекции объектов.
В связи с этим у меня возникает вопрос: как корректно передавать параметр с типом коллекция объектов в другой БП, чтобы цикл его жизни не был равен одному запуску дочернего БП, а был доступен на всем протяжении работы данного БП?
Нравится
Судя по тому, что в первый раз передалось нормально, потом значение переменной кто-то очищает. Если есть возможность, можно произвести отладку и посмотреть, какое значение в разные моменты находится в параметре.
Наконец, если причину выяснить не получится, можно хранить сами данные в хранилище, а в параметре передавать на них ссылку.
В 7.16.1 добавится возможность пользовательской настройки последовательного запуска одинаковых подпроцессов по каждому элементу коллекции из параметра.