Восстановление параметров у процесса, если они обнулены по пути
Добрый день, Коллеги
На днях возник небольшой вопрос, решить который все никак не представляется возможным.
У нас есть ряд workflow-процессов у которых в свою очередь есть большое кол-во свойств (параметров со значениями) процесса.
К сожалению, в связи с одной пунктуационной ошибки ранее, у некоторых процессов поле Parameters в таблице Workflow стало NULL.
В этот момент и возник вопрос:
Как можно восстановить хотя бы названия параметров, которые создавались на предыдущих шагах процесса?
Значения параметров я могу заполнить сам. Но все наименования не припомню.
А искать другой процесс на таком же шаге, который шел по тем же веткам, сложно.
Может можно как-то программно пройти все предыдущие шаги и считать названия создаваемых переменных?
Но при этом не выполняя содержимое всех шагов.
Дабы не дублировать сущности, создаваемые по пути.
Спасибо за потраченное на прочтение время
Используется Terrasoft XRM 3.3.2.244 и MS SQL
Нравится
Здравствуйте.
Т.е. у Вас есть незавершенные процессы, параметры которых были удалены, и Вам необходимо восстановить для дальнейшей корректной работы сами параметры и их значения?
Если да, то, к сожалению, это не возможно.
Даже если Вы запустите дубль процесса, дойдете до шага, на котором произошел сбой, и скопируете поле Parameters с одного процесса в другой, то все-ровно значения параметров будут не те, которые Вам необходимы в "некорректном" процессе. Названия же параметров, вы в принципе можете просмотреть в Террасофт Администраторе в свойствах диаграммы процесса.
Посмотреть я их, безусловно, могу
И даже могу поднять бэкап БД за период, когда еще были эти параметры у интересного мне процесса
Но хотелось бы попробовать найти чуть более изящное решение
Если оно есть, конечно же
Вопрос скорее в другом
Можно ли как-то получить их скриптом? Например распарсить в tbl_Service поле XMLData у процесса?!
Или, скажем, через функции террасофта можно получить список параметров у определенного шага\процесса?
Иван, посмотреть параметры конкретного дейтсвия можно в ТС Администраторе по правому клику:
а распарсить BLOB в XML можно следующим способом:
CREATE TABLE #Sample ( BLOB VARBINARY(MAX) NOT NULL ) INSERT #Sample SELECT 0x3C526F772049443D2231223E5065736F2C204D56503C2F526F773E SELECT * FROM #Sample ALTER TABLE #Sample ADD MyXML AS CAST(CAST(BLOB AS VARCHAR(MAX)) AS XML) -- Display the result SELECT * FROM #Sample
Спасибо за крайне развернутый ответ
Но, к сожалению, он не отвечает на вопрос
Можно ли как-то получить список параметров элемента бизнес процесса скриптом?
Например, кнопку сделать в гриде процессов для получения отсутствующих параметров
И распарсить XML представленный как Varbinary или Image тоже не проблема. Вот только Image у элемента Workflow Diagram в tbl_Service не парсится как XML
Иван, здравствуйте.
У каждого элемента в процессе есть свой набор параметров + у самого процесса могут быть пользовательские параметры.
В скрипте процесса можно получить список параметров:
var a = DiagramItem.Parameters; var b = Diagram.Parameters;
установить либо получить значения:
WFGetParamValueDirect(DiagramItem.Parameters, ParamName, DefaultValue); WFSetParamValueDirect(Params, ParamName, ParamValue, ParamType);
Параметры, которые "вшиты" в действия - даже после их удаления при выполнении действия - будут созданы.
Параметры диаграммы, которые пользовательские, восстановить не получится. Но посмотреть их список можно прямо в ТС Администраторе в свойствах диаграммы, если конечно они и там не были удалены.