Oop report programme:  call method

hi, i need ur guys advice about my oop report.  its contain 2 class, lcl_main (main programme), lcl_disp(display report), lcl_update (upload report).  all 3 class defination as below:
*                     C.L.A.S.S  D.E.F.I.N.I.T.I.O.N
class lcl_main definition.
public section.
  methods: init,
           get_filename,
           load_data,
           chk_col,
           chk_data,
           chk_mandatory,
           disp_status.
endclass.
class lcl_disp definition inheriting from lcl_main.
public section.
  methods: chk_9700,
           disp_success.
endclass.
class lcl_update definition inheriting from lcl_main.
public section.
  methods: update9700.
endclass.
the idea was, i planned to put all methods which will be access by lcl_disp and lcl_update into lcl_main.  i currently cofious to call method at lcl_main. currently i done as below, which if want to display (user will choose radio button display - p_view) i will create the object for lcl_disp and call all method in lcl_main and lcl_disp , for example o_disp-> init ... o_disp->loaddata .. and etc. the problem was if i want to choose the update , i need to object for lcl_update and call again the lcl_main with:  o_update-> init ... o_update->loaddata .. and etc. the code as below.
the question , the programme can be successfully run with this method but i faced the problem when i tried to create a call method inside others method because at the START-OF-SELECTION i need to identify with object (lcl_disp or lcl_update) first.
2nd, i tried to figure out how at the start-of-selection , i no need to repeat to call method init, loaddata repeatly for different class (lcl_disp and lcl_update). really need advice. thank you.
*---------------------------------------------------------------------|
*                       INITIALIZATION                                             |
*---------------------------------------------------------------------|
initialization.
data: o_main type ref to lcl_main.
create object: o_main.
*                       START OF SELECTION                              *
start-of-selection.
data: o_disp type ref to lcl_disp,
        o_update type ref to lcl_update.
create object: o_disp, o_update.
if  p_view = 'X'. "for view report
  set handler o_handler->handle_event for all instances.
  call method o_disp->init.
  call method o_disp->load_data.
  call method o_disp->chk_col.
  "only proceeed if initial - col header and pernr syntax (pre 100 and length = 8)
    if o_disp->status = 0.
     call method o_disp->chk_data.
    endif.
     if o_disp->status = 0.
     call method o_disp->chk_mandatory.
    endif.
    if  o_disp->status = 0.
      call method o_disp->chk_9700.
    endif.
    call method o_disp->disp_status.
elseif p_upld = 'X'."for update report
  set handler o_handler->handle_event for all instances.
  call method o_update->init.
  call method o_update->load_data.
  call method o_update->chk_col.
  "only proceeed if initial - col header and pernr syntax (pre 100 and length = 8)
    if o_update->status = 0.
     call method o_update->chk_data.
    endif.
    if  o_update->status = 0.
      call method o_update->update9700.
    endif.
    call method o_update->disp_status.
endif.
class lcl_main implementation.
  method get_filename.
endmethod.
  method init.
  endmethod.
  method load_data.
endmethod.
method chk_col.
endmethod.
method chk_data.
endmethod.
method chk_mandatory.
endmethod.
method disp_status.
endmethod.
endclass.
class lcl_disp implementation.
method chk_9700.
endmethod.
method disp_success.
endclass.
class lcl_update implementation.
method update9700.
endmethod.
endclass.
Edited by: firdaus hashim on Nov 23, 2009 11:01 AM

Hello Sam,
Go to the class CL_DD_DOCUMENT (trxn SE24).
In the 'Attributes' tab, check for the attributes with SDYDO_ATTRIBUTE as the associated type.
It gives all the available attributes.
BR,
Suhas

Similar Messages

  • ALV using OOPS class CL_GUI_ALV_GRID, call method SET_TABLE_FOR_FIRST_DISPL

    I NEVER USED OOPS CONCEPT.BUT I GOT A TASK ON ALV REPORT USING class CL_GUI_ALV_GRID, call method SET_TABLE_FOR_FIRST_DISPLAY for ALV . I HAD PASSED THE VALUES FROM INTERNAL TABLE AND GOT OUTPUT IN ALV.
    The problem is When i save an layout(default setting button ).
    iam unable to get the output for all fields.
    if u want i will send screenshots to ur mail
    THANKS IN ADVANCE.

    ok fine,
    In the output (alv grid) there is an icon for layout settings.
    if i want to save layout (as DEFAULT SETTING) i am missing some fields in output
    EX:
    mat no | batch  | proces order | time  |  date |
    when i save layout (as DEFAULT SETTING) i am missing some fields in output
    mat no | batch  |
    the rest of the field were not displayed.
    if u are not clear just ask me. i will send some more examples.

  • ALV OOPS report - Need help

    Hi Friends,
    I just want to convert a normal alv grid report to ALV OOPS report using classes,methods and objects, can you please help me on it.
    *I have sent a sample ALV grid report program.
    REPORT  YSDB_ALV_ECC NO STANDARD PAGE HEADING LINE-SIZE 260 LINE-COUNT 58.
    TABLES:
                    VBRK,
                    VBRP.
    TYPE-POOLS: SLIS.
    TYPES:
                  BEGIN OF Y_VBRK_STRUCT ,
                        VBELN TYPE VBRK-VBELN,
                        FKART TYPE VBRK-FKART,
                        FKDAT TYPE VBRK-FKDAT,
                        BUKRS TYPE VBRK-BUKRS,
                        NETWR TYPE VBRK-NETWR,
                  END OF Y_VBRK_STRUCT.
    TYPES:
                     BEGIN OF Y_VBRP_STRUCT,
                            VBELN TYPE VBRP-VBELN,
                            POSNR TYPE VBRP-POSNR,
                            MATNR TYPE VBRP-MATNR,
                            FKIMG TYPE VBRP-FKIMG,
                            AUBEL TYPE VBRP-AUBEL,
                            KOSTL TYPE VBRP-KOSTL,
                            PS_PSP_PNR TYPE VBRP-PS_PSP_PNR,
                            ARKTX TYPE VBRP-ARKTX,
                     END OF Y_VBRP_STRUCT.
    TYPES:
                  BEGIN OF Y_DISPLAY_STRUCT,
                        VBELN TYPE VBRK-VBELN,
                        FKART TYPE VBRK-FKART,
                        FKDAT TYPE VBRK-FKDAT,
                        BUKRS TYPE VBRK-BUKRS,
                        NETWR TYPE VBRK-NETWR,
                        POSNR TYPE VBRP-POSNR,
                        MATNR TYPE VBRP-MATNR,
                        FKIMG TYPE VBRP-FKIMG,
                        AUBEL TYPE VBRP-AUBEL,
                        KOSTL TYPE VBRP-KOSTL,
                        PS_PSP_PNR TYPE VBRP-PS_PSP_PNR,
                        ARKTX TYPE VBRP-ARKTX,
                  END OF Y_DISPLAY_STRUCT .
    DATA: W_INDEX LIKE SY-TABIX.
    DATA:  W_FIELDCATALOG TYPE SLIS_FIELDCAT_ALV.
    DATA:  T_FIELDCATALOG1 TYPE SLIS_T_FIELDCAT_ALV.
    DATA:  W_REPID TYPE SY-REPID.
    DATA: T_VBRK_ITAB TYPE STANDARD TABLE OF Y_VBRK_STRUCT .
    DATA: T_VBRP_ITAB TYPE STANDARD TABLE OF Y_VBRP_STRUCT .
    DATA: T_DISPLAY_ITAB TYPE STANDARD TABLE OF Y_DISPLAY_STRUCT.
    DATA: E_DISPLAY TYPE Y_DISPLAY_STRUCT.
    SELECT-OPTIONS S_VBELN FOR VBRK-VBELN.
    SELECT-OPTIONS S_BUKRS FOR VBRK-BUKRS.
    SELECT-OPTIONS S_FKDAT FOR VBRK-FKDAT.
    START-OF-SELECTION.
      PERFORM F_GET_DATA1.
      PERFORM F_PROCESS_DATA.
      PERFORM F_FIELDCATLOG.
      PERFORM F_DISPLAY_DATA.
      PERFORM F_CLEAR_FIELDS.
    *&      Form  get_data1
          text
    FORM F_GET_DATA1 .
      SELECT VBELN  FKART FKDAT BUKRS NETWR
        FROM VBRK
        INTO  TABLE T_VBRK_ITAB
       WHERE BUKRS IN S_BUKRS
         AND FKDAT IN S_FKDAT
         AND VBELN IN S_VBELN.
      IF SY-SUBRC NE 0.
        FREE: T_VBRK_ITAB.
      ENDIF.
      IF NOT T_VBRK_ITAB IS INITIAL.
        SELECT VBELN POSNR MATNR FKIMG AUBEL
               KOSTL PS_PSP_PNR ARKTX
          FROM VBRP
          INTO TABLE T_VBRP_ITAB
          FOR ALL ENTRIES IN T_VBRK_ITAB
         WHERE VBELN EQ T_VBRK_ITAB-VBELN.
        IF SY-SUBRC NE 0.
          FREE: T_VBRK_ITAB.
        ENDIF.
      ENDIF.
    ENDFORM.                                                    " GET_DATA1
          text
    -->  p1        text
    <--  p2        text
    FORM F_PROCESS_DATA .
      SORT T_VBRK_ITAB  BY VBELN.
      SORT T_VBRP_ITAB  BY VBELN.
      CLEAR: W_INDEX.
      UNASSIGN <FS_STRUCT1>.
      UNASSIGN <FS_STRUCT2>.
      LOOP AT T_VBRK_ITAB ASSIGNING <FS_STRUCT1>.
        READ TABLE T_VBRP_ITAB ASSIGNING <FS_STRUCT2> WITH KEY VBELN = <FS_STRUCT1>-VBELN BINARY SEARCH.
        IF SY-SUBRC EQ 0.
          MOVE  SY-TABIX TO W_INDEX.
          WHILE SY-SUBRC  IS INITIAL AND <FS_STRUCT1>-VBELN = <FS_STRUCT2>-VBELN.
    *Header Items Moving
            MOVE:
                   <FS_STRUCT1>-FKART TO E_DISPLAY-FKART,
                   <FS_STRUCT1>-FKDAT TO E_DISPLAY-FKDAT,
                   <FS_STRUCT1>-BUKRS TO E_DISPLAY-BUKRS,
                   <FS_STRUCT1>-NETWR TO E_DISPLAY-NETWR.
    *Line items Moving
            MOVE: <FS_STRUCT2>-VBELN TO E_DISPLAY-VBELN,
                  <FS_STRUCT2>-POSNR TO E_DISPLAY-POSNR,
                  <FS_STRUCT2>-MATNR TO E_DISPLAY-MATNR,
                  <FS_STRUCT2>-FKIMG TO E_DISPLAY-FKIMG,
                  <FS_STRUCT2>-AUBEL TO E_DISPLAY-AUBEL,
                  <FS_STRUCT2>-KOSTL TO E_DISPLAY-KOSTL,
                  <FS_STRUCT2>-PS_PSP_PNR TO E_DISPLAY-PS_PSP_PNR,
                  <FS_STRUCT2>-ARKTX TO E_DISPLAY-ARKTX.
            APPEND E_DISPLAY TO T_DISPLAY_ITAB.
            CLEAR  E_DISPLAY.
                      ADD 1 TO W_INDEX.
            READ TABLE T_VBRP_ITAB ASSIGNING <FS_STRUCT2> INDEX  W_INDEX.
            IF SY-SUBRC NE 0.
              EXIT.
            ENDIF.
          ENDWHILE.
        ENDIF.
      ENDLOOP.
    ENDFORM.                                                    " GET_DATA3
    *&      Form  Fieldcatlog
          text
    -->  p1        text
    <--  p2        text
    FORM F_FIELDCATLOG .
      W_FIELDCATALOG-FIELDNAME = TEXT-001.
      W_FIELDCATALOG-SELTEXT_L = TEXT-002.
      MOVE : 1 TO W_FIELDCATALOG-COL_POS,
             20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-FIELDNAME = TEXT-003.
      W_FIELDCATALOG-SELTEXT_L = TEXT-004.
      MOVE : 2 TO W_FIELDCATALOG-COL_POS,
               20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-FIELDNAME = TEXT-005.
      W_FIELDCATALOG-SELTEXT_L = TEXT-006.
      MOVE : 3 TO W_FIELDCATALOG-COL_POS,
              20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-FIELDNAME = TEXT-007.
      W_FIELDCATALOG-SELTEXT_L = TEXT-008.
      MOVE : 4 TO W_FIELDCATALOG-COL_POS,
             20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-FIELDNAME = TEXT-009.
      W_FIELDCATALOG-SELTEXT_L = TEXT-010.
      MOVE : 5 TO W_FIELDCATALOG-COL_POS,
              20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-FIELDNAME = TEXT-011.
      W_FIELDCATALOG-SELTEXT_L = TEXT-012.
      MOVE : 6 TO W_FIELDCATALOG-COL_POS,
             20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-FIELDNAME = TEXT-013.
      W_FIELDCATALOG-SELTEXT_L = TEXT-014.
      MOVE : 7 TO W_FIELDCATALOG-COL_POS,
            20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-FIELDNAME = TEXT-015.
      W_FIELDCATALOG-SELTEXT_L = TEXT-016.
      MOVE : 8 TO W_FIELDCATALOG-COL_POS,
             20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-FIELDNAME = TEXT-017.
      W_FIELDCATALOG-SELTEXT_L = TEXT-018.
      MOVE : 9 TO W_FIELDCATALOG-COL_POS,
             20 TO W_FIELDCATALOG-OUTPUTLEN.
      APPEND W_FIELDCATALOG TO T_FIELDCATALOG1.
      CLEAR W_FIELDCATALOG.
    ENDFORM.                    " Fieldcatlog
    *&      Form  DISPLAY_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM F_DISPLAY_DATA .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM     = W_REPID
          I_CALLBACK_TOP_OF_PAGE = 'AAAAAAAAADDAADA' "TEXT-021
          I_GRID_TITLE           = TEXT-020
          IT_FIELDCAT            = T_FIELDCATALOG1
        TABLES
          T_OUTTAB               = T_DISPLAY_ITAB.
      IF SY-SUBRC NE 0.
        EXIT.
      ENDIF.
      CLEAR: W_REPID.
      CLEAR: T_FIELDCATALOG1.
    ENDFORM.                    " DISPLAY_DATA
    *&      Form  F_Clear_fields
          text
    -->  p1        text
    <--  p2        text
    FORM F_CLEAR_FIELDS .
      FREE: T_VBRK_ITAB.
      FREE: T_VBRP_ITAB.
      FREE: T_DISPLAY_ITAB.
      CLEAR: W_FIELDCATALOG.
    ENDFORM.                    " F_Clear_fields
    Regards
    Dinesh

    In ALV oops,
    1. You need screen on which you must create a custom container. - screen 100
    2. In PBO of 100, create module for displaying ALV
    MODULE DISPLAY_ALV OUTPUT
    PERFORM CREATE_CONTAINER "IN WHICH YOU USE THE CREATE OBJECT METHOD OF CL_GUI_CUSTOM_CONTAINER
    PERFORM CREATE_ALV "IN WHICH YOU USE CREATE_OBJECT METHOD OF CL_GUI_ALV_GRID.
    PERFORM PREPARE_FIELDCAT "creating fcat using LVC_S_FCAT structure
    PERFORM DISPLAY "here you use the SET_TABLE_FOR_FIRST_DISPLAY method of CL_GUI_ALV_GRID class,
    where you provide the internal table name and fieldcat internal table
    ENDMODULE

  • How to get the o/p of the report by calling a method in grid form or table.

    Hi All,
    I have a doubt in using the function module from the report . Can any one tell me how to achieve this.l
    method GET_CUSTOMERS.
    DATA IT_IDRANGE TYPE TABLE OF BAPICUSTOMER_IDRANGE  INITIAL SIZE 0.
    DATA IT_ADDRDATA  TYPE TABLE OF BAPICUSTOMER_ADDRESSDATA  INITIAL SIZE 0.
    DATA WA_IDRANGE LIKE LINE OF IT_IDRANGE.
    DATA WA_ADDRDATA LIKE LINE OF  IT_ADDRDATA.
    *WA_IDRANGE = IDRANGE.
    *WRITE / WA_IDRANGE.
    WA_IDRANGE-SIGN = 'I'.
    WA_IDRANGE-OPTION = 'CP'.
    WA_IDRANGE-LOW   = '*'.
    WA_IDRANGE-HIGH = ' '.
    WRITE: / WA_IDRANGE-SIGN,WA_IDRANGE-OPTION,WA_IDRANGE-LOW,WA_IDRANGE-HIGH.
    APPEND WA_IDRANGE TO IT_IDRANGE.
    CALL FUNCTION 'BAPI_CUSTOMER_GETLIST'
    EXPORTING
      MAXROWS           = 0
      CPDONLY           =
    IMPORTING
      RETURN            =
      TABLES
       IDRANGE           = IT_IDRANGE
       ADDRESSDATA       = it_addrdata
      SPECIALDATA       =
    loop at it_addrdata into wa_addrdata.
      write / wa_addrdata.
      ENDLOOP.
    endmethod.
    now from the report am calling this and i need the result ie wa_addrdata in table form so while using the FM ALV_GRID_DISPLAY in class am getting the o/p. but how do i acheive it from report(SE38)
    DATA OBJ TYPE REF TO ZGBAPI_CUSTOMER_GETLIST.
    CREATE OBJECT OBJ.
    DATA IT_IDRANGE TYPE TABLE OF BAPICUSTOMER_IDRANGE INITIAL SIZE 0.
    DATA IT_ADDRDATA  TYPE TABLE OF BAPICUSTOMER_ADDRESSDATA INITIAL SIZE 0.
    DATA WA_IDRANGE LIKE LINE OF IT_IDRANGE.
    DATA WA_ADDRDATA LIKE LINE OF  IT_ADDRDATA.
    *WRITE / WA_IDRANGE.
    *WA_IDRANGE-SIGN = 'I'.
    *WA_IDRANGE-OPTION = 'CP'.
    WA_IDRANGE-LOW   = ''.
    *WA_IDRANGE-HIGH = ' '.
    CALL METHOD OBJ->get_customers
      EXPORTING
        idrange     = WA_IDRANGE
      IMPORTING
        addressdata =  WA_ADDRDATA
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
      I_CALLBACK_PROGRAM                = ' '
      I_CALLBACK_PF_STATUS_SET          = ' '
      I_CALLBACK_USER_COMMAND           = ' '
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  = 'BAPICUSTOMER_ADDRESSDATA'
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      =
      I_GRID_SETTINGS                   =
      IS_LAYOUT                         =
      IT_FIELDCAT                       =
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
      IT_EVENTS                         =
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      I_HTML_HEIGHT_TOP                 = 0
      I_HTML_HEIGHT_END                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      IR_SALV_FULLSCREEN_ADAPTER        =
    *IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
      TABLES
        t_outtab                          =   IT_ADDRDATA
    EXCEPTIONS
      PROGRAM_ERROR                     = 1
       OTHERS                            = 2
    IF sy-subrc <> 0.
    Implement suitable error handling here
    ENDIF.
    **"endloop.
    i want the o/p of this in table form... Pleae help.

    Thanks a lot Rod for your prompt reply.
    I agree with you about the accuracy of the data. Are you aware of any other way to track the execution times of Discoverer reports?
    Thanks
    Giovanni

  • ABAP OOP / Calling Method  ...Help

    Trying out few oop codes....
    While calling class instance methods and passing parameters, when to use the following syntax.
    data: cvar  type ref to class1.
             cvar->method( exporting variable1 = value )
           (or) some time i see sample codes with out key  word 'exporting'
                  cvar->method(  variable1 = value  ) .
           (or)
                  cvar->method(  value  ) .
           (or) some times with key word CALL  METHOD
       CREATE OBJECT cvar
       CALL METHOD cvar->method
       EXPORTING
       variable1 = value. 
    Tried out a uniform way of calling ,but getting errors.Any inputs please..
    Thanks,
    Bvan

    Bhavan,
      First  declare the class.
      Implement the class.
    Declare the Class reference variable
    Create the class object.
    call the method.
      data: cvar type ref to class1.
              CREATE OBJECT cvar
    Calling Methods
    To call a method, use the following statement:
    CALL METHOD <meth> EXPORTING... <ii> =.<f i>...
                       IMPORTING... <ei> =.<g i>...
                       CHANGING ... <ci> =.<f i>...
                       RECEIVING         r = h
                       EXCEPTIONS... <ei> = rc i...
    The way in which you address the method <method> depends on the method itself and from where you are calling it. Within the implementation part of a class, you can call the methods of the same class directly using their name <meth>.
    CALL METHOD <meth>...
    Outside the class, the visibility of the method depends on whether you can call it at all. Visible instance methods can be called from outside the class using
    CALL METHOD <ref>-><meth>...
    where <ref> is a reference variable whose value points to an instance of the class. Visible instance methods can be called from outside the class using
    CALL METHOD <class>=><meth>...
    where <class> is the name of the relevant class.
    When you call a method, you must pass all non-optional input parameters using the EXPORTING or CHANGING addition in the CALL METHOD statement. You can (but do not have to) import the output parameters into your program using the IMPORTING or RECEIVING addition. Equally, you can (but do not have to) handle any exceptions triggered by the exceptions using the EXCEPTIONS addition. However, this is recommended.
    You pass and receive values to and from methods in the same way as with function modules, that is, with the syntax:
    ... <Formal parameter> = <Actual parameter>
    after the corresponding addition. The interface parameters (formal parameters) are always on the left-hand side of the equals sign. The actual parameters are always on the right. The equals sign is not an assignment operator in this context; it merely serves to assign program variables to the interface parameters of the method.
    If the interface of a method consists only of a single IMPORTING parameter, you can use the following shortened form of the method call:
    CALL METHOD <method>( f).
    The actual parameter <f> is passed to the input parameters of the method.
    If the interface of a method consists only of IMPORTING parameters, you can use the following shortened form of the method call:
    CALL METHOD <method>(....<ii> =.<f i>...).
    Each actual parameter <f i > is passed to the corresponding formal parameter <i i >.
    Pls. mark if useful

  • Calling  Report in   Customized Method   Created in  ZBUS2081

    Hi ,
    I have created ZBUS2081  in that I  have  create one Customized  method  ZEMAIL  .
    now  in SE38   i have  wriiten  logic  to send  email to  person   .
    I want to use  this  report in ZEMIL   method   .   even I  used that  report  by  using   SUBMIT    but  it's  not  working    .
    mail is  not  going to respective person   .    the code which  i have written for sending  mail   is correct   .
    Please  suggest  any   solution   if  any code is  available  or  is there  any  link availabe then  please provide it .
    Regards,
    Sandeep

    Hi Sandeep,
    Create a method which refers to report. System will generate the code "Submit ZREPORT WITH SELE CRITERIA AND RETURN". This will surely work if you pass all mandatory selection paramters. If the problem is with mail then check the parameters/code used for sending the mail.
    Regards,
    Vaishali.

  • No CALL METHOD syntax used in Dynpro programming

    Hi Gurus,
    I have just starded with Web Dynpro ABAP. I found that while writing code we don't use CALL METHOD .
    i.eTABLE_NODE = WD_CONTEXT->GET_CHILD_NODE('MY_TABLE_NODE').
    How can we directly call a method using interface variable e.g WD_CONTEXT without syntax CALL METHOD?
    Can anyone explain?
    I am not much familiar with OOPs.
    Thanks in advance.

    Hi Anzy,
    Can u correct this program to let me understand this concept. ( An example ABAP OOPs program)
    REPORT  zjt_test_interface.
    INCLUDE  zjt_test_interfac_class.
    DATA : dd TYPE REF TO demo ,
           inter TYPE REF TO sample,
           inter1 TYPE REF TO sample.
    START-OF-SELECTION.
      CREATE OBJECT dd .
      inter = dd.
      call method inter->test. ******No error with this statement
    inter1 = inter->test.  *********** This statement gives error "Field 'Test' unknown
    The below code is a separate include program.
    *&  Include           ZJT_TEST_INTERFAC_CLASS
    INTERFACE sample  .
      METHODS  test .
    ENDINTERFACE.                    "sample
          CLASS demo DEFINITION
    CLASS demo DEFINITION.
      PUBLIC SECTION.
        INTERFACES sample .
        METHODS : constructor.
    ENDCLASS.                    "demo DEFINITION
          CLASS demo IMPLEMENTATION
    CLASS demo IMPLEMENTATION.
      METHOD constructor.
      ENDMETHOD.                    "constructor
      METHOD  sample~test.
        WRITE : 'Method test of Interface sample executed'.
      ENDMETHOD.                    "sample~test

  • A simple ALV report using classes & methods ...

    i want a  simple ALV report using classes & methods ...
    my requirement : i have to use classes & methods instead  of calling a function module to display in grid or list format.
               plz send me with explanation ASAP...it's very urgent..
               Thanks in advance .

    Hi
    Please refer
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a415907
    U can use methods for vreating ALVs.
    There is a method named set_table_for_first_display in OOP Concepts.
    Use this Object Oriented Approach for ALV Creation
    Calling the method set_table_for_first_display
    CALL METHOD cust_alv->set_table_for_first_display
    EXPORTING
    is_layout = gst_layout
    CHANGING
    it_outtab = gt_list
    it_fieldcatalog = gt_fcat
    EXCEPTIONS
    invalid_parameter_combination = 1
    program_error = 2
    too_many_lines = 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.
    ENDIF.
    Object Creation and all
    Creation of Object for Container
    CREATE OBJECT cust_container
    EXPORTING
    container_name = 'ALV_CONTAINER'
    EXCEPTIONS
    cntl_error = 1
    cntl_system_error = 2
    create_error = 3
    lifetime_error = 4
    lifetime_dynpro_dynpro_link = 5
    others = 6
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    Creation of Object for ALV Grid
    CREATE OBJECT cust_alv
    EXPORTING
    i_parent = cust_container
    EXCEPTIONS
    error_cntl_create = 1
    error_cntl_init = 2
    error_cntl_link = 3
    error_dp_create = 4
    others = 5
    IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    Layout settings
    gst_layout-zebra ='X'.
    gst_layout-cwidth_opt = 'X'.
    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
    I_BUFFER_ACTIVE =
    I_STRUCTURE_NAME = 'ZCS_INACTV_CUST'
    I_CLIENT_NEVER_DISPLAY = 'X'
    I_BYPASSING_BUFFER =
    CHANGING
    ct_fieldcat = gt_fcat
    EXCEPTIONS
    INCONSISTENT_INTERFACE = 1
    PROGRAM_ERROR = 2
    OTHERS = 3
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Calling the method set_table_for_first_display
    CALL METHOD cust_alv->set_table_for_first_display
    EXPORTING
    is_layout = gst_layout
    CHANGING
    it_outtab = gt_list
    it_fieldcatalog = gt_fcat
    EXCEPTIONS
    invalid_parameter_combination = 1
    program_error = 2
    too_many_lines = 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.
    ENDIF.
    For object oriented concepts refer this link https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b6cae890-0201-0010-ef8b-f970a9c41d47
    Reaward if helpful

  • To call method in program

    Hi experts,
                 Method is already created, Now i have to call that method in one Dummy program. Please send me that program with logic. I am sending you class name and already created method.
    Class name:ZCl_configurable_item
    Method name:Is_sequence_Not_To_Print
    Please call this method in Dummy program, I needed this with the program logic.
    method IS_SEQUENCE_NOT_TO_PRINT .
    DATA : l_kunnr TYPE kunnr,
           l_kna1katr6 TYPE kna1-katr6,
           l_katr6 TYPE kna1-katr6,
           l_katr6_1 TYPE zkatr6_line.
    *DATA : l_katr6_1 TYPE STANDARD TABLE OF zkatr6_line. " OCCURS 0 WITH HEADER LINE.
    DATA : l_zliteral_tab TYPE ZLITERAL_TAB_TYPE,
           l_zliteral type zliteral.
    DATA : condtype_range_out TYPE Z_KATR6_TT.
    SELECT SINGLE kunnr FROM vbpa
                        INTO l_kunnr
                        WHERE vbeln = vbdkr_vbeln AND
                              ( parvw = 'RE' OR
                                parvw = 'BP' ).
    SELECT SINGLE katr6 FROM kna1
                        INTO l_kna1katr6
                        WHERE kunnr = l_kunnr.
      l_katr6 = l_kna1katr6+0(1).
    SELECT * FROM zliteral
             INTO table l_zliteral_tab
             WHERE zkey1 = c_zlit_genosys_key AND
                   zkey2 = c_katr6_1.
        loop at l_zliteral_tab into l_zliteral.
          clear l_katr6_1.
          l_katr6_1-sign = l_zliteral-zvalue1.
          l_katr6_1-option = l_zliteral-zvalue2.
          l_katr6_1-low = l_zliteral-zvalue3.
          append l_katr6_1 to condtype_range_out.
          Condense l_katr6_1-low.
          IF l_katr6 EQ l_katr6_1-low.
            IS_SEQUENCE_NOT_TO_PRINT = c_checked.
            EXIT.
          ELSE.
            IS_SEQUENCE_NOT_TO_PRINT = SPACE.
          ENDIF.
        endloop.
    Thanks & Regards

    Hi
    In the report program first u have to create an object with ref to class then call that method like
    report ztest.
    create object zt1 type ref to ZCl_configurable_item.
    CALL method zt1->Is_sequence_Not_To_Print importing....
        exporting....
    like this.
    See the help for create object in ABAPDOCU.
    mark points if helpful.
    Regs
    Manas Ranjan Panda

  • CALL METHOD GRID4- SET_TABLE_FOR_FIRST_DISPLAY

    Hi All,
    I would like to know how to display 5 internal table same time in a single output screen. I have attached the program for your reference.
    Presently I am able to get i_final1 and i_final2 output on the screen. I need to display on the same screen grid 3 and grid 4. Is it possible to display.
    *& REPORT  Z_READ_PROFILE
    REPORT  Z_READ_PROFILE.
    TABLES: TCATS, TCATST, TCATX_GRID.
    DATA: ST_CT1_FIELDCAT1 TYPE LVC_T_FCAT WITH HEADER LINE.
    DATA: IT_CT1_FIELDCAT1 TYPE LVC_T_FCAT.
    DATA: ST_CT1_FIELDCAT2 TYPE LVC_T_FCAT WITH HEADER LINE.
    DATA: IT_CT1_FIELDCAT2 TYPE LVC_T_FCAT.
    DATA: ST_CT1_FIELDCAT3 TYPE LVC_T_FCAT WITH HEADER LINE.
    DATA: IT_CT1_FIELDCAT3 TYPE LVC_T_FCAT.
    DATA: ST_CT1_FIELDCAT4 TYPE LVC_T_FCAT WITH HEADER LINE.
    DATA: IT_CT1_FIELDCAT4 TYPE LVC_T_FCAT.
    DATA: DOCK TYPE REF TO CL_GUI_DOCKING_CONTAINER,
          SPLIT TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
          GRID1 TYPE REF TO CL_GUI_ALV_GRID,
          GRID2 TYPE REF TO CL_GUI_ALV_GRID,
          GRID3 TYPE REF TO CL_GUI_ALV_GRID,
          GRID4 TYPE REF TO CL_GUI_ALV_GRID,
          DOC1 TYPE REF TO CL_GUI_DOCKING_CONTAINER,
          DOC3 TYPE REF TO CL_GUI_DOCKING_CONTAINER,
          DOC4 TYPE REF TO CL_GUI_DOCKING_CONTAINER,
          CON22 TYPE REF TO CL_GUI_DOCKING_CONTAINER,
          LI_FIELDCAT1 TYPE LVC_T_FCAT.
    SELECTION-SCREEN: BEGIN OF BLOCK B1.
    PARAMETERS: P_PROF1 LIKE TCATS-VARIANT,
                 P_PROF2 LIKE TCATS-VARIANT.
    SELECTION-SCREEN: END OF BLOCK B1.
    DATA: BEGIN OF I_DD03P OCCURS 0.
           INCLUDE STRUCTURE DD03P.
    DATA: END OF I_DD03P.
    DATA: BEGIN OF I_FIELDS1 OCCURS 0,
           PROFILE  LIKE TCATS-VARIANT,
           MFIELD   TYPE FAWFLDNAM,
           INPUT    LIKE RSFAC-INPUT,
           OBLIGAT  LIKE RSFAC-OBLIGAT,
           DISPLAY  LIKE RSFAC-DISPLAY,
           NOTACT   LIKE RSFAC-NOTACT,
          END OF I_FIELDS1.
    DATA: BEGIN OF I_FIELDS2 OCCURS 0,
           PROFILE  LIKE TCATS-VARIANT,
           MFIELD   TYPE FAWFLDNAM,
           INPUT    LIKE RSFAC-INPUT,
           OBLIGAT  LIKE RSFAC-OBLIGAT,
           DISPLAY  LIKE RSFAC-DISPLAY,
           NOTACT   LIKE RSFAC-NOTACT,
          END OF I_FIELDS2.
    DATA: BEGIN OF I_FINAL1 OCCURS 0,
           PROFILE  LIKE TCATS-VARIANT,
           TEXT     LIKE TCATST-TEXT,
           MFIELD   TYPE FAWFLDNAM,
           INPUT    LIKE RSFAC-INPUT,
           OBLIGAT  LIKE RSFAC-OBLIGAT,
           DISPLAY  LIKE RSFAC-DISPLAY,
           NOTACT   LIKE RSFAC-NOTACT,
          END OF I_FINAL1.
    DATA: BEGIN OF I_FINAL2 OCCURS 0,
           PROFILE  LIKE TCATS-VARIANT,
           TEXT     LIKE TCATST-TEXT,
           MFIELD   TYPE FAWFLDNAM,
           INPUT    LIKE RSFAC-INPUT,
           OBLIGAT  LIKE RSFAC-OBLIGAT,
           DISPLAY  LIKE RSFAC-DISPLAY,
           NOTACT   LIKE RSFAC-NOTACT,
          END OF I_FINAL2.
    DATA: BEGIN OF ENTRYLIST OCCURS 0,
           MFELD      TYPE FAWFLDNAM,
           VISIBLE    TYPE FAWCUST,
           REQUIRED   TYPE FAWCUST,
           READONLY   TYPE FAWCUST,
           HIDE       TYPE FAWCUST,
           PROF1      LIKE TCATS-VARIANT,
          END OF ENTRYLIST.
    DATA: BEGIN OF WORKLIST OCCURS 0.
           INCLUDE STRUCTURE FIELD_SELECTION.
    DATA: END OF WORKLIST.
    DATA: BEGIN OF I_TCATX_GRID1 OCCURS 0,
            PROFIL        LIKE TCATX_GRID-PROFIL,
            TASKCOMPONENT LIKE TCATX_GRID-TASKCOMPONENT,
            COL           LIKE TCATX_GRID-COL,
            OBLIGAT       LIKE TCATX_GRID-OBLIGAT,
          END OF I_TCATX_GRID1.
    DATA: BEGIN OF I_TCATX_GRID2 OCCURS 0,
            PROFIL        LIKE TCATX_GRID-PROFIL,
            TASKCOMPONENT LIKE TCATX_GRID-TASKCOMPONENT,
            COL           LIKE TCATX_GRID-COL,
            OBLIGAT       LIKE TCATX_GRID-OBLIGAT,
          END OF I_TCATX_GRID2.
    PERFORM STATEMENT TO GET THE DATA BASED ON PORIFLE
    IF NOT P_PROF1 IS INITIAL .
    PERFORM GET_FIELDS1.
    PERFORM GET_COMPONENTS1.
    ENDIF.
    IF NOT P_PROF1 IS INITIAL .
    PERFORM GET_FIELDS2.
    PERFORM GET_COMPONENTS2.
    ENDIF.
    PERFORM COMPARE_TABLES.
    CALL SCREEN 100.
    *&      FORM  GET_FIELDS
          TEXT
    -->  P1        TEXT
    <--  P2        TEXT
    FORM GET_FIELDS1.
    CLEAR  : ENTRYLIST, WORKLIST.
    REFRESH: ENTRYLIST, WORKLIST.
    CALL FUNCTION 'CATS_GET_INFLUENCES'
      EXPORTING
        VARIANT                   = P_PROF1
      TABLES
        ENTRYLIST_SELECTION       = ENTRYLIST
        WORKLIST_SELECTION        = WORKLIST
    IF SY-SUBRC EQ 0.
    LOOP AT ENTRYLIST WHERE VISIBLE  EQ SPACE
                      AND   REQUIRED EQ SPACE
                      AND   READONLY EQ SPACE.
    MOVE 'X' TO ENTRYLIST-HIDE.
    MODIFY ENTRYLIST TRANSPORTING HIDE.
    ENDLOOP.
    LOOP AT ENTRYLIST.
      MOVE P_PROF1              TO I_FIELDS1-PROFILE.
      MOVE ENTRYLIST-MFELD      TO I_FIELDS1-MFIELD.
      IF ENTRYLIST-READONLY NE 'X' AND ENTRYLIST-REQUIRED NE 'X' .
        MOVE ENTRYLIST-VISIBLE  TO I_FIELDS1-INPUT.
      ENDIF.
      MOVE ENTRYLIST-REQUIRED   TO I_FIELDS1-OBLIGAT.
      MOVE ENTRYLIST-READONLY   TO I_FIELDS1-DISPLAY.
      MOVE ENTRYLIST-HIDE       TO I_FIELDS1-NOTACT.
    APPEND I_FIELDS1.
    ENDLOOP.
    ENDIF.
    ENDFORM.                    " GET_FIELDS
    *&      FORM  GET_FIELDS2
          TEXT
    -->  P1        TEXT
    <--  P2        TEXT
    FORM GET_FIELDS2 .
    CLEAR  : ENTRYLIST, WORKLIST.
    REFRESH: ENTRYLIST, WORKLIST.
    CALL FUNCTION 'CATS_GET_INFLUENCES'
      EXPORTING
        VARIANT                   = P_PROF2
      TABLES
        ENTRYLIST_SELECTION       = ENTRYLIST
        WORKLIST_SELECTION        = WORKLIST
    IF SY-SUBRC EQ 0.
    LOOP AT ENTRYLIST WHERE  VISIBLE  EQ SPACE
                       AND   REQUIRED EQ SPACE
                       AND   READONLY EQ SPACE.
    MOVE 'X' TO ENTRYLIST-HIDE.
    MODIFY ENTRYLIST TRANSPORTING HIDE.
    ENDLOOP.
    LOOP AT ENTRYLIST.
      MOVE P_PROF2                TO I_FIELDS2-PROFILE.
      MOVE ENTRYLIST-MFELD        TO I_FIELDS2-MFIELD.
      IF ENTRYLIST-READONLY NE 'X' AND ENTRYLIST-REQUIRED NE 'X' .
        MOVE ENTRYLIST-VISIBLE    TO I_FIELDS2-INPUT.
      ENDIF.
      MOVE ENTRYLIST-REQUIRED     TO I_FIELDS2-OBLIGAT.
      MOVE ENTRYLIST-READONLY     TO I_FIELDS2-DISPLAY.
      MOVE ENTRYLIST-HIDE         TO I_FIELDS2-NOTACT.
    APPEND I_FIELDS2.
    ENDLOOP.
    ENDIF.
    ENDFORM.                    " GET_FIELDS2
    *&      FORM  COMPARE_TABLES
          TEXT
    -->  P1        TEXT
    <--  P2        TEXT
    FORM COMPARE_TABLES .
    CLEAR: I_FIELDS1, I_FIELDS2.
    SORT : I_FIELDS1, I_FIELDS2.
    DATA: L_TABLE LIKE DD03L-TABNAME,
          L_FIELD LIKE DD03L-FIELDNAME.
    LOOP AT I_FIELDS1.
       READ TABLE I_FIELDS2 WITH KEY  MFIELD   = I_FIELDS1-MFIELD
                                      INPUT    = I_FIELDS1-INPUT
                                      OBLIGAT  = I_FIELDS1-OBLIGAT
                                      DISPLAY  = I_FIELDS1-DISPLAY
                                      NOTACT   = I_FIELDS1-NOTACT.
    IF SY-SUBRC NE 0.
      MOVE I_FIELDS1-PROFILE  TO I_FINAL1-PROFILE.
    SPLIT I_FIELDS1-MFIELD AT '-' INTO L_TABLE L_FIELD.
    CALL FUNCTION 'BUS_DDFIELD_GET'
      EXPORTING
        I_TABNM               = L_TABLE
        I_FLDNM               = L_FIELD
       I_LANGU               =  SY-LANGU
      IMPORTING
        E_DD03P               = I_DD03P
    EXCEPTIONS
       FIELD_NOT_FOUND       = 1
       OTHERS                = 2
    IF SY-SUBRC EQ 0.
        MOVE I_DD03P-DDTEXT        TO I_FINAL1-TEXT.
    ENDIF.
      MOVE I_FIELDS1-MFIELD   TO I_FINAL1-MFIELD.
      MOVE I_FIELDS1-INPUT    TO I_FINAL1-INPUT.
      MOVE I_FIELDS1-OBLIGAT  TO I_FINAL1-OBLIGAT.
      MOVE I_FIELDS1-DISPLAY  TO I_FINAL1-DISPLAY.
      MOVE I_FIELDS1-NOTACT   TO I_FINAL1-NOTACT.
      APPEND I_FINAL1.
    ENDIF.
    ENDLOOP.
    SORT : I_FIELDS1, I_FIELDS2.
    LOOP AT I_FIELDS2.
       READ TABLE I_FIELDS1 WITH KEY  MFIELD   = I_FIELDS2-MFIELD
                                      INPUT    = I_FIELDS2-INPUT
                                      OBLIGAT  = I_FIELDS2-OBLIGAT
                                      DISPLAY  = I_FIELDS2-DISPLAY
                                      NOTACT   = I_FIELDS2-NOTACT.
    IF SY-SUBRC NE 0.
      MOVE I_FIELDS2-PROFILE  TO I_FINAL2-PROFILE.
    SPLIT I_FIELDS2-MFIELD AT '-' INTO L_TABLE L_FIELD.
    CALL FUNCTION 'BUS_DDFIELD_GET'
      EXPORTING
        I_TABNM               = L_TABLE
        I_FLDNM               = L_FIELD
       I_LANGU               =  SY-LANGU
      IMPORTING
        E_DD03P               = I_DD03P
    EXCEPTIONS
       FIELD_NOT_FOUND       = 1
       OTHERS                = 2
    IF SY-SUBRC EQ 0.
        MOVE I_DD03P-DDTEXT        TO I_FINAL2-TEXT.
    ENDIF.
      MOVE I_FIELDS2-MFIELD   TO I_FINAL2-MFIELD.
      MOVE I_FIELDS2-INPUT    TO I_FINAL2-INPUT.
      MOVE I_FIELDS2-OBLIGAT  TO I_FINAL2-OBLIGAT.
      MOVE I_FIELDS2-DISPLAY  TO I_FINAL2-DISPLAY.
      MOVE I_FIELDS2-NOTACT   TO I_FINAL2-NOTACT.
      APPEND I_FINAL2.
    ENDIF.
    ENDLOOP.
    ENDFORM.                    " COMPARE_TABLES
    *&      MODULE  STATUS_0100  OUTPUT
          TEXT
    MODULE STATUS_0100 OUTPUT.
      SET PF-STATUS SPACE.
      SET TITLEBAR 'T001'.
    PERFORM FIELDCAT_FINAL1.
    PERFORM FIELDCAT_FINAL2.
    CREATE OBJECT DOCK
        EXPORTING
          REPID                       = SY-REPID
          DYNNR                       = '100'
          EXTENSION                   = '600'
          SIDE                        = '1'
        EXCEPTIONS
          CNTL_ERROR                  = 1
          CNTL_SYSTEM_ERROR           = 2
          CREATE_ERROR                = 3
          LIFETIME_ERROR              = 4
          LIFETIME_DYNPRO_DYNPRO_LINK = 5
          OTHERS                      = 6
      IF SY-SUBRC  NE 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CREATE OBJECT DOC1
        EXPORTING
          REPID                       = SY-REPID
          DYNNR                       = '100'
          EXTENSION                   = '1000'
          SIDE                        = '4'
        EXCEPTIONS
          CNTL_ERROR                  = 1
          CNTL_SYSTEM_ERROR           = 2
          CREATE_ERROR                = 3
          LIFETIME_ERROR              = 4
          LIFETIME_DYNPRO_DYNPRO_LINK = 5
          OTHERS                      = 6
      IF SY-SUBRC NE  0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CREATE OBJECT GRID1 EXPORTING I_PARENT = DOCK.
      CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
        EXPORTING
          I_STRUCTURE_NAME              = 'I_FINAL1'
        CHANGING
          IT_OUTTAB                     = I_FINAL1[]
          IT_FIELDCATALOG               = IT_CT1_FIELDCAT1[]
        EXCEPTIONS
          INVALID_PARAMETER_COMBINATION = 1
          PROGRAM_ERROR                 = 2
          TOO_MANY_LINES                = 3
          OTHERS                        = 4.
      IF SY-SUBRC NE  0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CREATE OBJECT GRID2 EXPORTING I_PARENT = DOC1.
      CALL METHOD GRID2->SET_TABLE_FOR_FIRST_DISPLAY
        EXPORTING
          I_STRUCTURE_NAME              = 'I_FINAL2'
        CHANGING
          IT_OUTTAB                     = I_FINAL2[]
          IT_FIELDCATALOG               = IT_CT1_FIELDCAT2[]
        EXCEPTIONS
          INVALID_PARAMETER_COMBINATION = 1
          PROGRAM_ERROR                 = 2
          TOO_MANY_LINES                = 3
          OTHERS                        = 4.
      IF SY-SUBRC NE  0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    CREATE OBJECT DOC3
        EXPORTING
          REPID                       = SY-REPID
          DYNNR                       = '100'
          EXTENSION                   = '600'
          SIDE                        = '1'
        EXCEPTIONS
          CNTL_ERROR                  = 1
          CNTL_SYSTEM_ERROR           = 2
          CREATE_ERROR                = 3
          LIFETIME_ERROR              = 4
          LIFETIME_DYNPRO_DYNPRO_LINK = 5
          OTHERS                      = 6
      IF SY-SUBRC  NE 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CREATE OBJECT DOC4
        EXPORTING
          REPID                       = SY-REPID
          DYNNR                       = '100'
          EXTENSION                   = '1000'
          SIDE                        = '4'
        EXCEPTIONS
          CNTL_ERROR                  = 1
          CNTL_SYSTEM_ERROR           = 2
          CREATE_ERROR                = 3
          LIFETIME_ERROR              = 4
          LIFETIME_DYNPRO_DYNPRO_LINK = 5
          OTHERS                      = 6
      IF SY-SUBRC NE  0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CREATE OBJECT GRID3 EXPORTING I_PARENT = DOC3.
      CALL METHOD GRID3->SET_TABLE_FOR_FIRST_DISPLAY
        EXPORTING
          I_STRUCTURE_NAME              = 'TCATX_GRID'
        CHANGING
          IT_OUTTAB                     = I_TCATX_GRID1[]
         IT_FIELDCATALOG               = IT_CT1_FIELDCAT1[]
        EXCEPTIONS
          INVALID_PARAMETER_COMBINATION = 1
          PROGRAM_ERROR                 = 2
          TOO_MANY_LINES                = 3
          OTHERS                        = 4.
      IF SY-SUBRC NE  0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CREATE OBJECT GRID4 EXPORTING I_PARENT = DOC4.
      CALL METHOD GRID4->SET_TABLE_FOR_FIRST_DISPLAY
        EXPORTING
          I_STRUCTURE_NAME              = 'TCATX_GRID'
        CHANGING
          IT_OUTTAB                     = I_TCATX_GRID2[]
         IT_FIELDCATALOG               = IT_CT1_FIELDCAT2[]
        EXCEPTIONS
          INVALID_PARAMETER_COMBINATION = 1
          PROGRAM_ERROR                 = 2
          TOO_MANY_LINES                = 3
          OTHERS                        = 4.
      IF SY-SUBRC NE  0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      MODULE  USER_COMMAND_0100  INPUT
          TEXT
    MODULE USER_COMMAND_0100 INPUT.
    CASE SY-UCOMM.
        WHEN 'BACK'.
          LEAVE TO SCREEN 0.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      FORM  FIELDCAT_FINAL1
          TEXT
    -->  P1        TEXT
    <--  P2        TEXT
    FORM FIELDCAT_FINAL1 .
    IF IT_CT1_FIELDCAT1[] IS INITIAL.
    ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
    ST_CT1_FIELDCAT1-FIELDNAME = 'PROFILE'.
    ST_CT1_FIELDCAT1-COL_POS = 0.
    ST_CT1_FIELDCAT1-OUTPUTLEN = 8.
    ST_CT1_FIELDCAT1-SCRTEXT_L = 'PROFILE'.
    ST_CT1_FIELDCAT1-KEY = 'X'.
    APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
    CLEAR ST_CT1_FIELDCAT1.
    ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
    ST_CT1_FIELDCAT1-FIELDNAME = 'MFIELD'.
    ST_CT1_FIELDCAT1-COL_POS = 1.
    ST_CT1_FIELDCAT1-OUTPUTLEN = 15.
    ST_CT1_FIELDCAT1-SCRTEXT_L = 'FIELD'.
    APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
    CLEAR ST_CT1_FIELDCAT1.
    ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
    ST_CT1_FIELDCAT1-FIELDNAME = 'TEXT'.
    ST_CT1_FIELDCAT1-COL_POS = 1.
    ST_CT1_FIELDCAT1-OUTPUTLEN = 30.
    ST_CT1_FIELDCAT1-SCRTEXT_L = 'TEXT'.
    APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
    CLEAR ST_CT1_FIELDCAT1.
    ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
    ST_CT1_FIELDCAT1-FIELDNAME = 'INPUT'.
    ST_CT1_FIELDCAT1-COL_POS = 2.
    ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
    ST_CT1_FIELDCAT1-SCRTEXT_L = 'INPUT'.
    APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
    CLEAR ST_CT1_FIELDCAT1.
    ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
    ST_CT1_FIELDCAT1-FIELDNAME = 'OBLIGAT'.
    ST_CT1_FIELDCAT1-COL_POS = 2.
    ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
    ST_CT1_FIELDCAT1-SCRTEXT_L = 'REQUIRED'.
    APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
    CLEAR ST_CT1_FIELDCAT1.
    ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
    ST_CT1_FIELDCAT1-FIELDNAME = 'DISPLAY'.
    ST_CT1_FIELDCAT1-COL_POS = 2.
    ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
    ST_CT1_FIELDCAT1-SCRTEXT_L = 'DISPLAY'.
    APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
    CLEAR ST_CT1_FIELDCAT1.
    ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
    ST_CT1_FIELDCAT1-FIELDNAME = 'NOTACT'.
    ST_CT1_FIELDCAT1-COL_POS = 2.
    ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
    ST_CT1_FIELDCAT1-SCRTEXT_L = 'HIDE'.
    APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
    CLEAR ST_CT1_FIELDCAT1.
    ENDIF.
    ENDFORM.                    " FIELDCAT_FINAL1
    *&      FORM  FIELDCAT_FINAL2
          TEXT
    -->  P1        TEXT
    <--  P2        TEXT
    FORM FIELDCAT_FINAL2 .
    IF IT_CT1_FIELDCAT2[] IS INITIAL.
    ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
    ST_CT1_FIELDCAT2-FIELDNAME = 'PROFILE'.
    ST_CT1_FIELDCAT2-COL_POS = 0.
    ST_CT1_FIELDCAT2-OUTPUTLEN = 8.
    ST_CT1_FIELDCAT2-SCRTEXT_L = 'PROFILE'.
    ST_CT1_FIELDCAT2-KEY = 'X'.
    APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
    CLEAR ST_CT1_FIELDCAT2.
    ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
    ST_CT1_FIELDCAT2-FIELDNAME = 'MFIELD'.
    ST_CT1_FIELDCAT2-COL_POS = 1.
    ST_CT1_FIELDCAT2-SCRTEXT_L = 'FIELD'.
    ST_CT1_FIELDCAT2-OUTPUTLEN = 15.
    APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
    CLEAR ST_CT1_FIELDCAT2.
    ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
    ST_CT1_FIELDCAT2-FIELDNAME = 'TEXT'.
    ST_CT1_FIELDCAT2-COL_POS = 1.
    ST_CT1_FIELDCAT2-OUTPUTLEN = 30.
    ST_CT1_FIELDCAT2-SCRTEXT_L = 'TEXT'.
    APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
    CLEAR ST_CT1_FIELDCAT2.
    ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
    ST_CT1_FIELDCAT2-FIELDNAME = 'INPUT'.
    ST_CT1_FIELDCAT2-COL_POS = 2.
    ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
    ST_CT1_FIELDCAT2-SCRTEXT_L = 'INPUT'.
    APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
    CLEAR ST_CT1_FIELDCAT2.
    ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
    ST_CT1_FIELDCAT2-FIELDNAME = 'OBLIGAT'.
    ST_CT1_FIELDCAT2-COL_POS = 2.
    ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
    ST_CT1_FIELDCAT2-SCRTEXT_L = 'REQUIRED'.
    APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
    CLEAR ST_CT1_FIELDCAT2.
    ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL1'.
    ST_CT1_FIELDCAT2-FIELDNAME = 'DISPLAY'.
    ST_CT1_FIELDCAT2-COL_POS = 2.
    ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
    ST_CT1_FIELDCAT2-SCRTEXT_L = 'DISPLAY'.
    APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
    CLEAR ST_CT1_FIELDCAT2.
    ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
    ST_CT1_FIELDCAT2-FIELDNAME = 'NOTACT'.
    ST_CT1_FIELDCAT2-COL_POS = 2.
    ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
    ST_CT1_FIELDCAT2-SCRTEXT_L = 'HIDE'.
    APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
    CLEAR ST_CT1_FIELDCAT2.
    ENDIF.
    ENDFORM.                    " FIELDCAT_FINAL2
    *&      Form  GET_COMPONENTS1
          text
    -->  p1        text
    <--  p2        text
    FORM GET_COMPONENTS1 .
    CLEAR  : I_TCATX_GRID1.
    REFRESH: I_TCATX_GRID1.
    SELECT * FROM TCATX_GRID
             INTO CORRESPONDING FIELDS OF TABLE I_TCATX_GRID1
                                      WHERE PROFIL EQ P_PROF1.
    ENDFORM.                    " GET_COMPONENTS1
    *&      Form  GET_COMPONENTS2
          text
    -->  p1        text
    <--  p2        text
    FORM GET_COMPONENTS2 .
    CLEAR  : I_TCATX_GRID2.
    REFRESH: I_TCATX_GRID2.
    SELECT * FROM TCATX_GRID
             INTO CORRESPONDING FIELDS OF TABLE I_TCATX_GRID2
                                      WHERE PROFIL EQ P_PROF2.
    ENDFORM.                    " GET_COMPONENTS2
    Thanks & Regards,
    Nagaraj Kalbavi

    Hi Uwe,
    As per your suggestion I have updated my program with splitter. Now I am able to get 3 internal Table but 4th one is not displaying. What could be the reason. I have attached my program for your reference.
    & REPORT  ZTEST_NAG&
    REPORT  ZTEST_NAG.
    TABLES: TCATS, TCATST, TCATX_GRID.
    DATA: ST_CT1_FIELDCAT1 TYPE LVC_T_FCAT WITH HEADER LINE.
    DATA: IT_CT1_FIELDCAT1 TYPE LVC_T_FCAT.
    DATA: ST_CT1_FIELDCAT2 TYPE LVC_T_FCAT WITH HEADER LINE.
    DATA: IT_CT1_FIELDCAT2 TYPE LVC_T_FCAT.
    data: go_docking       TYPE REF TO cl_gui_docking_container,
          go_splitter      TYPE REF TO cl_gui_splitter_container,
          go_splitter_2    TYPE REF TO cl_gui_splitter_container,
          go_cell_top      TYPE REF TO cl_gui_container,
          go_cell_bottom   TYPE REF TO cl_gui_container,
          go_cell_left     TYPE REF TO cl_gui_container,
          go_cell_right    TYPE REF TO cl_gui_container,
          go_grid1         TYPE REF TO cl_gui_alv_grid,
          go_grid2         TYPE REF TO cl_gui_alv_grid,
          go_grid3         TYPE REF TO cl_gui_alv_grid,
          go_grid4         TYPE REF TO cl_gui_alv_grid.
    SELECTION-SCREEN: BEGIN OF BLOCK B1.
    PARAMETERS: P_PROF1 LIKE TCATS-VARIANT,
                 P_PROF2 LIKE TCATS-VARIANT.
    SELECTION-SCREEN: END OF BLOCK B1.
    DATA: BEGIN OF I_DD03P OCCURS 0.
           INCLUDE STRUCTURE DD03P.
    DATA: END OF I_DD03P.
    DATA: BEGIN OF I_FIELDS1 OCCURS 0,
           PROFILE  LIKE TCATS-VARIANT,
           MFIELD   TYPE FAWFLDNAM,
           INPUT    LIKE RSFAC-INPUT,
           OBLIGAT  LIKE RSFAC-OBLIGAT,
           DISPLAY  LIKE RSFAC-DISPLAY,
           NOTACT   LIKE RSFAC-NOTACT,
          END OF I_FIELDS1.
    DATA: BEGIN OF I_FIELDS2 OCCURS 0,
           PROFILE  LIKE TCATS-VARIANT,
           MFIELD   TYPE FAWFLDNAM,
           INPUT    LIKE RSFAC-INPUT,
           OBLIGAT  LIKE RSFAC-OBLIGAT,
           DISPLAY  LIKE RSFAC-DISPLAY,
           NOTACT   LIKE RSFAC-NOTACT,
          END OF I_FIELDS2.
    DATA: BEGIN OF I_FINAL1 OCCURS 0,
           PROFILE  LIKE TCATS-VARIANT,
           TEXT     LIKE TCATST-TEXT,
           MFIELD   TYPE FAWFLDNAM,
           INPUT    LIKE RSFAC-INPUT,
           OBLIGAT  LIKE RSFAC-OBLIGAT,
           DISPLAY  LIKE RSFAC-DISPLAY,
           NOTACT   LIKE RSFAC-NOTACT,
          END OF I_FINAL1.
    DATA: BEGIN OF I_FINAL2 OCCURS 0,
           PROFILE  LIKE TCATS-VARIANT,
           TEXT     LIKE TCATST-TEXT,
           MFIELD   TYPE FAWFLDNAM,
           INPUT    LIKE RSFAC-INPUT,
           OBLIGAT  LIKE RSFAC-OBLIGAT,
           DISPLAY  LIKE RSFAC-DISPLAY,
           NOTACT   LIKE RSFAC-NOTACT,
          END OF I_FINAL2.
    DATA: BEGIN OF ENTRYLIST OCCURS 0,
           MFELD      TYPE FAWFLDNAM,
           VISIBLE    TYPE FAWCUST,
           REQUIRED   TYPE FAWCUST,
           READONLY   TYPE FAWCUST,
           HIDE       TYPE FAWCUST,
           PROF1      LIKE TCATS-VARIANT,
          END OF ENTRYLIST.
    DATA: BEGIN OF WORKLIST OCCURS 0.
           INCLUDE STRUCTURE FIELD_SELECTION.
    DATA: END OF WORKLIST.
    DATA: BEGIN OF I_TCATX_GRID1 OCCURS 0,
            PROFIL        LIKE TCATX_GRID-PROFIL,
            TASKCOMPONENT LIKE TCATX_GRID-TASKCOMPONENT,
            COL           LIKE TCATX_GRID-COL,
            OBLIGAT       LIKE TCATX_GRID-OBLIGAT,
          END OF I_TCATX_GRID1.
    DATA: BEGIN OF I_TCATX_GRID2 OCCURS 0,
            PROFIL        LIKE TCATX_GRID-PROFIL,
            TASKCOMPONENT LIKE TCATX_GRID-TASKCOMPONENT,
            COL           LIKE TCATX_GRID-COL,
            OBLIGAT       LIKE TCATX_GRID-OBLIGAT,
          END OF I_TCATX_GRID2.
    PERFORM STATEMENT TO GET THE DATA BASED ON PORIFLE
    IF NOT P_PROF1 IS INITIAL .
    PERFORM GET_FIELDS1.
    PERFORM GET_COMPONENTS1.
    ENDIF.
    IF NOT P_PROF1 IS INITIAL .
    PERFORM GET_FIELDS2.
    PERFORM GET_COMPONENTS2.
    ENDIF.
    PERFORM COMPARE_TABLES.
    CALL SCREEN 100.
    *&      FORM  GET_FIELDS
          TEXT
    -->  P1        TEXT
    <--  P2        TEXT
    FORM GET_FIELDS1.
    CLEAR  : ENTRYLIST, WORKLIST.
    REFRESH: ENTRYLIST, WORKLIST.
    CALL FUNCTION 'CATS_GET_INFLUENCES'
      EXPORTING
        VARIANT                   = P_PROF1
      TABLES
        ENTRYLIST_SELECTION       = ENTRYLIST
        WORKLIST_SELECTION        = WORKLIST
    IF SY-SUBRC EQ 0.
    LOOP AT ENTRYLIST WHERE VISIBLE  EQ SPACE
                      AND   REQUIRED EQ SPACE
                      AND   READONLY EQ SPACE.
    MOVE 'X' TO ENTRYLIST-HIDE.
    MODIFY ENTRYLIST TRANSPORTING HIDE.
    ENDLOOP.
    LOOP AT ENTRYLIST.
      MOVE P_PROF1              TO I_FIELDS1-PROFILE.
      MOVE ENTRYLIST-MFELD      TO I_FIELDS1-MFIELD.
      IF ENTRYLIST-READONLY NE 'X' AND ENTRYLIST-REQUIRED NE 'X' .
        MOVE ENTRYLIST-VISIBLE  TO I_FIELDS1-INPUT.
      ENDIF.
      MOVE ENTRYLIST-REQUIRED   TO I_FIELDS1-OBLIGAT.
      MOVE ENTRYLIST-READONLY   TO I_FIELDS1-DISPLAY.
      MOVE ENTRYLIST-HIDE       TO I_FIELDS1-NOTACT.
    APPEND I_FIELDS1.
    ENDLOOP.
    ENDIF.
    ENDFORM.                    " GET_FIELDS
    *&      FORM  GET_FIELDS2
          TEXT
    -->  P1        TEXT
    <--  P2        TEXT
    FORM GET_FIELDS2 .
    CLEAR  : ENTRYLIST, WORKLIST.
    REFRESH: ENTRYLIST, WORKLIST.
    CALL FUNCTION 'CATS_GET_INFLUENCES'
      EXPORTING
        VARIANT                   = P_PROF2
      TABLES
        ENTRYLIST_SELECTION       = ENTRYLIST
        WORKLIST_SELECTION        = WORKLIST
    IF SY-SUBRC EQ 0.
    LOOP AT ENTRYLIST WHERE  VISIBLE  EQ SPACE
                       AND   REQUIRED EQ SPACE
                       AND   READONLY EQ SPACE.
    MOVE 'X' TO ENTRYLIST-HIDE.
    MODIFY ENTRYLIST TRANSPORTING HIDE.
    ENDLOOP.
    LOOP AT ENTRYLIST.
      MOVE P_PROF2                TO I_FIELDS2-PROFILE.
      MOVE ENTRYLIST-MFELD        TO I_FIELDS2-MFIELD.
      IF ENTRYLIST-READONLY NE 'X' AND ENTRYLIST-REQUIRED NE 'X' .
        MOVE ENTRYLIST-VISIBLE    TO I_FIELDS2-INPUT.
      ENDIF.
      MOVE ENTRYLIST-REQUIRED     TO I_FIELDS2-OBLIGAT.
      MOVE ENTRYLIST-READONLY     TO I_FIELDS2-DISPLAY.
      MOVE ENTRYLIST-HIDE         TO I_FIELDS2-NOTACT.
    APPEND I_FIELDS2.
    ENDLOOP.
    ENDIF.
    ENDFORM.                    " GET_FIELDS2
    *&      FORM  COMPARE_TABLES
          TEXT
    -->  P1        TEXT
    <--  P2        TEXT
    FORM COMPARE_TABLES .
    CLEAR: I_FIELDS1, I_FIELDS2.
    SORT : I_FIELDS1, I_FIELDS2.
    DATA: L_TABLE LIKE DD03L-TABNAME,
          L_FIELD LIKE DD03L-FIELDNAME.
    LOOP AT I_FIELDS1.
       READ TABLE I_FIELDS2 WITH KEY  MFIELD   = I_FIELDS1-MFIELD
                                      INPUT    = I_FIELDS1-INPUT
                                      OBLIGAT  = I_FIELDS1-OBLIGAT
                                      DISPLAY  = I_FIELDS1-DISPLAY
                                      NOTACT   = I_FIELDS1-NOTACT.
    IF SY-SUBRC NE 0.
      MOVE I_FIELDS1-PROFILE  TO I_FINAL1-PROFILE.
    SPLIT I_FIELDS1-MFIELD AT '-' INTO L_TABLE L_FIELD.
    CALL FUNCTION 'BUS_DDFIELD_GET'
      EXPORTING
        I_TABNM               = L_TABLE
        I_FLDNM               = L_FIELD
       I_LANGU               =  SY-LANGU
      IMPORTING
        E_DD03P               = I_DD03P
    EXCEPTIONS
       FIELD_NOT_FOUND       = 1
       OTHERS                = 2
    IF SY-SUBRC EQ 0.
        MOVE I_DD03P-DDTEXT        TO I_FINAL1-TEXT.
    ENDIF.
      MOVE I_FIELDS1-MFIELD   TO I_FINAL1-MFIELD.
      MOVE I_FIELDS1-INPUT    TO I_FINAL1-INPUT.
      MOVE I_FIELDS1-OBLIGAT  TO I_FINAL1-OBLIGAT.
      MOVE I_FIELDS1-DISPLAY  TO I_FINAL1-DISPLAY.
      MOVE I_FIELDS1-NOTACT   TO I_FINAL1-NOTACT.
      APPEND I_FINAL1.
    ENDIF.
    ENDLOOP.
    SORT : I_FIELDS1, I_FIELDS2.
    LOOP AT I_FIELDS2.
       READ TABLE I_FIELDS1 WITH KEY  MFIELD   = I_FIELDS2-MFIELD
                                      INPUT    = I_FIELDS2-INPUT
                                      OBLIGAT  = I_FIELDS2-OBLIGAT
                                      DISPLAY  = I_FIELDS2-DISPLAY
                                      NOTACT   = I_FIELDS2-NOTACT.
    IF SY-SUBRC NE 0.
      MOVE I_FIELDS2-PROFILE  TO I_FINAL2-PROFILE.
    SPLIT I_FIELDS2-MFIELD AT '-' INTO L_TABLE L_FIELD.
    CALL FUNCTION 'BUS_DDFIELD_GET'
      EXPORTING
        I_TABNM               = L_TABLE
        I_FLDNM               = L_FIELD
       I_LANGU               =  SY-LANGU
      IMPORTING
        E_DD03P               = I_DD03P
    EXCEPTIONS
       FIELD_NOT_FOUND       = 1
       OTHERS                = 2
    IF SY-SUBRC EQ 0.
        MOVE I_DD03P-DDTEXT        TO I_FINAL2-TEXT.
    ENDIF.
      MOVE I_FIELDS2-MFIELD   TO I_FINAL2-MFIELD.
      MOVE I_FIELDS2-INPUT    TO I_FINAL2-INPUT.
      MOVE I_FIELDS2-OBLIGAT  TO I_FINAL2-OBLIGAT.
      MOVE I_FIELDS2-DISPLAY  TO I_FINAL2-DISPLAY.
      MOVE I_FIELDS2-NOTACT   TO I_FINAL2-NOTACT.
      APPEND I_FINAL2.
    ENDIF.
    ENDLOOP.
    ENDFORM.                    " COMPARE_TABLES
    *&      MODULE  STATUS_0100  OUTPUT
          TEXT
    MODULE STATUS_0100 OUTPUT.
      SET PF-STATUS SPACE.
      SET TITLEBAR 'T001'.
    PERFORM FIELDCAT_FINAL1.
    PERFORM FIELDCAT_FINAL2.
    CREATE OBJECT go_docking
        EXPORTING
          parent                      = cl_gui_container=>screen0
          ratio                       = 90
        EXCEPTIONS
          OTHERS                      = 6.
      IF sy-subrc ne 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    Create splitter container
      CREATE OBJECT go_splitter
        EXPORTING
          parent            = go_docking
          rows              = 1
          columns           = 2
         NO_AUTODEF_PROGID_DYNNR =
         NAME              =
        EXCEPTIONS
          cntl_error        = 1
          cntl_system_error = 2
          OTHERS            = 3.
      IF sy-subrc ne  0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    Get cell container
      CALL METHOD go_splitter->get_container
        EXPORTING
          row       = 1
          column    = 1
        RECEIVING
          container = go_cell_left.
      CALL METHOD go_splitter->get_container
        EXPORTING
          row       = 1
          column    = 2
        RECEIVING
          container = go_cell_right.
    Create 2nd splitter container
      CREATE OBJECT go_splitter_2
        EXPORTING
          parent            = go_cell_left
          rows              = 2
          columns           = 1
         NO_AUTODEF_PROGID_DYNNR =
         NAME              =
        EXCEPTIONS
          cntl_error        = 1
          cntl_system_error = 2
          OTHERS            = 3.
      IF sy-subrc   ne 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    Get cell container
      CALL METHOD go_splitter_2->get_container
        EXPORTING
          row       = 1
          column    = 1
        RECEIVING
          container = go_cell_top.
      CALL METHOD go_splitter_2->get_container
        EXPORTING
          row       = 2
          column    = 1
        RECEIVING
          container = go_cell_bottom.
    Create ALV grids
      CREATE OBJECT go_grid1
        EXPORTING
          i_parent          = go_cell_top
        EXCEPTIONS
          OTHERS            = 5.
      IF sy-subrc ne 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CREATE OBJECT go_grid2
        EXPORTING
          i_parent          = go_cell_right
        EXCEPTIONS
          OTHERS            = 5.
      IF sy-subrc ne  0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CREATE OBJECT go_grid3
        EXPORTING
          i_parent          = go_cell_bottom
        EXCEPTIONS
          OTHERS            = 5.
      IF sy-subrc ne  0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    CREATE OBJECT go_grid4
        EXPORTING
          i_parent          = go_cell_left
        EXCEPTIONS
          OTHERS            = 5.
      IF sy-subrc ne  0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    CALL METHOD go_grid1->set_table_for_first_display
        EXPORTING
          i_structure_name = 'I_FINAL1'
        CHANGING
          it_outtab        = I_FINAL1[]
          IT_FIELDCATALOG  = IT_CT1_FIELDCAT1[]
        EXCEPTIONS
          OTHERS           = 4.
      IF sy-subrc ne 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CALL METHOD go_grid2->set_table_for_first_display
        EXPORTING
          i_structure_name = 'I_FINAL2'
        CHANGING
          it_outtab        = I_FINAL2[]
          IT_FIELDCATALOG  = IT_CT1_FIELDCAT2[]
        EXCEPTIONS
          OTHERS           = 4.
      IF sy-subrc ne 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CALL METHOD go_grid3->set_table_for_first_display
        EXPORTING
          i_structure_name = 'TCATX_GRID'
        CHANGING
          it_outtab        = I_TCATX_GRID1[]    " empty !!!
        EXCEPTIONS
          OTHERS           = 4.
      IF sy-subrc ne 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CALL METHOD go_grid4->set_table_for_first_display
        EXPORTING
          i_structure_name = 'TCATX_GRID'
        CHANGING
          it_outtab        = I_TCATX_GRID2[]    " empty !!!
        EXCEPTIONS
          OTHERS           = 4.
      IF sy-subrc ne 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    Link the docking container to the target dynpro
      CALL METHOD go_docking->link
        EXPORTING
          repid                       = syst-repid
          dynnr                       = '0100'
         CONTAINER                   =
        EXCEPTIONS
          OTHERS                      = 4.
      IF sy-subrc ne  0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      MODULE  USER_COMMAND_0100  INPUT
          TEXT
    MODULE USER_COMMAND_0100 INPUT.
    CASE SY-UCOMM.
        WHEN 'BACK'.
          LEAVE TO SCREEN 0.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      FORM  FIELDCAT_FINAL1
          TEXT
    -->  P1        TEXT
    <--  P2        TEXT
    FORM FIELDCAT_FINAL1 .
    IF IT_CT1_FIELDCAT1[] IS INITIAL.
    ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
    ST_CT1_FIELDCAT1-FIELDNAME = 'PROFILE'.
    ST_CT1_FIELDCAT1-COL_POS = 0.
    ST_CT1_FIELDCAT1-OUTPUTLEN = 8.
    ST_CT1_FIELDCAT1-SCRTEXT_L = 'PROFILE'.
    ST_CT1_FIELDCAT1-KEY = 'X'.
    APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
    CLEAR ST_CT1_FIELDCAT1.
    ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
    ST_CT1_FIELDCAT1-FIELDNAME = 'MFIELD'.
    ST_CT1_FIELDCAT1-COL_POS = 1.
    ST_CT1_FIELDCAT1-OUTPUTLEN = 15.
    ST_CT1_FIELDCAT1-SCRTEXT_L = 'FIELD'.
    APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
    CLEAR ST_CT1_FIELDCAT1.
    ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
    ST_CT1_FIELDCAT1-FIELDNAME = 'TEXT'.
    ST_CT1_FIELDCAT1-COL_POS = 1.
    ST_CT1_FIELDCAT1-OUTPUTLEN = 30.
    ST_CT1_FIELDCAT1-SCRTEXT_L = 'TEXT'.
    APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
    CLEAR ST_CT1_FIELDCAT1.
    ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
    ST_CT1_FIELDCAT1-FIELDNAME = 'INPUT'.
    ST_CT1_FIELDCAT1-COL_POS = 2.
    ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
    ST_CT1_FIELDCAT1-SCRTEXT_L = 'INPUT'.
    APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
    CLEAR ST_CT1_FIELDCAT1.
    ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
    ST_CT1_FIELDCAT1-FIELDNAME = 'OBLIGAT'.
    ST_CT1_FIELDCAT1-COL_POS = 2.
    ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
    ST_CT1_FIELDCAT1-SCRTEXT_L = 'REQUIRED'.
    APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
    CLEAR ST_CT1_FIELDCAT1.
    ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
    ST_CT1_FIELDCAT1-FIELDNAME = 'DISPLAY'.
    ST_CT1_FIELDCAT1-COL_POS = 2.
    ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
    ST_CT1_FIELDCAT1-SCRTEXT_L = 'DISPLAY'.
    APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
    CLEAR ST_CT1_FIELDCAT1.
    ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
    ST_CT1_FIELDCAT1-FIELDNAME = 'NOTACT'.
    ST_CT1_FIELDCAT1-COL_POS = 2.
    ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
    ST_CT1_FIELDCAT1-SCRTEXT_L = 'HIDE'.
    APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
    CLEAR ST_CT1_FIELDCAT1.
    ENDIF.
    ENDFORM.                    " FIELDCAT_FINAL1
    *&      FORM  FIELDCAT_FINAL2
          TEXT
    -->  P1        TEXT
    <--  P2        TEXT
    FORM FIELDCAT_FINAL2 .
    IF IT_CT1_FIELDCAT2[] IS INITIAL.
    ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
    ST_CT1_FIELDCAT2-FIELDNAME = 'PROFILE'.
    ST_CT1_FIELDCAT2-COL_POS = 0.
    ST_CT1_FIELDCAT2-OUTPUTLEN = 8.
    ST_CT1_FIELDCAT2-SCRTEXT_L = 'PROFILE'.
    ST_CT1_FIELDCAT2-KEY = 'X'.
    APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
    CLEAR ST_CT1_FIELDCAT2.
    ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
    ST_CT1_FIELDCAT2-FIELDNAME = 'MFIELD'.
    ST_CT1_FIELDCAT2-COL_POS = 1.
    ST_CT1_FIELDCAT2-SCRTEXT_L = 'FIELD'.
    ST_CT1_FIELDCAT2-OUTPUTLEN = 15.
    APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
    CLEAR ST_CT1_FIELDCAT2.
    ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
    ST_CT1_FIELDCAT2-FIELDNAME = 'TEXT'.
    ST_CT1_FIELDCAT2-COL_POS = 1.
    ST_CT1_FIELDCAT2-OUTPUTLEN = 30.
    ST_CT1_FIELDCAT2-SCRTEXT_L = 'TEXT'.
    APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
    CLEAR ST_CT1_FIELDCAT2.
    ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
    ST_CT1_FIELDCAT2-FIELDNAME = 'INPUT'.
    ST_CT1_FIELDCAT2-COL_POS = 2.
    ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
    ST_CT1_FIELDCAT2-SCRTEXT_L = 'INPUT'.
    APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
    CLEAR ST_CT1_FIELDCAT2.
    ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
    ST_CT1_FIELDCAT2-FIELDNAME = 'OBLIGAT'.
    ST_CT1_FIELDCAT2-COL_POS = 2.
    ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
    ST_CT1_FIELDCAT2-SCRTEXT_L = 'REQUIRED'.
    APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
    CLEAR ST_CT1_FIELDCAT2.
    ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL1'.
    ST_CT1_FIELDCAT2-FIELDNAME = 'DISPLAY'.
    ST_CT1_FIELDCAT2-COL_POS = 2.
    ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
    ST_CT1_FIELDCAT2-SCRTEXT_L = 'DISPLAY'.
    APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
    CLEAR ST_CT1_FIELDCAT2.
    ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
    ST_CT1_FIELDCAT2-FIELDNAME = 'NOTACT'.
    ST_CT1_FIELDCAT2-COL_POS = 2.
    ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
    ST_CT1_FIELDCAT2-SCRTEXT_L = 'HIDE'.
    APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
    CLEAR ST_CT1_FIELDCAT2.
    ENDIF.
    ENDFORM.                    " FIELDCAT_FINAL2
    *&      Form  GET_COMPONENTS1
          text
    -->  p1        text
    <--  p2        text
    FORM GET_COMPONENTS1 .
    CLEAR  : I_TCATX_GRID1.
    REFRESH: I_TCATX_GRID1.
    SELECT * FROM TCATX_GRID
             INTO CORRESPONDING FIELDS OF TABLE I_TCATX_GRID1
                                      WHERE PROFIL EQ P_PROF1.
    ENDFORM.                    " GET_COMPONENTS1
    *&      Form  GET_COMPONENTS2
          text
    -->  p1        text
    <--  p2        text
    FORM GET_COMPONENTS2 .
    CLEAR  : I_TCATX_GRID2.
    REFRESH: I_TCATX_GRID2.
    SELECT * FROM TCATX_GRID
             INTO CORRESPONDING FIELDS OF TABLE I_TCATX_GRID2
                                      WHERE PROFIL EQ P_PROF2.
    ENDFORM.                    " GET_COMPONENTS2
    Thanks & Regards,
    Nagaraj Kalbavi

  • NullPointer when GUI calls method in Client

    Hi, I'm relatively new to Java programming and this conference.
    I hope the following is not too long winded.
    I'm trying to programme a FTP Client which is controlled by a GUI.
    My JBuilder project has three classes:
    ClientGUI.java and ClientFrame.java (produced with JBUilder's New Application option)
    plus AClient.java (this is the 'engine' of the project).
    ClientGUI constructs an instance 'frame' of ClientFrame which in turn constructs an instance 'client' of AClient.
    The call to the AClient constructor has to be in a try/catch statement,
    and takes a JTextArea as a parameter from ClientFrame to allow 'client' to display messges in my GUI.
    The AClient constructor opens the Socket connection to a simple server on the same computer.
    This part works.
    However, when I attempt to use events generated by buttons in my GUI ('frame')to call methods in 'client', I get the following null-pointer exception:-
    java.lang.NullPointerException
    at ClientFrame.jButton1_actionPerformed(ClientFrame.java:219)
    at ClientFrame_jButton1_actionAdapter.actionPerformed(ClientFrame.java:274)
    etc...
    etc...
    These refer to code blocks:-
        if ( client.isAlive() ) {  /*line 219*/
          System.out.println("client alive");
        }where isAlive() is a simple test method that returns true,
    and
      public void actionPerformed(ActionEvent e) {
        adaptee.jButton1_actionPerformed(e);  /*line 274*/
      }'client' is listed as a public field in ClientFrame and is instanciated, so why do I have this problem?
    Enclosing the call in a try/catch statement doesn't help.
    Thanks in advance. Laurence

    The NullPointer means that the client was not instantiated, though you may think it has been.
    Make sure that you are instantiating the correct variable, for instance, if you have a class-level field called client you would do something like this:
    public class WhateverClass {
      private AClient client;
      //other stuff
      public WhateverClass(...) {
        client = //assignment either
                 //with new AClient(...)
                 //or something else
      }You would NOT do:
    public class WhateverClass {
      private AClient client;
      //other stuff
      public WhateverClass(...) {
        AClient client = //assignment either
                         //with new AClient(...)
                         //or something else
      }Since this would create a second variable of name client that only has scope within the constructor.
    Also, if the client is being assigned through a parameter in the constructor, check to make sure that that you are not passing a null value along... Do a System.out.println(client) after the assignement and see what you get. Then you know if the problem occurs in this class or in the class that creates the AClient reference to begin with...

  • Doubt in call method program

    hi,
    I am getting error as i marked BOLD in this program...can u give solutions for that..
    REPORT  YSBDC6.
    TABLES:LFA1.
    DATA:BEGIN OF ITAB OCCURS 0,
         LIFNR LIKE LFA1-LIFNR,
         LAND1 LIKE LFA1-LAND1,
         NAME1 LIKE LFA1-NAME1,
         END OF ITAB.
    DATA:BEGIN OF JTAB OCCURS 0.
         INCLUDE STRUCTURE BDCDATA.
    DATA:END OF JTAB.
    DATA:BEGIN OF KTAB OCCURS 0.
         INCLUDE STRUCTURE BDCMSGCOLL.
    DATA:END OF KTAB.
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
    EXPORTING
      FILENAME = 'C:\PRABA.TXT'
      FILETYPE = 'ASC'
      HAS_FIELD_SEPARATOR = 'X'
      CHANGING
        DATA_TAB = ITAB[].
       LOOP AT ITAB[] INTO ITAB.
        REFRESH JTAB.
        PERFORM SUB USING 'YVTRANS' '100'.
        PERFORM SUB1 USING:'LFA1-LIFNR' ITAB-LIFNR,
                           'LFA1-LAND1' ITAB-LAND1,
                           'LFA1-NAME1' ITAB-NAME1.
        PERFORM SUB1 USING 'BDC_OKCODE' 'INSERT'.
        CALL TRANSACTION 'YVTRANS' USING JTAB MODE 'A' MESSAGES INTO KTAB.
        LOOP AT KTAB.
        IF KTAB-MSGTYP = 'I' OR KTAB-MSGNR = 000.
          WRITE: /1 'vendor', 15 ITAB-LIFNR, 25 'INSERTED'.
          ELSEIF
            KTAB-MSGTYP ='E' OR KTAB-MSGNR = 001.
            WRITE: /1 'vendor', 15 ITAB-LIFNR, 25 'NOT INSERTED'.
            ENDIF.
            <b>REFRESH KTAB."ERROR IN THIS LINE 'YOU MAY NOT
            "Delete or overwrite table 'ktab' with in a loop through itself</b>
          ENDLOOP. 
       ENDLOOP.
            FORM SUB USING A B.
            CLEAR JTAB.
            JTAB-PROGRAM = A.
            JTAB-DYNPRO = B.
            JTAB-DYNBEGIN = 'X'.
            APPEND JTAB.
            ENDFORM.
        FORM SUB1 USING C D.
          CLEAR JTAB.
          JTAB-FNAM = C.
          JTAB-FVAL = D.
          APPEND JTAB.
          ENDFORM.

    HI,
    thanks for both..for immediate response..my PC got struck up that why i could not
    after editing this program i got error like YVTRANS not found..that means i have written seperate code for YVTRANS like below..is it correct..can u give solution for this..
    REPORT  YVTRANS.
    TABLES:LFA1.
    *DATA: WA TYPE LFA1.
    *ITAB TYPE TABLE OF LFA1.
    MODULE USER_COMMAND_0100 INPUT.
      CASE SY-UCOMM.
        WHEN 'INSERT'.
          INSERT LFA1.
          IF SY-SUBRC = 0.
            MESSAGE I000(0) WITH 'RECORD INSERTED'.
            ELSE.
              MESSAGE E001(0) WITH 'NOT INSERTED'.
              ENDIF.
              WHEN 'EXIT'.
                LEAVE PROGRAM.
                ENDCASE.
                ENDMODULE.
    orginal program
    REPORT  YSBDC6.
    TABLES:LFA1.
    DATA:BEGIN OF ITAB OCCURS 0,
         LIFNR LIKE LFA1-LIFNR,
         LAND1 LIKE LFA1-LAND1,
         NAME1 LIKE LFA1-NAME1,
         END OF ITAB.
    DATA:BEGIN OF JTAB OCCURS 0.
         INCLUDE STRUCTURE BDCDATA.
    DATA:END OF JTAB.
    DATA:BEGIN OF KTAB OCCURS 0.
         INCLUDE STRUCTURE BDCMSGCOLL.
    DATA:END OF KTAB.
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
    EXPORTING
      FILENAME = 'C:\PRABA.TXT'
      FILETYPE = 'ASC'
      HAS_FIELD_SEPARATOR = 'X'
      CHANGING
        DATA_TAB = ITAB[].
       LOOP AT ITAB[] INTO ITAB.
        REFRESH JTAB.
        PERFORM SUB USING 'YVTRANS' '100'.
        PERFORM SUB1 USING:'LFA1-LIFNR' ITAB-LIFNR,
                           'LFA1-LAND1' ITAB-LAND1,
                           'LFA1-NAME1' ITAB-NAME1.
        PERFORM SUB1 USING 'BDC_OKCODE' 'INSERT'.
        CALL TRANSACTION 'YVTRANS' USING JTAB MODE 'A' MESSAGES INTO KTAB.
        LOOP AT KTAB.
        IF KTAB-MSGTYP = 'I' OR KTAB-MSGNR = 000.
          WRITE: /1 'vendor', 15 ITAB-LIFNR, 25 'INSERTED'.
          ELSEIF
            KTAB-MSGTYP ='E' OR KTAB-MSGNR = 001.
            WRITE: /1 'vendor', 15 ITAB-LIFNR, 25 'NOT INSERTED'.
            ENDIF.
            ENDLOOP.
          REFRESH KTAB.
       ENDLOOP.
            FORM SUB USING A B.
            CLEAR JTAB.
            JTAB-PROGRAM = A.
            JTAB-DYNPRO = B.
            JTAB-DYNBEGIN = 'X'.
            APPEND JTAB.
            ENDFORM.
        FORM SUB1 USING C D.
          CLEAR JTAB.
          JTAB-FNAM = C.
          JTAB-FVAL = D.
          APPEND JTAB.
          ENDFORM.

  • Proper use of END-OF-SELECTION event in report programme

    Hi,
    If we will write "WRITE" statements in side START-OF-SELECTION then it will help me to display the output.Then what is the need of END-OF-SELECTION .
    Can any body please tell me the <b>proper use of END-OF-SELECTION event in report programme.</b>

    This is the last of the events called by the runtime environment to occur. It is triggered after all of the data has been read from the logical database, and before the list processor is started.
    <b>In report programs using LDB for every value selected the program issues the output, to control this you would use END-OF-SELECTION.</b> Now if you call your output in this event, the output is made only after all the values are selected as per the selection criteria.
    suppose while coding, u need a logic like below:
    if a condition is satisfied continue with the report
    and if not satisfied, then display a message and end the report.
    then u can code like below.
    start-of-slection.
    if a = <condition>.
    do the following.......
    else.
    stop.
    end-of-selection.
    write: 'THIS IS END'.
    stop command triggers end-of-slection from anywhere.
    I hope it helps.
    Best Regards,
    Vibha
    *Please mark all the helpful answers

  • Abap report for calling abap proxy?

    why do we need  to write abap report for calling abap proxy? i mean what's the use of abap report and what are the things inside the report ...please give me details about abap report.

    Hi,
    In SPROXY for your outbound interface you generate the proxy class.
    The ABAP report is used to fill the data from the ABAP tables and then trigger the call to XI using this class.
    Look into the code in this blog and check what is done,. The data is filled in the report and then the call is made to XI using an object of the class created in SPROXY using the EXECUTE_ASYNCHRONOUS method.
    /people/ravikumar.allampallam/blog/2005/03/14/abap-proxies-in-xiclient-proxy
    Regards
    Bhavesh

  • Calling method of a custom infotype from ABAP

    Hi Experts,
    I am working on an application where i need to call a method of a custom defined infotype.
    I have done this -->
    1. Create a custom infotype 9111
    2. SAP creates a class of that infotype ZCL_HRPA_INFOTYPE_9111
    3. Inside this method there are few inherited method which provide me functionality of insert , update , delete
    i want to call methods IF_HRPA_INFTY_BL~MODIFY,
    IF_HRPA_INFTY_BL~INSERT
    However when i call these method from abap report this method does not work.
    where as when i try to insert an entry using PA30 transaction it works.
    Does anyone know why does this happen and what is the solution?
    Regards,
    Ashish Shah

    Had the same problem (probably copied from the same program). The answer is that you need to commit the work at the end using something like
    * Commit
    CALL METHOD busilog->flush
      EXPORTING
        no_commit = space.
    Here is an example of my code for IT0002 which works.
    *& Report  Z_TEST2
    REPORT  z_test2.
    DATA: a_masterdata_bl TYPE REF TO if_hrpa_masterdata_bl,
          p0002         TYPE p0002,
          lo_0002 TYPE REF TO cl_hrpa_infotype_0002,
          ls_p0002_ref TYPE REF TO data,
          container_tab    TYPE hrpad_infty_container_tab,
          container  TYPE REF TO if_hrpa_infty_container,
          message_handler TYPE REF TO cl_hrpa_message_list,
          infotype_logic TYPE REF TO if_hrpa_infty_bl,
          update_mode TYPE hrpad_update_mode VALUE 'XXX',
          lt_0002_container TYPE REF TO cl_hrpa_infotype_container,
          key TYPE pskey,
          l_is_ok          TYPE boole_d.
    FIELD-SYMBOLS <p0002> TYPE p0002.
    * get business logic from masterdata factory
    CALL METHOD cl_hrpa_masterdata_factory=>get_business_logic
      IMPORTING
        business_logic = a_masterdata_bl.
    * CATCH cx_hrpa_violated_assertion .
    *ENDTRY.
    *TRY.
    CALL METHOD a_masterdata_bl->read
      EXPORTING
        tclas           = 'A'
        pernr           = '508'
        infty           = '0002'
        begda           = sy-datum
        endda           = sy-datum
        no_auth_check   = 'X'
        message_handler = message_handler
      IMPORTING
        container_tab   = container_tab
        is_ok           = l_is_ok
    * CATCH cx_hrpa_violated_assertion .
    *ENDTRY.
    READ TABLE container_tab INTO container INDEX 1.
    lt_0002_container ?= container.
    TRY.
        CALL METHOD lt_0002_container->primary_record_ref
          IMPORTING
            pnnnn_ref = ls_p0002_ref.
      CATCH cx_hrpa_violated_assertion.
    ENDTRY.
    ASSIGN ls_p0002_ref->* TO <p0002>.
    MOVE-CORRESPONDING <p0002> TO key.
    break stantric.
    <p0002>-vorna = 'Rick'.
    container ?= lt_0002_container->modify_primary_record( <p0002> ).
    TRY.
        CREATE OBJECT lo_0002
          EXPORTING
            tclas = 'A'
            infty = '0002'.
      CATCH cx_hrpa_violated_assertion .
    ENDTRY.
    CREATE OBJECT message_handler.
    TRY.
        CALL METHOD lo_0002->get_specific_bl
          EXPORTING
            versionid      = '01'
            tclas          = 'A'
            pskey          = key
          IMPORTING
            infotype_logic = infotype_logic.
      CATCH cx_hrpa_violated_assertion .
    ENDTRY.
    TRY.
        CALL METHOD infotype_logic->modify
          EXPORTING
            old_container   = lt_0002_container
            massn           = space
            massg           = space
            update_mode     = update_mode
            no_auth_check   = 'X'
            message_handler = message_handler
          IMPORTING
            is_ok           = l_is_ok
          CHANGING
            container       = container.
      CATCH cx_hrpa_violated_assertion .
    ENDTRY.
    * Commit
    CALL METHOD a_masterdata_bl->flush
      EXPORTING
        no_commit = space.

Maybe you are looking for