Рекурсивная процедура в генексусе - PullRequest
0 голосов
/ 08 июля 2019

У меня есть одна таблица с именем Cattegorys, у которой CategoryId в первичном ключе и CategoryParentId (авто-отношение).

Мне нужно вернуть все родительские имена категорий моих данных в свойстве "CategoryParentsName".

В моем CategoryorSDT я создаю это свойство varchar:

CategoryParentsName VARCHAR(500);

Мой поставщик данных:

CategoriasSDT
{
    data
    {
        order (CategoryName) when &sort = 'CategoryName-desc'
        {
            CategoryId= CategoryId
            CategoryName= CategoriaNome
            CategoryParentId = CategoryParentId
            CategoryParentsName= CategoryParentsName
        }
    }
}

В моей транзакции я создаю формулу для моего свойства CategoryParentsName, которая вызывает эту процедуру:

&isTrue = true
&isAchou = true
do while (&isTrue)
    if &isAchou
            &isAchou = false    
            for each
                where CategoriaId = &CategoryParentId
                &CategoryParentsName = CategoryName+ " > test"
                &isAchou = true
            endfor
        else
            &isTrue = false
    endif
enddo

В моем свойстве categoryParentsName я получаю правильное имя родителя категории, но CategoryParentId возвращает ноль.

...