bpm 5.4 on-site, как передать информацию в подпроцесс
например есть скрипт А и скрипт Б
как из скрипта А вызвать скрипт Б и передать в него текстовую строку?
Нравится
Скрипт А и скрипт Б - это 2 функции "задание-сценарий"?
Нужно сделать так, чтобы каким-то образом при выполнении скрипта А, запустилась функция Б и пошло-поехало?
Или вам просто нужно вызвать какой-то вспомогательный метод, и после этого продолжить выполнение скрипа А?
"Яландаев Евгений" написал:Скрипт А и скрипт Б - это 2 функции "задание-сценарий"?
Нужно сделать так, чтобы каким-то образом при выполнении скрипта А, запустилась функция Б и пошло-поехало?
Или вам просто нужно вызвать какой-то вспомогательный метод, и после этого продолжить выполнение скрипа А?
да надо из А просто запустить скрипт Б и передать в скрипт Б параметр
"Резниченко Сергей" написал:Здравствуйте, Илья!
В бизнес процессе можно добавить параметры и методы. А потом просто вызывать их из Вашего скрипта.
С уважением,
Резниченко Сергей
Специалист 2-й линии поддержки
я в процессах и сздал сценарий, а как создать сценарий с параметром не нашел
Илья, задание-сценарий это void метод, принимающий в качестве параметра контекст выполнения. Поэтому конкретному заданию Вы параметр передать не сможете. Но можете определить параметр на уровне процесса (в соответствующей ветке структуры) и использовать его значение внутри задания, обращаясь к параметру по имени:
Не вижу нигде где можно создать параметр для скрипта.
вот скрин http://joxi.ru/zE7gU_3JTJD9B0uy32I
Здравствуйте, Илья!
Прочитайте, пожалуйста, внимательнее комментарий моего коллеги Максима
"Maxim Gritsenko" написал:Илья, задание-сценарий это void метод, принимающий в качестве параметра контекст выполнения. Поэтому конкретному заданию Вы параметр передать не сможете. Но можете определить параметр на уровне процесса (в соответствующей ветке структуры) и использовать его значение внутри задания, обращаясь к параметру по имени:
Параметры задаются на уровне всего процесса.
Далее можно использовать данный параметр, обращаясь из скрипта к нему по имени.
Сделал параметр
вот скрин: http://joxi.ru/LV_gU_3JTJBlZPqSF_U
присваиваю параметру значение "авто" и запускаю скрипт ScriptTask10Execute
вот скрин http://joxi.ru/a1_gU_3JTJA-CC1SJLY
а вот проверяю значение этого параметра в скрипте ScriptTask10Execute
и не срабатывает условие, значит значение параметру не передалось
вот скрин условия http://joxi.ru/NGHgU4wyTJC6Aufx0g4
Как вы определяете, что условие не выполнилось?
Советую отлаживаться, так как представленная вами конструкция должна отрабатывать. А если не отрабатывает, необходимо смотреть в другие места, например, задание-сценарий называется не ScriptTask10.
1. Я точно знаю, что ScriptTask10Execute запустился, так как у меня там выполняются еще действия.
2. Как видите условие двойное, и условие Page.TextEdit5.Text=="авиа" срабатывает
3. скрипт так и называется ScriptTask10Execute, именно по этому имени он и вызывается, как видите на скриншоте именно такое и есть название
Проверьте, не меняется ли значение до момента проверки. Выведите значение параметра в текстовый файл или в панель уведомлений непосредственно перед условием.
Лучше, конечно, пользоваться Visual Studio, это сэкономит время.
"Maxim Gritsenko" написал:Проверьте, не меняется ли значение до момента проверки. Выведите значение параметра в текстовый файл или в панель уведомлений непосредственно перед условием.
напомните как выводить в файл и как вывести сообщение
"Maxim Gritsenko" написал:Лучше, конечно, пользоваться Visual Studio, это сэкономит время.
нет студии и не умею ей пользоваться, если идти этим путём, то я завалю вас еще кучей вопросов и это будет намного дольше и не сэкономит времени
В файл можно вывести так:
System.IO.File.AppendAllText("C:\\debug.txt", VidPerevozkiParametr);
В панель уведомлений можно если это процесс страницы:
Page.BaseMessagePanel.AddMessage("Warning", VidPerevozkiParametr, MessageType.Warning);
изменил сценарий вызывающий
Page.TextEdit5.SetValue("авто"); VidPerevozkiParametr= "авто"; System.IO.File.AppendAllText("C:\\debug.txt", "перед входом в сценарий "+VidPerevozkiParametr+"\n"); ScriptTask10Execute(context); // скрыть линее в зависимости от вида System.IO.File.AppendAllText("C:\\debug.txt", "до входа в сценарий "+VidPerevozkiParametr+"\n"); return true;
и сценарий принимающий
System.IO.File.AppendAllText("C:\\debug.txt", "в сценарии"+VidPerevozkiParametr+"\n"); ...
В файл попадает только вот что:
в сценарии
Если это полное содержимое файла, то очевидно, что у вас не выполняется первый скрипт-таск.
Но второй скрипт вызывается из первого!!! И больше ниоткуда не вызывается!!! Значит по логике первый тоже выполняется, тем более присвоение из первого скрипта выполняется!!!
Page.TextEdit5.SetValue("авто");
В таком случае остается только отладиться.
Рекомендую к ознакомлению:
BPMonline: отладка конфигурации On-Site для 5.X
Отладка в Visual Studio