У меня есть сценарий, который требует, чтобы переменная точка проходила, если критерии не выполнены.
Каждый пользователь назначается в «Отдел» в своей записи.Наш отдел имеет древовидную структуру, поэтому отдел, на который назначен пользователь, может находиться на нескольких уровнях от общего «родительского» отдела.Мой сценарий должен занять отдел пользователей, а затем взобраться на дерево, чтобы увидеть, является ли он частью определенного общего «родительского» отдела.Если есть совпадение, мне нужно разорвать петлю и отобразить отдел, в противном случае ему нужно взобраться на дерево.Если он достигает вершины дерева и совпадений нет, тогда я использую оригинальное название отдела.
В моем текущем коде я могу учесть 3 уровня глубины, но может возникнуть необходимость динамически выглядеть намного ниже.
var dept1 = new DepartmentUtils().getParentDepartment(current.department.sys_id);
var dept2 = new DepartmentUtils().getParentDepartment(current.department.parent.parent.sys_id);
var dept3 = new DepartmentUtils().getParentDepartment(current.department.parent.parent.parent.sys_id);
if(!JSUtil.nil(dept1))
{
retVal = dept1;
}
else if(!JSUtil.nil(dept2))
{
retVal = dept2;
}
else if(!JSUtil.nil(dept3))
{
retVal = dept3;
}
else
{
retVal = current.department.name;
}
По сути, я подумал, что мне нужно начать с текущего уровня отдела, посмотреть, если это конкретное имя, если нет, то посмотреть на его родительское имя, сравнить его, а затем повторять, пока ядостичь вершины (там, где родитель пуст).
Моя проблема в том, что я не знаю, как справиться с точечной ходьбой.Я пытался использовать команду .parent .repeat (x), но я не уверен, что это правильный маршрут.
Есть идеи?