We have build a tool that automatically creates Data catalog, Program documentations, Data lineage, runtime statistics and more utilizing the output from the procedure proc scaproc
2 questions:
1) if we have a program like:
proc scaproc; record 'record.txt'; run; %include("Some_SAS_program.sas"); proc scaproc; write; run;
Then the file record.txt will hold all the right JOBSPLITS for the included code, BUT the source code included does not follow after the line:
/* JOBSPLIT: STEP SOURCE FOLLOWS */
Is there some way to achieve that the code is included in the output from proc scaproc?
2) Proc export does not seem to generate any ATTR-information on what is being exported. Is there a way to capture that information using proc scaproc?
A description on what we are trying to achieve is here:
https://www.youtube.com/watch?v=hxJw1ZFj1r4
Interesting. I've never really played much with SCAPROC, but agree when I use %INCLUDE, I don't see the included code in the record, even when source2 is turned on. I ran code like:
options source2 ;
proc scaproc;
record 'Q:\junk\record.txt';
run;
proc print data=sashelp.class(obs=3) ;
run ;
%include "Q:\junk\freq.sas";
proc scaproc;
write;
run;
And I could see the PROC PRINT step, but couldn't see the PROC FREQ step that was in the %included code. Report snippet:
/* JOBSPLIT: SYSSCP WIN */ /* JOBSPLIT: PROCNAME PRINT */ /* JOBSPLIT: STEP SOURCE FOLLOWS */ proc print data=sashelp.class(obs=3) ; run ; %include "Q:\junk\freq.sas"; /* JOBSPLIT: JOBENDTIME 02AUG2024:08:28:07.15 */ /* JOBSPLIT: END */
I think you can kind of get it to work by using macro call instead. At least it appears to put in a "jobstep" when the macro generates the code.
So make a macro that includes the file.
Replace the %INCLUDE statement with a call to the macro.
Add the EXPANDMACROS option to the record statement.
Not a new issue.
shows a work around that may not be the nicest approach.
And this note: https://support.sas.com/kb/48/812.html
acknowledges the behavior and "to be fixed in later release" from Dec 2012
Anyone tried reading the source file into a data step and using Call Execute with the lines of code?
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.