Call for Proposals on SDN

May 21, 2007

A couple of weeks ago there was a Call for Proposals on SDN for SAP’s annual developer conference TechEd. All SDN members were invited to submit session abstracts for Munich, Bangalore and Las Vegas, which got preselected and are now up for voting by the community until 28th of May.

Linda Bortolus already asked you to vote last week, just like Nigel James did, who is also with two PHP related proposals in the finals. There is still one week left and this is your chance to raise your voice and vote for what and who do you want to see at TechEd this year. And even if you don’t plan to go there, take the time and vote your favorites. Maybe you will benefit from material of sessions released after TechEd.

I submitted three papers and two of them made it into the finals.

1. Unit Test for Enterprise Portal Applications

I became a member of an XP user group a couple of month ago. It’s located in Düsseldorf and we meet up once a month. The first sessions were exciting. The topic we started with was TDD and it was really eye opening to see this done live by a bunch of experienced developers. This is one of the things for me I just don’t get only by reading about it but I had to see and feel how it’s done to get my head around it.

As most of my current development is happening in Enterprise/NetWeaver Portal, it was an obvious next step to figure out how to do it in that environment. So this session is all about TDD and the tools and APIs to do Unit Test in EP and my experiences and lessons learned from the last couple of month.

2. Maximize your Productivity in NWDS

Maybe you have followed my “Pimp Up My NWDS” blog series on SDN. OK, there were only two and they were written already last year but only because there were no follow ups doesn’t mean I’m not constantly trying to optimize my virtual developer workplace where I have to spend most of my working time day by day. Actually I have another PUMN blog in the work and a bunch of other add-ons I’m using in NWDS and plan to write about.

But this session won’t be only about NWDS/Eclipse add-ons but also about how to build up your overall development environment. Development on the NetWeaver Java stack is very different that good old ABAP and I don’t talk about the language perspective here. To keep productive and stay independent you have to have your own server running and once you have to jump between projects with different Java WAS versions it can get nasty.

I wasn’t sure in the beginning if this would fit into the sessions topics that are normally covered but it got excepted for the finals so here we are.

Another sessions I want to point you to is the one by Christian Günther where he talks about Portal Security. Chris is a good friend of mine and I can say he knows what he’s talking about and I expect this to become a really interesting session.

And not to forget Gregor Wolf. He is also taking his chance and is in the finals with a session on Type3 integration.


JDBC DataSource Deployment in NWDS

April 17, 2007

Dealing with databases on SAP NetWeaver Java stack is is usually done by using JDBC . Each installation of an app server has a standard db schema named sap<db name>db which SAP encourages you to use for your applications via OpenSQL, SAP’s database abstraction layer for Java. There are a couple of advantages that you get by using OpenSQL, e.g. support for Java Dictionary (which lets you deploy your table definitions and data types from NWDS), Table Buffer, Statement Pool, SQL Checker and SQL Trace. Further by using SQLJ, part of the OpenSQL framework, you get compile time checks for your SQL statements and that’s one thing we all really like in ABAP, do we?

In order to connect to this standard schema you would probably use a resource reference to connect from EJB like this:

java.sql.DataSource ds = (java.sql.DataSource) jndiCtx.lookup(“java:comp/env/datasourceRef”);

When connecting from outside of EJB you should use a DataSource Alias (DSA) instead. You define a resource reference and DSA as parts of your application. By that your application is easy portable once you need to move it to a new database instance or schema. You’ll find more on this in the DataSource Alias FAQ.

Welcome to RL

When you find yourself in a situation where you can’t use the standard schema, you’ll face a couple of problems you may wouldn’t expect.

1. OpenSQL is only supported in the standard schema. Each additional schema has to use either Native_SQL or Vendor_SQL. That means you’ll loose a couple to many of the advantages mentioned before, because they are only supported in OpenSQL.
2. It may not always easy for a developer to get the necessary access to the server for setting up a new DataSource and as a developer being dependent from an administrator isn’t always desirable.

There are a couple of ways to create a new DataSource and most of them need an administrator account or direct access to the servers file system.

1. Probably best know procedure is to use our all favorite admin tool Visual Administrator, a rich client but you’ll need an admin account for that. (
2. Second best known is probably the web based version using NW Administrator but to get access to it you’ll face the same hurdles as with VA. (
3. For the ones who prefer to use a shell there is the MAKE_DATA_SOURCE from DBPOOL. Be sure to have file system access on the server here. (
4. There is a fourth way to deploy your new DataSource as a part of your application. The only thing you need here is the SDM password that you probably already have for your usual deployments. The official documentation is a little weak on that point. So let’s take a look at the necessary steps for this task.

DataSource Deployment

A DataSource definition used in a NW Java stack is described by a XML file that is based on a data-sources.dtd. You can generate a proper data-sources.xml file from this DTD definition. Another way is to create a new DataSource in Visual Admin under Services->JDBC Connector and export it as shown below.

That way you already have the necessary information filled into the right place. Just make sure to set for the password tag the attribute encrypted to false and provide the right password.

<password encrypted="false">mysecretpassword</password>

Next you have to store both files data-sources.dtd and data-sources.xml into the META-INF directory inside your Enterprise Application Project so that they will get deployed as part of your .ear archive.

That’s it and with your next deployment you’ll find your new created DataSource on your app server. Access to it is the same as for a DSA.

The Sad Part

One thing to keep in mind is that when you go with an alternative db schema you can’t use Open_SQL anymore because this is only supported for the standard schema as mentioned already above. You therefor have to switch to Native_SQL, which has to be configured in your DS definition like this.

<description>DB for Supplier Portal App</description>

Another option is to use Vendor_SQL but you should do this unless you have some good reasons and know exactly what you’re doing. You can find more about the differences in this SDN article.