Abap oo constructor prob

data: g_dock type ref to cl_gui_docking_container,
        g_split type ref to cl_gui_easy_splitting_container,
        g_cont type ref to cl_gui_container.
create object g_dock       " this is a constructor
  exporting
     *side = cl_gui_docking_container=>dock_at_top*      ..... "pls explain this syntax in general
extension = 200.
'dock_at_top'  is a constant in the attributes component of the class  'cl_gui_docking_container'.
1.) we are already creating an instance of this class as  'g_dock'.
so instead of writing  'g_dock -> dock_at_top',  why are we using  ' clgui_docking_container=>dock_at_top_ '. pls explain this.
2.) pls clarify 1 thing ....the syntax ...  
"create object g_dock
exporting
it is a constructor method, so why are we writing   'cl_gui_docking_container=>dock_at_top'  instead of writing  only 'dock_at_top'
pls help.
detailed answers will be appreciated, thnks in adv

Hi Akash,
The replies to your question are good, in case you are not clear, let me try my bit
1.) we are already creating an instance of this class as 'g_dock'.
so instead of writing 'g_dock -> dock_at_top', why are we using ' clgui_docking_container=>dock_at_top_ '. pls explain this.
You mean to say something like this,
data: g_dock type ref to cl_gui_docking_container,
        g_split type ref to cl_gui_easy_splitting_container,
        g_cont type ref to cl_gui_container.
create object g_dock       " this is a constructor
  exporting
     *side = g_dock=>dock_at_top*      ..... "pls explain this syntax in general
extension = 200.
Well, as Marcin said object G_DOCK is not yet created at this point, so it is not possible to get a reference to any of it's attributes(constant/static/instance), when you try to compile the above code it will throw a compile error that g_dock=>dock_at_top is not known. Now if your question is how "cl_gui_docking_container=>dock_at_top" is valid syntax, the compiler checks if the global class "cl_gui_docking_container" exists and if yes, then checks for a constant attribute "DOCK_AT_TOP" within it.
2.) pls clarify 1 thing ....the syntax ...
"create object g_dock
exporting
it is a constructor method, so why are we writing 'cl_gui_docking_container=>dock_at_top' instead of writing only 'dock_at_top'
Again, "DOCK_AT_TOP" doesn't have any existence on its own, an attribute irrespective of whether it is constant/static/instance...will always be accessed via it's class reference, and again you cannot use g_dock until it's instance has been created already, not while creating it's instance.
Not sure if i understood your doubt in the above post, the parameter SIDE of the constructor let's you choose where do you want the container to show up top, left, bottom etc...by default it will be left, so if you do not pass anything to the parameter side, it will be created on the left. Now if you want it to be in any other place other than left then you have to specify the same by passing the corresponding value.
@TREASURE - My understanding is that the below is incorrect, and would hold good only within the class and not outside of it.
You could just have
DOCK_AT_TOP
Regards,
Chen
Edited by: Chen K V on Jun 6, 2011 4:54 PM
Edited by: Chen K V on Jun 6, 2011 4:56 PM

Similar Messages

  • Unknown Error: PDF_TEST_00   not returned Responds

    Hi Gurus,
    I am trying to execute some AIF using the T Code: FMBB, but just before calling the form itself, my testing program got stuck and does not longer respond.  No messages, no outputs, nothing after that.
    Have been to all of the step in this link:  (Adobe Document Services http://help.sap.com/erp2005_ehp_03/helpdata/EN/37/504b8cbc2848a494facfdc09a359b1/frameset.htm)
    -Others steps I have done so far:  Checking the IIOP Service and the Startup Properties
    -  I  execute the Report FP_TEST_00.                          
        Here is when it all comes, run the report, choosing a printer up to the
        Parameters for printing AIF(Device Type: Post2)   then I got a never-ending wait
        cursor so the system is not longer responding. No Errors, no output, nothing at all.
        I come to check the other test to resolve the error, according to the guide:
           1.    Checking the ABAP Connection:
                     execute the report      FP_PDF_TEST_00
                     so good!, the report shows the version number of the Adobe document services as the guide says.
           2.      Checking the User and Password:
                      Server  : dr6server.
                        J2EE Instance : 03.
                        Port : 50300.
                        SID : DRA                      
                        URL = http://dr6server:50300/AdobeDocumentServices/Config
                        Enter the URL in Web browser and Choose rpdata(test.…)., enter the ADSUser and     
                        password and the system displays the version number of the Adobe document                        
                        services in the response area, test successful!
          3.     Checking the Destination Service and the ICF Service
                      execute the report   FP_CHECK_DESTINATION_SERVICE.
                      - Here the problem comes again,  I just run the report above then got no respond at all. I could        
                        Identify the line code where it does not continue: 
                         l_soapresponse = adsobject->run( ).
    -     Apparently there are problems with the configuration of ADS, although already set ADS_AGENT with his   role SAP_BC_FP_ICF, ADS_User with his role ADS_CALLERS, FP_ICF_DATA_ <SID> already been created in J2EE , install and configure the credentials of ADOVE successfully, the HTTP connection(RFC Destination  'ADS') was created successfully , and check the ICF in browser and the visual j2ee administrator and a test was successful only lacking in AS ABAP that gives me the error.
    -     Configuration of the Web Service for Basic Authentication  have been use as step by step guide    
                  configuration But the problem with the reports:       
                                     FP_TEST_00,FP_CHECK_DESTINATION_SERVICE.  remains. 
    Can anyone please explain me where and how should I set the ADS to make this test successful.
    Thanks in advance
    regards

    Hello  Maarten ,
    first of all thank you for your quick reaction.      
    I run the program both ways, but there is no single answer falls into a cycle as infinity,      
    The service was created in the visual Administrator previously said that according to what the guide configuration, in the visual amdministrador -> Services -> Destinations. I introduced FP_ICF_DATA_DRA (ID system is DRA).
    assign a name = "DR6SERVER" and port = "8003" which I found in the T-code SICF, authentication Basic client = "300" user = ADS_AGENT and passw (previously established with AS Abap Role = "SAP_BC_FP_ICF" probe save and test and the response was "GET HTTP response code 200" Test success.
    but still not responding the report.
    even probe "http://DR6SERVER:8003/sap/bc/fp/form/layout/fp_test_00.xdp"
    both in the Administrator visual-> Services -> Destinations and in the browser and generates response.
    Do you have another ideas solving my problem?
    Thanks in advance
    regards
    Miguel

  • Private constructor in abap OO

    Hi folks,
    I'd like to create a factory method in a class. The factory method returns objects (corresponding to certain keys) of the class by first checking an internal map for the key and then returning the pertaining object if an entry for that key exists or creating a new object (and putting it into the table) if it doesn't.
    Now I wanted to declare the actual constructor <i>private</i>, but found SE80 prohibits changing the accessibility of constructors - there are always public?!
    Is there a way to achieve private accessibility of constructors, what does <i>Instantiation - private</i> on the properties tab of a class mean (as opposed to possibly changing the constructor to private)?
    Great if someone could shed some light onto this.
    Regards,
    Sebastian

    > since you can not call the constructor directly there
    > is no need to declare the constructor as private.
    well, that is almost a philosophical question. I mean in a way I do call the constructor directly: it is called immediately after using the <i>create object</i> command.. but I know what you mean
    > To avoid that an instance can be created from outside
    > the class jsut declare it as
    > class lcl_class definition create private.
    >
    > or if it is global:
    > go to tab properties and set choose private in the
    > instantiation.
    > ...
    > With create private only methods of this class can
    > create an instance of this class...
    That is, only methods of this class can call the constructor (use <i>create object</i>), right?
    This would indeed have the desired effect that creation of this class' objects (somewhere outside the class) was only possible through the factory and not by calling the constructor.
    Thanks, Sebastian

  • Getting prob while creating view in webdynpro ABAP application

    Hi Guys,
    I am facing a problem while creating a view for webdynpro ABAP application. It is giving an error as "ICF service "/sap/public/bc/WebDynpro/ViewDesigner" inactive".
    can anybody let me know how to solve this problem.
                   Thanks In Advance
    Regards
    Ravikumar

    I think check Internet explorer Tools ->Internet Options ->Connections.>Lan Connections> if the proxy or anyting checkbox is clicked coz it doesn't work with Internet on .
    Please reward if useful.

  • ABAP OO - 2 Attributes are Key Fields - Constructor & m_por-instid

    Hi,
    we are running 6.40
    In my class there are 2 attributes that are key.
    In my CONSTRUCTOR, how do I set m_por-instid when I have two attributes as key? Do I concatenate the 2 attributes into a variable and then do m_por-instid = variable?
    Any other ideas?
    Much thanks and regards,
    Cristiana

    Hi,
    Kjetil is spot on about the structure. It's easy enough:
    On the types tab create a type t_key, then click on the code-arrow-icon-thingy between the type and description fields
      types:
        begin of t_key,
          po_number   type ebeln,
          item_number type ebelp,
        end of t_key .
    then in your methods:
    data: lv_key type t_key.
    lv_key-po_number = im ebeln.
    lv_key-item_number = im_ebelp.
    m_por-instid = lv_key.
    Regarding reducing the key to 32 characters, it's not a Microsofty idea for a change. It is a standard 32 byte GUID which is compatible with anything that talks BPEL, WF-XML, SOAP or similar. If you need longer keys then you need to work with persistent class GUIDs - i.e. get your key fields and use the GUID from a persistent class.
    It's even documented <a href="http://help.sap.com/saphelp_nw2004s/helpdata/en/4d/e52f6af36db84999a937146382f0e6/frameset.htm">in the SAP help</a>
    Hope that helps,
    Mike

  • Prob creating ABAP Proxy-Interface use external and interna msg definition

    Hi,
    I've created a service interface using external definition (message type for request and response), imported via WSDL file. However, while creating ABAP proxy in SPROXY, it gave the error message "Interface uses external and internal message definition". I searched through the forum, the questions were raised but no definite answer was found. Is it not possible to generate a proxy if there is any external definition used?
    Details of the error message:
    Message no. SPRX122
    Diagnosis
    In a message interface you can use messages from different sources:
    Message types and fault message types edited in the Enterprise Services Repository
    Messages imported into the Enterprise Services Repository (external definitions, RFC, IDoc)
    In the current message interface, message types from different sources have been used. Since messages from these different sources must be handled differently during proxy generation, such a mixture of messages within a message interface is not possible.
    System Response
    The interface cannot be generated.
    Procedure
    Change the interface definition accordingly in the Enterprise Services Repository.
    p/s: My external definition is actually derived from a ABAP FM web service. The reason why i used external definition is that i try to avoid the tedious steps of hard-coding all the data types for the request and response message types.
    Any help would be highly appreciated.
    - julius

    Hi Arvind,
    For technical reasons, proxy generation and the respective editors in the Integration Builder do not support the entire language range of XML schema and WSDL. For an overview of which language elements are supported, see the Excel spreadsheet in the SAP Service Marketplace at service.sap.com/xi ® Media Library ® Documentation: SAP XI 3.0 (SP11) u2013 Supported XML Schema and WSDL (EN).
    I couldnt find the above document in the service market place. Any hint to find it?
    Thanks.
    - julius

  • Prob with RFC destination - 4.5B 2 XI ABAP

    Hi,
    I created an RFC destination type 3(R/3 connection) in 4.5B, to address Integration Server.
    It gives the following error.
    <b>Connection error  : Conversation 09163404 not found / CPI-C error CM_PARAMETER_ERROR</b>
    Can any one guide me on this.
    -Naveen.

    Hi,
    Please check on 'Authorisation to Read Metadata'at the end
    http://help.sap.com/saphelp_nw04/helpdata/en/67/6d0540ba5ee569e10000000a155106/content.htm
    Regards
    Vijaya

  • Hook methods in ABAP Objects

    Hello,
    i discovered that method calling in the class-inheritance of ABAP Objects doesn't work similar to other OO languages.
    Example:
    1 Superclass named "Z_CLASS"
    1 Subclass of "Z_CLASS" named "Z_SUB"
    Z_CLASS defines a method "initialize" and has a constructor which calls "initialize".
    Z_SUB redefines the method "initialize" assigning some values to instance-attributes.
    If i instantiate a new "Z_SUB"-object then the contructor of "Z_CLASS" is called which calls ITS OWN "initialize" not the one of the subclass. For comparison: Java would call the initialize of the subclass.
    I have to implement a constructor in every subclass of "Z_CLASS" which calls the super constructor and the own "initialize" after that to solve this problem. This isn't the proper OO way!
    Did i miss something or am i right?
    Thanks in advance,
    Stefan

    Check out this, it might be helpfull...
          INTERFACE I_COUNTER
    INTERFACE i_counter.
      METHODS: initialize.
    ENDINTERFACE.
          CLASS C_COUNTER1 DEFINITION
    CLASS c_counter1 DEFINITION.
      PUBLIC SECTION.
        INTERFACES i_counter.
        METHODS: constructor.
        DATA count TYPE i.
    ENDCLASS.
          CLASS C_COUNTER1 IMPLEMENTATION
    CLASS c_counter1 IMPLEMENTATION.
      METHOD constructor.
        CALL METHOD me->i_counter~initialize.
      ENDMETHOD.
      METHOD i_counter~initialize.
        count = count + 10.
        write:/ 'count from super', count.
      ENDMETHOD.
    ENDCLASS.
          CLASS C_COUNTER2 DEFINITION
    CLASS c_counter2 DEFINITION INHERITING FROM c_counter1.
      PUBLIC SECTION.
        METHODS: constructor,
                 initialize.
        DATA count1 TYPE i.
    ENDCLASS.
          CLASS C_COUNTER2 IMPLEMENTATION
    CLASS c_counter2 IMPLEMENTATION.
      METHOD constructor.
        CALL METHOD super->constructor.
        CALL METHOD me->initialize.
      ENDMETHOD.
      METHOD initialize.
        count = ( count / 10 ).
        write:/ 'count from sub', count.
      ENDMETHOD.
    ENDCLASS.
    DATA: count TYPE REF TO c_counter2.
    START-OF-SELECTION.
    CREATE OBJECT count TYPE c_counter2.

  • ABAP Runtime Error while executing planning folder

    Hi experts.
    We have a situation where I can access our planning folders but that's not the case for one of our user. She encountered with an ABAP Runtime Error as follow:
    Appreciate if anyone can help me out with this.
    Runtime Error          RAISE_EXCEPTION
    Date and Time          20.04.2007 16:50:23
    ShrtText
    Exception condition "X_MESSAGE" raised.
    What happened?
    The current ABAP/4 program encountered an unexpected
    situation.
    What can you do?
    Print out the error message (using the "Print" function)
    and make a note of the actions and input that caused the
    error.
    To resolve the problem, contact your SAP system administrator.
    You can use transaction ST22 (ABAP Dump Analysis) to view and administer
    termination messages, especially those beyond their normal deletion
    date.
    is especially useful if you want to keep a particular message.
    Error analysis
    A RAISE statement in the program "SAPLRSSBR" raised the exception
    condition "X_MESSAGE".
    Since the exception was not intercepted by a superior program
    in the hierarchy, processing was terminated.
    Short description of exception condition:
    Cancel
    For detailed documentation of the exception condition, use
    Transaction SE37 (Function Library). You can take the called
    function module from the display of active calls.
    How to correct the error
    You may able to find an interim solution to the problem
    in the SAP note system. If you have access to the note system yourself,
    use the following search criteria:
    "RAISE_EXCEPTION" C
    "SAPLRSSBR" or "LRSSBRU03"
    "RSSB_AUTHORITY_IOBJVL_CHECK"
    or
    "SAPLRSSBR" "X_MESSAGE"
    or
    "UPB_PM_CUST_START " "X_MESSAGE"
    If you cannot solve the problem yourself and you wish to send
    an error message to SAP, include the following documents:
    1. A printout of the problem description (short dump)
    To obtain this, select in the current display "System->List->
    Save->Local File (unconverted)".
    2. A suitable printout of the system log
    To obtain this, call the system log through transaction SM21.
    Limit the time interval to 10 minutes before and 5 minutes
    after the short dump. In the display, then select the function
    "System->List->Save->Local File (unconverted)".
    3. If the programs are your own programs or modified SAP programs,
    supply the source code.
    To do this, select the Editor function "Further Utilities->
    Upload/Download->Download".
    4. Details regarding the conditions under which the error occurred
    or which actions and input led to the error.
    System environment
    SAP Release.............. "640"
    Application server....... "S53KJ165"
    Network address.......... "10.1.53.165"
    Operating system......... "AIX"
    Release.................. "5.3"
    Hardware type............ "00C3A11F4C00"
    Character length......... 8 Bits
    Pointer length........... 64 Bits
    Work process number...... 3
    Short dump setting....... "full"
    Database server.......... "S53KJ170"
    Database type............ "ORACLE"
    Database name............ "BWP"
    Database owner........... "SAPBWP"
    Character set............ "en_US.ISO8859-1"
    SAP kernel............... "640"
    Created on............... "Oct 29 2006 20:42:11"
    Created in............... "AIX 1 5 00538A4A4C00"
    Database version......... "OCI_920 "
    Patch level.............. "155"
    Patch text............... " "
    Supported environment....
    Database................. "ORACLE 9.2.0.., ORACLE 10.1.0.., ORACLE
    10.2.0.."
    SAP database version..... "640"
    Operating system......... "AIX 1 5, AIX 2 5, AIX 3 5"
    Memory usage.............
    Roll..................... 16128
    EM....................... 16759712
    Heap..................... 0
    Page..................... 57344
    MM Used.................. 10079624
    MM Free.................. 2487240
    SAP Release.............. "640"
    User and Transaction
    Client.............. 350
    User................ "S51643"
    Language key........ "E"
    Transaction......... "UPSPL "
    Program............. "SAPLRSSBR"
    Screen.............. "SAPLUPB_PM_ALV 1000"
    Screen line......... 2
    Information on where terminated
    The termination occurred in the ABAP program "SAPLRSSBR" in
    "RSSB_AUTHORITY_IOBJVL_CHECK".
    The main program was "UPB_PM_CUST_START ".
    The termination occurred in line 416 of the source code of the (Include)
    program "LRSSBRU03"
    of the source code of program "LRSSBRU03" (when calling the editor 4160).
    Source Code Extract
    Line
    SourceCde
    386
    l_s_range-low  = l_activity.
    387
    APPEND l_s_range TO l_sx_auth_check_detail-range.
    388
    INSERT l_sx_auth_check_detail INTO TABLE <l_sx_auth_check>-auth_check_detail.
    389
    390
    CALL FUNCTION 'RSSB_AUTHORITY_IOBJVL_REDUCED'
    391
    EXPORTING
    392
    i_infocube              = g_sx_iobjvl_check-infocube
    393
    i_uname                 = l_uname
    394
    i_th_hierarchy          = g_sx_iobjvl_check-hierarchy
    395
    i_message               = i_message
    396
    i_activity_force_check  = i_activity_force_check
    397
    CHANGING
    398
    c_tsx_auth_check_detail = <l_sx_auth_check>-auth_check_detail
    399
    c_tx_no_auth            = l_tx_no_auth
    400
    c_ts_auth_tlevel        = e_ts_auth_tlevel
    401
    EXCEPTIONS
    402
    user_not_authorized     = 1
    403
    auth_check_failure      = 2
    404
    auth_check_error        = 3
    405
    inherited_error         = 4
    406
    x_message               = 5.
    407
    IF sy-subrc = 0.
    408
    REFRESH l_tx_no_auth.
    409
      CR 20050826 HW873685 SP29 Part 2/3 begin
    410
      SY-SUBRC = 2 means Auth-Obj missing in users profiles, we need this later
    411
    ELSEIF sy-subrc = 2.
    412
    ao_missing = rs_c_true.
    413
    e_subrc = 2.
    414
      CR 20050826 HW873685 SP29 Part 2/3 end
    415
    ELSEIF sy-subrc = 5.
    >>>>>
    RAISE x_message.
    417
    ELSE.
    418
    e_subrc = 2.
    419
    ENDIF.
    420
    421
      correct the kid now
    422
    LOOP AT l_tx_no_auth INTO l_sx_no_auth.
    423
    l_sx_no_auth-kid = <l_sx_auth_check>-kid.
    424
    APPEND l_sx_no_auth TO  e_tx_no_auth.
    425
    ENDLOOP.
    426
    427
    ENDLOOP.
    428
    429
    End LOOP: Check all SUBNR (FEMS)
    430
    431
    432
    CR 20050826 HW873685 SP29 Part 3/3 begin
    433
    If an Auth-Obj. is missing, no SUBNR can be authorized. Due to OLAP-logic
    434
    this means empty no_auth table
    435
    IF ao_missing = rs_c_true.
    Contents of system fields
    Name
    Val.
    SY-SUBRC
    5
    SY-INDEX
    1
    SY-TABIX
    0
    SY-DBCNT
    0
    SY-FDPOS
    1
    SY-LSIND
    0
    SY-PAGNO
    0
    SY-LINNO
    1
    SY-COLNO
    1
    SY-PFKEY
    210
    SY-UCOMM
    SELECT
    SY-TITLE
    Execute All Cost Element
    SY-MSGTY
    E
    SY-MSGID
    R7
    SY-MSGNO
    057
    SY-MSGV1
    0CO_AREA
    SY-MSGV2
    A
    SY-MSGV3
    SY-MSGV4
    Active Calls/Events
    No.   Ty.          Program                             Include                             Line
    Name
    40 FUNCTION     SAPLRSSBR                           LRSSBRU03                             416
    RSSB_AUTHORITY_IOBJVL_CHECK
    39 FORM         SAPLRSDRC                           LRSDRCF15                             113
    AUTHORITY_CHECK
    38 FORM         SAPLRSDRC                           LRSDRCF27                              57
    BASIC_QUERY_DATA_GET_ROLAP
    37 FUNCTION     SAPLRSDRC                           LRSDRCU05                              44
    RSDRC_BASIC_QUERY_DATA_GET
    36 FUNCTION     SAPLRSDRC                           LRSDRCU15                             189
    RSDRC_BASIC_CUBE_DATA_GET
    35 FORM         SAPLRSDRC                           LRSDRCF25                             373
    DATA_GET
    34 FUNCTION     SAPLRSDRC                           LRSDRCU02                             249
    RSDRC_CUBE_DATA_GET
    33 FUNCTION     SAPLRSDRI                           LRSDRIU01                             352
    RSDRI_INFOPROV_READ
    32 FORM         /1SEM/UPCBW_350TMWPA01              UPC_BWINTERFC__FIX                    174
    DATA_READ
    31 FUNCTION     SAPLUPCBW                           LUPCBWU06                              56
    UPC_BW_DATA_READ
    30 FUNCTION     SAPLUPC1                            LUPC1U06                               67
    UPC_DATA_READ
    29 METHOD       /1SEM/CL_DATA_350TMWPA01======CP    UPC_DATA_READ_DB                       25
    /1SEM/CL_DATA_350TMWPA01=>IF_SEM_DATA_INTERNAL~READ_DB
    28 METHOD       /1SEM/CL_BUFFER_350TMWPA01====CP    UPC_BUFFER_GET                        167
    /1SEM/CL_BUFFER_350TMWPA01=>IF_SEM_BUFFER~GET
    27 METHOD       /1SEM/CL_BUFFER_350TMWPA01====CP    UPC_BUFFER_READ                         5
    /1SEM/CL_BUFFER_350TMWPA01=>IF_SEM_BUFFER~READ
    26 METHOD       /1SEM/CL_DATA_350TMWPA01======CP    UPC_DATA_READ                          46
    /1SEM/CL_DATA_350TMWPA01=>IF_SEM_DATA~READ
    25 FORM         45AJEHYBGH37F61DTX80Q9ZFP           UPP_PLAN                              395
    READ_TRANSACTION_DATA
    24 FORM         45AJEHYBGH37F61DTX80Q9ZFP           UPP_PLAN                              561
    GET_DATA
    23 FORM         45AJEHYBGH37F61DTX80Q9ZFP           UPP_PLAN                              800
    EC500_SELECT_DATABASE
    22 FORM         SAPLUPP_PP_KERNEL                   LUPP_PP_KERNELF97                     575
    SELECT_DATABASE
    21 FORM         SAPLUPP_PP_KERNEL                   LUPP_PP_KERNELF97                     464
    SELECT_AND_FIND_HEADER_COMBI
    20 FORM         SAPLUPP_PP_KERNEL                   LUPP_PP_KERNELF97                     217
    LOGICAL_SCREEN_FILL_HEADER
    19 FORM         SAPLUPP_PP_KERNEL                   LUPP_PP_KERNELF97                      60
    LOGICAL_SCREEN_FILL
    18 FUNCTION     SAPLUPP_PP_KERNEL                   LUPP_PP_KERNELU01                     114
    UPP_PP_KERNEL_CONSTRUCTOR
    17 METHOD       CL_UPB_PL_ALV=================CP    CL_UPB_PL_ALV=================CM01E   176
    CL_UPB_PL_ALV=>CONSTRUCTOR
    16 FORM         SAPLUPB_PM_ALV                      LUPB_PM_ALVF01                        623
    OUTPUT_CREATE
    15 FORM         SAPLUPB_PM_ALV                      LUPB_PM_ALVF01                        202
    OUTPUT_INIT
    14 FORM         SAPLUPB_PM_ALV                      LUPB_PM_ALVF01                       1062
    OUTPUT_PROCESS
    13 FORM         SAPLUPB_PM_ALV                      LUPB_PM_ALVF01                       1225
    OUTPUT_SWITCH_TO_LAYOUT
    12 FORM         SAPLUPB_PM_ALV                      LUPB_PM_ALVF05                        748
    INIT_CONTROLS
    11 MODULE (PBO) SAPLUPB_PM_ALV                      LUPB_PM_ALVO01                         13
    STATUS
    10 FUNCTION     SAPLUPB_PM_ALV                      LUPB_PM_ALVU01                         24
    UPB_PM_ALV_START
    9 METHOD       CL_UPB_PM_APPLC===============CP    CL_UPB_PM_APPLC===============CM00A    88
    CL_UPB_PM_APPLC=>EXECUTE_PM
    8 METHOD       CL_UPB_PM_ADMIN===============CP    CL_UPB_PM_ADMIN===============CM00L    76
    CL_UPB_PM_ADMIN=>PAI_ONE_NODE
    7 METHOD       CL_UPB_PM_ADMIN===============CP    CL_UPB_PM_ADMIN===============CM00L    23
    CL_UPB_PM_ADMIN=>PAI_ONE_NODE
    6 METHOD       CL_UPB_PM_ADMIN===============CP    CL_UPB_PM_ADMIN===============CM003   121
    CL_UPB_PM_ADMIN=>PAI
    5 FORM         SAPLUPB_PM                          LUPB_PMF04                             80
    USER_COMMAND_0210
    4 MODULE (PAI) SAPLUPB_PM                          LUPB_PMI04                             11
    USER_COMMAND_0210
    3 FUNCTION     SAPLUPB_PM                          LUPB_PMU22                             86
    UPB_PM_MAIN
    2 FORM         UPB_PM_CUST_START                   UPB_PM_START_ADMIN                    251
    PM_START
    1 EVENT        UPB_PM_CUST_START                   UPB_PM_START_ADMIN                     14
    START-OF-SELECTION
    Chosen variables
    Name
    Val.
    No.      40 Ty.          FUNCTION
    Name  RSSB_AUTHORITY_IOBJVL_CHECK
    I_ACTIVITY
    03
    33
    03
    I_ACTIVITY_FORCE_CHECK
    2
    0
    I_MESSAGE
    X
    5
    8
    I_SX_IOBJVL_CHECK
    ZCTMWMA05                                                                                ####
    5454544332222222222222222222222222222222222222222222222222222222222222222222222222222222220000
    A34D7D1050000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    I_UNAME
    S51643
    533333222222
    351643000000
    E_SUBRC
    0
    0000
    0000
    E_TS_AUTH_TLEVEL
    Table[initial]
    E_TX_NO_AUTH
    Table[initial]
    RSSB_C_AUTH_KEYFIGURE
    1KYFNM
    3454442222
    1B96ED0000
    SY-REPID
    SAPLRSSBR
    5454555452222222222222222222222222222222
    310C233220000000000000000000000000000000
    SYST-REPID
    SAPLRSSBR
    5454555452222222222222222222222222222222
    310C233220000000000000000000000000000000
    %_SPACE
    2
    0
    RS_C_RANGE_SIGN
    IE
    44
    95
    SY-SUBRC
    5
    0000
    0005
    L_TX_NO_AUTH
    Table[initial]
    SY-XFORM
    CONVERSION_EXIT
    444545544454545222222222222222
    3FE65239FEF5894000000000000000
    SYST
    0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1. ###################################################à##############
    0000000000000000000000000002000000000000000000000000000000000000000000000000000E00000000000000
    0001000000000000000000000000000000000000000000010001000000010000000000000000000000000000000000
    L_SX_NO_AUTH
    ############ÿÿÿÿ
    000000000000FFFF
    000000000000FFFF
    L_SX_NO_AUTH-KID
    Table[initial]
    <L_SX_AUTH_CHECK>-KID
    Table IT_33029[1x4]
    FUNCTION-POOL=RSSBRDATA=G_SX_IOBJVL_CHECK-AUTH_CHECK[1]-KID
    Table reference: 2052
    TABH+  0(20) = 07000000908D2FD0000000000000000000000000
    TABH+ 20(20) = 00000804000081050000000100000004FFFFFFFF
    TABH+ 40(16) = 040002F1000003480001432821000000
    store        = 0x07000000908D2FD0
    ext1         = 0x0000000000000000
    shmId        = 0     (0x00000000)
    id           = 2052  (0x00000804)
    label        = 33029 (0x00008105)
    fill         = 1     (0x00000001)
    leng         = 4     (0x00000004)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000003
    occu         = 1     (0x00000001)
    access       = 2     (ItAccessSorted)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 1     (ItUnique)
    keyKind      = 2     (table_line)
    cmpMode      = 5     (cmpSingle)
    occu0        = 0
    collHash     = 0
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 1
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = 0x07000000908E0CC8
    pghook       = 0x0000000000000000
    idxPtr       = 0x0000000000000000
    refCount     = 1     (0x00000001)
    tstRefCount  = 0     (0x00000000)
    lineAdmin    = 1     (0x00000001)
    lineAlloc    = 1     (0x00000001)
    store_id     = 6998  (0x00001B56)
    shmIsReadOnly = 0     (0x00000000)
    >>>>> 1st level extension part <<<<<
    regHook      = Not allocated
    hsdir        = Not allocated
    ext2         = Not allocated
    >>>>> 2nd level extension part <<<<<
    tabhBack     = Not allocated
    delta_head   = Not allocated
    pb_func      = Not allocated
    pb_handle    = Not allocated
    No.      39 Ty.          FORM
    Name  AUTHORITY_CHECK
    I_TH_SFC
    Table IT_32090[14x128]
    FUNCTION=RSDRC_BASIC_CUBE_DATA_GETDATA=L_TH_SFC
    Table reference: 1757
    TABH+  0(20) = 070000009052D8F8070000009081372800000000
    TABH+ 20(20) = 000006DD00007D5A0000000E00000080FFFFFFFF
    TABH+ 40(16) = 040002DB000017C80010839401000000
    store        = 0x070000009052D8F8
    ext1         = 0x0700000090813728
    shmId        = 0     (0x00000000)
    id           = 1757  (0x000006DD)
    label        = 32090 (0x00007D5A)
    fill         = 14    (0x0000000E)
    leng         = 128   (0x00000080)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000099
    occu         = 16    (0x00000010)
    access       = 4     (ItAccessHashed)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 1     (ItUnique)
    keyKind      = 3     (user defined)
    cmpMode      = 2     (cmpSingleMcmpR)
    occu0        = 1
    collHash     = 0
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 0
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = 0x0700000090811F18
    pghook       = 0x0000000000000000
    idxPtr       = 0x070000009052D950
    refCount     = 0     (0x00000000)
    tstRefCount  = 0     (0x00000000)
    lineAdmin    = 16    (0x00000010)
    lineAlloc    = 16    (0x00000010)
    store_id     = 6872  (0x00001AD8)
    shmIsReadOnly = 0     (0x00000000)
    >>>>> 1st level extension part <<<<<
    regHook      = 0x0700000090813588
    hsdir        = 0x0000000000000000
    ext2         = 0x0000000000000000
    >>>>> 2nd level extension part <<<<<
    tabhBack     = Not allocated
    delta_head   = Not allocated
    pb_func      = Not allocated
    pb_handle    = Not allocated
    CL_RSO_REPOSITORY=>P_C_BAL_LOG_SUBOBJEC_INST
    SY-REPID
    SAPLRSDRC
    5454554542222222222222222222222222222222
    310C234230000000000000000000000000000000
    L_S_RANGE-LOW
    1ROWCOUNT
    354544545222222222222222222222222222222222222222222222222222
    12F73F5E4000000000000000000000000000000000000000000000000000
    <L_S_SFK>-KYFNM
    1ROWCOUNT
    354544545222222222222222222222
    12F73F5E4000000000000000000000
    RSDRC_C_QUERYMODE-CUMULATIVE
    C
    4
    3
    S_S_COB_PRO
    2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    L_SX_SELDR-RANGE+8(8)
    Table IT_32110[2x136]
    FUNCTION-POOL=RSDRCFORM=AUTHORITY_CHECKDATA=L_SX_SELDR
    Table reference: 1902
    TABH+  0(20) = 0700000090813D10000000000000000000000000
    TABH+ 20(20) = 0000076E00007D6E0000000200000088FFFFFFFF
    TABH+ 40(16) = 040002DB00001AA00010254421000000
    store        = 0x0700000090813D10
    ext1         = 0x0000000000000000
    shmId        = 0     (0x00000000)
    id           = 1902  (0x0000076E)
    label        = 32110 (0x00007D6E)
    fill         = 2     (0x00000002)
    leng         = 136   (0x00000088)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000112
    occu         = 16    (0x00000010)
    access       = 1     (ItAccessStandard)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 2     (ItUniqueNon)
    keyKind      = 2     (table_line)
    cmpMode      = 8     (cmpManyEq)
    occu0        = 1
    collHash     = 0
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 1
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = 0x07000000908800F8
    pghook       = 0x0000000000000000
    idxPtr       = 0x0000000000000000
    refCount     = 1     (0x00000001)
    tstRefCount  = 0     (0x00000000)
    lineAdmin    = 16    (0x00000010)
    lineAlloc    = 16    (0x00000010)
    store_id     = 6876  (0x00001ADC)
    shmIsReadOnly = 0     (0x00000000)
    >>>>> 1st level extension part <<<<<
    regHook      = Not allocated
    hsdir        = Not allocated
    ext2         = Not allocated
    >>>>> 2nd level extension part <<<<<
    tabhBack     = Not allocated
    delta_head   = Not allocated
    pb_func      = Not allocated
    pb_handle    = Not allocated
    L_S_RANGE
    IEQ1ROWCOUNT
    4453545445452222222222222222222222222222222222222222222222222222222222222222222222222222222222
    95112F73F5E40000000000000000000000000000000000000000000000000000000000000000000000000000000000
    L_TSX_SELDR
    Table IT_32094[13x120]
    FUNCTION-POOL=RSDRCFORM=AUTHORITY_CHECKDATA=L_TSX_SELDR
    Table reference: 1870
    TABH+  0(20) = 0700000090813AE007000000908DF36800000000
    TABH+ 20(20) = 0000074E00007D5E0000000D00000078FFFFFFFF
    TABH+ 40(16) = 040002DB000018A8000C4B9C01000000
    store        = 0x0700000090813AE0
    ext1         = 0x07000000908DF368
    shmId        = 0     (0x00000000)
    id           = 1870  (0x0000074E)
    label        = 32094 (0x00007D5E)
    fill         = 13    (0x0000000D)
    leng         = 120   (0x00000078)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000103
    occu         = 12    (0x0000000C)
    access       = 2     (ItAccessSorted)
    idxKind      = 1     (ItIndexLinear)
    uniKind      = 1     (ItUnique)
    keyKind      = 3     (user defined)
    cmpMode      = 3     (cmpSingleMcmpU)
    occu0        = 1
    collHash     = 0
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 0
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = 0x070000009087FB40
    pghook       = 0x0700000090813D68
    idxPtr       = 0x0700000090813DA0
    refCount     = 0     (0x00000000)
    tstRefCount  = 0     (0x00000000)
    lineAdmin    = 36    (0x00000024)
    lineAlloc    = 36    (0x00000024)
    store_id     = 6875  (0x00001ADB)
    shmIsReadOnly = 0     (0x00000000)
    >>>>> 1st level extension part <<<<<
    regHook      = 0x07000000908DED00
    hsdir        = 0x0000000000000000
    ext2         = 0x0000000000000000
    >>>>> 2nd level extension part <<<<<
    tabhBack     = Not allocated
    delta_head   = Not allocated
    pb_func      = Not allocated
    pb_handle    = Not allocated
    L_SX_SELDR
    00001KYFNM                          ########300   0     ####ÿÿÿÿ####  0 ########        ####ÿÿ
    333334544422222222222222222222222222000000003332223222220000FFFF0000223200000000222222220000FF
    00001B96ED00000000000000000000000000000000003000000000000000FFFF0000000000000000000000000000FF
    G_RUNNING
    0
    0000
    0000
    L_BASICCUBE
    ZCTMWMA05
    545454433222222222222222222222
    A34D7D105000000000000000000000
    L_TH_FREE
    Table IT_32093[6x30]
    FUNCTION-POOL=RSDRCFORM=AUTHORITY_CHECKDATA=L_TH_FREE
    Table reference: 1763
    TABH+  0(20) = 0700000090813760000000000000000000000000
    TABH+ 20(20) = 000006E300007D5D000000060000001EFFFFFFFF
    TABH+ 40(16) = 040002DB00001B800010831401000000
    store        = 0x0700000090813760
    ext1         = 0x0000000000000000
    shmId        = 0     (0x00000000)
    id           = 1763  (0x000006E3)
    label        = 32093 (0x00007D5D)
    fill         = 6     (0x00000006)
    leng         = 30    (0x0000001E)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000116
    occu         = 16    (0x00000010)
    access       = 4     (ItAccessHashed)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 1     (ItUnique)
    keyKind      = 2     (table_line)
    cmpMode      = 2     (cmpSingleMcmpR)
    occu0        = 1
    collHash     = 0
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 0
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = 0x07000000908137B8
    pghook       = 0x0000000000000000
    idxPtr       = 0x07000000908139B0
    refCount     = 0     (0x00000000)
    tstRefCount  = 0     (0x00000000)
    lineAdmin    = 16    (0x00000010)
    lineAlloc    = 16    (0x00000010)
    store_id     = 6874  (0x00001ADA)
    shmIsReadOnly = 0     (0x00000000)
    >>>>> 1st level extension part <<<<<
    regHook      = Not allocated
    hsdir        = Not allocated
    ext2         = Not allocated
    >>>>> 2nd level extension part <<<<<
    tabhBack     = Not allocated
    delta_head   = Not allocated
    pb_func      = Not allocated
    pb_handle    = Not allocated
    SYST-REPID
    SAPLRSDRC
    5454554542222222222222222222222222222222
    310C234230000000000000000000000000000000
    L_SX_IOBJVL_CHECK
    ZCTMWMA05                                                                                ####
    5454544332222222222222222222222222222222222222222222222222222222222222222222222222222222220000
    A34D7D1050000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    L_ACTIVITY
    03
    33
    03
    SY-UNAME
    S51643
    533333222222
    351643000000
    S_MULTICUBE
    222222222222222222222222222222
    000000000000000000000000000000
    E_SUBRC
    0
    0000
    0000
    %_VIASELSCR
    0
    4
    S_CHANM
    222222222222222222222222222222
    000000000000000000000000000000
    I_RAISE_EXCEPTION
    X
    5
    8
    RS_C_TRUE
    X
    5
    8
    SCREEN
    2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    No.      38 Ty.          FORM
    Name  BASIC_QUERY_DATA_GET_ROLAP
    E_T_DATA
    Table[initial]
    E_END_OF_DATA
    2
    0
    C_FIRST_CALL
    X
    5
    8
    S_S_QPARAM
    XX 0 ##ÿÿÿÿ####DB-VIEW                                               R ###dABAP-TABLE
    25523200FFFF0000442544522222222222222222222222222222222222222222222222520006444525444422222222
    08800000FFFF000042D6957000000000000000000000000000000000000000000000002000041210D412C500000000
    C_S_QPARAM-AUTHORITY_CHECK
    R
    5
    2
    RSDRC_C_AUTHCHK-NONE
    2
    0
    RSJOBINFO
    00000000000000                                  ####
    222222222222222222222222222222223333333333333322222222222222222222222222222222220000
    000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    RSD_C_DPANM
    0REQUID                       0CHNGID                       0RECORDTP                     0IOB
    3545544222222222222222222222223444444222222222222222222222223544454552222222222222222222223444
    025159400000000000000000000000038E794000000000000000000000000253F244000000000000000000000009F2
    SPACE
    2
    0
    I_BASICCUBE
    ZCTMWMA05
    545454433222222222222222222222
    A34D7D105000000000000000000000
    I_TH_SFC
    Table IT_32090[14x128]
    I_TH_SFK
    Table IT_32091[2x128]
    FUNCTION=RSDRC_BASIC_CUBE_DATA_GETDATA=L_TH_SFK
    Table reference: 1767
    TABH+  0(20) = 0700000090887AC00700000090813CD800000000
    TABH+ 20(20) = 000006E700007D5B0000000200000080FFFFFFFF
    TABH+ 40(16) = 040002DB000018380010839421000000
    store        = 0x0700000090887AC0
    ext1         = 0x0700000090813CD8
    shmId        = 0     (0x00000000)
    id           = 1767  (0x000006E7)
    label        = 32091 (0x00007D5B)
    fill         = 2     (0x00000002)
    leng         = 128   (0x00000080)
    loop         = -1    (0xFFFFFFFF)
    xtyp         = TYPE#000101
    occu         = 16    (0x00000010)
    access       = 4     (ItAccessHashed)
    idxKind      = 0     (ItIndexNone)
    uniKind      = 1     (ItUnique)
    keyKind      = 3     (user defined)
    cmpMode      = 2     (cmpSingleMcmpR)
    occu0        = 1
    collHash     = 0
    groupCntl    = 0
    rfc          = 0
    unShareable  = 0
    mightBeShared = 1
    sharedWithShmTab = 0
    isShmLockId  = 0
    gcKind       = 0
    isUsed       = 1
    >>>>> Shareable Table Header Data <<<<<
    tabi         = 0x0700000090884C90
    pghook       = 0x0000000000000000
    idxPtr       = 0x0700000090827A98
    refCount     = 1     (0x00000001)
    tstRefCount  = 0     (0x00000000)
    lineAdmin    = 16    (0x00000010)
    lineAlloc    = 16    (0x00000010)
    store_id     = 6857  (0x00001AC9)
    shmIsReadOnly = 0     (0x00000000)
    >>>>> 1st level extension part <<<<<
    regHook      = 0x0700000090813B38
    hsdir        = 0x0000000000000000

    Have you check or trace Authorization??
    In DUMP:
    Information on where terminated
    The termination occurred in the ABAP program "SAPLRSSBR" in
    "RSSB_AUTHORITY_IOBJVL_CHECK".
    The main program was "UPB_PM_CUST_START ".

  • Difference between abap object and function

    hi all,
    i read the book on abap object of the difference between abap object and classical abap.
    i know that there is only 1 instance of a specific function group but somehow i still not so clear why subsequent vehicle cannot use the same function. i also can use the do and loop to call the function? if cannot then why?
    hope can get the advice.
    thanks
    using function *********
    function-pool vehicle.
    data speed type i value 0.
    function accelerate.
    speed = speed + 1.
    endfunction.
    function show_speed.
    write speed.
    endfunction.
    report xx.
    start-of-selection.
    *vehicle 1
    call function 'accelerate'.
    call function 'accelerate'.
    call function 'show_speed'.
    *vehicle 2
    *vehicle 3
    *****abap object*******
    report xx.
    data: ov type ref to vehicle,
             ov_tab type table of ref to vehicle.
    start-of-selection.
    do 5 times.
    create object ov.
    append ov to ov_tab.
    enddo.
    loop at ov_tab into ov.
    do sy-tabix times.
    call method ov->accelerate.
    enddo.
    call method ov->show_speed.
    endloop.

    Hi
    Now try this:
    REPORT ZTEST_VEHICLEOO .
    PARAMETERS: P_CAR   TYPE I,
                P_READ  TYPE I.
    *       CLASS vehicle DEFINITION
    CLASS VEHICLE DEFINITION.
      PUBLIC SECTION.
        CLASS-DATA: MAX_SPEED   TYPE I,
                    MAX_VEHICLE TYPE I,
                    NR_VEHICLES TYPE I.
        CLASS-METHODS CLASS_CONSTRUCTOR.
        METHODS CONSTRUCTOR.
        METHODS ACCELERATE.
        METHODS SHOW_SPEED.
        METHODS GET_SPEED EXPORTING E_SPEED TYPE I.
      PRIVATE SECTION.
        DATA: SPEED      TYPE I,
              NR_VEHICLE TYPE I..
    ENDCLASS.
    *       CLASS vehicle IMPLEMENTATION
    CLASS VEHICLE IMPLEMENTATION.
      METHOD CLASS_CONSTRUCTOR.
        NR_VEHICLES = 0.
      ENDMETHOD.
      METHOD CONSTRUCTOR.
        NR_VEHICLES = NR_VEHICLES + 1.
        NR_VEHICLE  = NR_VEHICLES.
      ENDMETHOD.
      METHOD ACCELERATE.
        SPEED = SPEED + 1.
        IF MAX_SPEED < SPEED.
          MAX_SPEED   = SPEED.
          MAX_VEHICLE = NR_VEHICLE.
        ENDIF.
      ENDMETHOD.
      METHOD SHOW_SPEED.
        WRITE: / 'Speed of vehicle nr.', NR_VEHICLE, ':', SPEED.
      ENDMETHOD.
      METHOD GET_SPEED.
        E_SPEED = SPEED.
      ENDMETHOD.
    ENDCLASS.
    DATA: OV     TYPE REF TO VEHICLE,
          OV_TAB TYPE TABLE OF REF TO VEHICLE.
    DATA: V_TIMES TYPE I,
          FL_ACTION.
    DATA: V_SPEED TYPE I.
    START-OF-SELECTION.
      DO P_CAR TIMES.
        CREATE OBJECT OV.
        APPEND OV TO OV_TAB.
      ENDDO.
      LOOP AT OV_TAB INTO OV.
        IF FL_ACTION = SPACE.
          FL_ACTION = 'X'.
          V_TIMES = SY-TABIX * 2.
        ELSE.
          FL_ACTION = SPACE.
          V_TIMES = SY-TABIX - 2.
        ENDIF.
        DO V_TIMES TIMES.
          CALL METHOD OV->ACCELERATE.
        ENDDO.
        CALL METHOD OV->SHOW_SPEED.
      ENDLOOP.
      SKIP.
      WRITE: / 'Higher speed', VEHICLE=>MAX_SPEED, 'for vehicle nr.',
                VEHICLE=>MAX_VEHICLE.
      SKIP.
      READ TABLE OV_TAB INTO OV INDEX P_READ.
      IF SY-SUBRC <> 0.
        WRITE: 'No vehicle', P_READ.
      ELSE.
        CALL METHOD OV->GET_SPEED IMPORTING E_SPEED = V_SPEED.
        WRITE: 'Speed of vehicle', P_READ, V_SPEED.
      ENDIF.
    Try to repeat this using a function group and I think you'll undestand because it'll be very hard to do it.
    By only one function group how can u read the data of a certain vehicle?
    Yes you can create in the function group an internal table where u store the data of every car: in this way u use the internal table like it was an instance, but you should consider here the example is very simple. Here we have only the speed as characteristic, but really we can have many complex characteristics.
    Max

  • Splash screen ABAP (Was 6.20) SAPGui 6.20

    I love splash screens. A small pop-up window with a picture should come for say 5  to 10 seconds and disappear by a timer task.
    Giving such timer splash screens at START or END makes the application attractive. I do it in VB PB & Java.
    How to do Slash screen in ABAP SAP GUI 6.20 WAS 6.20?
    Should be thrown up as a "floating" popup.
    Regards & Hopeful
    -jnc

    With good tips from Thomas Jung
    I made 2 function modules to suit my whims.
    SAP being a serious Businesss Software you cannot have too many JPGs floating around! One or two is fun.
    In Function group uou need two screens 0806 & 2009 which are essentially blank.
    I put 2 title Bars - 0806 "SAP - JOB in Progress"; 2009 - "SAP - JOB OVER!!"
    Code listing for function: ZJNC_START_SPLASH
    Description: Show Splash at Start
    FUNCTION zjnc_start_splash.
    ""Local interface:
    *"  IMPORTING
    *"     REFERENCE(IMAGEFILE) TYPE  C DEFAULT 'THANKS.JPG'
    *"     REFERENCE(WIDTH) TYPE  I DEFAULT 415
    *"     REFERENCE(HEIGHT) TYPE  I DEFAULT 274
    *"     REFERENCE(TIMEOUT) TYPE  I DEFAULT 3
    *"     REFERENCE(CALLBACK) TYPE  C
          Global data declarations
      MOVE imagefile TO g_name.
      MOVE width TO picwidth.
      MOVE height TO picheight.
      MOVE timeout TO pictimeout.
      MOVE callback TO piccallback.
      TRANSLATE piccallback TO UPPER CASE.
      PERFORM getpicurl.
      CALL SCREEN 0806.
    ENDFUNCTION.
    Code listing for function: ZJNC_END_SPLASH
    Description: Show Splash at End
    FUNCTION ZJNC_END_SPLASH.
    ""Local interface:
    *"  IMPORTING
    *"     REFERENCE(IMAGEFILE) TYPE  C DEFAULT 'THANKS.JPG'
    *"     REFERENCE(WIDTH) TYPE  I DEFAULT 415
    *"     REFERENCE(HEIGHT) TYPE  I DEFAULT 274
    *"     REFERENCE(TIMEOUT) TYPE  I DEFAULT 3
          Global data declarations
      MOVE imagefile TO g_name.
      MOVE width TO picwidth.
      MOVE height TO picheight.
      MOVE timeout TO pictimeout.
      PERFORM getpicurl.
      CALL SCREEN 2009.
    ENDFUNCTION.
    Code listing for: LZUTILTOP
    TOP level Include of Function Group ZUTIL
    Author Jayanta Narayan Choudhuri
            Flat 302
            395 Jodhpur Park
            Kolkata 700 068
          Email [email protected]
          URL:  http://www.geocities.com/ojnc
    FUNCTION-POOL zutil.                        "MESSAGE-ID ..
    TYPE-POOLS: abap.
    DATA: graphic_url(255),
          g_result   TYPE i,
          g_linesz   TYPE i,
          g_filesz   TYPE i,
          g_name(100).
    TYPES: t_graphic_line(256) TYPE x.
    DATA: graphic_line TYPE t_graphic_line,
          graphic_table TYPE TABLE OF t_graphic_line.
    DATA: picwidth        TYPE i,
          picheight       TYPE i,
          pictimeout      TYPE i,
          piccallback(60) TYPE c,
          first           TYPE boolean.
          CLASS ZCL_ES_SPLASH_SCREEN  DEFINITION
    CLASS zcl_es_splash_screen DEFINITION.
      PUBLIC SECTION.
        EVENTS on_close.
        METHODS constructor
          IMPORTING
            !i_num_secs  TYPE i DEFAULT 5
            !i_url       TYPE c
            !i_width     TYPE i
            !i_height    TYPE i.
      PROTECTED SECTION.
        METHODS handle_end_of_timer
          FOR EVENT finished OF cl_gui_timer.
      PRIVATE SECTION.
        DATA container TYPE REF TO cl_gui_dialogbox_container.
        DATA image     TYPE REF TO cl_gui_picture.
        DATA timer     TYPE REF TO cl_gui_timer.
    ENDCLASS.                    "ZCL_ES_SPLASH_SCREEN  DEFINITION
    CLASS ZCL_ES_SPLASH_SCREEN IMPLEMENTATION
    CLASS zcl_es_splash_screen IMPLEMENTATION.
      METHOD constructor.
        DATA: image_width     TYPE i,
              image_height    TYPE i.
        COMPUTE image_width  = i_width + 30.
        COMPUTE image_height = i_height + 50.
        CREATE OBJECT container
           EXPORTING
             width                       = 10
             height                      = 10
             top                         = 10
             left                        = 10
             name                        = 'DialogSplash'.
        CALL METHOD container->set_caption
          EXPORTING
            caption = g_name.
        CREATE OBJECT image
          EXPORTING
            parent = container.
        CALL METHOD image->load_picture_from_url
          EXPORTING
            url = i_url.
        image->set_display_mode( image->display_mode_normal_center ).
        cl_gui_cfw=>flush( ).
        container->set_metric( EXPORTING metric = image->metric_pixel ).
        DATA: myleft TYPE i,
              mytop  TYPE i.
        COMPUTE myleft = ( 800 - image_width ) / 2.
        COMPUTE mytop  = ( 600 - image_height ) / 2.
        IF myleft < 0.
          MOVE 0 TO myleft.
        ENDIF.
        IF mytop < 0.
          MOVE 0 TO mytop.
        ENDIF.
        container->set_position(
          EXPORTING
            height            = image_height
            left              = myleft
            top               = mytop
            width             = image_width ).
        cl_gui_cfw=>update_view( ).
        CREATE OBJECT timer.
        timer->interval = i_num_secs.
        SET HANDLER me->handle_end_of_timer FOR timer.
        timer->run( ).
        cl_gui_cfw=>flush( ).
      ENDMETHOD.                    "constructor
      METHOD handle_end_of_timer.
    I wanted NAMASTE to remain until JOB was complete.
       IF container IS NOT INITIAL.
         container->free( ).
         CLEAR container.
         FREE  container.
       ENDIF.
       IF timer IS NOT INITIAL.
         timer->free( ).
         CLEAR timer.
         FREE  timer.
       ENDIF.
       cl_gui_cfw=>flush( ).
        RAISE EVENT on_close.
      ENDMETHOD.                    "handle_end_of_timer
    ENDCLASS.                    "ZCL_ES_SPLASH_SCREEN  IMPLEMENTATION
          CLASS lcl_event_handler DEFINITION
    CLASS lcl_event_handler DEFINITION.
      PUBLIC SECTION.
        CLASS-METHODS: on_close FOR EVENT on_close OF zcl_es_splash_screen.
    ENDCLASS. "lcl_event_handler DEFINITION
    CLASS lcl_event_handler IMPLEMENTATION
    CLASS lcl_event_handler IMPLEMENTATION.
      METHOD on_close.
        IF sy-dynnr = 2009.
          LEAVE PROGRAM.
        ELSE.
          MOVE abap_false TO first.
          PERFORM (piccallback) IN PROGRAM (sy-cprog).
        ENDIF.
      ENDMETHOD. "on_close
    ENDCLASS. "lcl_event_handler IMPLEMENTATION
    DATA: splash TYPE REF TO zcl_es_splash_screen.
    *&      Module  STATUS_0806  OUTPUT
    MODULE status_0806 OUTPUT.
      IF first IS INITIAL.
        first = abap_true.
        SET TITLEBAR 'TITLE0806'.
        CREATE OBJECT splash
            EXPORTING
              i_num_secs = pictimeout
              i_url      = graphic_url
              i_width    = picwidth
              i_height   = picheight.
        SET HANDLER lcl_event_handler=>on_close FOR splash.
      ENDIF.
    ENDMODULE.                " STATUS_0806  OUTPUT
    *&      Module  STATUS_2009  OUTPUT
    MODULE status_2009 OUTPUT.
      IF first IS INITIAL.
        first = abap_true.
        SET TITLEBAR 'TITLE2009'.
        CREATE OBJECT splash
            EXPORTING
              i_num_secs = pictimeout
              i_url      = graphic_url
              i_width    = picwidth
              i_height   = picheight.
        SET HANDLER lcl_event_handler=>on_close FOR splash.
      ENDIF.
    ENDMODULE.                " STATUS_2009  OUTPUT
    *&      Form  getpicurl
    FORM getpicurl.
      OPEN DATASET g_name FOR INPUT IN BINARY MODE.
      REFRESH graphic_table.
      CLEAR   g_filesz.
      DO.
        CLEAR graphic_line.
        READ DATASET g_name INTO graphic_line ACTUAL LENGTH g_linesz.
        ADD g_linesz TO g_filesz.
        APPEND graphic_line TO graphic_table.
        IF sy-subrc <> 0.
          EXIT.
        ENDIF.
      ENDDO.
      CLOSE DATASET g_name.
      CLEAR graphic_url.
      CALL FUNCTION 'DP_CREATE_URL'
        EXPORTING
          type                 = 'IMAGE'
          subtype              = 'GIF'
        TABLES
          data                 = graphic_table
        CHANGING
          url                  = graphic_url
        EXCEPTIONS
          dp_invalid_parameter = 1
          dp_error_put_table   = 2
          dp_error_general     = 3
          OTHERS               = 4.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        EXIT.
      ENDIF.
    ENDFORM.                    "getpicurl
    Extracted by Direct Download Enterprise version 1.2 - E.G.Mellodew. 1998-2004 UK.

  • Problem in ABAP mapping

    Hi ,
    I am working with a scenerio where i have 2 diff system to send the data depending upong the sending payload data.
    I am using ABAP mapping where i am able to send accros the data, below is my code
    METHOD IF_MAPPING~EXECUTE.
      BREAK-POINT.
      * initialize iXML
      TYPE-POOLS: IXML.
      CLASS CL_IXML DEFINITION LOAD.
      DATA: L_IXML TYPE REF TO IF_IXML.
    *creating the Interface by calling the create method in class C_IXML
      CALL METHOD CL_IXML=>CREATE
    EXPORTING
       TYPE   = 0
        RECEIVING
          RVAL   = L_IXML.
    create stream factory
      DATA: STREAMFACTORY TYPE REF TO IF_IXML_STREAM_FACTORY.
      CALL METHOD L_IXML->CREATE_STREAM_FACTORY
        RECEIVING
          RVAL = STREAMFACTORY.
    create input stream
      DATA: ISTREAM TYPE REF TO IF_IXML_ISTREAM.
      CALL METHOD STREAMFACTORY->CREATE_ISTREAM_XSTRING
        EXPORTING
          STRING = SOURCE
        RECEIVING
          RVAL   = ISTREAM.
    *This iXML factory can create an empty XML document object named IDOCUMENT.
    initialize input document
      DATA:  IDOCUMENT TYPE REF TO IF_IXML_DOCUMENT.
      CALL METHOD L_IXML->CREATE_DOCUMENT
        RECEIVING
          RVAL = IDOCUMENT.
    parse input document
      DATA: IPARSER TYPE REF TO IF_IXML_PARSER.
      CALL METHOD L_IXML->CREATE_PARSER
        EXPORTING
          DOCUMENT       = IDOCUMENT
          ISTREAM        = ISTREAM
          STREAM_FACTORY = STREAMFACTORY
        RECEIVING
          RVAL           = IPARSER.
      IPARSER->PARSE( ).
      DATA: EL_ELEMENT TYPE REF TO IF_IXML_ELEMENT,
            VALUE TYPE STRING.
      DATA: ROOT TYPE REF TO IF_IXML_ELEMENT.
    get message content of tag
      DATA: INCODE  TYPE REF TO IF_IXML_NODE_COLLECTION,
            INCODE1 TYPE REF TO IF_IXML_NODE_COLLECTION,
            INCODE2 TYPE REF TO IF_IXML_NODE_COLLECTION,
            INCODE0  TYPE REF TO IF_IXML_NODE_COLLECTION.
      CALL METHOD IDOCUMENT->GET_ELEMENTS_BY_TAG_NAME
        EXPORTING
         DEPTH     = 0
          NAME      = 'MANDT'
         NAMESPACE = 'urn:sap-com:document:sap:rfc:functions'
        RECEIVING
          RVAL      = INCODE0 .
      CALL METHOD IDOCUMENT->GET_ELEMENTS_BY_TAG_NAME
      EXPORTING
         DEPTH     = 0
        NAME      = 'EMPNO'
         NAMESPACE = 'urn:sap-com:document:sap:rfc:functions'
      RECEIVING
        RVAL      = INCODE.
      CALL METHOD IDOCUMENT->GET_ELEMENTS_BY_TAG_NAME
    EXPORTING
         DEPTH     = 0
    NAME      = 'EMPNAME'
         NAMESPACE = 'urn:sap-com:document:sap:rfc:functions'
    RECEIVING
    RVAL      = INCODE1.
      CALL METHOD IDOCUMENT->GET_ELEMENTS_BY_TAG_NAME
    EXPORTING
         DEPTH     = 0
    NAME      = 'DEPARTMENTNAME'
         NAMESPACE = 'urn:sap-com:document:sap:rfc:functions'
    RECEIVING
    RVAL      = INCODE2.
      DATA: URI TYPE STRING.
      URI = 'urn:sap-com:document:sap:rfc:functions'.
    * build up output document =============================================
    create output document
      DATA: ODOCUMENT TYPE REF TO IF_IXML_DOCUMENT.
      CALL METHOD L_IXML->CREATE_DOCUMENT
        RECEIVING
          RVAL = ODOCUMENT.
    DATA: RET_VALUE TYPE I.
    **At this point you can add the nodes (elements, attributes) into the document. First you have to declare the root element node.
      DATA: L_ELEMENT_ROOT TYPE REF TO IF_IXML_ELEMENT.
      DATA: NODE_LIST_COLLECTION TYPE REF TO IF_IXML_NODE_COLLECTION.
    add node to the output document
      DATA: OUTCODE0 TYPE REF TO IF_IXML_NODE.
      DATA: OUTCODE  TYPE REF TO IF_IXML_NODE.
      DATA: OUTCODE1 TYPE REF TO IF_IXML_NODE.
      DATA: OUTCODE2 TYPE REF TO IF_IXML_NODE.
      DATA: INDEX1 TYPE SY-INDEX.
      DATA: INDEX TYPE SY-INDEX.
      DATA IRC TYPE I.
      TYPES:  BEGIN OF TY_IMPORT,
               MANDT             TYPE MANDT,
               EMPNO             TYPE STRING,
               EMPNAME           TYPE STRING,
               DEPARTMENTNAME    TYPE STRING,
         END OF TY_IMPORT.
      DATA: IT_IMPORT TYPE STANDARD TABLE OF TY_IMPORT.
      DATA: WA_IMPORT TYPE                 TY_IMPORT.
      CALL METHOD IDOCUMENT->GET_ELEMENTS_BY_TAG_NAME
        EXPORTING
       DEPTH     = 0
          NAME      = 'MANDT'
       NAMESPACE = ''
        RECEIVING
          RVAL      =  NODE_LIST_COLLECTION.
      DATA: LENGTH TYPE I.
      CALL METHOD NODE_LIST_COLLECTION->GET_LENGTH
        RECEIVING
          RVAL = LENGTH.
      WHILE INDEX < LENGTH.
       CALL METHOD IDOCUMENT->FIND_FROM_NAME
         EXPORTING
           DEPTH     = index
           NAME      = 'EMPNO'
           NAMESPACE = ''
         RECEIVING
           RVAL      = EL_ELEMENT .
        CALL METHOD INCODE0->GET_ITEM
          EXPORTING
            INDEX = INDEX
          RECEIVING
            RVAL  = OUTCODE0.
       EL_ELEMENT = IDOCUMENT->FIND_FROM_NAME( 'MANDT' ).
        VALUE = OUTCODE0->GET_VALUE( ).
        WA_IMPORT-MANDT  = VALUE.
        CLEAR: VALUE.
        CALL METHOD INCODE->GET_ITEM
          EXPORTING
            INDEX = INDEX
          RECEIVING
            RVAL  = OUTCODE.
       EL_ELEMENT = IDOCUMENT->FIND_FROM_NAME( 'EMPNO' ).
        VALUE = OUTCODE->GET_VALUE( ).
        WA_IMPORT-EMPNO  = VALUE.
        CLEAR: VALUE.
        CALL METHOD INCODE1->GET_ITEM
          EXPORTING
            INDEX = INDEX
          RECEIVING
            RVAL  = OUTCODE1.
       EL_ELEMENT = IDOCUMENT->FIND_FROM_NAME( 'EMPNAME' ).
        VALUE = OUTCODE1->GET_VALUE( ).
        WA_IMPORT-EMPNAME  = VALUE.
        CLEAR: VALUE.
        CALL METHOD INCODE2->GET_ITEM
          EXPORTING
            INDEX = INDEX
          RECEIVING
            RVAL  = OUTCODE2.
       EL_ELEMENT = IDOCUMENT->FIND_FROM_NAME( 'DEPARTMENTNAME' ).
        VALUE = OUTCODE2->GET_VALUE( ).
        WA_IMPORT-DEPARTMENTNAME  = VALUE.
        CLEAR: VALUE.
        APPEND WA_IMPORT TO IT_IMPORT.
        CLEAR WA_IMPORT.
        ADD 1 TO INDEX.
      ENDWHILE.
      TYPES: BEGIN OF TY_DATA,
              DATA TYPE STRING,
                    END OF TY_DATA.
      DATA: IT_DATA TYPE STANDARD TABLE OF TY_DATA,
            WA_DATA TYPE TY_DATA.
      DATA: SSSS TYPE STRING.
      IF SOURCE IS NOT INITIAL.
        CALL FUNCTION 'ECATT_CONV_XSTRING_TO_STRING'
          EXPORTING
            IM_XSTRING  = SOURCE
            IM_ENCODING = 'UTF-8'
          IMPORTING
            EX_STRING   = SSSS.
      ENDIF.
    render document ======================================================
    create output stream
      DATA: XX TYPE STRING.
      DATA: XX_1 TYPE STRING.
      DATA: XX1 TYPE STRING.
      DATA: XX2 TYPE STRING.
      DATA: T1 TYPE STRING VALUE ''.
      DATA: T TYPE STRING VALUE '<DATA><MANDT>'.
      LOOP AT IT_IMPORT INTO WA_IMPORT.
       CLEAR: XX1.
       IF SY-TABIX = 1.
        IF WA_IMPORT-EMPNO = '000000000022'.
          CONCATENATE  T WA_IMPORT-MANDT '</MANDT>'
         '<EMPNO>' WA_IMPORT-EMPNO '</EMPNO>'
         '<EMPNAME>' WA_IMPORT-EMPNAME '</EMPNAME><DEPARTMENTNAME>'
         WA_IMPORT-DEPARTMENTNAME '</DEPARTMENTNAME></DATA>'
          INTO XX1   .
         IF SY-TABIX = 1.
         ELSE.
          CONCATENATE    XX1   XX_1 INTO XX_1.
         ENDIF.
        ELSE.
          CONCATENATE  T WA_IMPORT-MANDT '</MANDT>'
    '<EMPNO>' WA_IMPORT-EMPNO '</EMPNO>'
    '<EMPNAME>' WA_IMPORT-EMPNAME '</EMPNAME><DEPARTMENTNAME>'
    WA_IMPORT-DEPARTMENTNAME '</DEPARTMENTNAME></DATA>' INTO XX1   .
          CONCATENATE XX1 XX INTO XX.
         ENDIF.
        ENDIF.
        AT LAST.
          CONCATENATE '<?xml version="1.0" encoding="UTF-8"?><ns1:ZTEST1 xmlns:ns1="urn:sap-com:document:sap:rfc:functions">'
        XX_1 INTO XX_1.
          CONCATENATE  XX_1 '</ns1:ZTEST1>' INTO XX_1.
          CALL FUNCTION 'ECATT_CONV_STRING_TO_XSTRING'
    EXPORTING
      IM_STRING         = XX_1
    IM_ENCODING       = 'UTF-8'
    IMPORTING
    EX_XSTRING        = RESULT.
        EX_LEN            = .
          CONCATENATE '<?xml version="1.0" encoding="UTF-8"?><ns1:ZTEST1 xmlns:ns1="urn:sap-com:document:sap:rfc:functions">'
    XX        INTO XX.
          CONCATENATE XX '</ns1:ZTEST1>' INTO XX.
         CONCATENATE XX_1 XX INTO XX.
          CALL FUNCTION 'ECATT_CONV_STRING_TO_XSTRING'
            EXPORTING
              IM_STRING         = XX
             IM_ENCODING       = 'UTF-8'
           IMPORTING
             EX_XSTRING        = RESULT
        EX_LEN            =
        ENDAT.
      ENDLOOP.
    ENDMETHOD.
    here above result parameter will have the target data..But it sends the that same data to both the system , If i will be able to recursively call this method, then i be able to solve the prob easily as first time result will send one data to one system and next time to other system,

    Hi munish,
    I dont think there is any thing wrong with the ABAP code.
    Try testing your ABAP mapping using transaction code SXI_MAPPING_TEST in XI.
    Enter the Details asked and then enter TEst data in XML format.. 
    Also, you can make use of the Trace element to find out if there is any thing wrong with the code.
    Include the following Statements after every step in the ABAP code to ensure that the particular step is completed successfully.
    data : l_trace type string.
    concatenate l_trace '<Message you want to display>' into l_trace.
    trace->trace(level = '<level>'
    message =l_trace).  
    The trace is visible in SXMB_MONI (click on "Trace" in the left pane to view).
    using this you will get to know i the code is functioning as desired.
    Regards,
    Yashaswee.

  • Handling unexpected errors/situations in an ABAP program

    Hi,
    if i come across a situation where i need to handle a runtime error unexpectedly what should be my approach.
    for eg. if i build a dynamic select statement and if my logic goes wrong the program flow should proceed normally as if nothing has happened 'with out giving me a short dump' . what if im not sure about the type of error thats going to show up, is there any way?
    your help will be appreciated.
    Regards,
    ravi.

    Hi Ravi
    Not all exceptions can be overridden. FYI, Below are a list of exceptions that can be handled:
    Alphabetical Overview of Catchable Runtime Errors
    Below you find an alphabetical list of all catchable runtime errors. For each runtime error, the predefined exception class assigned is specified which is used to handle the respective runtime error as of Release 6.10. If an exception class is assigned to more than one catchable runtime error, it may contain as many message texts as required which you can find in the Class Builder on the Texts tab.
    Almost all of the runtime errors listed here are combined together in exception groups. These exception groups are also assigned those ABAP keywords at which the runtime errors contained can be caught.
    ADDF_INT_OVERFLOW
    Overflow at addition, type I ( ADD ... UNTIL / ADD ... FROM ... TO)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    ASSIGN_CASTING_ILLEGAL_CAST
    The components of the source field type and the target type which are strings, tables, or references do not have exactly the same offset and type.
    Exception class: CX_SY_ASSIGN_CAST_ILLEGAL_CAST
    ASSIGN_CASTING_UNKNOWN_TYPE
    The type specified at runtime is unknown.
    Exception class: CX_SY_ASSIGN_CAST_UNKNOWN_TYPE
    ASSIGN_FIELD_NOT_IN_RANGE
    The field is not within the RANGE specified.
    Exception class: CX_SY_ASSIGN_OUT_OF_RANGE
    BCD_FIELD_OVERFLOW
    Overflow at conversion / arithmetic operation (type P, with specified length)
    Exception class: CX_SY_CONVERSION_OVERFLOW
    BCD_OVERFLOW
    Overflow at conversion / arithmetic operation (type P)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    BCD_ZERODIVIDE
    Division by 0 (type P)
    Exception class: CX_SY_ZERODIVIDE
    COMPUTE_ACOS_DOMAIN
    Invalid call of the mathematical function ACOS
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_ASIN_DOMAIN
    Invalid call of the mathematical function ASIN
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_ATAN_DOMAIN
    Invalid call of the mathematical function ATAN
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_BCD_OVERFLOW
    Overflow at arithmetic operation (all operands of type P)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_COSH_DOMAIN
    Invalid call of the mathematical function COSH
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_COSH_OVERFLOW
    Overflow at mathematical function COSH
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_COS_DOMAIN
    Invalid call of the mathematical function COS
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_COS_LOSS
    Inaccurate result of function COS
    Exception class: CX_SY_PRECISION_LOSS
    COMPUTE_EXP_DOMAIN
    Invalid call of the mathematical function EXP
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_EXP_RANGE
    Overflow or underflow at mathematical function EXP
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_FLOAT_DIV_OVERFLOW
    Overflow at division (type F)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_FLOAT_MINUS_OVERFLOW
    Overflow at subtraction (type F)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_FLOAT_PLUS_OVERFLOW
    Overflow at addition (type F)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_FLOAT_TIMES_OVERFLOW
    Overflow at multiplication (type F)
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_FLOAT_ZERODIVIDE
    Division by 0 (type F)
    Exception class: CX_SY_ZERODIVIDE
    COMPUTE_INT_ABS_OVERFLOW
    Integer overflow while calculating the absolute value
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_INT_DIV_OVERFLOW
    Integer overflow at division
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_INT_MINUS_OVERFLOW
    Integer overflow at subtraction
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_INT_PLUS_OVERFLOW
    Integer overflow at addition
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_INT_TIMES_OVERFLOW
    Integer overflow at multiplication
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_INT_ZERODIVIDE
    Division by 0 (type I)
    Exception class: CX_SY_ZERODIVIDE
    COMPUTE_LOG10_ERROR
    Invalid call of the mathematical function LOG10
    Exception classes: CX_SY_ARITHMETIC_OVERFLOW, CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_LOG_ERROR
    Invalid call of the mathematical function LOG
    Exception classes: CX_SY_ARITHMETIC_OVERFLOW, CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_MATH_DOMAIN
    Invalid call of a mathematical function
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_MATH_ERROR
    Error performing a mathematical function
    Exception class: None since this runtime error can no longer be caught
    COMPUTE_MATH_LOSS
    Inaccurate result of a mathematical function
    Exception class: CX_SY_PRECISION_LOSS
    COMPUTE_MATH_OVERFLOW
    Overflow at a mathematical function
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_MATH_UNDERFLOW
    Underflow at a mathematical function
    Exception class: None since exception no longer occurs
    COMPUTE_POW_DOMAIN
    Invalid argument when using powers
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_POW_RANGE
    Overflow or underflow when using powers
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_SINH_DOMAIN
    Invalid call of the mathematical function SINH
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_SINH_OVERFLOW
    Overflow at mathematical function SINH
    Exception class: CX_SY_ARITHMETIC_OVERFLOW
    COMPUTE_SIN_DOMAIN
    Invalid call of the mathematical function SIN
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_SIN_LOSS
    Inaccurate result of the function SIN
    Exception class: CX_SY_PRECISION_LOSS
    COMPUTE_SQRT_DOMAIN
    Invalid call of the mathematical function SQRT
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_TANH_DOMAIN
    Invalid call of the mathematical function TANH
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_TAN_DOMAIN
    Invalid call of the mathematical function TAN
    Exception class: CX_SY_ARG_OUT_OF_DOMAIN
    COMPUTE_TAN_LOSS
    Inaccurate result of the function TAN
    Exception class: CX_SY_PRECISION_LOSS
    CONNE_IMPORT_WRONG_COMP_DECS
    Import error; a component of a structured type in the dataset has wrong decimal places
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_COMP_LENG
    Import error; a component of a structured type in the dataset has the wrong length
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_COMP_TYPE
    Import error; a component of a structured type in the dataset has the wrong type
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_FIELD_DECS
    Import error; a field in the dataset has wrong decimal places
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_FIELD_LENG
    Import error; a field in the dataset has the wrong length
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_FIELD_TYPE
    Import error; a field in the dataset has the wrong type
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_OBJECT_TYPE
    Import error; type conflict between simple and structured data types
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONNE_IMPORT_WRONG_STRUCTURE
    Import error; type conflict between structured objects
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    CONVT_CODEPAGE
    Character set conversion not possible for one or more characters
    Exception class: CX_SY_CONVERSION_CODEPAGE
    CONVT_CODEPAGE_INIT
    Conversion of texts between code pages not supported
    Exception class: CX_SY_CODEPAGE_CONVERTER_INIT
    CONVT_NO_NUMBER
    Value to be converted cannot be interpreted as a number
    Exception class: CX_SY_CONVERSION_NO_NUMBER
    CONVT_OVERFLOW
    Overflow at conversion (all types, not type P)
    Exception class: CX_SY_CONVERSION_OVERFLOW
    CREATE_DATA_ILLEGAL_DECIMALS
    Invalid value for the addition DECIMALS
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_DATA_ILLEGAL_INIT_SIZE
    Invalid value for the addition INITIAL SIZE
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_DATA_ILLEGAL_LENGTH
    Invalid value for the addition LENGTH
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_DATA_LEN_NOT_ALLOWED
    The addition LENGTH was used for a type other than C, N, X, or P
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_DATA_NOT_ALLOWED_TYPE
    The type specified dynamically in the addition TYPE is not typed completely.
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_DATA_UNKNOWN_TYPE
    The type specified in the addition TYPE is unknown.
    Exception class: CX_SY_CREATE_DATA_ERROR
    CREATE_OBJECT_CLASS_ABSTRACT
    You attempted to instantiate an abstract class.
    Exception class: CX_SY_CREATE_OBJECT_ERROR
    CREATE_OBJECT_CLASS_NOT_FOUND
    The class specified in the dynamic CREATE OBJECT was not found.
    Exception class: CX_SY_CREATE_OBJECT_ERROR
    CREATE_OBJECT_CREATE_PRIVATE
    You attempted to create an object of a class defined as 'CREATE PRIVATE'.
    Exception class: CX_SY_CREATE_OBJECT_ERROR
    CREATE_OBJECT_CREATE_PROTECTED
    You attempted to create an object of a class defined as 'CREATE PROTECTED'.
    Exception class: CX_SY_CREATE_OBJECT_ERROR
    DATA_LENGTH_NEGATIVE
    Invalid subfield access: Length negative
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    DATA_LENGTH_0
    Invalid subfield access: Length 0
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    DATA_LENGTH_TOO_LARGE
    Invalid subfield access: Length too large
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    DATA_OFFSET_NEGATIVE
    Invalid subfield access: Offset negative
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    DATA_OFFSET_LENGTH_TOO_LARGE
    Invalid subfield access: Offset + length too large
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    DATA_OFFSET_LENGTH_NOT_ALLOWED
    Invalid subfield access: Inadequate type
    Exception class: CX_SY_OFFSET_NOT_ALLOWED
    DATASET_CANT_CLOSE
    File could not be closed; there might be no more space in the file system.
    Exception class: CX_SY_FILE_CLOSE
    DATASET_CANT_OPEN
    File cannot be opened
    Exception class: CX_SY_FILE_OPEN
    DATASET_NO_PIPE
    OPEN DATASET with the addition FILTER is not supported on the current operating system.
    Exception class: CX_SY_PIPES_NOT_SUPPORTED
    DATASET_NO_POSITION
    Access to current read/write position of file not possible
    Exception class: CX_SY_FILE_POSITION
    DATASET_NOT_OPEN
    File not open
    Exception class: CX_SY_FILE_OPEN_MODE
    DATASET_OFFSET_TO_LARGE
    Offset specified exceeds the system limit
    Exception class: CX_SY_FILE_POSITION
    DATASET_PIPE_CLOSED
    Pipe for file closed
    Exception class: CX_SY_PIPE_REOPEN
    DATASET_READ_ERROR
    Error reading a file
    Exception class: CX_SY_FILE_IO
    DATASET_READ_ONLY
    File opened in read-only mode
    Exception class: CX_SY_FILE_OPEN_MODE
    DATASET_SEEK_ERROR
    Error positioning in a file
    Exception class: CX_SY_FILE_POSITION
    DATASET_TOO_MANY_FILES
    Maximum number of open files exceeded
    Exception class: CX_SY_TOO_MANY_FILES
    DATASET_WRITE_ERROR
    Error writing a file
    Exception class: CX_SY_FILE_IO
    DYN_CALL_METH_CLASSCONSTRUCTOR
    You attempted to call the class constructor.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_CLASS_ABSTRACT
    You attempted to call an abstract method.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_CLASS
    DYN_CALL_METH_CLASS_NOT_FOUND
    You attempted to call a method of a class that does not exist.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_CLASS
    DYN_CALL_METH_CONSTRUCTOR
    You attempted to call the instance constructor.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_EXCP_NOT_FOUND
    You attempted to catch an unknown exception.
    Exception class: CX_SY_DYN_CALL_EXCP_NOT_FOUND
    DYN_CALL_METH_NOT_FOUND
    You attempted to call an unknown method.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_NOT_IMPLEMENTED
    You attempted to call a method not yet implemented.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_NO_CLASS_METHOD
    You attempted to call an instance method through a class.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_PARAM_KIND
    You attempted to pass a parameter with a wrong parameter type.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE
    DYN_CALL_METH_PARAM_LITL_MOVE
    You attempted to pass a constant actual parameter to a formal EXPORTING, CHANGING, or RETURNING parameter.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE
    DYN_CALL_METH_PARAM_MISSING
    A required parameter was not filled.
    Exception class: CX_SY_DYN_CALL_PARAM_MISSING
    DYN_CALL_METH_PARAM_NOT_FOUND
    You attempted to pass an unknown parameter.
    Exception class: CX_SY_DYN_CALL_PARAM_NOT_FOUND
    DYN_CALL_METH_PARAM_TAB_TYPE
    You attempted to pass a parameter with a wrong table type.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE
    DYN_CALL_METH_PARAM_TYPE
    You attempted to pass a parameter with a wrong type.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_TYPE
    DYN_CALL_METH_PARREF_INITIAL
    An initial data reference was passed for a required parameter.
    Exception class: CX_SY_DYN_CALL_PARAM_MISSING
    DYN_CALL_METH_PRIVATE
    You attempted to call a private method outside.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_PROTECTED
    You attempted to call a protected method outside.
    Exception class: CX_SY_DYN_CALL_ILLEGAL_METHOD
    DYN_CALL_METH_REF_IS_INITIAL
    You attempted to call a method to an initial reference.
    Exception class: CX_SY_REF_IS_INITIAL
    EXPORT_BUFFER_NO_MEMORY
    The EXPORT data cluster is too large for the application buffer.
    Exception class: CX_SY_EXPORT_BUFFER_NO_MEMORY
    EXPORT_DATASET_CANNOT_OPEN
    The IMPORT/EXPORT statement was unable to open the file.
    Exception class: CX_SY_FILE_OPEN
    EXPORT_DATASET_WRITE_ERROR
    The Export statement could not write the file.
    Exception class: CX_SY_FILE_IO
    GENERATE_SUBPOOL_DIR_FULL
    The system is unable to generate another temporary subroutine pool.
    Exception class: CX_SY_GENERATE_SUBPOOL_FULL
    IMPORT_ALIGNMENT_MISMATCH
    Import error; identical sequence of components but with type conflict or with different integration into structured data types
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    IMPORT_TYPE_MISMATCH
    Import error; only at IMPORT...FROM MEMORY | FROM SHARED BUFFER...
    Exception class: None since this runtime error can not longer be caught
    IMPORT_WRONG_END_POS
    Import error; dataset has a different length.
    Exception class: CX_SY_IMPORT_MISMATCH_ERROR
    MOVE_CAST_ERROR
    Type conflict assigning between object and/or interface references (only MOVE...?TO... or operator ?=)
    Exception class: CX_SY_MOVE_CAST_ERROR
    OPEN_DATASET_NO_AUTHORITY
    No authorization to access a file
    Exception class: CX_SY_FILE_AUTHORITY
    OPEN_PIPE_NO_AUTHORITY
    No authorization to access a file (OPEN DATASET...FILTER...)
    Exception class: CX_SY_FILE_AUTHORITY
    PERFORM_PROGRAM_NAME_TOO_LONG
    Invalid program name in the PERFORM statement
    Exception class: CX_SY_PROGRAM_NOT_FOUND
    REFI_WRONG_SECTION
    Wrong offset/length specification in the REPLACE statement
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    REPLACE_INFINITE_LOOP
    SECTION of length 0 in the REPLACE statement
    Exception class: CX_SY_REPLACE_INFINITE_LOOP
    RMC_COMMUNICATION_FAILURE
    Communication error during Remote Method Call
    Exception class: CX_SY_RMC_COMM_FAILURE
    RMC_INVALID_STATUS
    State error during Remote Method Call
    Exception class: CX_SY_RMC_INVALID_STATUS
    RMC_SYSTEM_FAILURE
    System error during Remote Method Call
    Exception class: CX_SY_RMC_SYSTEM_FAILURE
    STRING_LENGTH_NEGATIVE
    Invalid access with negative length to a string
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    STRING_LENGTH_TOO_LARGE
    Invalid access to a string (length too large)
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    STRING_OFFSET_NEGATIVE
    Invalid access with negative offset to a string
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    STRING_OFFSET_TOO_LARGE
    Invalid access to a string (offset too large)
    Exception class: CX_SY_RANGE_OUT_OF_BOUNDS
    STRING_OFFSET_LENGTH_TOO_LARGE
    Invalid access to a string (offset + length too large)
    Exception class: CX_SY_LOCALIZATION_ERROR
    TEXTENV_CODEPAGE_NOT_ALLOWED
    Character set not released in the system (SET LOCALE...)
    TEXTENV_INVALID
    Error setting the text environment (SET LOCALE...)
    Exception class: CX_SY_LOCALIZATION_ERROR

  • How to implement Strategy pattern in ABAP Objects?

    Hello,
    I have a problem where I need to implement different algorithms, depending on the type of input. Example: I have to calculate a Present Value, sometimes with payments in advance, sometimes payment in arrear.
    From documentation and to enhance my ABAP Objects skills, I would like to implement the strategy pattern. It sounds the right solution for the problem.
    Hence I need some help in implementing this pattern in OO. I have some basic OO skills, but still learning.
    Has somebody already implemented this pattern in ABAP OO and can give me some input. Or is there any documentation how to implement it?
    Thanks and regards,
    Tapio

    Keshav has already outlined required logic, so let me fulfill his answer with a snippet
    An Interface
    INTERFACE lif_payment.
      METHODS pay CHANGING c_val TYPE p.
    ENDINTERFACE.
    Payment implementations
    CLASS lcl_payment_1 DEFINITION.
      PUBLIC SECTION.
      INTERFACES lif_payment.
      ALIASES pay for lif_payment~pay.
    ENDCLASS.                 
    CLASS lcl_payment_2 DEFINITION.
      PUBLIC SECTION.
      INTERFACES lif_payment.
      ALIASES pay for lif_payment~pay.
    ENDCLASS.                   
    CLASS lcl_payment_1 IMPLEMENTATION.
      METHOD pay.
        "do something with c_val i.e.
        c_val = c_val - 10.
      ENDMETHOD.                   
    ENDCLASS.                  
    CLASS lcl_payment_2 IMPLEMENTATION.
      METHOD pay.
        "do something else with c_val i.e.
        c_val = c_val + 10.
      ENDMETHOD.  
    Main class which uses strategy pattern
    CLASS lcl_main DEFINITION.
      PUBLIC SECTION.
        "during main object creation you pass which payment you want to use for this object
        METHODS constructor IMPORTING ir_payment TYPE REF TO lif_payment.
        "later on you can change this dynamicaly
        METHODS set_payment IMPORTING ir_payment TYPE REF TO lif_payment.
        METHODS show_payment_val.
        METHODS pay.
      PRIVATE SECTION.
        DATA payment_value TYPE p.
        "reference to your interface whcih you will be working with
        "polimorphically
        DATA mr_payment TYPE REF TO lif_payment.
    ENDCLASS.                  
    CLASS lcl_main IMPLEMENTATION.
      METHOD constructor.
        IF ir_payment IS BOUND.
          me->mr_payment = ir_payment.
        ENDIF.
      ENDMETHOD.                  
      METHOD set_payment.
        IF ir_payment IS BOUND.
          me->mr_payment = ir_payment.
        ENDIF.
      ENDMETHOD.                  
      METHOD show_payment_val.
        WRITE /: 'Payment value is now ', me->payment_value.
      ENDMETHOD.                  
      "hide fact that you are using composition to access pay method
      METHOD pay.
        mr_payment->pay( CHANGING c_val = payment_value ).
      ENDMETHOD.                   ENDCLASS.                  
    Client application
    PARAMETERS pa_pay TYPE c. "1 - first payment, 2 - second
    DATA gr_main TYPE REF TO lcl_main.
    DATA gr_payment TYPE REF TO lif_payment.
    START-OF-SELECTION.
      "client application (which uses stategy pattern)
      CASE pa_pay.
        WHEN 1.
          "create first type of payment
          CREATE OBJECT gr_payment TYPE lcl_payment_1.
        WHEN 2.
          "create second type of payment
          CREATE OBJECT gr_payment TYPE lcl_payment_2.
      ENDCASE.
      "pass payment type to main object
      CREATE OBJECT gr_main
        EXPORTING
          ir_payment = gr_payment.
      gr_main->show_payment_val( ).
      "now client doesn't know which object it is working with
      gr_main->pay( ).
      gr_main->show_payment_val( ).
      "you can also use set_payment method to set payment type dynamically
      "client would see no change
      if pa_pay = 1.
        "now create different payment to set it dynamically
        CREATE OBJECT gr_payment TYPE lcl_payment_2.
        gr_main->set_payment( gr_payment ).
        gr_main->pay( ).
        gr_main->show_payment_val( ).
      endif.
    Regads
    Marcin

  • ABAP OO: traffic lights in ALV

    Hello,
    Instead of going the easy way, I decided to practise a bit of ABAP OO (which I am still quite unfamiliar with), and do ALV list to my new report by using CL_SALV_TABLE class.
    This seems to be quite clear if I just follow Rich's great instructions:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/eac1fa0b-0e01-0010-0990-8530de4908a6
    The only thing that is not so clear is that how can I add traffic (or led) lights to my ALV list when using  class CL_SALV_TABLE. Does someone has an example?
    Another bonus question: Do I always have to define the field catalog (with CL_SALV_TABLE) when using internal table of my own type?

    Hello
    Have a look at the sample report
    SALV_DEMO_TABLE_COLUMNS.Following is the in-line documentation of the report:
    *& Report  SALV_DEMO_TABLE_COLUMNS
    report salv_demo_table_columns no standard page heading.
    *... This report demonstrates the settings for the columns.
    *    The demonstration uses the new ALV API
    *      - cl_salv_table (Fullscreen Grid, Fullscreen List, Grid)
    *      - cl_salv_hierseq_table (hierseq. lists)
    *    If the table ALV_T_T2 is empty, please create data for the demo
    *    by running report BCALV_GENERATE_ALV_T_T2
    * §1   select data into global output table
    * §2   create ALV Table
    *      create instance of cl_salv_table for displaying a list of your
    *      output table
    * §2.1 create a ALV List by setting the parameter LIST_DISPLAY of the
    *      constructor cl_salv_table to 'X'
    * §2.2 create a ALV Fullscreen Grid by not setting the parameter
    *      LIST_DISPLAY of the constructor cl_salv_table to 'X'
    * §2.3 create a Grid by creating a Dynpro with a container in it. In
    *      PBO check if the container has been instantiated. If the
    *      container has not yet been instantiated then this is the first
    *      call:
    *            (1) create the container
    *            (2) create an instance of cl_salv_table
    * §3   Functions
    * §3.1 activate ALV generic Functions
    * §3.2 include own functions
    * §4   Cell Types
    * §4.1 Exception Column
    * §4.2 Icon Column
    * §4.3 Symbol Column
    * §4.4 Checkbox Column
    * §4.5 Hotspot Column
    * §4.6 Button Column
    * §4.7 Hyperlink Column
    * §4.8 Dropdown Column
    * §4.9 Tooltip Information for Exceptions, Icons and Symbols
    * §5   Color
    * §5.1 set the color of a complete column by calling the method
    *      set_color of cl_salv_column of the column
    * §5.2 set the color of a complete row
    *      note: by setting the columnname information the same
    *            technique can be used for setting the color of cells
    *      (1) register the column in which the color information
    *          for the row is held
    *      (2) set the color information to the row in the output
    *          table
    *          note: do not fill the parameter FNAME for setting the
    *                color of the complete row
    *                fill the parameter FNAME for setting the color
    *                of a cell (Row and Column are definied)
    * §6   Event Handler
    *      define a handler for the events of cl_salv_table
    * §6.1 define a local class for handling events of cl_salv_table
    *      define methods for the events which are to be handled
    * §6.2 implement the defined methods for handling the events of
    *      cl_salv_table
    * §7   Events
    *      register to events of cl_salv_table
    * §7.1 register to the event USER_COMMAND of cl_salv_table
    *      for receiving information when own functions has been selected
    * §7.2 register to the event DOUBLE_CLICK of cl_salv table
    *      for receiving information when user has double clicked on a line
    * §7.3 register to the event LINK_CLICK of cl_salv_table
    *      for receiving information when user has initiated a hotspot click
    * §8   Display
    *      display the configurated ALV Table by calling the method
    *      display of cl_salv_table.
    Regards
      Uwe

Maybe you are looking for