Advantages of OO ABAP

Hi Folks,
Can anyone please list down the 'real' advantages of OO ABAP over the conventional ABAP? Well, of course, apart from the obvious advantages of the Object Oriented concepts. I mean, when one can do everything using conventional ABAP, why should he go for OO ABAP?
/Sagar

<b>Object-Oriented Programming Overview   </b>
The concepts of Object-Oriented (OO) programming have been around for over four decades. Initially developed in the field of artificial intelligence, OO programming was embraced by Xerox as a means of developing systems that better reflected real life needs and were more user friendly. OO’s popularity and sophistication has increased in the past several years as businesses are abandoning their mainframe systems and incorporating more client-server models to run their businesses and are integrating web technology as a business tool. A change in the overall pace of business has also contributed to the increased popularity of OO programming. One of the primary features of OO programming is its relative flexibility and adaptability to changing business needs.
How is OO programming different from traditional procedural programming?
Traditional programming has the following characteristics:
Functions are written sequentially, so that a change in programming can affect any code that follows it.
If a function is used multiple times in a system (i.e., a piece of code that manages the date), it is often simply cut and pasted into each program (i.e., a change log, order function, fulfillment system, etc). If a date change is needed (i.e., Y2K when the code needed to be changed to handle four numerical digits instead of two), all these pieces of code must be found, modified, and tested.
Code (sequences of computer instructions) and data (information on which the instructions operates on) are kept separate. Multiple sets of code can access and modify one set of data. One set of code may rely on data in multiple places. Multiple sets of code and data are required to work together. Changes made to any of the code sets and data sets can cause problems through out the system.
Object-Oriented programming takes a radically different approach:
Code and data are merged into one indivisible item – an object (the term “component” has also been used to describe an object.) An object is an abstraction of a set of real-world things (for example, an object may be created around “date”) The object would contain all information and functionality for that thing (A date object it may contain labels like January, February, Tuesday, Wednesday. It may contain functionality that manages leap years, determines if it is a business day or a holiday, etc., See Fig. 1). Ideally, information about a particular thing should reside in only one place in a system. The information within an object is encapsulated (or hidden) from the rest of the system.
A system is composed of multiple objects (i.e., date function, reports, order processing, etc., See Fig 2). When one object needs information from another object, a request is sent asking for specific information. (for example, a report object may need to know what today’s date is and will send a request to the date object) These requests are called messages and each object has an interface that manages messages.
OO programming languages include features such as “class”, “instance”, “inheritance”, and “polymorphism” that increase the power and flexibility of an object.
What are the advantages of Object-Oriented programming?
One of the main advantages of OO programming is its ease of modification; objects can easily be modified and added to a system there by reducing maintenance costs. OO programming is also considered to be better at modeling the real world than is procedural programming. It allows for more complicated and flexible interactions. OO systems are also easier for non-technical personnel to understand and easier for them to participate in the maintenance and enhancement of a system because it appeals to natural human cognition patterns.
For some systems, an OO approach can speed development time since many objects are standard across systems and can be reused. Components that manage dates, shipping, shopping carts, etc. can be purchased and easily modified for a specific system.

Similar Messages

  • Advantages of Webdynpro ABAP Over Displaying The Traditional Way in SAP GUI

    Hi,
    I am new to web dynpro ABAP and therefore have a very basic question.
    Assume that a customer wants to implement SAP EEC 6.0.
    What is the advantage for the customer and developer to develop and display all custom objects using web dynpro abap and displaying on the web as against developing and displaying in the SAP GUI?
    Is it possible to do a BDC using Web Dynpro ABAP?
    Inputs would be much appreciated.
    Cheers,
    MIck

    no answers so closing the thread

  • Advantages/difference of HR ABAP than ABAP

    Hello Abapers,
    Good day..I would like to know the advantages of HR ABAP compared to ABAP only.actually i was thinking what are the benefits of an Abaper where he knows how to program in HR Abap than an ABAPer who knows FI module ,MM or just a simple ABAper...is there any difference?
    Kindly help
    aVaDuDz

    Hi Anji,
    hello world..
    Kindly help me about my problem in using alv grid set parameter id.actually i need to call the tcode FB01...but the available parameter id are only belnr and BLART
    but i need to pass a value for BLDAT,XBLNR and NEWKO.unfortunately they dont have parameter id ...so i can i pass a value for fb01 without parameter id..
    another is although  belnr and BLART have parameter value in fb01..they cant pass the value even i set the parameter for them...the system always prompt "make an entry in all required fields" and cursor is in document date(bldat)
    kindly see my  code below.
    FORM user_command USING r_ucomm LIKE sy-ucomm
                            rs_selfield TYPE slis_selfield.
      CASE r_ucomm.
        WHEN '&IC1'.
          IF rs_selfield-fieldname = 'GJAHR'.
            READ TABLE it_data INDEX rs_selfield-tabindex.
            SET PARAMETER ID 'BLN' FIELD  it_data-belnr.
            SET PARAMETER ID 'BUK' FIELD  it_data-bukrs.
            SET PARAMETER ID 'GJR' FIELD  rs_selfield-value.
            CALL TRANSACTION 'FB03'  AND SKIP FIRST SCREEN.
          ELSEIF rs_selfield-fieldname = 'KOSTL'.
            READ TABLE it_data INDEX rs_selfield-tabindex.
            GET PARAMETER ID '
            SET PARAMETER ID 'BLN' FIELD  it_data-belnr.
            SET PARAMETER ID 'BAR' FIELD  it_data-blart.
            CALL TRANSACTION 'FB01'  AND SKIP FIRST SCREEN.
          ELSE.
            MESSAGE 'Only Doc.# and Fiscal Year are clickable'
                    TYPE 'I'.
          ENDIF.
      ENDCASE.
    ENDFORM. "user_command
    Please help
    Thanks in advance
    aVaDuDz

  • Queries in  WD ABAP

    Hi all,
    I have few queries:
    1- What are limitation and advantages of WD ABAP?
    2- How to put WD ABAP into Portal iView?
    3- What is  OOABAP? Which are the classes of OOABAP?   Do you know how to make use of them?
    Thanks
    Sanket sethi

    hi sanket,
        advantages : [advantages|https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/02e1fa45-0801-0010-10a0-f1cf47e8c943 ]
    in portal you can create a web dynpro abap iview. while creating that you need a backend system. the backed system will be the system in which your application exist.
    you can mention the system and application name, then automatically your webdynpro application will be present inyour portal.
    ooabap is object oriented abap whrer you will be making use of many classes. the classes available can be seen in se24.
    ---regards,
      alex b justin

  • Difference between ITS and web dynpro abap

    Hi Experts.
    Can any explain me what is the main difference between  EWT/ ITS and web dynpro abap. Basically i am going to developed some existing EWT in webdynpro ABAP , so i want to know what are the advantage of WD ABAP over ITS .
    Thanks in Advance.
    Satya

    Closing thread, thanks for your help.
    Thanks,
    Satya

  • ABAP Classes in Workflow

    I am planning to use ABAP classes instead of BOR Objects in Workflow and would appreciate
    1) any elaborate documentation on the use of ABAP classes in workflow (SAP help has very limited documentation)
    2) comparision of using either approach with advantages of using ABAP classes over the use of BOR Objects and limitations of using ABAP classes,if any.
    3) any examples of ABAP classes used in Projects
    Thanks for your help.
    Saurabh

    Hi,
    check the wiki, in the design and development part are listed all of Jocelyn darts blogs about OO in workflow:
    <a href="https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/2.DesignandDevelopment&">https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/2.DesignandDevelopment&</a>
    regards, Rob Dielemans

  • Web Report - ABAP Vs JAVA engine - ABAP 10 times faster than JAVA

    Guys,
    I want to share what we found in our project and see if any of you have insights
    into our findings.We are on NW2004S SP14 and we are moving to SP15 in a couple of weeks.We created query, developed WAD for it and executing the WAD takes for this query takes 22 secs (Vs 2 secs using ABAP) the query output has 1 million records and most of the actions we take from that point on like right click on account takes 20 secs (Vs 0 secs/instant using ABAP) , drilldown to level 4 of account hierarchy takes 58 secs (Vs 5 secs using ABAP), drilldown on cost center level 6 takes 42 secs (Vs 4 secs using ABAP), , right click on cost center takes 32 secs (Vs 3 secs using ABAP), ..etc.
    Basically every action we take in the JAVA report takes an average of  28 secs.There are 9 aggregates built on the cube that are barely hit by this query but the same query performing same actions with same selections hit the aggregates many many times.The questions I have is why is ABAP so fast compared to JAVA ? What is true explanation behind this behavior ? What are the dis-advantages by using ABAP engine ? Users are loving the performance and features of ABAP while they weren't really on board with the original JAVA report (as it was slow). ABAP is sure enough 10 times faster than JAVA. Query/Query Properties are exactly the same in ABAP and JAVA.Please explain.
    Cheers
    RT

    Hi All,
    Thanks to all you for your responses. I appreciate your time for going through my questions and coming forward to express your views.
    However, I was looking for more specific "factual" answers. My question is "What does a client miss if they opt to install only ABAP based BI 7.0, as against JAVA Based BI 7.0"
    thanks again.
    Naga

  • Advantage of Being Techno-Functional

    Hi,
    Greetings for the day !!
      Can any one explains what are the advantages of being Techno- Functional.
    With Best Regards
    Mamatha.B

    Hi mamatha,
    According to my personal opinion,
    1. The only advantage is of personal satisfaction.
    2. Salary wise nobody will get extra money for
       having such extra knowledge.
       (Bcos, a person is appointed in a company
        for handling his technical work of abap,  
        he won't be RESPONSIBLE for customization
        and other things of functional area ;
       that responsibility will be of some other
       functional consultant)
    3. Other minor advantage is that abap development
       quality and time gets efficient if we know
       a little about the functional side also.
    regards,
    amit m.

  • SAP ABAP Certificate

    Hi all,
    What advantages has the abap certification?
    Could you please send me questions that has been asked in previous exams, if you have.
    Email: [email protected]
    Thank you very much.
    Deniz.

    Hi
    Hope it will help you.
    Reward if help.
    ABAP CERTIFICATION QUESTIONS
    1. If a table does not have MANDT as part of the primary key, it is ____.
    A: A structure
    B: Invalid
    C: Client-independent
    D: Not mandatory
    2. In regard to CALL, which of the following is NOT a valid statement?
    A: CALL FUNCTION
    B: CALL SCREEN
    C: CALL TRANSACTION
    D: CALL PROGRAM
    3. Name the type of ABAP Dictionary table that has these characteristics:
    Same number of fields as the database table
    Same name as database table
    Maps 1:1 to database table
    A: Pooled
    B: Cluster
    C: Transparent
    D: View
    4. An event starts with an event keyword and ends with:
    A: Program execution.
    B: END-OF-EVENT.
    C: Another event keyword.
    D: END-EVENT.
    5. What is the system field for the current date?
    A: SY-DATUM
    B: SY-DATE
    C: SY-DATID
    D: SY-SDATE
    6. The following code indicates:
    SELECT fld1 fld2 FROM tab1 APPENDING TABLE itab
    WHERE fld1 IN sfld1.
    A: Add rows to the existing rows of itab.
    B: Add rows to itab after first deleting any existing rows of itab.
    C: Select rows from tab1 for matching itab entries.
    D: Nothing, this is a syntax error.
    7. You may change the following data object as shown below so that it equals 3.14.
    CONSTANTS: PI type P decimals 2 value '3.1'.
    PI = '3.14'.
    A: True
    B: False
    8. The SAP service that ensures data integrity by handling locking is called:
    A: Update
    B: Dialog
    C: Enqueue/Dequeue
    D: Spool
    9. Which of these sentences most accurately describes the GET VBAK LATE. event?
    A: This event is processed before the second time the GET VBAK event is processed.
    B: This event is processed after all occurrences of the GET VBAK event are completed.
    C: This event will only be processed after the user has selected a basic list row.
    D: This event is only processed if no records are selected from table VBAK.
    10. Which of the following is not a true statement in regard to a hashed internal table type?
    A: Its key must always be UNIQUE.
    B: May only be accessed by its key.
    C: Response time for accessing a row depends on the number of entries in the table.
    D: Declared using internal table type HASHED TABLE.
    11. TO include database-specific SQL statements within an ABAP program, code them between:
    A: NATIVE SQL_ENDNATIVE.
    B: DB SQL_ENDDB.
    C: SELECT_ENDSELECT.
    D: EXEC SQL_ENDEXEC.
    12. To measure how long a block of code runs, use the ABAP statement:
    A: GET TIME .
    B: SET TIME FIELD .
    C: GET RUN TIME FIELD .
    D: SET CURSOR FIELD .
    13. When a secondary list is being processed, the data of the basic list is available by default.
    A: True
    B: False
    14. Given:
    DATA: BEGIN OF itab OCCURS 10,
    qty type I,
    END OF itab.
    DO 25 TIMES. itab-qty = sy-index. APPEND itab. ENDDO.
    LOOP AT itab WHERE qty > 10.
    WRITE: /1 itab-qty.
    ENDLOOP.
    This will result in:
    A: Output of only those itab rows with a qty field less than 10
    B: Output of the first 10 itab rows with a qty field greater than 10
    C: A syntax error
    D: None of the above
    15. After a DESCRIBE TABLE statement SY-TFILL will contain
    A: The number of rows in the internal table.
    B: The current OCCURS value.
    C: Zero, if the table contains one or more rows.
    D: The length of the internal table row structure.
    16. You may declare your own internal table type using the TYPES keyword.
    A: True
    B: False
    17. After adding rows to an internal table with COLLECT, you should avoid adding more rows with APPEND.
    A: True
    B: False
    18. Which of the following is not a component of control break processing when looping at an internal table?
    A: AT START OF
    B: AT FIRST
    C: AT LAST
    D: AT NEW
    19. A dictionary table is made available for use within an ABAP program via the TABLES statement.
    A: True
    B: False
    20. Which of the following would be best for hiding further selection criteria until a function is chosen?
    A: AT NEW SELECTION-SCREEN
    B: SELECTION-SCREEN AT LINE-SELECTION
    C: SUBMIT SELECTION-SCREEN
    D: CALL SELECTION-SCREEN
    21. What must you code in the flow logic to prevent a module from being called unless a field contains a non-initial value (as determined by its data type)?
    A: ON INPUT
    B: CHAIN
    C: FIELD
    D: ON REQUEST
    22. The AT USER-COMMAND event is triggered by functions defined in the ____.
    A: screen painter
    B: ABAP report
    C: menu painter status
    D: ABAP Dictionary
    23. In regard to a function group, which of the following is NOT a true statement?
    A: Combines similar function modules.
    B: Shares global data with all its function modules.
    C: Exists within the ABAP workbench as an include program.
    D: Shares subroutines with all its function modules.
    24. In regard to SET PF-STATUS, you can deactivate unwanted function codes by using ____.
    A: EXCLUDING
    B: IMMEDIATELY
    C: WITHOUT
    D: HIDE
    25. In regard to data transported in PAI when the FIELD statement is used, which of the following is NOT a true statement?
    A: Fields in PBO are transported directly from PAI.
    B: Fields with identical names are transported to the ABAP side.
    C: Fields not defined in FIELD statements are transported first.
    D: Fields that are defined in FIELD statements are transported when their corresponding module is called.
    26. The order in which an event appears in the ABAP code determines when the event is processed.
    A: True
    B: False
    27. A field declared as type T has the following internal representation:
    A: SSMMHH
    B: HHMMSS
    C: MMHHSS
    D: HHSSMM
    28. Which of the following is NOT a component of the default standard ABAP report header?
    A: Date and Time
    B: List title
    C: Page number
    D: Underline
    29. Assuming a pushbutton with function code 'FUNC' is available in the toolbar of a list report, what event is processed when the button is clicked?
    A: AT USER-COMMAND.
    B: AT PFn.
    C: AT SELECTION-SCREEN.
    D: END-OF-SELECTION.
    30. In regard to field selection, what option of the SELECT statement is required?
    A: FOR ALL ENTRIES
    B: WHERE
    C: INTO
    D: MOVE-CORRESPONDING
    31. The following program outputs what?
    report zjgtest1
    write: /1 'Ready_'.
    PARAMETER: test.
    INITIALIZATION.
    write: /1 'Set_'.
    START-OF-SELECTION.
    write: /1 'GO!!'.
    A: Set_ GO!! (each on its own line)
    B: Set_ Ready_ GO!! (all on their own lines)
    C: Ready_ GO!! (each on its own line)
    D: Ready_ Set_ GO!! (all on their own lines)
    32. To declare a selection criterion that does not appear on the selection screen, use:
    A: NO-DISPLAY
    B: INVISIBLE
    C: MODIF ID
    D: OBLIGATORY
    33. An internal table that is nested within another internal table should not contain a header line.
    A: True
    B: False
    34. What is output by the following code?
    DATA: BEGIN OF itab OCCURS 0, letter type c, END OF itab.
    itab-letter = 'A'. APPEND itab. itab-letter = 'B'. APPEND itab.
    itab-letter = 'C'. APPEND itab. itab-letter = 'D'. APPEND itab.
    LOOP AT itab.
    SY-TABIX = 2.
    WRITE itab-letter.
    EXIT.
    ENDLOOP.
    A: A
    B: A B C D
    C: B
    D: B C D
    35. To select all database entries for a certain WHERE clause into an internal table in one step, use
    A: SELECT_INTO TABLE itab_
    B: SELECT_INTO itab_
    C: SELECT_APPENDING itab
    D: SELECT_itab_
    36. After a successful SELECT statement, what does SY-SUBRC equal?
    A: 0
    B: 4
    C: 8
    D: Null
    37. This selection screen syntax forces the user to input a value:
    A: REQUIRED-ENTRY
    B: OBLIGATORY
    C: DEFAULT
    D: SELECTION-SCREEN EXCLUDE
    38. If the following code results in a syntax error, the remedy is:
    DATA: itab TYPE SORTED TABLE OF rec_type WITH UNIQUE KEY field1
    WITH HEADER LINE.
    itab-field1 = 'Company'. itab-field2 = '1234'. INSERT TABLE itab.
    itab-field1 = 'Bank'. itab-field2 = 'ABC'. INSERT TABLE itab.
    SORT itab.
    LOOP AT itab.
    write: /1 itab-field1, itab-field2.
    ENDLOOP.
    A: There is no syntax error here
    B: Remove the SORT statement
    C: Change INSERT to APPEND
    D: Add a WHERE clause to the loop
    39. If this code results in an error, the remedy is:
    SELECT fld1 fld2 FROM tab1 WHERE fld3 = pfld3.
    WRITE: /1 tab1-fld1, tab1-fld2.
    ENDSELECT.
    A: Add a SY-SUBRC check.
    B: Change the WHERE clause to use fld1 or fld2.
    C: Remove the /1 from the WRITE statement.
    D: Add INTO (tab1-fld1, tab1-fld2).
    40. When modifying an internal table within LOOP AT itab. _ ENDLOOP. you must include an index number.
    A: True
    B: False
    41. To allow the user to enter values on the screen for a list field, use:
    A: OPEN LINE.
    B: SET CURSOR FIELD.
    C: WRITE fld AS INPUT FIELD.
    D: FORMAT INPUT ON.
    42. Before a function module may be tested, it must first be:
    A: Linked
    B: Authorized
    C: Released
    D: Active
    43. To include a field on your screen that is not in the ABAP Dictionary, which include program should contain the data declaration for the field?
    A: PBO module include program
    B: TOP include program
    C: PAI module include program
    D: Subroutine include program
    44. If a table contains many duplicate values for a field, minimize the number of records returned by using this SELECT statement addition.
    A: MIN
    B: ORDER BY
    C: DISTINCT
    D: DELETE
    45. The system internal table used for dynamic screen modification is named:
    A: ITAB
    B: SCREEN
    C: MODTAB
    D: SMOD
    46. Within the source code of a function module, errors are handled via the keyword:
    A: EXCEPTION
    B: RAISE
    C: STOP
    D: ABEND
    47. Which system field contains the contents of a selected line?
    A: SY-CUCOL
    B: SY-LILLI
    C: SY-CUROW
    D: SY-LISEL
    48. The following statement writes what type of data object?
    WRITE: /1 'Total Amount:'.
    A: Text literal
    B: Text variable
    C: In-code comment
    D: Text integer
    49. For the code below, second_field is of what data type?
    DATA: first_field type P, second_field like first_field.
    A: P
    B: C
    C: N
    D: D
    50. Which of the following describes the internal representation of a type D data object?
    A: DDMMYYYY
    B: YYYYDDMM
    C: MMDDYYYY
    D: YYYYMMDD
    51. A BDC program is used for all of the following except:
    A: Downloading data to a local file
    B: Data interfaces between SAP and external systems
    C: Initial data transfer
    D: Entering a large amount of data
    52. In regard to PERFORM, which of the following is NOT a true statement?
    A: May be used within a subroutine.
    B: Requires actual parameters.
    C: Recursive calls are allowed in ABAP.
    D: Can call a subroutine in another program.
    53. What is the transaction code for the ABAP Editor?
    A: SE11
    B: SE38
    C: SE36
    D: SE16
    54. In regard to HIDE, which of the following is NOT a true statement?
    A: Saves the contents of variables in relation to a list line's row number.
    B: The hidden variables must be output on a list line.
    C: The HIDE area is retrieved when using the READ LINE statement.
    D: The HIDE area is retrieved when an interactive event is triggered.
    55. Database locks are sufficient in a multi-user environment.
    A: True
    B: False
    56. The complete technical definition of a table field is determined by the field's:
    A: Domain
    B: Field name
    C: Data type
    D: Data element
    57. In regard to LEAVE, which of the following is NOT a true statement?
    A: May be used to return immediately to a calling program.
    B: May be used to stop the current loop pass and get the next.
    C: May be used to start a new transaction.
    D: May be used to go to the next screen.
    58. The following code indicates:
    SELECT fld6 fld3 fld2 fld1 FROM tab1 INTO CORRESPONDING FIELDS OF TABLE itab
    WHERE fld3 = pfld3.
    A: The order of the fields in itab does not matter.
    B: Fill the header line of itab, but not the body.
    C: Table itab can only contain fields also in table tab1.
    D: None of the above.
    59. The ABAP statement below indicates that the program should continue with the next line of code if the internal table itab:
    CHECK NOT itab[] IS INITIAL.
    A: Contains no rows
    B: Contains at least one row
    C: Has a header line
    D: Has an empty header line
    60. What will be output by the following code?
    DATA: BEGIN OF itab OCCURS 0, fval type i, END OF itab.
    itab-fval = 1. APPEND itab.
    itab-fval = 2. APPEND itab.
    FREE itab.
    WRITE: /1 itab-fval.
    A: 2
    B: 0
    C: blank
    D: 1
    61. To allow the user to enter a range of values on a selection screen, use the ABAP keyword:
    A: DATA.
    B: RANGES.
    C: PARAMETERS.
    D: SELECT-OPTIONS.
    62. If an internal table is declared without a header line, what else must you declare to work with the table's rows?
    A: Another internal table with a header line.
    B: A work area with the same structure as the internal table.
    C: An internal table type using the TYPES statement.
    D: A PARAMETER.
    63. Assuming an internal table contains 2000 entries, how many entries will it have after the following line of code is executed?
    DELETE itab FROM 1500 TO 1700.
    A: This is a syntax error.
    B: 1801
    C: 1800
    D: 1799
    64. To remove lines from a database table, use ____.
    A: UPDATE
    B: MODIFY
    C: ERASE
    D: DELETE
    65. All of the following may be performed using SET CURSOR except:
    A: Move the cursor to a specific field on a list.
    B: Move the cursor to a specific list line.
    C: Move the cursor to a specific pushbutton, activating that function.
    D: Move the cursor to a specific row and column on a list.
    66. When is it optional to pass an actual parameter to a required formal parameter of a function module?
    A: The actual parameter is type C.
    B: The formal parameter contains a default value.
    C: The formal parameter's \"Reference\" attribute is turned on.
    D: It is never optional.
    67. Coding two INITIALIZATION events will cause a syntax error.
    A: True
    B: False
    68. Adding a COMMIT WORK statement between SELECT_ENDSELECT is a good method for improving performance.
    A: True
    B: False
    69. To save information on a list line for use after the line is selected, use this keyword.
    A: APPEND
    B: EXPORT
    C: WRITE
    D: HIDE
    70. To bypass automatic field input checks, include this in PAI.
    A: AT EXIT-COMMAND
    B: ON INPUT
    C: ON REQUEST
    D: LEAVE TO SCREEN 0.
    71. Within a function module's source code, if the MESSAGE_RAISING statement is executed, all of the following system fields are filled automatically except:
    A: SY-MSGTY
    B: SY-MSGNO
    C: SY-MSGV1
    D: SY-MSGWA
    72. The following code indicates:
    REPORT ZLISTTST.
    START-OF-SELECTION.
    WRITE: text-001.
    FORMAT HOTSPOT ON.
    WRITE: text-002.
    FORMAT HOTSPOT OFF.
    AT LINE-SELECTION.
    WRITE / text-003.
    A: Text-002 may not be selected.
    B: The value of text-002 is stored in a special memory area.
    C: Text-002 may be clicked once to trigger the output of text-003.
    D: None of the above.
    73. The ____ type of ABAP Dictionary view consists of one or more transparent tables and may be accessed by an ABAP program using Open SQL.
    A: Database view
    B: Projection view
    C: Help view
    D: Entity view
    74. A concrete field is associated with a field-symbol via ABAP keyword
    A: MOVE
    B: WRITE
    C: ASSIGN
    D: VALUE
    75. The output for the following code will be:
    report zabaprg.
    DATA: char_field type C.
    char_field = 'ABAP data'.
    WRITE char_field.
    A: ABAP data
    B: A
    C: Nothing, there is a syntax error
    D: None of the above
    76. Page footers are coded in the event:
    A: TOP-OF-PAGE.
    B: END-OF-SELECTION.
    C: NEW-PAGE.
    D: END-OF-PAGE.
    77. The event AT SELECTION-SCREEN OUTPUT. occurs before the selection screen is displayed and is the best event for assigning default values to selection criteria.
    A: True
    B: False
    78. The TABLES statement declares a data object.
    A: True
    B: False
    79. Assuming tab1-fld7 is not a key field, how can you prevent reading all the table rows?
    SELECT fld1 fld2 fld3 FROM tab1 INTO (fld4, fld5, fld6)
    WHERE fld7 = pfld7.
    WRITE: /1 fld4, fld5, fld6.
    ENDSELECT.
    A: Take fld7 out of the WHERE clause.
    B: Create an index in the ABAP Dictionary for tab1-fld7.
    C: Use INTO TABLE instead of just INTO.
    D: Take the WRITE statement out of the SELECT_ENDSELECT.
    80. Which of the following is NOT a required attribute when creating an ABAP program?
    A: Application
    B: Title
    C: Status
    D: Type
    81. When creating a transparent table in the ABAP Dictionary, which step automatically creates the table in the underlying database?
    A: Adding technical settings to the table
    B: Checking the table syntax
    C: Saving the table
    D: Activating the table
    82. Within the ABAP program attributes, Type = 1 represents:
    A: INCLUDE program
    B: Online program
    C: Module pool
    D: Function group
    E: Subroutine pool
    83. If this code results in an error, the remedy is:
    SELECT fld1 SUM( fld1 ) FROM tab1 INTO_
    A: Remove the spaces from SUM( fld1 ).
    B: Move SUM( fld1 ) before fld1.
    C: Add GROUP BY f1.
    D: Change to SUM( DISTINCT f1 ).
    84. Which keyword adds rows to an internal table while accumulating numeric values?
    A: INSERT
    B: APPEND
    C: COLLECT
    D: GROUP
    85. Assuming itab has a header line, what will be output by the following code?
    READ TABLE itab INDEX 3 TRANSPORTING field1.
    WRITE: /1 itab-field1, itab-field2.
    A: The contents of the third row's itab-field1.
    B: The contents of the third row's itab-field1 and itab-field2.
    C: The contents of the third row's itab-field2.
    D: Nothing.
    86. The following code indicates:
    SELECTION-SCREEN BEGIN OF BLOCK B1.
    PARAMETERS: myparam(10) type C,
    Myparam2(10) type N,
    SELECTION-SCREEN END OF BLOCK.
    A: Draw a box around myparam and myparam2 on the selection screen.
    B: Allow myparam and myparam2 to be ready for input during an error dialog.
    C: Do not display myparam and myparam2 on the selection screen.
    D: Display myparam and myparam2 only if both fields have default values.
    87. Which statement will sort the data of an internal table with fields FRUIT, QTY, and PRICE so that it appears as follows?
    FRUIT QTY PRICE
    Apples 12 22.50
    Apples 9 18.25
    Oranges 15 17.35
    Bananas 20 10.20
    Bananas 15 6.89
    Bananas 5 2.75
    A: SORT itab DESCENDING BY QTY PRICE.
    B: SORT itab BY PRICE FRUIT.
    C: SORT itab.
    D: SORT itab BY PRICE DESCENDING.
    88. Which keyword adds a line anywhere within an internal table?
    A: APPEND
    B: MODIFY
    C: ADD
    D: INSERT
    89. To read a single line of an internal table, use the following:
    A: LOOP AT itab. _ ENDLOOP.
    B: READ itab.
    C: SELECT SINGLE * FROM itab.
    D: READ TABLE itab.
    90. Which Open SQL statement should not be used with cluster databases?
    A: UPDATE
    B: MODIFY
    C: DELETE
    D: INSERT
    91. To include a field on your screen that is not in the ABAP Dictionary, which include program should contain the data declaration for the field?
    A: PBO module include program
    B: TOP include program
    C: PAI module include program
    D: Subroutine include program
    92. This flow logic statement is used to make multiple fields open for input after an error or warning message.
    A: GROUP
    B: FIELD-GROUP
    C: CHAIN
    D: LOOP AT SCREEN
    93. Given:
    PERFORM subroutine USING var.
    The var field is known as what type of parameter?
    A: Formal
    B: Actual
    C: Static
    D: Value

  • Seperate client for ABAP dev

    Can anyone pls list out the advantages to have abap dev client seperated with the configuration client?
    Thanks!

    Hello Kumar
    That is exactly the point why some customers have separated ABAP development and customizing into different clients on the DEV system.
    The ABAP developers may disturb the work of the people doing the customizing yet customizing changes will not affect immediately the ABAP developers.
    Of course customizing and ABAP development have to "meet" in the same client of the QAS system.
    Another advantage of separating ABAP development and customizing into different clients is "segregation of duties": This way you can (partially) prevent ABAP developers from doing customizing.
    Regards
      Uwe
    PS: I have seen this kind of segregation in the system landscape of one of the biggest customers of SAP Switzerland.

  • ABAP Dataflow or Regular Dataflow?

    We can extract data from ECC system using BODS by creating regular dataflow as well as ABAP dataflow.
    Are there any guidelines from SAP that we should use ABAP dataflow only?
    What is advantage of using ABAP dataflow over regular dataflow? Any performance improvement?

    Hi Sagar,
    Regular Dataflow:
    Reads data from SAP applications using regular data flows and supports tables (for small data sets only) and extractors.
    ABAP Dataflow : Reads data from SAP applications using ABAP data flows and supports tables, hierarchies, extractors, and functions with scalar arguments, good for .
    Based on the number of records you mentioned, I would say ABAP is your better option. Because for large amounts of data performance is generally better when you extract data  using ABAP data flow.
    (note: if you want to know limitations/Disadvantages related to ABAP dataflow please check this link http://www.forumtopics.com/busobj/viewtopic.php?t=210395&view=next&sid=443a727d4201219c16aba7f5e786c231
    hope you understand and its help you..
    Regards,
    Sandeep

  • Security interview questions - some fun to tickle your brain.

    Hello gurus,
    I know that posting interview question series are not allowed if the person has not put in any effort, but I have and folks seem to want to practice a bit sometimes so I take the liberty of creating a central one.
    Tackle one or all of them to test your knowledge.
    There are no model answers.
    If you want to suggest additional ones, then please contact me.
    The rules
    Flaming of answers is allowed.
    Funny answers earn a beer (or cup of tea).
    There are no points.
    1)     When PFCG proposes 3 activities but you only want 2, how do you fix this?
    2)     What is the use of transaction PFUD at midnight?
    3)     Is PFUD needed when saving in SU01 and does the user need to logoff and on again after changes?
    4)     How are web services represented in authorizations of users who are not logged on?
    5)     How do you force a user to change their password and on which grounds would you do so?
    6)     What is the difference between SU24 and SU22? What is "orginal data" in SU22 context?
    7)     When an authorization check on S_BTCH_JOB fails, what happens?
    8)     Can you have more than one set of org-level values in one role?
    9)     Should RFC users have SAP_NEW and why?
    10)     What is an X-glueb command and where do you use it in SAP security?
    11)      What is the disadvantage of searching for AUTHORITY-CHECK statements in ABAP OO coding and how does SU53 deal with this?
    12)      In which tables can you make customizing settings for the security administration and name one example of such a setting which is usefull but not SAP default?
    13)     Can you use the information in SM20N to build roles and how?
    14)     If the system raises a message that authorizations are missing but you have SAP_ALL, what do you do?
    15)     Name any one security related SAP note and explain it's purpose or solution.
    16)     What are the two primary differences between a SAML token profile and a SAP logon ticket?
    17) Where do you configure the local and global settings of the CUA and what are the consequences of inconsistent settings?
    18)            If you have users in different systems with different user ID's for the same person, what are your options to manage their authorizations centrally?
    19)            Explain the use of the TMSSUP* RFC destinations and the importance of the domain controller?
    20)            Why should you delete SAP_NEW profile and which transaction should you use before doing so?
    To be continued...

    I have one year experience in SAP Security and only two in Basis, so flame on......... I swear I didn't use google or any of my systems for reference!<br><br>
    1) When PFCG proposes 3 activities but you only want 2, how do you fix this? Best answer is to modify your su24 data. <br><br>
    2) What is the use of transaction PFUD at midnight? removes invalid profiles from user records <br><br>
    3)Is PFUD needed when saving in SU01 and does the user need to logoff and on again after changes? PFUD is not needed and the user needs to log off and back on again <br><br>
    4)How are web services represented in authorizations of users who are not logged on? ?? <br><br>
    5)How do you force a user to change their password and on which grounds would you do so? SU01 -> Logon Data tab -> Deactivate password. I am not sure what grounds this would be necessary. I have never had to use it. <br><br>
    6)What is the difference between SU24 and SU22? What is "orginal data" in SU22 context? SU22 you maintain authorization objects???? Su24 you maintain which authorization objects are checked in transactions and maintain the authorization proposals. <br><br>
    7)When an authorization check on S_BTCH_JOB fails, what happens? "You do not have authorization to perform whatever operation you are trying to perform." message. HAHA <br><br>
    8)Can you have more than one set of org-level values in one role? I might be misinterpreting this question. But yes. Depending on the transactions inserted into the role menu, you could have more than one org level to maintain. Purchasing Org and Plant, Sales Org and Sales Division..... <br><br>
    9)Should RFC users have SAP_NEW and why? No. Just insert the transactions and necessary authorization objects into a role. S_RFC for one. <br><br>
    10) What is an X-glueb command and where do you use it in SAP security? ??? <br><br>
    11) What is the disadvantage of searching for AUTHORITY-CHECK statements in ABAP OO coding and how does SU53 deal with this? Disadvantage? I can think of an advantage. My ABAPer shows me his programs and we work out what authority checks should be performed. <br><br>
    12) In which tables can you make customizing settings for the security administration and name one example of such a setting which is usefull but not SAP default? ??? <br><br>
    13) Can you use the information in SM20N to build roles and how? You could, I guess. Not a good practice though. Build roles based on business processes. <br><br>
    14) If the system raises a message that authorizations are missing but you have SAP_ALL, what do you do? Regenerate SAP_ALL which reconciles new authorization objects from SAP_NEW <br><br>
    15) Name any one security related SAP note and explain it's purpose or solution. Don't know the number off hand, but I was looking at it yesterday. Program Z_DEL_AGR to allow deletion of more than one role at a time. There is no mechanism in SAP to achieve this currently. <br><br>
    16) What are the two primary difference between a SAML token profile and a Logon ticket in SAP? ??? I know what these are but have no experience with it. <br><br>

  • Accessing tables from different schema in CDS and AMDP

    Hi All,
    We are working on a HANA system which has several schema replicated from SAP R/3/Non SAP systems. We have BW 7.4 SP9 deployed on the same system and accessing the HANA views using latest BW virtual objects such as Open ODS , Composite providers etc.
    We are also using the BW system for few ABAP based data processing developments. We are currently accessing HANA views in ABAP programs by creating dictionary views based on external HANA views.
    We would like to however use recent possibilities of CDS and AMDP for better life cycle management of ABAP based solutions. The open SAP course on this subject was of very good help. Thanks a lot "open SAP team" for that. I would however have few open questions,
    As I understand AMDP gives us full flexibility of writing sql procedures within ABAP development environment, but can we access tables from different schema into AMDP code. If yes, then sample code would help.
    If the answer of first question is yes, then how do we manage transports between development and production systems where the schema names would be different. Currently in open HANA developments, such transport is manged using Schema mapping.
    Can I also use different schema tables in CDS views.
    We are updating few tables in ABAP dictionary after applying processing logic in ABAP program as detailed in step 1. With the new approach using AMDP, can we directly update database schema tables which will give us an optimization advantage.
    New ABAP HANA program interfaces are quite promising and we would like to use them to optimize many data intensive applications.
    Thanks & Regards,
    Anil

    Hi Anil,
    I can only answer 1. and 2. (and would be interested into 3. as well):
    1.
    Yes you can access tables from a different schema and also HANA views. In this case no 'using' is needed.
    Examples:
        RESULT = SELECT
        FROM
              "SAP_ECC"."T441V" AS t,
              "_SYS_BIC"."tmp.package/AFPO" AS a.
        WHERE ...
    2. In this case, if you need schema mapping: You could use HANA (projection) views which just forward to a different schema, also see example.
    Best regards,
    Christoph

  • Need help on these faq's

    Hi,
    Need some info on these questns...pls help
    1.What is the advantages of using ABAP objects in reports?
    2. What does an EXEC SQL statement do in ABAP. What is the disadvantage of using it?
    3. The format of hierarchical sequential ALV?
    4. Explain HOST command? Is it possible to run the host command in SAP environment?
    5. How to backup Sapscript layout set?
    6. Difference between parameters SET and GET?
    7. What is the coding example for filling a BDC table?
    8. What are the components of the SAP menu?
    9. Explain Scroll function?
    10. Steps to set a lock on a record within a DB table?
    11. What are the exceptions in Function Modules?
    12. What are the events driven in a batch job?

    Hi David,
    This is regarding SET & GET Parameters.
    SAP allows you to make use of SPA/GPA technique to fill the input fields of a called transaction with data from the calling program.SPA/GPA parameters are values that the system stores in the global, user-specific SAP memory. SAP memory allows you to pass values between programs. A user can access the values stored in the SAP memory during one terminal session for all parallel sessions. Each SPA/GPA parameter is identified by a 20-character code. You can maintain them in the Repository Browser in the ABAP Workbench. The values in SPA/GPA parameters are user-specific.
    ABAP programs can access the parameters using the SET PARAMETER and GET PARAMETER statements.
    To fill one, use:
    SET PARAMETER ID <pid> FIELD <f>.
    This statement saves the contents of field <f> under the ID <pid> in the SAP memory. The code <pid> can be up to 20 characters long. If there was already a value stored under <pid>, this statement overwrites it. If the ID <pid> does not exist, double-click <pid> in the ABAP Editor to create a new parameter object.
    To read an SPA/GPA parameter, use:
    GET PARAMETER ID <pid> FIELD <f>.
    This statement fills the value stored under the ID <pid> into the variable <f>. If the system does not find a value for <pid> in the SAP memory, it sets SY-SUBRC to 4, otherwise to 0.
    To fill the initial screen of a program using SPA/GPA parameters, you normally only need the SET PARAMETER statement.
    The relevant fields must each be linked to an SPA/GPA parameter.
    On a selection screen, you link fields to parameters using the MEMORY ID addition in the PARAMETERS or SELECT-OPTIONS statement. If you specify an SPA/GPA parameter ID when you declare a parameter or selection option, the corresponding input field is linked to that input field.
    On a screen, you link fields to parameters in the Screen Painter. When you define the field attributes of an input field, you can enter the name of an SPA/GPA parameter in the Parameter ID field in the screen attributes. The SET parameter and GET parameter checkboxes allow you to specify whether the field should be filled from the corresponding SPA/GPA parameter in the PBO event, and whether the SPA/GPA parameter should be filled with the value from the screen in the PAI event.
    When an input field is linked to an SPA/GPA parameter, it is initialized with the current value of the parameter each time the screen is displayed. This is the reason why fields on screens in the R/3 System often already contain values when you call them more than once.
    When you call programs, you can use SPA/GPA parameters with no additional programming overhead if, for example, you need to fill obligatory fields on the initial screen of the called program. The system simply transfers the values from the parameters into the input fields of the called program.
    However, you can control the contents of the parameters from your program by using the SET PARAMETER statement before the actual program call. This technique is particularly useful if you want to skip the initial screen of the called program and that screen contains obligatory fields.
    If you want to set SPA/GPA parameters before a program call, you need to know which parameters are linked to which fields on the initial screen. A simple way of doing this is to start the program that you want to call, place the cursor on the input fields, and choose F1 followed by Technical info. The Parameter ID field contains the name of the corresponding SPA/GPA parameter. Alternatively, you can look at the screen definition in the Screen Painter.
    The SPA/GPA parameter for the input field Company has the ID CAR. Use this method to find the IDs CON, DAY, and BOK for the other input fields.
    The following executable program is connected to the logical database F1S and calls an update transaction:
    REPORT BOOKINGS NO STANDARD PAGE HEADING.
    TABLES SBOOK.
    START-OF-SELECTION.
    WRITE: 'Select a booking',
    SKIP.
    GET SBOOK.
    WRITE: SBOOK-CARRID, SBOOK-CONNID,
    SBOOK-FLDATE, SBOOK-BOOKID.
    HIDE: SBOOK-CARRID, SBOOK-CONNID,
    SBOOK-FLDATE, SBOOK-BOOKID.
    AT LINE-SELECTION.
    SET PARAMETER ID: 'CAR' FIELD SBOOK-CARRID,
    'CON' FIELD SBOOK-CONNID,
    'DAY' FIELD SBOOK-FLDATE,
    'BOK' FIELD SBOOK-BOOKID.
    CALL TRANSACTION 'BOOK'.
    The basic list of the program shows fields from the database table SBOOK according to the user entries on the selection screen. These data are also stored in the HIDE areas of each line.
    Reward If useful.
    Regards,
    Chitra

  • Can anyone explain me the following terms.....

    Hi all,
    Can anyone explain me the following terms in WM
    1. WareHouse
    2. Storage Bin
    3. Storage Location
    4. Storage Unit.
    5. Handling Units(External/Internal)
    Thanks

    Hi Kripa,
    1. What is Netweaver ?
    Click Here: <a href="http://www.thespot4sap.com/Articles/SAP_Netweaver_Introduction.asp">Netweaver: An Introduction</a>
    <a href="http://www.sap.com/platform/netweaver/index.epx">http://www.sap.com/platform/netweaver/index.epx</a>
    2. What is the difference bet NW 2004 and NW2004s?
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/devguide2004">SAP NetWeaver 2004 Edition</a>
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/devguide2004s">SAP NetWeaver 2004s Edition</a>
    3. Is it mandatory to know JAVA language to sustain with NW technologies? or ABAP itself is enough ?
    Its all depend in which stack you want to fit. If you want to go into EP, then JAVA is must. In XI having knowledge of JAVA will be highly useful and in other Netweaver stack it will be an added advantage. Anyhow ABAP is not enough to sustain with NW technologies.
    <a href="http://www.sap.com/platform/netweaver/standardssupport/java.epx">Netweaver and JAVA</a>
    4. If JAVA is essential ...where to start with ?
    Core JAVA, J2EE in full is needed for Netweaver. As where to start is concern you can start with core JAVA and consequencely go thorugh J2EE.
    I hope this will help you out.
    Regards,
    Subhasha Ranjan

Maybe you are looking for