Слетают переменные в кубике Проект в проекте

TeslaCo

Client
Регистрация
25.10.2016
Сообщения
65
Благодарностей
2
Баллы
8
Добрый день, у меня есть несколько главных проектов ZP и они запускают второстепенные проекты через кубик "Проект в проекте". Внутри этого кубика сопоставлены переменные (не с одинаковыми названиями). И я заметил проблему, при изменении названия переменной внутри второстепенного проекта, которая сопоставлена в заглавном проекте, для дальнейшей передачи данных из главного во второстепенный, у меня в главном проекте вообще теряется связка автоматом, то есть я потом (после изменения названия переменной) открываю главный проект, и открываю в кубике сопоставленные переменные, этой пары нет. Я понимаю что, логично что она должна слетать, но хотя бы с правой стороны, а переменная из главного проекта оставалась бы, просто напротив пустота, и кубик бы уходил в ошибку, типо "эй, ты что то сделал не так, перепроверь сопоставленные переменные".

Подскажите, может есть какое то решение что бы связка не исчезала без следа (так что я даже не подозревал что что-то упустил), а оставался хоть какой-то след который приводил бы к ошибке, что бы я как разработчик на это обратил внимание, и пофиксил свое упущение.

Заранее благодарен, за любые идеи.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 893
Благодарностей
2 624
Баллы
113
Просто создайте одну переменную, например json, которую Вы не будете нигде изменять (удалять, переименовывать, создавать заново).
А дальше - создаете словарь типа и записываете в него значения:
C#:
string json = "";
var dic = new Dictionary<string, string>();
dic["var1"] = project.Variables["var1"].Value;
dic["var2"] = project.Variables["var2"].Value;
dic["var3"] = project.Variables["var3"].Value;
dic["var4"] = project.Variables["var4"].Value;

json = Global.ZennoLab.Json.JsonConvert.SerializeObject(dic, Global.ZennoLab.Json.Formatting.None);
project.Variables["json"].Value = json; // записали данные в переменную
После чего выполняете свой проект-в-проекте.
Делаете там что угодно.
Когда нужно передать значения обратно - просто выполняете такой же код (с другими переменными).

Когда нужно считать данные во внешнем или внутреннем проекте:
C#:
string json = project.Variables["json"].Value;
var dic = Global.ZennoLab.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
project.Variables["var1"].Value = dic["var1"];
project.Variables["var2"].Value = dic["var2"];
project.Variables["var3"].Value = dic["var3"];
project.Variables["var4"].Value = dic["var4"];
Вот собственно таким образом это может проиходить.
 
  • Спасибо
Реакции: TeslaCo

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)