Я использовал реконструированный дизайнер рабочего процесса в приложении ASP.NET для создания образов рабочих процессов, в основном применяя образец WorkflowMonitor аналогично тому, как Atlas Workflow Monitor. Теперь я начал беспокоиться о поведении этого решения после перераспределения, когда установленная версия библиотек больше не соответствует исходному из старых определений рабочего процесса (особенно из отслеживаемых рабочих процессов и записей истории в базе данных, которая содержит XOML рабочих процессов, которые были выполненный в прошлом). Стоит отметить, что я прочитал article об использовании нескольких версий рабочих процессов в одно и то же время, и это не совсем то, что мне нужно, так как я действительно не хочу запускать рабочие процессы со старыми определениями, я просто хочу показать их диаграммы. Я видел только два решения:Как использовать рабочие процессы со старыми версиями библиотек действий в (повторном) дизайнере рабочего процесса?
- сделать скриншот из конструктора рабочего процесса в то время, когда рабочий процесс завершает/разрыв, где я до сих пор актуальную версию библиотеки и просто сохранить его как растровое изображение в базу данных.
- Храните более старые версии библиотек в отдельной папке, чтобы как-то загрузить их в конструктор, чтобы он мог генерировать диаграммы из старых рабочих процессов, даже если действия в них больше не находятся в текущей версии сборки.
Как я хотел, чтобы избежать атрофии пространства (раствор 1), я решил сначала попробовать решение 2. Я нашел несколько примеров использования службы TypeProvider для WorkflowMarkupSerializer или WorkflowDesignSurface и пытались использовать их. К сожалению, в сценарии, когда действие удаляется в новой библиотеке, и старая библиотека загружается с помощью этого TypeProvider, похоже, не работает, в случае прямого использования WorkflowMarkupSerializer для чтения XOML он просто исключает недостающее действие из диаграммы , при использовании SqlTrackingService для загрузки некоторых старых отслеживаемых экземпляров он выдает исключение, что тип активности отсутствует (хотя внутри он, похоже, использует тот же метод WorkflowMarkupSerializer).
У вас есть опыт с этим или советы по использованию TypeProvider, что может пойти не так? Спасибо;)
«показывающих диаграммами различных версий», вы используете asp.net? какую библиотеку диаграмм вы используете? –
Да, asp.net и реорганизованный стандартный конструктор WF .. он основан на этом образце Atlas Workflow Monitor, см. Ссылку выше;) –