This is SAS log excerpt:
%LET RNSOBKA = ; %LET RNSOBKD = ; %LET RNSOHSOD = ; %LET RNSOBKP = ; %LET RNSONFA = ;
114478 +%LET RNESBKA = ; %LET RNESBKD = ; %LET RNESHHOD = ; %LET RNESBKP = ; %LET RNESNFA = ;
114479 +%LET RNCUBKA = ; %LET RNCUBKD = ; %LET RNCUHSOD = ; %LET RNCUBKP = ; %LET RNCUNFA = ;
114480 +
114481 +%ren_exc(bp=PWM) ;
114481 region1_n region2_n region3_n SO_HSO_pct_nf; SO_HSO_dollars = left(trim(put(Total_n,dollar14.))); call symput("RNSOHSOD",trim(SO_HSO_dollars)) ;
114481 ! SO_HSO_pct_nf = left(trim(put(divide(Total_n,&RNSONFA.),percent7.2))) ; call symput("RNSOHSOP",
_
159
ERROR 159-185: Null parameters for DIVIDE are invalid.
WARNING: The data set WORK.TOTAL_HS_OVERRIDES may be incomplete. When this step was stopped there were 0 observations and 7 variables.
WARNING: Data set WORK.TOTAL_HS_OVERRIDES was not replaced because this step was stopped.
Give &RNSONFA a value that.
I recommend considering using the function STRIP to reduce the number of parantheses involved. You find a lot of code with trim(left(<value>)) because a long time ago there was no single function to do that. Strip was introduced as an alternative to trim(left because we used that so frequently.
You do
%LET RNSONFA = ;
That causes the macro variable RNSONFA to be empty.
When you do
divide(Total_n,&RNSONFA.)
this resolves (after macro expansion/interpretation) to
divide(Total_n, )
which is invalid.
I inherited this program from a programmer that left the company 3 months ago. This report has been running on scheduler since then, without error. Why is something that has been working all along, now causing an error ?
To really determine that, one would need a holistic view.
Complete code, everything concerning the scheduling, code of the system batch scripts, etc
Take a look at the revision history.
Something has changed, or the problem would have been there from the beginning.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.