Issue with recursive function

caffry
Kilo Guru

Trying to call a same function until the value is found. But when the value is found its returning undefined.

var user=new GlideRecord("sys_user");
user.get("1328d77f97ea45104c913b6e6253af14");
checkmanageradbusinessunit(user.u_business_unit,user.manager)


function checkadbusinessunit(businessunit, manager)
{
     
     if(businessunit == "")
     {
          gs.print(checkmanagerbusinessunit(manager));
     }
}

 function checkmanagerbusinessunit(manager) {
        gs.print("check manager")
        var user = new GlideRecord("sys_user");
        user.get(manager);
        if(user.u_business_unit == "")
        {
             gs.print("if");
             checkmanagerbusinessunit(user.manager);
        }
        else{
             
             var bu=user.u_business_unit;
gs.print(bu);
             return bu;
        }

    }

find_real_file.png

1 ACCEPTED SOLUTION

Subhanand
Tera Guru

Hi caffry,

declare the recursive function in a temp variable and check.

 

var user=new GlideRecord("sys_user");


user.get("1328d77f97ea45104c913b6e6253af14");
checkmanageradbusinessunit(user.u_business_unit,user.manager)


function checkadbusinessunit(businessunit, manager)
{

if(businessunit == "")
{
gs.print(checkmanagerbusinessunit(manager));
}
}

function checkmanagerbusinessunit(manager) {
gs.print("check manager")
var user = new GlideRecord("sys_user");
user.get(manager);
if(user.u_business_unit == "")
{
gs.print("if");
var temp;
temp=checkmanagerbusinessunit(user.manager);
}
else{

var bu=user.u_business_unit;
gs.print(bu);
return bu;
}

}

 

View solution in original post

7 REPLIES 7

Subhanand
Tera Guru

Hi caffry,

declare the recursive function in a temp variable and check.

 

var user=new GlideRecord("sys_user");


user.get("1328d77f97ea45104c913b6e6253af14");
checkmanageradbusinessunit(user.u_business_unit,user.manager)


function checkadbusinessunit(businessunit, manager)
{

if(businessunit == "")
{
gs.print(checkmanagerbusinessunit(manager));
}
}

function checkmanagerbusinessunit(manager) {
gs.print("check manager")
var user = new GlideRecord("sys_user");
user.get(manager);
if(user.u_business_unit == "")
{
gs.print("if");
var temp;
temp=checkmanagerbusinessunit(user.manager);
}
else{

var bu=user.u_business_unit;
gs.print(bu);
return bu;
}

}

 

It worked.

 

thomaskennedy
Tera Guru

I don't see a function named checkmanageradbusinessunit(). Did you mean checkadbusinessunit()? That function doesn't return anything.