BookmarkSubscribeRSS Feed
ross_geller
Calcite | Level 5
Hi all.
I apologize in advance if this area is not the right one.
We have a project where the customer want to see a report by selecting a choice through combo-box or data input.
The question is: is it necessairy to develop a mask of multiple choice/data input in Java server pages, or SAS (which solution?) has a native function that implement the needed functionality?
Waiting for a kind feedback,
i'm available for clarification or further question
thanks!
JJ
6 REPLIES 6
Cynthia_sas
SAS Super FREQ
Hi:
So many choices for ways to do what you want. The answer really depends on the software that is available to you.

In Base SAS, you could develop a SAS Macro program with parameters and the user would only have to change the parameters to run and submit the program. (This would fall more into the category of the user supplying data input, in the form of a program call...something like:
[pre]
User 1:
%runregion(region=Canada)

User2:
%runregion(region=Asia)
[/pre]

...where the %RUNREGION Macro program was pre-defined and available for either user to run with different parameters.) An example of a SAS Macro application can be found here:
http://www.lexjansen.com/pharmasug/2009/po/po05.pdf
http://www.lexjansen.com/pharmasug/2006/applicationsdevelopment/ad05.pdf
http://www2.sas.com/proceedings/sugi27/p021-27.pdf


Or, with SAS Enterprise Guide, you could set up a project to produce the report (and do any needed data selection/data manipulation) and define parameters that were needed to run the report. When the user ran the report, they would be prompted for the value. I believe you can set up the parameter choices and how they will be displayed when you define the parameters. There are some nice screen shots of such an applcation in EG in these paper:
http://support.sas.com/resources/papers/sgf2008/eguide.pdf
http://analytics.ncsu.edu/sesug/2006/AP05_06.PDF (custom tasks in EG)
http://www2.sas.com/proceedings/sugi29/012-29.pdf (customs tasks if you have EG, and the SAS Add-in for Microsoft Office)

If you had SAS/AF (Application Facility), you could develop a SAS-based menuing system to prompt and produce a report. You can see some sample screens in this paper: http://www2.sas.com/proceedings/sugi26/p217-26.pdf

Another approach is one where you develop your own prompting "front end" and call SAS in batch or client mode to satisfy the report request. This might involve using SAS on a server or using SAS Integration Technologies or using SAS Data Providers. Here are some papers that discuss some examples:
http://analytics.ncsu.edu/sesug/2003/SE02-Eberhardt.pdf
http://www.lexjansen.com/wuss/2004/sas_solutions/c_ss_using_sas_iom_with_a_ja.pdf
http://support.sas.com/kb/26/145.html
http://support.sas.com/kb/25/633.html
http://support.sas.com/documentation/tools/oledb/gs_about_prov.htm
http://support.sas.com/documentation/tools/oledb/
http://support.sas.com/documentation/cdl/en/itechwcdg/61500/PDF/default/itechwcdg.pdf
http://www2.sas.com/proceedings/sugi29/030-29.pdf

If you have SAS/IntrNet, you can either use htmSQL and the Application Dispatcher to create HTML forms in order to prompt the user for report parameters or you could develop your own HTML front end and just call the Application Dispatcher program. Some discussion of SAS/IntrNet capabilities is contained in these papers: http://www2.sas.com/proceedings/sugi23/Internet/p154.pdf
http://www.ws-unternehmensberatung.com/Seugi1998/SEUGI98-vortrag.html (a comparison of SAS/AF versus SAS/IntrNet)
http://www2.sas.com/proceedings/sugi23/Internet/p156.pdf (SAS/IntrNet & Java)http://www2.sas.com/proceedings/sugi24/Internet/p181-24.pdf

Last, but certainly not least, with the SAS Enterprise Intelligence Platform and its suite of client applications, you can develop stored processes that run directly in applications like Word, Excel, PowerPoint, SAS Enterprise Guide, SAS Web Report Studio or a web-based Information Delivery Portal (which is where you'd implement custom Java server pages). Here's some information about using the Enterprise Intelligence Platform:
http://www.sas.com/resources/factsheet/sas-integration-technologies-factsheet.pdf
http://www.sas.com/technologies/bi/index.html
http://www.sas.com/technologies/bi/entbiserver/index.html

You can also use webAF and the JavaBeans included in that software, with certain other web tier configurations and SAS servers, to design your own front end applcation as described here: http://www.sas.com/technologies/bi/appdev/appdev/webaf.html

At any rate, without knowing what SAS software you have available to use, it's very hard to point you to starting information. The simple answer to your question is ... yes, it's possible to give a user a report based on choices they make through some kind of combo-box or data input. Your choices run from the very simple code-based methods to much more complex methods. Perhaps your best bet is to work with your SAS Sales Representative or SAS Consulting for a design based on what software and programming expertise you or the customer has available.

cynthia
ross_geller
Calcite | Level 5
Hi Cynthia, and thanks very much for the quick and detailed answer.

Regarding the software SAS available for the above project, the products in use are:
SAS Base
SAS Enterprise BI Server, including:
• SAS Table Server
SAS Enterprise Guide
SAS/ACCESS Interface to ODBC
SAS/ACCESS Interface to Oracle

I can add further information and question:
- the reports/OLAP cube we need to develop are supposed to be published on a web link (at the moment, not the SAS Portal)
- do you think the customized filters for a multiple choice, after which a static/dynamic report has to be visualized , need a Java develop on the custom mask to be realized, or combo-box and button choice can also be developed in EG for example?

Thanks in advance for the attention, bye
-ross
Cynthia_sas
SAS Super FREQ
Hi:
I'd suggest that you investigatee the capabilities of stored processes before going down the Java development road. Here are a few of my papers on stored processes in SAS 9.1.3 -- you can see some screenshots of simple prompts:
http://www.nesug.org/proceedings/nesug07/ap/ap22.pdf
http://www.nesug.org/proceedings/nesug08/ap/ap09.pdf

Stored processes get better in SAS 9.2 because the prompting framework has changed to support dynamic and cascading prompts for stored processes. Here's a paper about EG 4.2 and Stored Processes:
http://www.lexjansen.com/pharmasug/2009/hw/hw06.pdf

And more on stored processes in SAS 9.2:
http://support.sas.com/resources/papers/sgf09/355-2009.pdf
http://support.sas.com/resources/papers/proceedings09/330-2009.pdf

Hope this helps,
cynthia
deleted_user
Not applicable
Hi everybody,

I have trouble importing Box () delimited text file from mainframe into SAS. The Problem here is DSD is not recognizing the Box delimiters and all the variables are going into wrong containers. I can not use pointers or fixed length or mixed input to read the file. This is very large flat file and I have enclosed the flat file sample data to look at and import into SAS, some reason Box delimiters are not appearing in the email test, in that case you replace the '+' into box delimiters.

I have also given the sample code to import the file.

Original Data:

AA01 AB02AC09AD10AE200
AA01 AB0123AC09AD1044AE4500

Replace the Pluses(+) symbols into Box delimiters

+AA01 ++AB02+AC09++AD10+++AE200+
+AA01 ++AB0123+AC09++AD1044+++AE4500+
_________________________________________________________

PROC IMPORT OUT=TESTDATA
DATAFILE 'C:\mainframFlafile.txt' ' DBMS = DLM REPLACE;
DELIMITER = '' MISSOVER DSD lrecl=4200
GETNAMES = YES;
RUN;


DATA WORK.testdata ;
%let _EFIERR_ = 0;
infile 'C:\mainframFlafile.txt' delimiter = '' MISSOVER DSD lrecl=385 ;
informat var1 $4;* var1to var100
format var1 $4;
....
input var1$;
....
if _ERROR_ then call symputx('_EFIERR_',1);
run;

I appreciate if anyone can help me to read this file into SAS.

Thank you,

Anjan
sbb
Lapis Lazuli | Level 10 sbb
Lapis Lazuli | Level 10
Best to start a NEW POST rather than piggyback on someone else's post in the future.

And, as I replied on sas-l @ ittoolbox: you will be best served by sharing the SAS-generated (expanded) log information (COPY/PASTE in a post reply) with a PUTLOG _ALL_; to show the SAS-generated variable values as well as the input record.

Also, there is possibly a translation performed between the EBCDIC mainframe and the ASCII-based OS platform, contributing to this issue.

Suggestion: start out by capturing the SAS-generated DATA step code (from PROC IMPORT), make a change to add the PUTLOG _ALL_;, rerun the SAS program code, and inspect the output, and then post to a new thread with your challenge


Scott Barry
SBBWorks, Inc.
ChrisNZ
Tourmaline | Level 20
A Scott said, it is bad to piggyback on someone else's post. If this reply doesn't suit, please start a new post.
"Square box" delimiters don't exist, or rather could be anything. Find out the character code(s) on the platform reading the data. The hex code I got from your post is 1C. So replace
DELIMITER = ''
with
DELIMITER = '1C'x

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
  • 981 views
  • 0 likes
  • 5 in conversation