Archive for May 2007
Online offline with Google Gears
Google Gears is an interesting development that provides an open source browser extension to enable offline access to web applications. The application is able to store and retrieve local data as well as provide increased response by running asynchronous Javascript.
Word has it that Google Docs and GMail will soon be supported. For now, you can test the functionality of this technology with Google Reader.
Update: the Linux installation of the add-on works without an issue, though Firefox had to be unceremoniously killed during the restart. On Windows XP, the downloaded executable program is unable to install Google Gears: Install failed. Error code 0×80040800
Palm Foleo
Palm has released their Foleo, a companion to smartphones. The Foleo has a 10 inch screen and sports a full-sized keyboard. With wireless and Bluetooth connectivity, it’s main purpose seems to be to provide a better mobile computing experience, without sacrificing usability. Instant-on technology is provided, so there’s no delay in getting up and running. A smartphone is required as the Foleo does not contain a GSM radio. If you’re outside the range of a wireless network, a Bluetooth link to a modem is required to gain online access.

The unit is priced at around USD 500, which is not too bad. This may be an alternative to the Nokia N800 Internet tablet for quick and easy Internet access at home. The problem is, this device is exactly what the press blurb mentions: a mobile companion. It’s basically an extension to document viewing and editing on a smartphone and transfers edited documents back and forth using Bluetooth connectivity. With a form factor that is effectively a notebook, there’s little to recommend it, other than the instant-on. With flash cards of decent capacities available soon, current notebooks may be able to provide the same functionality and then some.
XSLT
Having made a web service work via ABAP has been only one part of what I’ve set out to do. The next step is to use XSLT transformations to parse incoming XML payloads. I’ve had some dealings with XML, but nothing like this before! The biggest issue is understanding the structure of the transformation coded in SAP, the ABAP program that is used to convert it into one or more tables and the actual XML payload. Needless to say, the payloads I’m dealing with are fairly complex and nested to the nth degree. Little wonder then that all initial attempts failed.
Some hints for those of you trying this out. There are many resources on the SAP SDN. As usual, not one of them will match a real-world case. Not in my case, at least! I’ve found it easiest to start defining the transformation and its associated target tables from the inside out. Keep your wits about you and remember that XML is case-sensitive. Contrary to popular belief, ID and Id are not the same. With a large XML document and many tags, it’s easy to foul one or more of them up. Syntactically, everything will look great. Except the ABAP won’t return any values to the table. A good XML editor and debugger is very useful. Altova XML Spy is good, but very expensive. I’m presently using oXygen, whose XSLT debugger is intuitive to use. A simple XML viewer is handy too.
The most frustrating part of the exercise is managing to make the relevant structures identical and provide identical names. So, for exampe the XML tag HEADER requires a variable named header. For each set of tags or data, a for-each select statement is needed. And don’t underestimate the need to declare a record type that matches the structure – if you forget the clause OCCURS 0 when defining types, the table within a table of that type will never receive any values. No amount of debugging will indicate where to look…
Refreshing Netvibes
I use Netvibes constantly – primarily as an aggregator for multiple mail accounts. This trick is a real timesaver. Instead of refreshing the entire page, the script refreshes only certain sections of your Netvibes page.
via
Lifehacker
ABAP and web services
My frustration is at an end! Having spent numerous hours trying to understand why my web service call refused to return a valid XML document, I finally tracked the issue down to the most common denominator: network access! That’s rather odd, considering a standard ABAP proxy generated from a WSDL is able to connect and transmit information. When coding the web service call in an ABAP program the situation is slightly different, though. I was able to get a SAP system running on a stand-alone machine on my home network. No proxies or firewalls interceding, the connection worked almost immediately. Some issues with the XML and SOAP envelope contained in the call where quickly resolved. The key is to ensure the following type of code is not included in the program:
* proxy server authentication CALL METHOD http_client->authenticate EXPORTING proxy_authentication = ‘X’ username = user password = password.
Removing the call to the authenticate method is the first step, whether the SAP system is behind a proxy or not. The easiest way of verifying that the connection cannot be established is to create a new connection of type G in transaction SM59. The URL is the destination. A click on the Test connection button should result in a failure. It seems that the global proxy settings in transaction SICF have no effect.
The overall solution is simple, yet not easy to implement in a corporate environment. Ideally, a change to the ISA server configuration is required to permit the WAS full access to the Internet. If that’s not possible, an easy solution in the Microsoft Server environment is the installation of the Firewall Client Tool. Browsing the Internet should be possible from the server hosting the Netweaver WAS and the relevant entries for the proxy made in Internet Explorer. Then, simply make the relevant entry in the Firewall Client.

Connection successful!
Now, on the unchartered territory of XSLT transformations to convert XML to flat ABAP structures…
Calling a web service from SAP
This is one of those that has had me rip my hair out for the past two weeks. Not that it’s at all difficult. In fact, with the newer releases of the Netweaver Web Application Server, there’s a built-in console and testing environment to generate an ABAP proxy that will generate the necessary system structures and even create skeleton coding for an ABAP program. If you are dealing with an XML payload that is not complex, that is.
Let me explain: the creating of an ABAP proxy is a simple affair. Go to SE80 and generate the proxy by entering the necessary values for the Enterprise Object. Hey presto: the object is created once the WSDL has been supplied and all SOAP definitions are dragged into SAP. You can even test a web service as you would in Altova’s XMLSpy. The crazy thing is that the call always returns something valid. Then, you go to the ABAP code and try to reproduce the call and…nothing. The incoming payload is empty. Always. Without an error. After a week of frustration I finally received a response from SAP. The coding is unable to process a nested XML structure. The payload is effectively unusable. Great! Now, to go back to the more error-prone ABAP coding by making HTTP calls directly. There are many samples, both on SDN and the online SAP Help.
Funny thing is, that doesn’t seem to want to work either. No errors, but the incoming payload is constantly not what I expect. Instead of an XML, I get an HTML document that contains connection errors. I haven’t a clue where the problem lies now: in the ABAP program? In the network proxy settings? In the WAS connection? The destination system? I’ve tried this on more than one system, with the same results each time.
Help!
Mini USB speakers
These diminutive USB-powered speakers are great for throwing into your gadget bag to accompany your laptop computer.
The approximately 10cm high speakers are connected by a fairly short USB cable. Their L-shape allows them to be bundled together, back to back and stowed away in the supplied pouch. Plug the USB cable into your notebook, and most operating systems should detect the on-board digital sound processor.

At a price that is less than half that of the Logitech equivalent, these speakers are compact and lightweight. You are forced to use a computer with a USB port, so there’s no chance of connecting these to a PSP or iPod. There’s also no volume control other than that provided by the operating system. Other than that, these perform rather well and do provide sound quality far better than most integrated notebook speakers. I find these especially useful for enhancing the sound of DVD’s, which always seem to have a far lower volume output than ordinary media files.
Even though the packaging indicates that Windows XP is a pre-requisite, I’ve had no issue in getting these to work in Ubuntu. They should be capable of working with Mac OS, too. Fit for purpose, and recommended.
FOSS targets Microsoft
Since Microsoft drew a line in the sand and threatened the open source movement, a number of events have occurred. It’s been an interesting three days!
Firstly, the author of the report Steve Ballmer referred to when making his claim has stated that his report actually proves the opposite of what Microsoft claims it does. Put a different way, the report does not claim that open source software faces any legal problems. Secondly, Novell distanced itself from Microsoft’s claims in a public statement. Now, the Free Software Foundation is openly targeting Microsoft with two websites and associated initiatives: BadVista and DefectiveByDesign.

The primary thrust of the initiatives is an education drive: the implications of DRM and software ownership and licensing.
It’s fair to say that Microsoft has lost the browser war. If sufficient users switch to open source, Microsoft may be forced to reconsider its stance…
Netweaver 2004s becomes Netweaver 7.0
Modern-day SAP is confusing enough given all the various products, solutions and versions that exist. Having changed their naming scheme for all products based on the Netweaver stack to reflect the year of the release, SAP have now once again changed to a version number. Netweaver 2004s is now know as Netweaver 7.0. The newest release will be Netweaver 7.1 and should be available soon.
According to SAP, the change of the nomenclature was necessary to reflect the new release strategy for all SAP solutions announced recently. Instead of having new major releases for our solutions every 1-2 years, SAP started to deliver so called Go-To-Releases that remain stable for a longer period of time.
Here we go confusing the customer base yet again…
