This post describes how to write a recursive method in X++
In this example I get all the child Categories of a given Parent Category and write them into an info log.
private void getCategoriesRecursive(Category _parentCategory)
{
EcoResCategory ecoResCategory;
while select ecoResCategory
where ecoResCategory.parentCategory == _parentCategory
{
info(ecoResCategory.Name);
this.getCategoriesRecursive(ecoResCategory.RecId);
}
}