Есть проект, где требуется создать Процесс, на вход которому будет подаваться документ, из него должна создаваться копия, а затем уже выполняться различная логика. Пока стоят два основных вопроса: 1) Создание документа заранее неизвестного типа. 2) Копирование данных исходного документа. Если со вторым можно попробовать поработать через: var md = Model.Metadata.MetadataLoader.LoadMetadata(MyObject.GetType()) as ClassMetadata; То с первым и наверное главным - непонятно что делать. Кто-то встречался с подобным, можете посоветовать в какую сторону смотреть? Спасибо!
В точности такую задачу не решал, но могу посоветовать несколько подходов к решению задачи: 1. Можно в процессе предусмотреть отдельные ветки или прямо в скрипте через if или case сделать создание копии документов и копирование атрибутов. Тут сложных приемов не потребуется, но каждый тип документа нужно будет явно прописывать и дорабатывать процесс при появлении новых. 2. Посмотреть как реализован стандартный метод копирования документов в ELMA. Эта кнопка доступна из карточки документа, можно найти соответствующий контроллер в папке с ELMA и посмотреть как он реализован и если это подойдет, то использовать аналогичный код в своем сценарии. Но не факт, что подойдет, т.к. при стандартном копировании открывается форма создания документа с предзаполненными параметрами и не факт, что создание получится сделать автоматически. Нужно смотреть, если подойдет, то это будет лучшим вариантом. 3. Сделать создание документа через тот метод, что вы пишите, а дальше через рефлексию получить свойства копируемого документа и скопировать их в соответствующие поля нового документа. Я делал сравнение документов через такой механизм, работало успешно.