Для C# кода есть отдельный кубик.код, который лежит в переменной. Как его можно выполнить?
project.Variables["переменная_1"].Value = "значение_1";
project.Variables["переменная_2"].Value = "значение_2";
project.Variables["переменная_3"].Value = "значение_3";
project.Variables["переменная_1"].Value = "значение_4";
project.Variables["переменная_2"].Value = "значение_5";
project.Variables["переменная_3"].Value = "значение_6";
project.Variables["переменная_1"].Value = "значение_7";
project.Variables["переменная_2"].Value = "значение_8";
project.Variables["переменная_3"].Value = "значение_9";
Значение из переменной я могу использовать, когда оно одно и принадлежит одной переменной. В нашем случае переменных несколько и значений этих переменных тоже несколько. Не совсем просто понимаю, как без C# кода прописать разным переменным, соответствующие и разные значения, как это происходит, при выполнении C# кода:Ну так в коде можете использовать значение из переменной.
project.Variables["переменная_1"].Value = "значение_1";
project.Variables["переменная_2"].Value = "значение_2";
project.Variables["переменная_3"].Value = "значение_3";
Задача довольно сложная и запутанная, так как в дело вступают вложенные проекты. Сложный путь я найду, просто выполнение кода C# или JS из переменной, самый простой путь и хотелось бы узнать есть ли в целом решение данной задачи или его не существует.Можете формировать значение из нескольких переменных, можете попробовать Switch
Напишите конкретные примеры желаемого результата, пока не совсем понятно, что хотите получить в итоге из этих переменных.
Ни разу Switch не пользовался, сейчас почитаю, что это такое и какие задачи можно с помощью нее закрывать.Или используйте стандартные действия с переменными
Посмотреть вложение 114153
и логикучерез switch
Посмотреть вложение 114154
Спасибо за Switch, хоть она не решит проблему, описанную в данной теме, но буду теперь ее использовать для других целей. Уже тему не зря создал, что-то новое узнал.Или используйте стандартные действия с переменными
Посмотреть вложение 114153
и логикучерез switch
Посмотреть вложение 114154
Ну так используйте C#просто выполнение кода C# или JS из переменной, самый простой путь и хотелось бы узнать есть ли в целом решение данной задачи или его не существует.
Да JS выполняет, но как оказалось, через JS код нельзя прописать значение переменной.js можно так выполнить
project.Variables["переменная_1"].Value = "значение_1";
Проблема вечной сложной работы логики проект в проете. Вложенный проект не знает, что ему передаст родительский, поэтому C# код всегда меняется и генерируется в родительском проекте, а исполняется во вложенном.Напишите нормальный код.
Как вариантДругими словами у JS нет аналога этому коду C#:
C#:project.Variables["переменная_1"].Value = "значение_1";
Проблема в том, что там группа переменных, их несколько одним блоком:Как вариант
return "значение_1" и положить значение в переменную
project.Variables["переменная_1"].Value = "значение_1";
project.Variables["переменная_2"].Value = "значение_2";
project.Variables["переменная_3"].Value = "значение_3";
В один вложенный проект, обращаться могут абсолютно разные по своей работе родительские проекты. Именно родительские проекты генерируют значения переменных, а вложенный проект их обрабатывает. Причем один родительские проект может передать, например 3 переменные со своими значениями, а другой родительский проект передаст 6 переменных со своими значениями.так передавай во вложенный проект сразу нужные значения и присваивай при вызове
Посмотреть вложение 114157
ну так пусть и передают сколько хотят. у каждого вызова будет своя копия переменных. это же подпроект.В один вложенный проект, обращаться могут абсолютно разные по своей работе родительские проекты. Именно родительские проекты генерируют значения переменных, а вложенный проект их обрабатывает. Причем один родительские проект может передать, например 3 переменные со своими значениями, а другой родительский проект передаст 6 переменных со своими значениями.
Ваш пример подходит, если нужно передать одно значение переменной, из одной переменной в другую, а у меня получается, что у одной переменной может быть несколько разных значений, а уже во вложенном проекте, решается какое именно подходит.ну так пусть и передают сколько хотят. у каждого вызова будет своя копия переменных. это же подпроект.
project.Variables["переменная_1"].Value = "значение_1";
project.Variables["переменная_2"].Value = "значение_2";
project.Variables["переменная_3"].Value = "значение_3";
project.Variables["переменная_1"].Value = "значение_4";
project.Variables["переменная_2"].Value = "значение_5";
project.Variables["переменная_3"].Value = "значение_6";
project.Variables["переменная_1"].Value = "значение_7";
project.Variables["переменная_2"].Value = "значение_8";
project.Variables["переменная_3"].Value = "значение_9";
почему бы не решить какое подходит ДО вызова подпроекта ?Ваш пример подходит, если нужно передать одно значение переменной, из одной переменной в другую, а у меня получается, что у одной переменной может быть несколько разных значений, а уже во вложенном проекте, решается какое именно подходит.
Они все 3 группы подходят, просто во вложенном проекте располагаются в разных местах и являются настройками для следующего уровня вложенных проектов.почему бы не решить какое подходит ДО вызова подпроекта ?
В целом вы верно понимаете суть ситуации. Проблема только в том, что все группы верные и нужны для работы проекта, в разных местах вложенного проекта. Если ветка уйдет в одну линию, то первая группа окажется верной, если в другую, то вторая группа пропишется в значениях тех же самых переменных. Там выше я отредактировал пост и вы можете увидеть группы переменных.почему бы не решить какое подходит ДО вызова подпроекта ?
значит надо сформировать данные таким образом, что бы они передавались логическими группами. а в подпроекте происходил разбор этих групп. и в следующий подпроект попадали выбранные данные из нужных групп.Они все 3 группы подходят, просто во вложенном проекте располагаются в разных местах и являются настройками для следующего уровня вложенных проектов.
Полностью согласен, но иногда приходится работать с тем, что имеется, когда скилл будет выше, старые решения заменяются на новые более компактные, быстрые и простые, с возгласами, как я раньше работал и почему этого не знал. Проблема именно в данном случае, что программированием я не владею, а задачи ставлю сложные, и поэтому в руки берутся костыли и побежали.значит надо сформировать данные таким образом, что бы они передавались логическими группами. а в подпроекте происходил разбор этих групп. и в следующий подпроект попадали выбранные данные из нужных групп.
оперировать надо данными, а не кодом. как говорят, мухи отдельно, котлеты отдельно. выше правильно написали, нужен нормальный код и нормальная структура данных, для работы.
По сути вы же и создали проблему.Проблема вечной сложной работы логики проект в проете. Вложенный проект не знает, что ему передаст родительский, поэтому C# код всегда меняется и генерируется в родительском проекте, а исполняется во вложенном.
Научиться бы отличать проблему от задачи. Для меня так выглядит задача, она же и создает проблему, чтобы иначе сформулировать задачу, нужен опыт. Вот и получается, что на сегодняшний момент возможна постановка такой задачи, которая создает некоторые проблемы в реализации. Проект в проекте сложный функционал, особенно при работе с переменными. Я создавал уже тему нерешаемой проблемы с 3 вложенными проектами, когда в 3-ем проекте выполняется действие, записывается в переменную, которую нужно передать в 1 проект, но из-за того, что переменной нет во 2-ом проекте, значение переменной не может передаться в 1 проект, нужно синхронизировать все переменные, между всеми проектами, чтобы значения переменных могли свободно путешествовать между любыми вложенными проектами.По сути вы же и создали проблему.
Напишите такую логику, которая не будет зависеть от этого.
Берите нужные пары например в словарь.Мне нужно передать сразу несколько значений для одной переменной, а во вложенном проекте они будут указаны в разных местах и выполнять свою задачу.
Группа #1:project.Variables["переменная_1"].Value = "значение_1"; project.Variables["переменная_2"].Value = "значение_2"; project.Variables["переменная_3"].Value = "значение_3";
Группа #2:project.Variables["переменная_1"].Value = "значение_4"; project.Variables["переменная_2"].Value = "значение_5"; project.Variables["переменная_3"].Value = "значение_6";
Группа #3:project.Variables["переменная_1"].Value = "значение_7"; project.Variables["переменная_2"].Value = "значение_8"; project.Variables["переменная_3"].Value = "значение_9";
string[] data1 = new[]{ "значение_1", "значение_4", "значение_7"};
string[] data2 = new[]{ "значение_2", "значение_5", "значение_8"};
string[] data3 = new[]{ "значение_3", "значение_6", "значение_9"};
var dic = new Dictionary<string, string[]>();
dic["переменная_1"] = data1;
dic["переменная_2"] = data2;
dic["переменная_3"] = data3;
project.Variables["temp"].Value =Global.ZennoLab.Json.JsonConvert.SerializeObject(dic, Global.ZennoLab.Json.Formatting.Indented);
// Во вложенном проекте
var dic_item = Global.ZennoLab.Json.JsonConvert.DeserializeObject<Dictionary<string, string[]>>(project.Variables["temp"].Value);
project.Variables["переменная_1"].Value = dic_item["переменная_1"][0]; // - это будет использовано в первом случае
project.Variables["переменная_1"].Value = dic_item["переменная_1"][1]; // - эта строка будет использована в другом месте
project.Variables["переменная_1"].Value = dic_item["переменная_1"][2]; // - эта строка будет использована ещё в каком-то месте
project.Variables["переменная_2"].Value = dic_item["переменная_2"][0];
project.Variables["переменная_2"].Value = dic_item["переменная_2"][1];
project.Variables["переменная_2"].Value = dic_item["переменная_2"][2];
project.Variables["переменная_3"].Value = dic_item["переменная_3"][0];
project.Variables["переменная_3"].Value = dic_item["переменная_3"][1];
project.Variables["переменная_3"].Value = dic_item["переменная_3"][2];
// Во вложенном проекте в первом месте
var dic_item = Global.ZennoLab.Json.JsonConvert.DeserializeObject<Dictionary<string, string[]>>(project.Variables["temp"].Value);
int i = 0;
project.Variables["переменная_1"].Value = dic_item["переменная_1"][i]; // - это будет использовано в первом случае
project.Variables["переменная_2"].Value = dic_item["переменная_2"][i];
project.Variables["переменная_3"].Value = dic_item["переменная_3"][i];
// Во вложенном проекте в втором месте
var dic_item = Global.ZennoLab.Json.JsonConvert.DeserializeObject<Dictionary<string, string[]>>(project.Variables["temp"].Value);
int i = 1;
project.Variables["переменная_1"].Value = dic_item["переменная_1"][i]; // - это будет использовано в первом случае
project.Variables["переменная_2"].Value = dic_item["переменная_2"][i];
project.Variables["переменная_3"].Value = dic_item["переменная_3"][i];
// Во вложенном проекте в третьем месте
var dic_item = Global.ZennoLab.Json.JsonConvert.DeserializeObject<Dictionary<string, string[]>>(project.Variables["temp"].Value);
int i = 2;
project.Variables["переменная_1"].Value = dic_item["переменная_1"][i]; // - это будет использовано в первом случае
project.Variables["переменная_2"].Value = dic_item["переменная_2"][i];
project.Variables["переменная_3"].Value = dic_item["переменная_3"][i];