Is ABAP considered "good" ?

I have been learning ABAP with the NetWeaver trial for a week or so now
and I am frankly shocked by this platform.
There are some good ideas here but they are outweighed by bad ideas and bad execution!
I cannot see that it is possible to create high quality software using this system.
The SAP development tools themselves are terrible - the applications created with them even worse.
Does anybody consider this platform to be "good" ?
Moderator message - Moved to the correct forum
Edited by: Rob Burbank on Jun 7, 2010 5:34 PM

it is interesting to learn ABAP - it is so different - like an alien software
but the way it does things rings so many alarm bells
little things like binding screen controls to abap programs based on the name of variables
where is the validation and type safety?
where is the dependency tracking?
what happens when you have a typo - silent error!
so much of ABAP seems to be a bodge up - like things I have done as a developer
and thought to myself "well if it works it works who cares right?"
but those sort of approaches can lead to chaos
and weird syntax like:
DESCRIBE TABLE itab LINES fill
urgh! that is horrible - like so many ABAP constructs - they just make it up as they go along!
and PAI event handlers based on ... you guessed it ... strings again!
case OK_CODE.
when 'SOME STRING TYPED INTO A GUI TOOL SOMEWHERE'.
that is just not acceptable for so many reasons
oh yes - and the OK screen element - just sits there until you give it a name - what is that?
I was hoping to learn something from SAP - but SAP could learn more from me - and I'm just an average developer
lock objects generating function modules that have to be called ... using another string literal!
call function 'enqueue_is_this_a_joke'
and I can see no way to validate that locking is implemented correctly - got to read the code?
no way of checking that COMMIT WORK only affects records that are locked ?
the whole approach is fragile and opens the door to a thousand subtle mistakes
first SAP apps go live at work soon - I will enjoy the fireworks

Similar Messages

  • Is VHDX for data drive considered good practice on a client PC?

    Hi!
    I don't like putting user's data files (documents, etc.) inside the user's Documents directory on C:. Instead I prefer having them on a D: disk, separate from the OS. On the other hand I don't want to create a fixed size partition as I consider it a waste
    of space, especially when everything is on a rather small SSD.
    Therefore, I consider creating a virtual hard disk (VHDX) on my C: drive and making it dynamically expanding. This would allow me to store data on that "separate" disk which is actually an expanding VHDX file on C:. One problem is that for some
    unknown reason Windows 8.1 is not able to auto-attach such disks on startup, but I have seen some workarounds to auto-mount them through tasks.
    My question is the following: Is it considered good practice to put all data files on such a dynamic VHDX instead on a separate partition? Reading the VHDX explanations it looks like this file format is very stable (even in case of power loss) and is widely
    used in virtual servers. Performance should be also very good. Therefore I don't see any reason to not use it for my data drive. Or are there any drawbacks?
    Thanks in advance for any help.
    Best regards,
    Anguel

    Hi,
    Since the VHDX is created on C which should be the system partition, I don’t think it is more safety than separate partition.
    Please consider that once the system corrupted and we have to format the C to reinstall the System, it may be difficult for us to recovery the date. But the separated partition will be easily stayed without changes.
    You can try to shrink the C volume in Disk management to create a new partition.
    Just my thought.  
    Kate Li
    TechNet Community Support

  • Is this  considered good Customer Service

    I have recently signrd up for Photoshop and Lightroom (been using them until I retired,and now want my own account).
    Suffering like many others with the message "Develop disabled, please renew your membership".
    Having tried all suggested solutions from the forums, decided to use live support, only to be told that non of the Lightroom team were available to help (must be a nice day where they live and they are all at the beach)!
    Basically told to come back tomorrow. I attach no blame to the agent I spoke too, it's not his fault that Adobe can't be bothered to provide reasonable levels of support despite being considered the world leader in imaging software.
    Below is a transcript of the live chat:
    "Hi, we are currently helping other customers in line ahead of you. We'll be with you as soon as possible. While you wait, you can try our community forums where experts are online 24/7. You are now chatting with 'Vikas' Vikas: Hello. Welcome to Adobe Technical Support. Vikas: Hi Norman! Vikas: Please allow me a moment while I look into your account & verify the details. Norman Robinson: Lightroom develop disabled, please renew membership. Have followed all suggestions on forum. None worked. NOT HAPPY Vikas: Thank you for being online. Vikas: As I understand, you are facing issue with Lightroom application. Is that correct ? Norman Robinson: Yes Vikas: Thank you for confirmation of issue. Vikas: I'm sorry to inform you that Lightroom team is offline today. Vikas: You can contact us back on Monday. We will connect your chat to lightroom team. Norman Robinson: That is ridiculous - for an organisation of Adobe's size. Its today I need help. NOT TOMORROW!!!!!! Vikas: I'm sorry Norman, we are from download and install team, we do not have enough knowledge of Lightroom application. Norman Robinson: Maybe I should cancel my subscription - there are alternative applications. Vikas: I'm sorry for the inconvenience caused to you in this issue. Vikas: I wish I could help you but I'm sorry. Vikas: Is there anything else I can help you with? Norman Robinson: Perhaps you should forward this conversation to Adobe's CEO. I'm Know I am not the only one suffering from this issue. The level is service is very poor."
    Good job Bridge is still available with the 'Photography' contract.

    I downloaded Bridge, to be quite honest I am more familiar with the Bridge interface, but need to extend my knowledge of Lightroom (given that Adobe fix the issue).
    At least now I can work on my images unhindered by crap updates.
    I'm lucky, in as much as I created this account for my personal use now as a retired hobbyist so there is no pressure on deadlines. I feel for those who are still attempting to use Lightroom in a commercial environment and are suffering from this error and the appalling lack of support from Adobe.
    Searching for the email address of their CEO, nothing like going straight to the top!

  • ABAP purchase / Goods receipt

    Hi ,
      Actually i am trying to get tax% ,when working on   purchase order / goods receipt report.
    I am using tables , konv and konp with fields knumv ,knumh
      but i'm not sure that whether i'm fetchin the right tax %.
    Any one can please help me.
    Actually I've to calculate VAT or CST
    according to KSCHL (condition type).

    Hi
    You will get cst and vat value after posting incoming invoice
    logic is simple for that
    1) from table EKKO or EKPO get po number
    2) pass this number into tabel RSEGand you will get invoice number
    3) pass this invoice number into BKPF into refrbce field where you will get invoice number+ fiscal year
    and in same table you will get accounting doc
    4) pass this doc into BSET and check you condition type you will get value
    Regrads
    Kailas ugale

  • Is this considered good programming?

    jTextField1.addFocusListener(new FocusAdapter() {
    public void focusLost(FocusEvent fe) {
    jTextField1_focusLost(fe);
    public void focusGained(FocusEvent fe){
    jTextField1_focusGained(fe);
    Is considered the "right" way to do it?
    Thanks

    Personally I favour (most of the stuff I do is J2ME, and thus more classes == bad):
    public class Boogle implements XYZListener, JeffListener, ActionListener {
           // Variables
          /// XYZ listener
         public void XZYHappened( XYZEvent e  ) {
                if( e.getSource() == jeff ) {
                      doStuff();
          /// Jeff listener
           public void jeffHasRanAway( JeffEvent e ) {
                System.out.println( "No!!!" );
           public void jeffHasComeBack( JeffEvent e ) {
                System.out.println( "Yeah!!!" );
           public void jeffHasDoneSomethingIDontCareAbout() {}
            // Action Listener
           public void actionEvent( ActionEvent e ) {
                if( e.getSource() == boggleButton ) { dance()  }
                else if e.getSource() == doSomethingButton ) { doSomething() }
          // Other Stuff
    }

  • What's considered good up/down speed on Wi-Fi?

    I used www.iphonespeedtest.com and was only getting around 250 kbps. Is that bad? I'm right next to my router (wireless g with cable modem).

    I just reran it and got 766 kbps. Using the same site on my PC I get 2 Mbps. HOWEVER, using speakeasy.net/speedtest on my PC I get 20 Mbps. The speakeasy test requires flash, so I tried infospeed.verizon.net/speedtest on the iPhone. I got 21 Mbps.
    So there is a lot of latency in that inetworktest site; I wouldn't count on it for a reliable result.

  • Runtime Analysis - ABAP, Database, System

    Hi All,
    The runtime analysis (SE30) of a program shows that the ABAP runtime is 96.1%; Database is 3.7% and system is 0.2% making an overall 100%.
    Is it good performance? the ABAP bar is shown in red color.
    Can you please explain about this.

    Hi,
    Yes i feel its good performance, generally if the control is most of the time with the application server, rather than in the database server then it considered good performance.
    According to you it is ABAP runtime is 96.1%; Database is 3.7% and system is 0.2%.
    We can see major time is in ABAP runtime and only few calls to database. So it is a good performance.
    Thanks & Regards,
    Navneeth K.

  • Free Goods with Batch Management Activated !!!

    Hi Gurus,
    I have defined a free goods master data for material on which batch is activated. I have defined the it as with a min of 10 qty 1 free good will be delivered as exclusive item
    Now as the batch management is active and each batch has 1 qty in it. Now in order to deliver 1 free good first i have to enter 10 line item of the same material and after the 11 th line system should generate 1 free good item. But this is not happening is there any standard configuration required for this process
    Early reply will be awarded accordingly.
    Thanks in advance
    Edited by: Abaper Abaper on Jul 10, 2008 12:31 PM
    Edited by: Abaper Abaper on Jul 10, 2008 12:32 PM

    Hi Abaper,
    Free Goods Determination follows the condition technique and hence you should have one condition type assigned to it one access sequence and then maintain the condition type (NA00) in a Free Goods Determination  Procedure (NA0000).
    Then assign this procedure to your permitted sales area and maintain the free goods determination master data (VBN1).
    Also Check the settings of Item Category Assignment
    It should be ORNORMFREE+TAN -
    > TANN.
    By this settings your free goods should work.
    Reward if it helps you
    Regards
    Harsh

  • ABAP HR: Program that will compare HR Data from System GH* and GO*

    Hi ABAP Gurus,
    Good day.
    I have a requirement wherein I need to create an HR Report Program (using logical database PNP) and RFC FM wherin I will select and then compare HR Data in GH* and GO* system.  This enhancement will be done in the GH* system. 
    Do you guys have any documentation, sample programs on how to proceed with this?   Any inputs on this will be highly appreciated.
    Thank you very much!
    Best regards.
    Brando Braganza
    Moderator message - Duplicate post locked
    Edited by: Rob Burbank on May 12, 2009 12:09 PM

    HI,
      your code works perfectly well.. I have added the PNP logical database and selection screen 100... i think you r not added this PNP logical database
    *& Report  ZTESTPRG                                                    *
    REPORT  ZTESTPRG                                .
    TABLES: PERNR.
    INFOTYPES: 0002, 0006.
    GET PERNR.
      PROVIDE * FROM P0002 BETWEEN PN-BEGDA AND PN-ENDDA.
        WRITE: P0002-PERNR, P0002-NACHN, P0002-VORNA.
      ENDPROVIDE.
    Thanks
    mahesh

  • Bsp Vs Webdynpro ABAP

    Hi All,
         I am new to the concepts of BSP and ABAP web dynpro,Can some body please guide me on what is the difference between BSP and ABAP web dynpro.
    Thanks in Advance.

    Hi Varun,
    think of WebDynpro as a replacement UI technology for SAPGUI. It is designed to support interactive transactions (i.e. multi-screen) with a standard look and feel for professional users.
    BSP is designed to support simple web-style transactions where the user has a fairly simple interaction with the page and you can tailor the user experience to look any way you like.
    So WebDynpro would suit a rewrite of the Sales Order Entry transaction. BSP would suit building a web-style shopping basket experience. and
    i. In Web DynPro there is lesser coding when compared with BSP. i.e Web Dynrpo are more dependent on Designing rather than coding whereas, BSP's are done by coding.
    ii. There is low possibilty of customization in web dynrpo, i.e We need to use only the available color or style themes available..It is not easy to have user defined color themes but in BSP we can have our own color themes at ease.. and
    The difference is a little bit more subtle than that. Both webdynpro and BSP call ABAP function modules from HTTP. The BSP interface does this via programming in SE80, the webdynpro does this via programming in the Java development workbench. The BSP enters the SAP systenm via the ICM and is 'routed' to ICF where call are then made to executre ABAP (a good example is we use SOAP BSP's). Webdynpro routes via the ICM to the Java engine which then executes the Java to cann the functions via an RFC interface called a JCo connection.
    Another difference to note is SAP is now dedicated to using webdynpro as its internet platform of the future. This indicates that it aims to eventually retire such things as ITS and BSP.
    and also check
    What is difference between WebDynpro and BSP?
    Cheers,
    Bhavana

  • Good old EJBException question...

    I've trawled through this forum for a good explanation of EJBException versus RemoteException. I've not found anything I consider particularly intuitive. In fact, I've been amazed by some of the confusion that seems to exist about this, with some people responding with answers that are simply wrong.
    So, for my own enlightenment and hopefully the other people who've asked this question - could someone please give an explanation of when to throw an EJBException, when to throw a RemoteException (if ever) and when to throw another type of Exception?
    I'm also interested in what the client is guaranteed to receive in each of these cases and what effect this has on the bean that has thrown it.
    And just to keep things good and simple could they try to do it without mentioning "the specification"? I have read the specification but would like to know how it manifests itself in the real world and what is considered "good practice" in this matter.
    Many thanks in advance.

    hey kevin, you causing problems again!
    you've probably seen this article by now on EJBExcepitons at the serverside.com but here is the link anyway:
    http://www-106.ibm.com/developerworks/java/library/j-ejbexcept.html
    EJB exceptions are mine field but there are a couple solid guidelines that i follow when designing my beans with exceptions:
    1. Application Exceptions ( not descendants of RuntimeException or RemoteException ) are passed back to the client as is to give them the chance to take the appropriate recovery action. So before you leave your business method, you'd better make damned sure that you don't compromise data integrity. If you can't guarantee data integrity do the EJBContext.setRollbackOnly() thing. Which means that as a client you should get into the habit of doing UserTransaction.getStatus().
    2. Runtime Exceptions ( ignore EJBException for now ). I don't catch them but i'm not expecting them, and i don't know what to do with them. Thankfully, the container does (which is to log the exception, throw back RemoteExceptions to remote clients and EJBException to local clients, rollback the transaction and then take the bean instance out of service). So i delegate the handling of runtime exceptions to the container. i do not catch Throwable in my bean methods.
    3. System Exception ( EJBExceptions ). Where possible using EJB standard exceptions such as CreateException and FinderException. If my bean throws a checked exception, i need to gauge whether or not i can recover from it. I can't, i wrap it in an EJBException and throw it out for the container to do its stuff ( log, raise client exception, rollback and die ). Otherwise, i perform clean up in my bean to return my resources to the state they were before i started executing this method and raise the checked exception.
    In the article above the author's penultimate section talks about when to use an application exception over a system exception. Its always the client the determines which way your go. For example, what should you do during a create ejb you need to look up some data in the database and an SQLException is raised. Within the create method it is an application exception for sure because the system is not compromised, however, from the clients point of view, the bean cannot be created because key data was missing. Hence, the method should wrap the SQLException in an EJBException and throw it out to make sure the bean is not created. (If fact, the method retry something else and if nothing else works raise the EJBException).
    cleve

  • Best place for abap

    what is the best place for abap searching

    hi
    good
    abap searching means?
    if you r talking about URL than it is
    www.sapgenie.com
    www.abap4u.com
    if you r talking about TCode than it is
    ABAPDOCU.
    thanks
    mrutyun^

  • Advantages of ABAP Webdynpros over BSP??

    Hi,
    We are currently in ECC6.0. Is ABAP Webdynpro advantageous over BSP for any UI development ECC6.0 onwards in general?
    Specific requirement for which BSP is needed - we need a single application for a Help Desk team to handle calls from customers. The application will have multiple screens with data flowing into this application from multiple sources.
    Need inputs on the above....
    TIA,
    Regards
    Deepthi

    >Both webdynpro and BSP call ABAP function modules from HTTP. The BSP interface does this via programming in SE80, the webdynpro does this via programming in the Java development workbench. The BSP enters the SAP systenm via the ICM and is 'routed' to ICF where call are then made to executre ABAP (a good example is we use SOAP BSP's). Webdynpro routes via the ICM to the Java engine which then executes the Java to call the functions via an RFC interface called a JCo connection.
    There are many incorrect statements in your posting.  You appear to be compairing BSP to Web Dynpro Java - not Web Dynpro ABAP. Why would you do this in a Web Dynpro ABAP forum posting?  Of course everything you stated about Web Dynpro running on the Java engine and using JCo and being programmed in the Java development workbench is totally wrong if you are comparing to Web Dynpro ABAP.
    Here is the explaination of the differences from the SAP Press Book: Next Generation ABAP development (page 303):
    Web Dynpro ABAP is SAPu2019s new UI strategy, which was introduced in SAP
    NetWeaver 7.0. It is based on the Model View Controller (MVC) paradigm
    that separates business logic from the user interface logic. Developers, like
    Russel, can use this tool to develop robust business applications quickly and
    easily, without ever having to deal with the inner coding of the user interface
    elements.
    The Web Dynpro ABAP framework provides a WYSIWYG view editor (What
    You See Is What You Get) where the developer simply drags and drops the UI
    elements into the view. This means that there is no coding of the UI elements.
    This is not the case when working with Business Server Pages (BSP),
    where the developer must know some HTML or JavaScript in order to code
    the user interface.
    The Web Dynpro framework approach can be viewed in a number of ways.
    If a developer is not proficient in HTML or JavaScript, the Web Dynpro
    ABAP tool looks pretty good. He doesnu2019t have to worry about coding the UI
    and he can focus more on the business application logic. On the other hand,
    if the developer wants to add his own look and feel or some additional UI
    functionality to the Web Dynpro ABAP UI, he canu2019t. The UI implementation
    is hidden from the developer and cannot be manipulated, such as adding
    your own HTML or JavaScript. The reason for this protection is that Web
    Dynpro was developed to provide a standard business application user interface
    across all applications that leverage this tool.
    There is another advantage to the client abstraction approach that Web Dynpro
    takes. When you design a user interface in Web Dynpro, what is saved is
    just a metadata representation of the layout and elements. In other words,
    Web Dynpro is not tied to just HTML and JavaScript as its output medium.
    The Web Dynpro runtime analyzes the type of client that is making a request and responds with the appropriate rendering output. Today that means web browsers are making the request and receiving HTML and JavaScript. But, in the future, when the next great UI revolution occurs, you wonu2019t necessarily
    have to recreate your applications to take advantage of it. Already you can see examples of a smart client and Adobe Flex based rendering engines for Web Dynpro. Switching to these alternative presentation tools requires no coding changes within the applications themselves.

  • How to see the JCO connections inthe ABAP Stack

    Hi Gurus,
    Is there any possible way to find the No.of JCO connections in the ABAP stack ,good solutions welocme and rewarded!
    regards,
    S.Rajeshkumar

    Hi,
    JCO connections are just RFC calls.
    If you know the user used by the JCO RFC calls, you can see the number of calls from ST03 RFC Server Profiles.
    For example
    In my XI (PI ) dual stack test system the JCO user is PI_JCO_RFC and I can see that last week there were 254 calls.
    Regards,
    Olivier

  • How to install ABAP trial with VMware on Windows XP

    I installed ABAP on my computer, but since the computer name is too long and I cannot shorten it, I am looking to install VMware and then install ABAP trial. I have uninstalled all previous SAP components.
    Regarding VMware I found this link http://www.vmware.com/download/  but cannot figure out what to download from here. Do I install both server and player? Also after I install VMware how do I install ABAP in this VMware?
    Monica

    Monica;
    The site you have for the VMware is correct. I currently have v1.0.5 of the VMware installed on my taplet and windows 2003 server as its OS where I installed the NW7 Trial version ABAP.
    Step 1 - install the VMware (Make sure you allocate enough space. I did mine for 40GB)
    Step2 - install OS on the VMware
    Step3 - install Netweaver 7 ABAP trial
    Good luck.
    Mo

Maybe you are looking for

  • Raid0 Btrfs grub boot experiments full size devices (See Edits)

    The following source has detailed info on a method to utilize grub2 in arch raid bootable installs: http://travishegner.com/2012/02/boot-ar … 42AA7OVv3T My utilization involves Compact Flash devices in raid0 and was successfully used to install the l

  • Can't install a toolbar

    I have an exe file to install a toolbar that is supposed to be compatible with IE and Firefox. When I install it, IE opens up fine with the toolbar but FF doesn't even show it listed under View- Tolbars.

  • Error with setTextFormat() method

    This is a very common issue but is still pissing me off. I've this code: item.addEventListener(MouseEvent.CLICK, function(e) {             var style:TextFormat = new TextFormat();             style.underline = true;             e.currentTarget.label.

  • ORA-12899 : Does it exist an option to truncate automaticly the data too...

    Hi, I work on a migration project : Sybase to Oracle 10g. There are a lot of request INSERT writed in Sybase with data too long to be insert in a table. Example : create table MyTable (txt varchar(10)) insert into MyTable values ('AAAAAAAAAAAAAAAAA')

  • Transfer forecast values to demand management

    Hi Gurus, Can anyone let me know how i can transfer the forecast values to the demand management on mass as a background job. Thanks, Ravi