Download Sailing around Java: Experiences implementing SAS/IntrNet software in the global controlling arena

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Reactive programming wikipedia , lookup

Structured programming wikipedia , lookup

Transcript
Sailing around
Java
Experiences implementing the
SAS/IntrNet Software in the Global
Controlling arena
by Rolf Annen, Atraxis AG
Agenda
•
•
•
•
•
Introduction to
and
Demo of the Swiss Revenues System
Details
Programming Tips
Conclusion
Wings for your Information
Technology
• a major provider of information
management solutions for airlines, airports,
cargo operators and the travel industry.
• the IT company of
• Quality Partner of SAS Institute since 1994
• Providing SAS Consulting & Development
for
and other companies
(mainly Banks and Insurance Companies)
Atraxis, the former IT Department of Swissair, is now delivering IT Services
to many other airlines such as Sabena, Varig and Garuda.
Out of a total of nearly 1000 employees there are about 50 SAS programmers
working in airline industry related projects.
Our section, a quality partner of SAS Institute, has been providing SAS
consulting and development services to major companies in the Zurich region
for 4 years.
One of our best customers is the Credit Suisse bank.
• is one of the world's leading
corporate and investment banking firms.
• operates out of 50 offices in more than 30
countries with 12,000 employees.
• has a total capital of around SFR 15 billion
($11 billion, as of 1 January 1997)
• is part of the
CSFB is a product of a merger between the former Swiss Credit Bank and the
First Boston Bank. The company is not only the corporate and investment
banking unit of the Credit Suisse Group but also covers all Stock Trading
business of other companies within the Group.
Swiss Revenues
System
• a system for the Controllers of CSFB
• shows the revenue of the swiss part of
CSFB
• highly detailed data (Customer account)
• accessed worldwide on CSFB-Intranet
• multidimensional:
– Customers, Accounting, Products
The controllers of CSFB are located in the three main business centers of the
bank, which are Zurich, London and New York.
Due to the rather different IT-infrastructure of the two merged banks, the
CSFB-Intranet is the most suitable and most important means of information
delivery in the Controllers arena.
Demo
• static Web pages
– use of SAS Web Publishing macros
– “Download to spreadsheet” button
• dynamic Web applications
– use of SAS/IntrNet Software
• drill down facility
• expert modus (including Javascript)
The Swiss Revenues System is quite a mixture of several features
implemented in the SAS Internet Technology. Probably this is true or will be
true for most of the Web-driven applications today and in the future.
The System does not use Java-based technology (remember the title of this
presentation) but uses the Javascript language as an enhancement to HTML.
Static Web pages with
a download button
Program: create the Web page
prepare a permanent dataset on the server for later download
write HTML code to define a push button on the Web page
see SAS Institute provided sample: DS2HTM.SCL
use any SAS Web Publishing macro with openmode=append
Program: convert a SAS dataset to a CSV-File
SAS Institute provided sample: SPRDSHT.SCL
Drill down
Preparation:
prepare a permanent dataset with PROC SUMMARY
write a Web page to start from with a HTML Form
Program: create dynamic Web pages
for further Drill down
SAS Institute provided sample: DRILL.MACRO
Expert Modus
• works like the Drill down facility but..
– uses check boxes, radio buttons in the HTML Form
– uses Javascript in the Web page for:
• user interaction (display of selected drill levels)
• cookies (keep user selection until shutdown of
browser)
Programming Tips
• want to see this?
Programming Tips
• it’s easy:
– you write a macro on the Server
– you send arguments from the Web page via Broker
to the macro and..
– you just forget to declare GLOBAL one of the
arguments
Programming Tips
• watch out for special characters in your data
– They are like Icebergs (even South of Java)
Programming Tips
<A HREF="/cgi-bin/broker.exe?_program=....
...&val="Forfaiting + Distribution"> </A>
• Have you got something like this in your
HTML-Code?
Programming Tips
• the Browser sends this to the Broker:
&val=Forfaiting+++Distribution
• and the Broker sends this to the Server:
val=Forfaiting Distribution
Programming Tips
• “+” definitely is a special character:
– convert special characters to URL encoding Strings
when sending requests to the broker via HREF
<A HREF="/cgi-bin/broker.exe?_program=....
...&val="Forfaiting%20%2b%20Distribution"> </A>
this is better
Programming Tips
• when writing dynamic Web applications
– don’t forget to convert special characters before
writing HREF-hyperlinks
• example in a datastep:
if index(val,’+’) ne 0 then newval =
substr(val,1,index(val,’+’)-1)!! ‘%2b’ !! substr(val, index(val,’+’)+1))
• and in macros:
%if %sysfunc(index(&val,%str(+))) ne 0 %then %let newval =
%sysfunc(substr(&val,1,%sysfunc( index(&val,%str(+)))- 1))%2b%sysfunc(
substr(&val,%sysfunc(index(&val,%str(+))) +1));
Development Tips
• using SCL entries
– By default Dispatcher SCL entries are loaded into
cache for better performance
• respective catalogs cannot be edited
• Server has to be restarted for any modification
– start the SAS Application Server with the
“resident=0” option during development
By default SCL entries which are executed on the application Dispatcher are
loaded to the cache of the server the first time they are executed. Therefore
they will not be loaded again from disk on subsequent calls.
After the first execution of an SCL entry, the catalog it resides in is
blocked and cannot be edited.
Quoting the SAS Web enablement documentation on the internet:
“The resident=0 parameter turns off caching of SCL programs. This should
be used when you are actively modifying SCL Dispatcher programs.
Supplying this parameter will cause a decrease in Server performance, but by
loading the SCL program every time it is called, you will be able to view any
program modifications.
Without the resident=0 option, the default SAS behavior is to load each SCL
entry from disk only the first time it is called.
Better performance will result by omitting this option, however, the Server
will have to be restarted to view any modifications to the SCL programs. “
Development Tips
Application Error
The program LAFFCMIS.MAWEB___.drill.macro does not exist.
Please notify Rolf Annen if you are unable to correct this problem.
• Are you sure this macro exists?
• somebody is editing the source of the macro
(perhaps yourself?).
Development Tips
• Test - Production
– use two separate Web servers / Application Servers
with the same naming conventions
– when moving from test to production shut down
the SAS Application Server and restart after
moving
Special
Considerations
HTML <> Preformatted
Tables
Tags
– response time
– Web-like look
– printing
• Security
• Test with the most common Web browsers
There are differences
Conclusion
• SAS/IntrNet proved to be
– very robust
– high performing
– scalable
• Development experience
– additional coding
– know-how needed (HTML, Javascript, CGI)
Sailing around Java is
safer...
...than sailing the
North Atlantic.