Skip to Content

Ah. The beauty and agony of choice. As you may have heard, SAP NetWeaver 7.0 will support Web Dynpro (WD) development using ABAP – previously only a Java domain. As a SAP customer and developer you now have a choice to make: Do I use ABAP or Java to develop Web Dynpro applications? The correct answer is …’neither’ … .NET rules! Just kidding :-). I will attempt to help answer this question by discussing factors that could influence your decision. Before starting, I don’t want this discussion to turn into a religious war or flamefest along the lines of ‘Java is better than ABAP’ or the vice versa. With that out of the way….
     First and foremost, what is your or your organization’s skill set? Have you been coding ABAP since R/3 3.1H or Java since the days of JDK 1.0? If you are fluent and productive in ABAP, why not leverage that skill to develop WD applications in ABAP? What would be the business justification for retooling besides wanting to learn something new? The converse, of course, holds true for Java as well. Unless there is an overriding business need, develop WD applications in the environment where you are most productive.
     Developer skill set, however, is not the only variable in this equation. What is your IT staff comfortable supporting? Do you already have an extensive DEV/QA/PROD ABAP infrastructure in place? Consider the resources (training, servers, etc.) that would be required to set up the equivalent Java SAP NetWeaver Development Infrastructure (NWDI). How long would it take the IT staff to come up to speed and be good at installing and maintaining a Java development environment? Speaking of the entire development process (versioning, transport management, etc.) — it will be easier to move your development project through the system landscape if both the UI and business logic are in the same development environment. Otherwise, you have to deal with NWDI for your WD for Java work and the correction and transport system for your ABAP business logic, or vice versa. (Update: This is is less of a concern now that CTS+ lets you bundle your WD Java UI developement with ABAP development objects into a single transport. )
     Next, let’s look at the location of your business logic. Is your core business logic contained in EJBs on your J2EE servers or ABAP based SAP systems? If the majority of your code base is in Java it makes more sense to use WD for Java to build the UI. Likewise, tons of custom ABAP business logic is easier to access via WD for ABAP…yes, yes I know you can use adaptive RFC to access that business logic, but it’s simpler to make the native ABAP calls.
     There are differences between the two WD environments. Currently, WD for Java supports more models (Javabeans, web services, adaptive RFC, and XMI) compared to the function module model in WD for ABAP, though additional model support is planned for ABAP. You can, of course, work around this limitation by wrapping a webservice call in ABAP with a function model. Furthermore, although WD for ABAP has a code wizard, some might find the code completion and syntax checking capabilities in Java more useful when working with the WD API.
     Finally, this entire discussion is moot if you need a Web Dynpro application that executes on a mobile device. For now, Java is your only option but support for mobile is planned for ABAP. In the same vein, if you must absolutely have the SAP List Viewer (aka ALV, ABAP List Viewer) then WD for ABAP is your only choice. However, ALV functionality for Java is planned.
     In the end, despite minor differences, both WD for Java and ABAP are powerful and complete development environments – the choice of which one to use in your organization should be based foremost on skill set and system landscape and not a ‘feature and functions’ comparison.

Updated on 5/2/2008.

To report this post you need to login first.

39 Comments

You must be Logged on to comment or reply to a post.

  1. Pran Bhas
    Thanks for the info..

    Some more thoughts ..

    What if I want to reference Portal and KM services ?
    What if I want to use numerous third party java apis out there like a spell checker, a better XML parser, monitoring apis etc?
    What is your suggestion for UI if you are developing applications on the CAF runtime?
      

    (0) 
    1. Oliver Mayer Post author
      Hi Pran,

        In that case I think the ‘business logic on J2EE’ axiom applies – i.e. use Web Dynpro for Java. For CAF you have to use Java and the SAP NetWeaver Developer Studio.

      O.

      (0) 
      1. Alvaro Tejada Galindo
        I will choose ABAP over Java, because I feel more comfortable with it…And also, because I like it the most -:)

        ABAP is the heart of SAP, so even when SAP is starting to support Java, I think that ABAP is still the best choice to go.

        Greetings,

        Blag.

        (0) 
        1. Bo Tarno
          Very Good article Oliver. Aside from the question of whether your background is Java or ABAP in my opinion the key factor here in the choice is whether the backend is developed in ABAP or Java. I am a Java programmer and by default I made a decision to use Web Dynpro for Java but as of yet I have found it difficult to use the Adaptive RFC layer to retrieve data from the backend.  Although I am relitively new to this technology I am am considering switching to ABAP for this reason. Another key factor is the search help …. One advantage I see in using Java is that using the NWDS I can develop locally and then deploy as required (I am not sure if this option is available in ABAP but believe one needs to be logged on to the system ?). Also I have another question /comment .. this might be the right platform but all the same .. are there performance hits with using the adaptive RFC layer ? 
          (0) 
          1. Oliver Mayer Post author
            Hi Bo,

              Agreed. As I mentioned in my blog, the location of the business logic is one of the factors to take into consideration and since in your case it’s all ABAP based I think using WD for ABAP makes sense. Ah yes – search help, good point, a key feature in WD ABAP. Yes, you will have to be logged on to the ABAP system via SAP GUI in order to develop using the ABAP workbench. Deployment in an ABAP system is a little different. You develop in your development system (adding new objects and changed ones to a development request)and then transport your dev request through the system landscape (DEV-QA-PROD.

            O.

            (0) 
            1. Sudeep Adhikari
              Hi Oliver, thank you for the very good article. This made my understanding of the Web Dynpro for Java and Web Dynpro for ABAP lot clearer.
              By the way, thesedays I am making portal components by PDK for .NET and I want to make a sort of comparision on “Under which circumstance would the use of Web Dynpro for Java, Web dynpro for ABAP and PDK for .NET be recommendable”.
              Do you have some thoughts regarding PDK for .NET?
              (0) 
              1. Oliver Mayer Post author
                Hi Sudeep,

                   The .NET environment will make the most sense for those customers that are heavily invested in both hardware and human resources in the Microsoft development environment. The PDK for .NET will allow them to create applications that, if they us the SAP provided controls, will adopt the portal branding. So, it boils down mostly to what development environment you are most comfortable in, in what language is your expertise (developers, admins, etc), and what fits into your corporate IT environment.

                O.

                (0) 
        1. Oliver Mayer Post author
          Hi Daniel,

            ABAP functions can be as long or as short as you design them. I agree though, I have seen some rather lenghty ones myself ;-).

          Oliver

          (0) 
          1. Daniel Simeonov
            Hi Oliver,
                The problem with ABAP is that refactoring is not so easy to be carried out. Refactoring is essential for today’s development, since development is design – you can start a function supposed to be small and finally you see that it becomes grow bigger and need to refactor it.
            I think that in most cases long functions and big classes are code smells and lower the quality.
            Best regards, Daniel.
            (0) 
  2. a george
    Even I agree that I like Abap since i work on Abap and java is new .But if all the functionality is not there We have to learn Java until there is a counterpart for in ABAp for the functionalities.
    George
    (0) 
  3. Thomas Bentzen
    Hi there and thank you for a good article.

    If you look at the ABAP / Java equation, you can never choose without favoring the one you really like. So you should never leave that decision up to any one with development background 🙂

    But what about the third choice: Not to use WD!
    I personally am a portal developer and, i can develop applications a lot faster in DynPagePlus (http://dynpageplus.sf.net) than in WD!
    And there must be other developers who’re faster using their daily tools than WD.

    Therefore you should always consider: “Is WD right for this project?” before asking weather you should use ABAP or Java WD.

    Best regards

    Thomas Bentzen

    (0) 
    1. Oliver Mayer Post author
      Hi Thomas,

        I should have stated this explicitly, but the assumption was that you already went through all the UI choices and settled on WD since it meets your requirements.

      Oliver

      (0) 
  4. Sam Mesh
    According to the latest “Official Web Dynpro for ABAP Documentation”, SPS8 can consume WS. Is this true?

    PS. I could not check this because free sneak preview is SP4.

    (0) 
  5. R. Faber
    Hi,
    This subject might be a blast of the obvious, still, it is good to see this summed up which choises an organization should make before starting with WD. Still, you must be in a position to be able to chose between 2004 and 2004S and not already started with ECC 5.00 first… 😉
    (0) 
  6. Chad Schmidt
    Another couple of advantages to ABAP WD, depending on your desired functionality, are the direct access to SAP authorizations and the enqueue/dequeue functions.  Sure you can always create wrappers for these and access them as remote calls, but you will find very quickly that you are creating a ton of custom objects which of course translates to higher maintenance costs down the road.
    (0) 
    1. Oliver Mayer Post author
      Hi Chad,

        You are correct. Accessing ABAP specific functionality is a lot easier with Web Dynpro for ABAP, no wrapper code to maintain.

      O.

      (0) 
  7. Phil Gleadhill
    What would be very useful if possible is a feature tabel that compares what feature or development functionalities are available in each flavour (ABAP and JAVA) and therefore give a concise overview of each. Combine this with which NW Support Pack Stack it will be delivered in, and we would have something very useful.

    Cheers, Phil G.

    (0) 
  8. Jim Donoghue
    Hi there great topic.

    I’m currently working for a consultancy which produces on-line ABAP transactions to SAP W.M. (warehouse managment).  We use SAPConsole which basically provides a telnet/browser session to an ABAP dialogue transaction.

    We are looking at using web-dynpro for the future but are unclear on Java & ABAP.  

    You say no mobile support is provided for ABAP web-dynpro – do you mean off-line transaction processing or do you mean on-line transaction processing ? or both ?

    My confusion is if ABAP web-dynpro issues java-script and HTML pages (and there is no need for clever off line processing/storage) then as long as the mobile device supports web-browsing then it should’nt be problem ? right – wrong ?

    If I wanted to provide an off-line web-dynpro applications on a mobile device then sure I could see a potential problem with ABAP.

    Thus, can i use webdynpro for ABAP with on-line applications through the devices integrated web-browser ?

    Many thanks for your time and help.

    Jim 

    (0) 
    1. Oliver Mayer Post author
      Hi Jim,

         You may know that the Web Dynpro runtime has automatic device recognition and thus wether it will be running in a browser or on a WAP phone. So while you are correct that WD generates just JavaScript and HTML, it is the device recognition and knowing what features that particular device supports that’s critical. Currently (SAP NetWeaver 2004s) this mobile device recognition and consequently support is missing for WD for ABAP.
      You can have off-line WD for ABAP via the Adobe forms functionality – just not on a mobile device. I hope that helps to clarify the mobile support limitation.

      Regards,

      Oliver

      (0) 
      1. James Donoghue
        Hi Oliver,
        sorry to hassle you but I have been asked to ask you a question;

        Is there any indication of when the ABAP webdynpro mobile support will provided/released ?

        If not, who would be the best person to answer this question ?

        If you do find out in the future can you post it on this weblog ?

        Thanks for your help.

        kind regards
        Jim

        (0) 
            1. Oliver Mayer Post author
              Hi Torsten,

                I apologize for the delay in my response. Unfortunately, at this point in time, there are no plans to support mobile devices with ABAP Web Dynpro.

              Regards,

              Oliver

              (0) 
    2. Oliver Mayer Post author
      Hi Jim,

         You may know that the Web Dynpro runtime has automatic device recognition and thus knows wether it will be running in a regular desktop browser or on a WAP phone. So while you are correct that WD generates just JavaScript and HTML, it is the device recognition and knowing what features that particular device supports that’s critical. Currently (SAP NetWeaver 2004s) this mobile device recognition and consequently support is missing for WD for ABAP.
      You can have off-line WD for ABAP via the Adobe forms functionality – just not on a mobile device. I hope that helps to clarify the mobile support limitation.

      Regards,

      Oliver

      (0) 
      1. Jim Donoghue
        Oliver, firstly thankyou for your response.

        Just so I can close this out and confirm I have understood/explored every avenue.

        1. Abap web-dynpro would not work for a mobile terminal (running on-line) even if it had a web-browser running on either; Windows® CE 5.0 or Microsoft Windows Mobile™ 5.0 software for Pocket PC ?

        2. The reason ABAB web-dynopro can’t support mobile devices is it can’t sence the device type AND there is no way of prgramming/forcing/hard code the device type in the application  i.e. force abap-webdynpro to support only a specific device/browser type ?

        3. If the answer is “no” to both the above – is there any indication (approx) when Abap-webdynpro will provide support for mobile devices (hand held terminals running CE etc not mobile phones/black berry etc)

        Thankyou Oliver for you time and assistance in developing my understanding.

        Kind regards
        Jim

        (0) 
        1. Reko Lamminluoto
          And works fine with windows CE. No problem. Only issue was remapping mobile device function keys( neef third party solution).
          Customers hate java stack so i abap web dynpro is then only choice.
          (0) 
    3. Graham Robinson
      Hi Jim,
      I just wanted to jump in and let you know I have had great success building mobile applications in ABAP using the Business Server Page (BSP) programming model. This is SAP’s implementation of server-side scripting. I have built SFA and WMS handheld applications using this technology. Perhaps you might want to consider this option?
      Cheers
      Graham
      (0) 
    1. Anonymous
      This is a question often asked. Based on my four years WebDynpro Java and ABAP experience I would input some feedback:
      1) The biggest thing is the NWDI. Most of the SAP customer have ABAP stack, but not everyone has the Java stack. To develop WD Java you need to set up the NWDI envrionment, like SLD, CMS, CBS, DTR, etc. which is a huge effort if you don’t have them in place. While for WD ABAP, the environemnt is normally there as given for most of customers if they have the right version.
      2) If your busniess is implemented in JAVA or non_ABAP system, I would say it’s easier to use WD Java, because in WD java you have more choice to call the business logic (the models)
      3) If your business is in SAP system, I would prefer WD ABAP. There are many WD components available in WD ABAP like select-option, Alv table, F4-help which are not available in WD Java. Beside in WD ABAP you can deal the context node in form of internal table which is much more performant than dealing with the contextelement which is the case for WD Java.
      4) If you don’t have NWDI in place, I would also recommend WD ABAP.

      These are my first thoughts
      Jayson

      (0) 
      1. Oliver Mayer Post author
        Hi Jayson,

          Good observations and notes. I agree that NWDI is a hurdle for many customers who are considering Web Dynpro Java, especially if there is no well established Java development at the customer. Likewise with the business logic location – if it’s in ABAP use Web Dynpro ABAP.

        O.

        (0) 
  9. Frank Zebisch
    Hi Oliver,

    a really helpful blog. Are there any differences regarding hardware requirements (client-pc’s RAM)? Will one of the two options work better on clients with 256KB RAM?

    Regards
    Frank

    (0) 
    1. Oliver Mayer Post author
      Hi Frank,

        The client hardware requirements are the same for WD Java and ABAP since they are both rendered in the browser. Not sure IE or FireFox will run too well on WinXP with only 256KB of ram. Never tried it.

      O.

      (0) 

Leave a Reply