‎2009 Feb 26 8:20 PM
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
‎2009 Feb 26 8: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.
‎2009 Feb 26 8:58 PM
Thanks, I tried using 'A' but it shows the intial screen with the OK-Code of '\8' and I have to hit enter to get to the second screen.
‎2009 Feb 26 8: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
‎2009 Feb 26 9:11 PM
I will try this next. Will this allow the user to drill down into FBL3N?
Thanks
Mike
‎2009 Feb 26 8: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.
‎2009 Feb 26 8:46 PM
It may not like it that you are using batch input. You could try setting NOBINPT in the option table.
Rob
‎2009 Feb 26 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.