Hello,
I am using the following code:
proc fcmp outlib = work.functions.testing;
function getfirstPercentage(agency $, sbwe_agencies $);
pc = 0;
if index(sbwe_agencies,agency)>0
then do;
pc = 1;
end;
return(pc);
endsub;
function getSecondPercentage(agency $, sbwe_agencies $);
co = getfirstPercentage(agency, sbwe_agencies);
return(co);
endsub;
quit;
options cmplib=(work.functions);
data test;
sbwe_agencies = "BSCV904,BSCV905,BSCV908,SBCV135,SBCV136,SBCV137";
agency = "SBCV136";
firstPercentage = getfirstPercentage(agency , sbwe_agencies);
SecondPercentage = getSecondPercentage(agency , sbwe_agencies);
put firstPercentage= SecondPercentage=;
run;
The function getSecondPercentage calls getFirstPercentage, so I would expect FirstPercentage and SecondPercentage to both return 1. However, I get this
52 data test;
53 sbwe_agencies = "BSCV904,BSCV905,BSCV908,SBCV135,SBCV136,SBCV137";
54 agency = "SBCV136";
55 firstPercentage = getfirstPercentage(agency , sbwe_agencies);
56 SecondPercentage = getSecondPercentage(agency , sbwe_agencies);
57 put firstPercentage= SecondPercentage=;
58 run;
firstPercentage=1 SecondPercentage=0
Why doesn't SecondPercentage return 1 as well? How do I need to do to get SecondPercentage to return 1? Is there a way to debug a user-written function?
Thanks for any help
Andrew
... View more