Archive for the ‘Portal’ Category:
Code Exchange, research, and some history
SAP (or rather, SDN) has announced a Code Exchange program. It would seem, however, that the idea of ownership and liability, and ultimately, licensing has to raise it’s head.
A piece of software that is developed by SDN developers and shared under an open source license would likely use SAP Enterprise Services, utilize SAP Data Dictionary elements, call a BAPI or any similar technical facility that is essentially SAP’s intellectual property, and for which SAP requires signature of a software license agreement.
and
SAP has a decade-long history of sharing ABAP code with its customers, so they can modify the system to their requirements. However, that does not make the ABAP code open source; on the contrary, the code is only accessible after agreeing to SAP software license agreements. Those agreements govern what can be done with ABAP source code modifications, and what kind of add-ons can be built on top of SAP functionality. Code Exchange governs only sharing of add-ons, but modifications of ABAP application source code is not covered.
(Both extracts are from Michael Bechauf’s excellent On SDN Code Exchange, Open Source and Free Software.)
Now, I understand that SAP feel the need protect their reputation and the reputation of their products, and that they need to serve their shareholders first. But I was wondering if they had forgotten where it all started… A long time ago, when Dinosaurs ruled the earth, before they were told to go away and die, and the only thing bigger than a Brontosaurus was IBM’s hold on the computing business, people wanted to share code. And so came about the one of the oldest ‘Code Exchange’ programs still active, the IBM mainframe based CBT Tape. Have a look at this extract from the CBT FAQ:
Q. So you are sure the software here is free. I don’t need a license or something?
A. Yes it’s free. No you don’t need license. Some people have trouble understanding why so many great programmers just give away their work to help others. Let my freind Mike explain.
The CBT Tape is used to share customer written programs and utilities, developed for IBM’s Z/OS (and the earlier equivalents) mainframe operating systems. Note that we aren’t talking about 1960′s version of ‘warez’ or freeware or demonstration programs – this is working code that can be cut-and-pasted, used how you see fit etc. In fact, nowadays, you don’t even need a mainframe to read it. Code Sharing before the airlines stole the phrase.
Mainframe programmers faced similar issues to the ones that we face today:
• a need to find better ways of doing ‘stuff’,
• a need to share the better ‘stuff’ that people were doing,
• vendor code that was open source, but copyright, and
• a potentially litigious vendor with very good lawyers
In reality, all it took was a recognition by everyone involved that
• this code was written by people you didn’t know,
• to solve problems that may or may not mirror yours,
• to run in environments that may or may not mirror yours, and
• that said environment would require IBM licensing.
There was one other concept that made it work, made comfortable for people to use the shared code. The default was Open Source – both free speech and free beer. Of course, as a contributor, you could license your code any way you wanted, but it was then up to you to enforce it. And quite frankly, what would the point be ? The originators of the CBT were taking the (realistic) view that people will copy working code if they can, so there was no point in trying to impose conditions they couldn’t control.
I grew and matured my computing skills in this kind of environment, where cooperation was expected, I have implemented code from the CBT tape, and I continue to follow its philosophy. If I come across an interesting piece of ABAP, Java, shell script or batch file at work, I will return to it to see what I can learn. There’s an old saying that the difference between plagiarism and research is the number of sources you copied from. I make no apology for researching the best code and methodologies for my customers. Its what they pay me to do.
If I do plagiarise, I’ll note where it came from (apart from politeness, it helps to know where to look for help with it), but if I research code, then any errors and omissions are mine and mine alone. Given that I take responsibility for what I publish under my name, then SAP’s new Code Exchange is just another source (pun intended), along with SAP’s own code, and many, many others, for my research.
PS I know that they’re called Apatosaurus now, but when I was a kiddie, the name was Brontosaurus (but if you really want a fight, try telling me Pluto isn’t a planet).
Free SAP Content from ERPtips Express
Latest Free Content available from ErpTips.com:
Data Archiving: Archiving Change Documents
by Breck Whitten.
Purchasing Contracts Overview: Creation and Use
by Adam Tysman.
Tips for Integrating SAP® HCM with External Applications
by Satish Badgi.
SAP Certification: Does it Matter?
by Andy Klee, Prresident of Klee Associates, Inc., Publisher of ERPtips.
RSS Cloud enabled feed
From RSSCloud.org:
In the early days of RSS, we had the idea that instantaneous updates would be the next step.
That was 2001. It took a little longer than we thought, but now with “realtime” as the Next Big Thing, it’s time to reboot all that stuff.
A week or so ago, all wordpress.com blogs became ‘cloud enabled’. At it’s most basic, this means adding an extra tag into their RSS feeds. It’s important because of new tools like Dave Winer’s River2 aggregator, that will collect your RSS feeds in real time. As opposed to waiting for your users / readers / aggregators to poll your sites.
As mentioned in Dave’s Post, you can use the new rssCloud plug-in on any WordPress blog that you host and it adds a cloud element to your feed and handles notifications for subscribers.
So thats what I’ve done….
SAP Availability Log
A basic metric for system-wide performance is up time, or system availability. Generally, this is absolute time less scheduled outages. There are many manual and automatic ways of tracking this, but one of the simplest, yet most accurate, for an SAP system is the available.log.
available.log is stored in the work directory (/usr/sap/<sid>/work). If you don’t have Operating System access, you can also view the file via transaction AL11. Find and select Directory parameter DIR_INSTANCE, then drill down into this directory….

Find the work directory and drill down again,…

… sort the resulting list of files, and availability.log should be at or near the top.

It is written by the SAP service sapstartsrv.exe. The service checks the status of the actual process list (i.e. the entries you see in the MMC SnapIn under the “Process List” node). If all processes are “green” the instance is considered to be available. Since the status information of the Dispatcher is calculated from multiple parameters (process running + connected to message server + shared memory available + good dialog queue time) the information in available.log is very reliable.
The information is checked and updated every 60 sec and at instance startup and shutdown. The default threshold for a “good” dialog time is 5.0 sec. You can adjust this threshold with the profile parameter max_dia_queue_time in the default or start profile (service must be restarted after changing it).
If the service notices that the last update to ‘available.log’ is older than 60 secs (e.g. due to computer shutdown), it will always start a new line in ‘available.log’, for example you may see:
Unavailable 30.04.2009 15:31:35 – 30.04.2009 21:28:47
Unavailable 30.04.2009 21:52:32 – 02.05.2009 08:42:39
instead of
Unavailable 30.04.2007 21:52:32 – 02.05.2007 08:42:39
Because of the time delay required to cause this situation, it is extremely likely that at least one service related to the SAP instance was not running (e.g. caused by computer shutdown).
Currently, no SAP application (that I know of !!) reads available.log – it’s just a simple log file to help measure your system availability.
Caveat: You do need to make sure that all the processes that you would see in the SAP MMC are running correctly for correct values to show in available.log. While experimenting several years ago, I had a situation where the igswd.exe service was not running correctly. I had modified the start profile, but restarted the system incorrectly. Until I did this, which reloaded my profile changes correctly, available.log was reporting that the entire SAP system was unavailable.
Web 2.0 Reality Check, against SAP Portals
Dennis Howlett has stirred up a hornets nest recently by pointing out that the Web 2.0 Emperor has no clothes, especially when it comes to the enterprise.
Enterprise has had enough of incremental step change where the ROI is questionable at best. The trending down of technology prices goes some way to redressing that imbalance but arguing that technology is cheap ergo high ROI is facile. As I have repeatedly said on this and other blogs, there are genuine barriers to adoption that make even free look expensive. My Irregular colleague Susan Scrupski thinks that’s a griping argument. Sure. But it is recurrent and current with few easy answers in sight. I suspect a part of the problem is because those most active in pushing these solutions have little idea about organizational dynamics or what makes people tick. I don’t say that lightly. Check out Oliver Marks blog and his experiences at large organizations.
Why does this matter in the SAP world ?
For a realistic comparison, my last SAP implementation (not upgrade) had a gloabl reach, required 5 nines reliability (scheduled application downtime is 6 hours every 3 months), and a Disater Recovery metric of 30 minutes RTO (with an RPO of 10 minutes) after a data centre disaster, for multiple mult-terrabyte databases. The customer’s management team was experienced, knew the implicit difficulties in this, and knew it would cost money. However, they were able to justify the spend, based on their business requirements.
Compare this SLA against the Google Apps Mail outages in March 2008, the Google App Engine failure (June 2008) and another Google Apps outage in October 2008.
You don’t have control over the cloud, which means you don’t have control over your data, whether you’re talking about the physical security, or secured access once the data is available.
On the other hand, with tools like ESME, the wikis and rooms available on SAP Portals, and sensible well designed Web Dynpros, under pinned by the new Java Engine architechture, you have the technology to provide your users and customers with Web 2.0 like systems, in a secure, scalable, stable environment.
Howto avoid irj/portal in the portal URL
Actually, its a bit of a cheat. What happens is that you’re telling the J2EE WAS that if there is no page specified (such as …/index.html), then open the page …/irj/portal.
1. Go to j2ee visual administrator
2. For each Server, Navigate to Cluster-> Server -> Services -> HTTP Provider
3. Enter /irj/portal in the Start Page Text Field
4. Click on Save Properties
5. Restart this service from visual administrator
Access http://yourserver.yourdomain.com and your portal login page should come up.
This means that your SAP J2EE Engine Start Page will still show up if you http://yourserver.yourdomain.com/index.html
SAP Enterprise Portal 7 – Modify Default Ports
An SAP portal installation, by default, selects a port for http and https access based on your system number. For example, if your system number is ##, then the default port for portal access would be
* 5##00 for http access
* 5##01 for https access ( aka SSL )
Many Project teams wish to shorten this long url (http://yourserver.yourdomain.com:5##00\irj\portal). Fortunately, there is an easy way to modify the portal http and https ports and keep it to 80 and 81 ( or anything you wish).
Follow the below given steps to achieve this.
1. Start the j2ee visual administrator tool
2. navigate to cluster -> dispatcher -> HTTP Provider
3. Choose Ports
4. Change the port number to 80 for http and 81 for https
5. Thats it – You’re done!!!!
One extra step that’s required if you’re also running IIS (for example, if you’re using an ITS to communicate with an older R3 system or running TREX), you need to make sure that your J2EE ports do not conflict with any of the IIS ports (including the default web server). The best way of doing that is to ensure that the IIS default web server is pointing at different ports AND is stopped.
SAP Enterprise Portal 5 – Modify Logon Page
The logon page is FormLogon.asp found in the SAPPortal directory of the Default Web Site under IIS
For those familiar with later releases of Enterprise Portal, you need to remember that when EP5 was released, the Web Application Server release of SAP had yet to be released. This meant that the portal server had to provide its own web server.

