Getting Started with Web-Dynpro ABAP

I played around with the first beta-versions of WebDynpro Java (WDJ) already some years ago, now that NetWeaver 2004s (AS ABAP 7.0) is available I also had the chance to go in for WebDynpro ABAP (WDA). This is the version we will probably work the most with, as it doesn’t need a separate runtime environment, is directly integrated into the ERP-system and thereby makes developing business applications based on ERP-functionality much easier.

I am approaching the topic by working through the book “Web Dynpro for ABAP” by Ulli Hoffmann, which treats the subjects with hands-on examples, various source-code excerpts and screenshots rather than abstract descriptions.

The WebDynpro-framework, development tools and runtime environment apparently bring a lot of advantages to (web-)application developers (and users):

  • Declarative and graphical tools speed up the development of UIs
  • The MVC-model leads to a clear separation of layout and business-logic
  • Data-binding makes it easier to bring the data to the frontend and enables automatic type-checking
  • The componentization-options allow reuse on the presentation-level of applications
  • The runtime generates highly interactive, “flicker-free” screens running within a standard-browser

But I have to say that I also like programming BSP‘s with HTMLB and the MVC-model very much. This concept has most of the mentioned advantages too, but offers more flexibility I would say, especially when it comes to dynamically generating screens or parts of screens. WebDynpro becomes slightly complex there.

Those are also good starting-points to WebDynpro ABAP (besides the mentioned book):


Technorati
:

SAP upgrades “All-In-One”

SAP announced an upgrade for it’s All-In-One (A1) solution for small and mid-sized businesses.

It will be based on mySAP ERP 2005 and NetWeaver (and thus be “SOA-enabled”), which is not a surprise.
What I find interesting is that it will also include CRM-capabilities. mySAP CRM as a standalone solution is surely not efficient and affordable for the mid-market, a CRM that is integrated into the core ERP-system (which contains some CRM-related functionality anyway) is just what they want.
To deliver a modern and easy to use GUI with the “NetWeaver Business Client” (aka Project Muse) is also a good idea in a market where you compete with Microsoft.

Besides, there are some rumours that SAP will also bring a completely new ERP-system for SMBs, perhaps in an on-demand model.

(you can read more on it here and here)

Technorati tags:

AJAX Design Strategies

This article from Sun gives a nice overview of the various possibilities a software developer has if he wants to incorporate AJAX-functionality into his application.

In short, the options are:

  1. Do it yourself, when you need fine-grained control over your web application’s AJAX functionality.
  2. Use a client-side JavaScript technology library (like Dojo or Prototype), when it can simplify the JavaScript technology code you would need to write for your web application.
  3. Use a client-server framework (e.g. Ajax4jsf), when you want to take advantage of tools such as the Sun Java Studio Creator IDE to build web applications by dragging and dropping components, or if you’re already using JavaServer Faces technology to build web applications.
  4. Do the “wrap thing”, i.e. wrap JavaScript widgets with JSP-tags or JSF-components (e.g. jMaki), when you already use JSP or JavaServer Faces technology in your web applications and need to access widgets from client-side JavaScript technology libraries.
  5. Go remote (e.g. with Direct Web Remoting), when you have business logic in server-side Java objects that you want to use to process AJAX requests.
  6. Go all Java technology (e.g. Google Web Toolkit), when you want to develop AJAX-enabled applications using the Java programming language exclusively.

Chances and Risks of AJAX in Enterprise Applications

Markus Eisele did an interesting speech at the W-JAX conference last year about “Chances and Risks of AJAX in Enterprise Applications”.

Here you can find the presentation:
https://technologydriven.files.wordpress.com/2007/01/w-jax_eisele.pdf

Unfortunately it’s only available in German, so I try to give you the key-points in the following.

First, Markus described the characteristics of (inter-)”enterprise” applications, compared to e.g. public web-applications like flickr or Google:

  • Instrument for business performance
  • Robustness and reliability
  • Cost-effectiveness (TCO)
  • Performance requirements
  • Handling of mass data
  • Testability
  • Proven tools, methodologies and software-architectures for software-development (e.g. MVC)

Concerning all this, a new technology like AJAX offers some chances but also some challenges, namely:

  • Centralized administration of clients (perhaps browser-versions 4.x) and security settings which prohibit the extensive use of JavaScript
  • Heterogeneous client-infrastructure (PCs, hand-helds, kiosk-systems, …)
  • Lack of tools to develop, debug and test AJAX- (or JavaScript-)based applications
  • Danger to do business-logic within the presentation layer
  • AJAX is there to increase usability, but it not always does (print web-page, bookmarking, browser back-button, …)

To encounter those challenges, Markus recommended the server-side development and generation of AJAX-code within standardized frameworks like J2EE/JSF or .Net. As suitable areas to use AJAX within enterprise apps he identified:

  • Asynchronous loading/update of worklists within workflow-systems
  • Complex forms (dynamic loading of page-fragments instead of clicking through a lot of pages)
  • Dynamic, on-demand loading of data-records for tree-structures and similar
  • Client-side sort and filtering of datasets
  • Automatic text-completion in input-fields (e.g. Google Suggest)

He finished with a quote from Ray Valdes (Gartner):

“The bottom line is it [AJAX] can result in an
improved user experience, which offers
significant business value, but that is not
automatic. Many developers will do what they
always do—they don’t understand user-centric
design. We’ve seen this with Java applets.
We’ve seen this with Flash.”