Hello,
I'm having an issue with the code below. No matter what I do I am always served with the Note from my title. SAS will not proceed until I click ok and clear the note.
A PROC is currently executing. All subsequently submitted statements will not begin executing until its completion.
Similar to this question:
https://communities.sas.com/t5/Base-SAS-Programming/How-to-suppress-this-pop-up-note/td-p/303459
I have options xsync; because I plan on using this in a loop where I create a file, password protect it, destroy the XML dynamically. I don't want SAS to hit the delete XML x command before it's completed the conversion. (This may be my problem).
/****************************/ /*DUMMY SAS DATA FOR EXAMPLE*/ /****************************/ data FINAL_DATA; set sashelp.cars; Keep Make Model Type; IF Make = 'BMW'; run; proc sort data=FINAL_DATA; by Type; run; /*************/ /*CREATE FILE*/ /*************/ %macro CreateFile; ods tagsets.excelxp file="C:\my_folder\XML_FILE.xml" style=listing; proc print data=FINAL_DATA noobs; by Type; run; ods tagsets.excelxp close; %mend CreateFile; /**************************************/ /*CONVERT TO XLSX AND PASSWORD PROTECT*/ /**************************************/ %macro ProtectFile; %let FinalFile = C:\my_folder\OUTPUT.xlsx; %let password=test; %let XMLfile = C:\my_folder\XML_FILE.xml; %let VBscript = C:\another_folder\convert.vbs; data _null_; file "&vbscript" lrecl=200; put 'Dim xlApp, xlWkb, SourceFile, TargetFile'; put 'Set xlApp = CreateObject("excel.application")'; put 'SourceFile="' "&XMLfile" '"'; put 'Set xlWkb = xlApp.Workbooks.Open(SourceFile)'; put 'TargetFile="' "&FinalFile" '"'; put 'xlApp.DisplayAlerts=false'; put "xlWkb.SaveAs TargetFile, 51,""&password"""; put 'xlApp.DisplayAlerts=true'; put 'xlWkb.close'; run; options noxwait xsync; x "cscript ""&vbscript"""; x "del C:\my_folder\XML_FILE.xml"; %mend ProtectFile; %CreateFile; %ProtectFile;
1) Turn on options mprint before executing the code.
2) Paste the log with the generated code and messages into a codebox.
As it is there could be multiple places you message is originating and we can't tell where.
If you place all of the commands in a single command line they should execute sequentially without SAS intervention. Write all of the statements to CMD or BAT or appropriate and then have the X command execute that command file.
1) Turn on options mprint before executing the code.
2) Paste the log with the generated code and messages into a codebox.
As it is there could be multiple places you message is originating and we can't tell where.
If you place all of the commands in a single command line they should execute sequentially without SAS intervention. Write all of the statements to CMD or BAT or appropriate and then have the X command execute that command file.
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 16. 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.