BookmarkSubscribeRSS Feed
ChrisLemberg
Fluorite | Level 6
Hello,

I have written some stored process to use them within WRS.
If I have a stored process with only an cross-table and no graphics/pie-charts everything works just fine.
But cross-tables are not really satisfying because I want to introduce my reports to a broader audience and cross-tables are not really useful to obtain this task.

The problem is, when I integrate Charts my stored process always fails.

Here is excerpt of the logfile created by wrs.

261 +;
262 +Axis3
263 +
264 +;
265 +Axis3
266 + STYLE=1
267 + WIDTH=1
268 +
269 +
270 +;
271 +TITLE;
272 +FOOTNOTE;
273 +FOOTNOTE1 "Erzeugt am %SYSFUNC(DATE(), DDMMYYP10.) um %SYSFUNC(TIME(), TIME5.)";
274 +PROC GCHART DATA=WORK.SORTTempTableSorted
275 +;
276 + VBAR3D Monat
277 + /
278 + SUMVAR=AnzahlAn
279 + SUBGROUP=Ta
280 + SHAPE=BLOCK
281 +FRAME DISCRETE
282 +
283 + TYPE=SUM
284 + LEGEND=LEGEND1
285 + COUTLINE=SAME
286 + RAXIS=AXIS1
287 + MAXIS=AXIS2
288 + GAXIS=AXIS3
289 + GAXIS=AXIS3
290 +;
291 + BY Jahr;
292 +/* -------------------------------------------------------------------
293 + Ende Code der Anwendungsroutine.
294 + ------------------------------------------------------------------- */
295 +RUN;

NOTE: ActiveX Control not available, defaulting to JAVA.
ERROR: Java class generated an exception.
The SAS System

NOTE: The above message was for the following by-group:
Jahr=2009
NOTE: ActiveX Control not available, defaulting to JAVA.
ERROR: Java class generated an exception.
NOTE: The above message was for the following by-group:
Jahr=2010
295 !+ QUIT;


If someone had an idea to solve my problem would be really great.
6 REPLIES 6
AngelaHall
SAS Employee
Chris,
I am currently unable to test some scenarios on my machine (blaming it on the snow). But I was able to find some reference to the graphics device drivers that Web Report Studio should be using.

The page: http://support.sas.com/documentation/cdl/en/biwaag/63059/HTML/default/a002994053.htm states ~
"By default, the ACTIVEX device driver is used for graphs in stored process output. This format requires users to install a graph control on their local system in order to render the graph. However, to maintain a zero footprint on the client, SAS Web Report Studio does not require this installation. Therefore, when the stored process is run in SAS Web Report Studio, the ACTXIMG device driver is substituted so that a static image is created. Similarly, if the JAVA device driver is specified, then the JAVAIMG device driver is substituted automatically."

Try adding a line of code at the top of your stored process:
goptions device=ACTXIMG;
and then attempt a rerun in WRS. (My guess is that the substitution isnt happening properly.)

Let me know what happens!
~ Angela Hall
http://sas-bi.blogspot.com
Cynthia_sas
SAS Super FREQ
Hi:
You don't show all your stored process code, so I don't know whether you have a GOPTIONS statement in your stored process. Usually, the ACTXIMG driver is automatically used when you return graphs to Web Report Studio, as described here:
http://support.sas.com/kb/15/365.html

So, I wonder whether you are using a GOPTION statement or an option override that is specifying ACTIVEX instead (which you don't want). Graphs that are returned to Web Report Studio are "static" graphs, not interactive graphs.

Here's some more info:
http://support.sas.com/documentation/cdl/en/biwaag/63059/HTML/default/a002994053.htm


cynthia
ChrisLemberg
Fluorite | Level 6
Hi,

I have created this stored process with EG and as far I can see I do not override anything.

Definition of Stored Process:

%STPBEGIN;

%LET _EGCHARTWIDTH=640;
%LET _EGCHARTHEIGHT=480;
%LET _SASSERVERNAME=%NRBQUOTE(SASMain - Logical Stored Process Server);

... [some code to create the following view]

PROC SQL;
CREATE VIEW WORK.SORTTempTableSorted
AS SELECT Monat, art, Anzahl, Jahr FROM WORK.QUERY_FOR_HUC_ERGEBNIS;
QUIT;
GOPTIONS xpixels=&_EGCHARTWIDTH ypixels=&_EGCHARTHEIGHT;
GOPTIONS CBACK=WHITE;
Legend1
FRAME
;
Axis1
STYLE=1
WIDTH=1
MINOR=NONE


;
Axis2
STYLE=1
WIDTH=1


;
Axis3

;
Axis3
STYLE=1
WIDTH=1


;
TITLE;
TITLE1 "Balkendiagramm";
FOOTNOTE;
FOOTNOTE1 "Erzeugt vom SAS System (&_SASSERVERNAME, &SYSSCPL) am %SYSFUNC(DATE(), DDMMYYP10.) um %SYSFUNC(TIME(), TIME5.)";
PROC GCHART DATA=WORK.SORTTempTableSorted
;
VBAR3D Monat
/
SUMVAR=Anzahl
SUBGROUP=art
SHAPE=BLOCK
FRAME DISCRETE

TYPE=SUM
LEGEND=LEGEND1
COUTLINE=BLACK
RAXIS=AXIS1
MAXIS=AXIS2
GAXIS=AXIS3
GAXIS=AXIS3
;
BY Jahr;
/* -------------------------------------------------------------------
Ende Code der Anwendungsroutine.
------------------------------------------------------------------- */
RUN; QUIT;
PROC SQL;
%_SASTASK_DROPDS(WORK.SORTTempTableSorted);
QUIT;

TITLE; FOOTNOTE;


/* --- Ende des Codes für "Balkendiagramm". --- */

* Begin EG generated code (do not edit this line);
*';*";*/;run;
%STPEND;
Cynthia_sas
SAS Super FREQ
As Angela showed, you may have to explicitly add the GOPTIONS statement to your stored process code. Or work with your SAS Administrator to determine why the automatic change from ACTIVEX (for some clients) is NOT being changed to ACTXIMG for the Web Report Studio client.

In your code, you have 2 %LET statements for _EGCHARTWIDTH and _EGCHARTHEIGHT....someplace in your code, there should be a GOPTIONS statement that uses &_EGCHARTWIDTH and &_EGCHARTHEIGHT. I see the GOPTIONS statement(s) between the LEGEND statement and the QUIT statement of the PROC SQL step. Multiple GOPTIONS statements are OK in SAS/GRAPH code.

You could try to add DEVICE=ACTXIMG on one of those 2 lines. The issue is that this will change the device type to ACTXIMG for ALL client applications that run this stored process. And there might be some client applications for which you want the normal ACTIVEX results (which will work, as long as the person who is opening the stored process results have the appropriate ACTIVEX controls installed locally on their machine.)

It perplexes me that your device for WRS is not being set to ACTXIMG (or JAVAIMG) automatically. Perhaps this really is an issue you should pursue with your SAS Administrator and/or Tech Support before you modify the stored process.

cynthia
AngelaHall
SAS Employee
Chris,
I was able to duplicate something similar to your problem.

When the statement:
OPTIONS DEV=ACTIVEX;
appears in the STP code, WRS 4.2 isnt correctly displaying the results.

As soon as I comment that single line out of the STP code, the graph works properly in WRS.

Note - I estabilished the STP to run on the Workspace Server in Package Mode.
I also successfully tested using the SAS Server Name = Logical Stored Process Server and in Package Mode.

~ Angela Hall
http://sas-bi.blogspot.com

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

How to Concatenate Values

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 6 replies
  • 3488 views
  • 0 likes
  • 4 in conversation