Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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.