Friends,
I have created stored process to publish a report. While executing the stored process I am getting the following error -
ERROR: Library APSWORK does not exist. ERROR: No body file. HTML output will not be created.
I am actually trying to create a table of content for my report by using stored process default macro variables. Require your help to resolve the issue.
The code is mentioned below -
ods tagsets.tableeditor path=&_tmpcat (url=&_replay) contents=_webout frame=frame2.html file =temp.html
encoding='utf-8' style=styles.MyStyle1;
ods proclabel "LR INR Report";
proc print data=int_rep.LR_INR (Drop = run_date) noobs
;
title1 "Statement of Liquidity Return - Domestic Currency, Indian Operations";
title2 "Position as on - &Run_Date1.";
title3 "Amount in Rupees Lakhs";
run;
ods tagsets.tableeditor close;
The code you showed is not the code responsible for the ERROR, as it does not use the library APSWORK.
It might be that sassrv (the user under which the stored process server runs) does not have the necessary permissions for the physical path of the library.
Hi,
We are not declaring the APSWORK library reference in the code. We are using _TMPCAT variable which specifies temporary catalog name, and as per the stored process log, the variable _TMPCAT contains the following value -
_TMPCAT=APSWORK.TCAT03CA
I believe this some stored process defined reserved macro variable which is getting generated automatically while executing the stored process.
Could you run a stored process that has
libname apswork list;
and show the resulting log?
Hi,
I have included the libname statement in the same stored process which was generating the error and re-execute the same.
The log is as follows -
+libname apswork list; NOTE: Libref= APSWORK Scope= Kernel Engine= V9 Access= TEMP Physical Name= /tmp/SAS_workB97B0000710A_sasadm01.in/SAS_workDC6A0000710A_sasadm01.in Filename= /tmp/SAS_workB97B0000710A_sasadm01.in/SAS_workDC6A0000710A_sasadm01.in Inode Number= Access Permission= Owner Name= File Size= File Size (bytes)=
Do not run stored processes as sasadm.
sasadm is for administration purposes only.
I am not using sasadm user. The one which you are getting in the log is getting generated from the host file.
I have given permission to the work folder as well, but still the same error is coming.
@Anindya wrote:
I am not using sasadm user. The one which you are getting in the log is getting generated from the host file.
I have given permission to the work folder as well, but still the same error is coming.
Which user did you give the permission for /tmp? Stored processes run as sassrv, and this user needs to be able to create files/directories there.
From your log, I guess that the directories could not be created, as the libname list reports no inode number, permissions or owner.
The relevant part of a similar successful log looks like this:
Inode Number= 139729 Access Permission= rwx------ Owner Name= XXXX File Size= 0KB File Size (bytes)= 256
@Anindya wrote:
I am not using sasadm user. The one which you are getting in the log is getting generated from the host file.
I have given permission to the work folder as well, but still the same error is coming.
Yeah, that sasadm.in seems to be part of your servername.
Don’t miss the livestream kicking off May 7. It’s free. It’s easy. And it’s the best seat in the house.
Join us virtually with our complimentary SAS Innovate Digital Pass. Watch live or on-demand in multiple languages, with translations available to help you get the most out of every session.
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.
Ready to level-up your skills? Choose your own adventure.