Skip to Content
author's profile photo Former Member
Former Member

Problem with Call Transaction

Hi, I have looked through the posts and have not seen this question or answer. I have a custom ALV report with a hotspot that calls transaction FBL3N. I am calling it passing bdcdata for all of the options on the selection screen. It brings up the list for FBL3N just fine. But when the user clicks on a drill down on that report, the screen goes back to my custom report. Therefore the user can not drill down into FBL3N.

Here is how I am calling the transaction:

CALL TRANSACTION 'FBL3N' USING bdctab MODE 'E'

MESSAGES INTO t_mess.

Am I missing something or is this standard?

I also tried calling this from the FM ABAP4_CALL_TRANSACTION STARTING NEW TASK 'GLTEST' and had the same results. It would open the transaction in the new window but as soon as the I click the drill down the screen would disappear.

Mike

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

5 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Feb 26, 2009 at 08:23 PM

    Hi,

    Since you are using mode E , may be there is no error raised when there is a call transaction made due to which it directly goes to the list.

    Mode 'E' stops only when there is an error message raised otherwise the transaction is run at the backround.

    better to use mode 'A' if you want the user to see the transaction

    Regards,

    Siddarth.

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Feb 26, 2009 at 08:25 PM

    Hi,

    Try using SUBMIT RFITEMGL as the program behind it is a report.

    Please check the help for the SUBMIT statement on how to pass the parameters..

    Ex..

    SUBMIT RFITEMGL 
                   AND RETURN.

    Thanks

    Naren

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Feb 26, 2009 at 08:27 PM

    Try using this.

    DATA: i_rsparam TYPE TABLE OF rsparams.

    SUBMIT rfitemgl

    WITH SELECTION-TABLE i_rsparam

    AND RETURN.

    maintain the selection criteria in i_rsparam.

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Feb 26, 2009 at 08:46 PM

    It may not like it that you are using batch input. You could try setting NOBINPT in the option table.

    Rob

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Feb 26, 2009 at 11:49 PM

    Hi Michael,

    I'm doing the same as you but no problems drilling down into FBL3N and coming back to my program. Here's my code

    CLASS lcl_handle_events DEFINITION.
      PUBLIC SECTION.
        METHODS:
          on_link_click
            FOR EVENT link_click OF cl_salv_events_table
            IMPORTING row
                      column.
    ENDCLASS.                    "lcl_handle_events DEFINITION
    
    CLASS lcl_handle_events IMPLEMENTATION.
      METHOD on_link_click.
        PERFORM process_my_link_click USING row
                                            column.
      ENDMETHOD.                 "on_link_click
    ENDCLASS.                    "lcl_handle_events IMPLEMENTATION
    
    FORM process_my_link_click USING    pv_row    TYPE salv_de_row
                                        pv_column TYPE salv_de_column.
      FIELD-SYMBOLS: <ls_contr_det> TYPE ty_contr_det.
    
    * Get the values for the selected report line.
      READ TABLE gt_contr_det ASSIGNING <ls_contr_det> INDEX pv_row.
      CHECK sy-subrc EQ 0.
      PERFORM call_transaction_fbl3n USING <ls_contr_det>-objectid.
    
    ENDFORM.                    " process_my_link_click
    
    FORM call_transaction_fbl3n USING pv_objectid    TYPE saknr.
    
      DATA: ls_bdcdata   TYPE bdcdata,
            lt_bdcdata   TYPE bdcdata_tab,
            ls_opt       TYPE ctu_params.         "<-----check this
    
      ls_bdcdata-program  = 'RFITEMGL'.
      ls_bdcdata-dynpro   = '1000'.
      ls_bdcdata-dynbegin = 'X'.
      APPEND ls_bdcdata TO lt_bdcdata.
    
      CLEAR ls_bdcdata.
      ls_bdcdata-fnam = 'BDC_CURSOR'.
      ls_bdcdata-fval = 'SD_SAKNR-LOW'.
      APPEND ls_bdcdata TO lt_bdcdata.
    
      CLEAR ls_bdcdata.
      ls_bdcdata-fnam = 'SD_SAKNR-LOW'.
      ls_bdcdata-fval = pv_objectid.
      APPEND ls_bdcdata TO lt_bdcdata.
    
      CLEAR ls_bdcdata.
      ls_bdcdata-fnam = 'SD_BUKRS-LOW'.
      ls_bdcdata-fval = gv_bukrs.
      APPEND ls_bdcdata TO lt_bdcdata.
    
      CLEAR ls_bdcdata.
      ls_bdcdata-fnam = 'X_OPSEL'.
      ls_bdcdata-fval = aba_true.
      APPEND ls_bdcdata TO lt_bdcdata.
    
      CLEAR ls_bdcdata.
      ls_bdcdata-fnam = 'PA_STIDA'.
      ls_bdcdata-fval = gv_date.
      APPEND ls_bdcdata TO lt_bdcdata.
    
      CLEAR ls_bdcdata.
      ls_bdcdata-fnam = 'BDC_OKCODE'.
      ls_bdcdata-fval = '=ONLI'.
      APPEND ls_bdcdata TO lt_bdcdata.
    
      ls_opt-dismode = 'E'.
    
      CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
        EXPORTING
          tcode  = 'FBL3N'
        EXCEPTIONS
          ok     = 0
          not_ok = 1
          OTHERS = 2.
    
      IF sy-subrc NE 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
        CALL TRANSACTION 'FBL3N' USING lt_bdcdata OPTIONS FROM ls_opt.
      ENDIF.
    
    ENDFORM.                    " CALL_TRANSACTION_FBL3N
    

    Below is additional information on how I'm calling the SLV

    FORM show_slv.
    
      IF gt_contr_det IS NOT INITIAL.
        IF go_container IS BOUND.
          CALL METHOD go_container->free
            EXCEPTIONS
              cntl_error        = 1
              cntl_system_error = 2
              OTHERS            = 3.
    
          CREATE OBJECT go_container
            EXPORTING
              repid          = sy-repid
              dynnr          = '0100'
              container_name = 'CONTROL1'.
        ENDIF.
    
        TRY.
            cl_salv_table=>factory(
              EXPORTING
                r_container  = go_container
              IMPORTING
                r_salv_table = go_table
              CHANGING
                t_table      = gt_contr_det ).
          CATCH cx_salv_msg.
        ENDTRY.
    
        PERFORM: define_layout,
                 define_layout_save_restriction,
                 define_functions,
                 define_events.
    
        go_table->display( ).
      ELSE.
        IF go_container IS BOUND AND go_table IS BOUND.
          CALL METHOD go_container->free
            EXCEPTIONS
              cntl_error        = 1
              cntl_system_error = 2
              OTHERS            = 3.
        ENDIF.
      ENDIF.
    
    ENDFORM.                    " SHOW_SLV
    
    FORM define_events .
    
      DATA: lo_events TYPE REF TO cl_salv_events_table,
            lo_event_handler TYPE REF TO lcl_handle_events.
    
    * register to the events of cl_salv_table
      lo_events = go_table->get_event( ).
    
    * create object for handling the events of cl_salv_table
      CREATE OBJECT lo_event_handler.
    * - register the event after link / hotspot click
      SET HANDLER lo_event_handler->on_link_click FOR lo_events.
    
    ENDFORM.                    " DEFINE_EVENTS
    

    This code is working and no issues with drilldown on FBL3N, can you look into what's missing in your code from this one? May be the option:

    data: ls_opt  TYPE ctu_params.
    .........
    " then when calling the transaction, the OPTIONS parameter.....
    CALL TRANSACTION 'FBL3N' USING lt_bdcdata OPTIONS FROM ls_opt.
    

    I'm on ECC6.0.

    Hope this helps,

    Cheers,

    Sougata.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.