Вопрос

Запуск БП из C#

Здравствуйте.

 

Пытаюсь из событийного процесса таблицы вызвать БП. Из C# скрипта.

 

ProcessSchema schema = UserConnection.ProcessSchemaManager.GetInstanceByName("RNProductsUnavailableForOrder");
				Process process = schema.CreateProcess(UserConnection);
				process.Execute(UserConnection);

Процесс запускается и висит в выполнении. Т.е. состояние процесса в журнале - "Выполняется".

В процессе только старт и стоп. Ничего больше нет. Уже три раза его пересоздавал. Висит в выполнении и всё! Ничего больше не происходит. Ни ошибок, ни действий, ни трассировки... ничего.

Что может быть?

Спасибо!

Нравится

3 комментария

Попробуй так:

public static void MethodName(UserConnection userConnection)
		{
			userConnection.ProcessEngine.ProcessExecutor.Execute("ProcessName");
		}

 

Pavel Litvinovich,

Здравствуйте.
Попробую.
Сейчас заработало вот так:

ProcessSchema schema = UserConnection.ProcessSchemaManager.GetInstanceByName("RNProductsUnavailableForOrder");
//Разные движки для интерпритируемых и компилироуемых БП
bool canUseFlowEngine = ProcessSchemaManager.GetCanUseFlowEngine(UserConnection, schema);
if(canUseFlowEngine) 
{
	var flowEngine = new FlowEngine(UserConnection);
	var param = new Dictionary<string, string>();
	param["Lead"] = "Test";
	flowEngine.RunProcess(schema, param);
}
else 
{
	Process process = schema.CreateProcess(UserConnection);
	process.SetPropertyValue("Lead", "Test");
	process.Execute(UserConnection);
}

Я находил такой пример на форуме, но у меня он вызывал ошибку и я пошёл искать дальше. А надо было ковырять ошубку, которую он вызывал.
Спасибо ещё раз!
Всё заработало.

Slovarik,

У Вас тоже через flowEngine запускаются процессы новосозданные? У меня в 7.18.2 новые процессы только через flowEngine запускаются, и код ругается что данные способ будет скоро удален из системы, используйте новый (тот что у Вас в примере в начале). Не знаете почему новые процессы работают на старом ядре ?

Показать все комментарии