We're reclaiming inactive PDIs to keep them available for active builders. Learn what's changing, who's affected, and how to protect your work. Read More

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
Kilo Sage

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