Navigation problem with back button in module pool
Hi everyone,
I have a scenario in module pool programming in which i need help.
I have an i/p filepath screen where the user inputs his/her file and clicks on validate button provided in the toolbar.
After that it goes to the next screen which displays all the messages(error/success).
After I click on Execution button it goes to next screen displaying all the created data.
Now when I click on back button I want it to go to the i/o filepath screen.
Please give me your comments on this.
Leave to screen XXXX is giving me dump so any other options plz let me know.
Thanks in advance.
Hi Amit,
Lets say you have 3 screens 100, 200 and 300. screen 100 has you input file path and 200 shows the message and 300 shows the created data.
Now in PAI of 300 write as below.
IN the screen as below
MODULE USER_COMMAND_300_EXIT AT EXIT COMMAND.
In the include as below
MODULE USER_COMMAND_300_EXIT.
CASE sy-ucomm.
WHEN 'BACK'. " OK code for BACK button.
CALL SCREEN 100.
WHEN 'CANCEl'.
LEAVE TO SCREEN 0
ENDCASE.
ENDMODULE.
Please revert if you still face problems.
Regards,
Praveenkumar T
Similar Messages
-
How to raise pop up window along with radio buttons in module pool program
how to raise pop up window along with radio buttons in module pool program
FUNCTION zscheme_determination.
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(I_KUNNR) TYPE KUNNR
*" EXPORTING
*" REFERENCE(E_VALUE) TYPE NETWR_AK
*" TABLES
*" G_ITEM_DATA_ITAB STRUCTURE ZITEM_DATA
* TYPES: BEGIN OF ty_sord,
* include type ZSD_SCHEME_DTL,
* END OF ty_sord.
* data : gt_sord type standard table of ZSD_SCHEME_DTL,
* wa_sord type ZSD_SCHEME_DTL.
* select * from ZSD_SCHEME_DTL into table
* gt_sord
* where matnr = i_matnr.
* T_ITEM_DATA
*********Data Declarations
DATA:
salesdocumentin LIKE bapivbeln-vbeln,
orderheaderin LIKE bapisdhd1,
orderheaderinx LIKE bapisdhd1x,
sender LIKE bapi_sender,
binaryrelationshiptype LIKE bapireltype-reltype,
intnumberassignment LIKE bapiflag-bapiflag,
behavewhenerror LIKE bapiflag-bapiflag,
logicswitch LIKE bapisdls,
testrun LIKE bapiflag-bapiflag,
convert LIKE bapiflag-bapiflag,
return LIKE bapiret2 OCCURS 0,
orderitemsin LIKE bapisditm OCCURS 0,
orderitemsinx LIKE bapisditmx OCCURS 0,
orderpartners LIKE bapiparnr OCCURS 0,
orderschedulesin LIKE bapischdl OCCURS 0,
orderschedulesinx LIKE bapischdlx OCCURS 0,
orderconditionsin LIKE bapicond OCCURS 0,
orderconditionsinx LIKE bapicondx OCCURS 0,
ordercfgsref LIKE bapicucfg OCCURS 0,
ordercfgsinst LIKE bapicuins OCCURS 0,
ordercfgspartof LIKE bapicuprt OCCURS 0,
ordercfgsvalue LIKE bapicuval OCCURS 0,
ordercfgsblob LIKE bapicublb OCCURS 0,
ordercfgsvk LIKE bapicuvk OCCURS 0,
ordercfgsrefinst LIKE bapicuref OCCURS 0,
orderccard LIKE bapiccard OCCURS 0,
ordertext LIKE bapisdtext OCCURS 0,
orderkeys LIKE bapisdkey OCCURS 0,
extensionin LIKE bapiparex OCCURS 0,
partneraddresses LIKE bapiaddr1 OCCURS 0.
DATA : wa_orderpartners LIKE bapiparnr,
wa_orderitemsin LIKE bapisditm,
wa_orderitemsinx LIKE bapisditmx,
wa_orderschedulesin LIKE bapischdl,
wa_orderschedulesinx LIKE bapischdlx,
wa_orderconditionsin LIKE bapicond,
wa_orderconditionsinx LIKE bapicondx,
wa_return LIKE bapiret2,
lv_value TYPE netwr_ak.
DATA : lv_dtyp TYPE char45,
lv_sorg TYPE vkorg,
lv_sdch TYPE vtweg,
lv_sdiv TYPE spart.
TYPES : BEGIN OF ty_sord,
zsdscheme TYPE comt_scheme_id,
posnr TYPE posnr_va,
matnr TYPE matnr,
disc_type TYPE rebate_disc_type,
calc_type TYPE catyp,
qty_from TYPE kwmeng,
qty_to TYPE kwmeng,
spart TYPE spart,
custcondgrp TYPE kdkg1,
werks TYPE werks_d,
matmn TYPE matnr,
END OF ty_sord.
DATA : gt_sord TYPE STANDARD TABLE OF ty_sord,
gt_sordd TYPE STANDARD TABLE OF ty_sord,
wa_sord TYPE ty_sord,
wa_knvv TYPE knvv,
lv_cal_foc TYPE p DECIMALS 3,
lv_cal_dis TYPE p DECIMALS 3,
lv_new_qty TYPE kwmeng,
lv_posmat TYPE posnr_va,
lv_posfoc TYPE posnr_va.
DATA:lv_diff TYPE kwmeng.
******Schemes Selection Logic
* Get Valid Schemes
* Validate Scheme for validity Period, Material, Customer Type and Plant
TYPES : BEGIN OF ty_rtab,
sign TYPE c LENGTH 1,
option TYPE c LENGTH 2,
low LIKE mara-matnr,
high LIKE mara-matnr,
END OF ty_rtab.
* TYPES : ty_matnr TYPE RANGE OF ty_rtab.
DATA : it_matnr TYPE TABLE OF ty_rtab,
wa_matnr TYPE ty_rtab,
wa_it TYPE zitem_data,
wa_tab TYPE zitem_data.
*order table declaration
TYPES:
BEGIN OF ty_order,
zsdscheme TYPE comt_scheme_id,
matnr TYPE matnr,
kwmeng TYPE kwmeng,
END OF ty_order,
BEGIN OF ty_scheme,
zsdscheme TYPE comt_scheme_id,
* matnr TYPE matnr,
kwmeng TYPE kwmeng,
END OF ty_scheme.
DATA:
gt_order TYPE TABLE OF ty_order,
gt_scheme TYPE TABLE OF ty_scheme,
wa_scheme TYPE ty_scheme,
wa_order TYPE ty_order.
DATA:i_kwmeng TYPE kwmeng.
* Transfer all the material received from order to internal table
LOOP AT g_item_data_itab INTO wa_it.
MOVE : wa_it-matnr TO wa_matnr-low,
'I' TO wa_matnr-sign,
'EQ' TO wa_matnr-option.
APPEND wa_matnr TO it_matnr.
CLEAR wa_it.
ENDLOOP.
* Get the Valid Schemes based on given criteria
SELECT
zsd_scheme_dtl~zsdscheme
zsd_scheme_dtl~posnr
zsd_scheme_dtl~matnr
zsd_scheme_dtl~disc_type
zsd_scheme_dtl~calc_type
zsd_scheme_dtl~qty_from
zsd_scheme_dtl~qty_to
zsd_scheme~spart
zsd_scheme_hdr~custcondgrp
zsd_scheme_hdr~werks
zsd_scheme_hdr~matnr
FROM zsd_scheme_hdr
INNER JOIN zsd_scheme ON zsd_scheme~zsdscheme = zsd_scheme_hdr~zsdscheme
INNER JOIN zsd_scheme_dtl ON zsd_scheme_dtl~zsdscheme = zsd_scheme_hdr~zsdscheme
INTO TABLE gt_sord
WHERE zsd_scheme_dtl~matnr IN it_matnr
* zsd_scheme_hdr~matnr IN it_matnr
* AND zsd_scheme_hdr~werks = '1509'
AND zsd_scheme_hdr~werks = '1529'
AND zsd_scheme_hdr~custcondgrp = '01'
AND zsd_scheme~datuv LE sy-datum
AND zsd_scheme~datub GE sy-datum.
SORT gt_sord BY zsdscheme ASCENDING.
* LOOP AT gt_sord INTO wa_sord.
* READ TABLE g_item_data_itab INTO wa_it WITH KEY matnr = wa_sord-matnr.
* wa_order-zsdscheme = wa_sord-zsdscheme.
* wa_order-matnr = wa_it-matnr.
* wa_order-kwmeng = wa_it-kwmeng.
* COLLECT wa_order INTO gt_order.
* CLEAR wa_order.
* ENDLOOP.
LOOP AT g_item_data_itab INTO wa_it.
READ TABLE gt_sord INTO wa_sord WITH KEY matnr = wa_it-matnr.
wa_order-zsdscheme = wa_sord-zsdscheme.
wa_order-matnr = wa_it-matnr.
wa_order-kwmeng = wa_it-kwmeng.
COLLECT wa_order INTO gt_order.
MOVE : wa_sord-zsdscheme TO wa_scheme-zsdscheme,
wa_it-kwmeng TO wa_scheme-kwmeng.
COLLECT wa_scheme INTO gt_scheme.
CLEAR : wa_order, wa_scheme.
ENDLOOP.
CLEAR wa_scheme.
DATA w_line TYPE sy-tabix.
* Updating table based on Schemes
LOOP AT gt_scheme INTO wa_scheme.
CLEAR w_line.
gt_sordd[] = gt_sord[].
* DELETE gt_sordd WHERE zsdscheme NE wa_scheme-zsdscheme and disc_type NE 'FOC'.
DELETE gt_sordd WHERE zsdscheme NE wa_scheme-zsdscheme AND disc_type NE 'F'.
DELETE ADJACENT DUPLICATES FROM gt_sordd COMPARING zsdscheme matnr.
DESCRIBE TABLE gt_sordd LINES w_line.
IF w_line GT 1.
* popup message to select one foc type.
ELSE.
CLEAR wa_sord.
READ TABLE gt_sordd INTO wa_sord INDEX 1.
IF sy-subrc EQ 0.
i_kwmeng = wa_scheme-kwmeng.
lv_cal_foc = i_kwmeng DIV wa_sord-qty_from.
lv_cal_dis = i_kwmeng MOD wa_sord-qty_from.
MOVE : lv_cal_foc TO wa_it-kwmeng,
wa_sord-matnr TO wa_it-matnr.
APPEND wa_it TO g_item_data_itab.
SORT gt_order BY kwmeng DESCENDING.
LOOP AT gt_order INTO wa_order WHERE zsdscheme = wa_scheme-zsdscheme.
IF lv_cal_dis GT 0.
* LOOP AT gt_order INTO wa_order WHERE zsdscheme = wa_scheme-zsdscheme
* AND lv_cal_dis GT 0.
* LOOP AT gt_order INTO wa_order WHERE zsdscheme = wa_scheme-zsdscheme.
* LOOP AT g_item_data INTO wa_item_data WHERE matnr EQ wa_order-matnr.
LOOP AT g_item_data_itab INTO wa_tab WHERE matnr EQ wa_order-matnr.
wa_orderconditionsin-itm_number = wa_tab-posnr.
* wa_orderconditionsin-itm_number = wa_item_data-posnr.
wa_orderconditionsin-cond_st_no = '001'.
* IF gt_sordd-calc EQ ‘post AND disc_type EQ ‘percentage’.
IF wa_sord-calc_type EQ 'O' AND wa_sord-disc_type EQ 'P'.
wa_orderconditionsin-cond_type = 'ZTPB'. "'ZREG'.
* ELSEIF gt_sordd-calc EQ ‘pre’ AND disc_type EQ ‘percentage’
ELSEIF wa_sord-calc_type EQ 'E' AND wa_sord-disc_type EQ 'P'.
wa_orderconditionsin-cond_type = 'ZTPP'. "'ZREG'.
ENDIF.
wa_orderconditionsin-currency = 'INR'.
wa_orderconditionsin-conpricdat = sy-datum.
APPEND wa_orderconditionsin TO orderconditionsin.
CLEAR wa_orderconditionsin.
*Update Discount Conditon
ENDLOOP.
* ENDLOOP.
*Modify balance of Item
CLEAR wa_tab.
READ TABLE g_item_data_itab INTO wa_tab WITH KEY matnr = wa_order-matnr.
IF sy-subrc EQ 0.
lv_diff = wa_tab-kwmeng - lv_cal_dis.
IF lv_diff GT 0.
wa_tab-kwmeng = wa_tab-kwmeng - lv_cal_dis.
* MODIFY g_item_data TRANSPORTING kwmeng index sy-tabix.
MODIFY g_item_data_itab INDEX sy-tabix FROM wa_tab TRANSPORTING kwmeng .
ELSE.
wa_tab-kwmeng = lv_cal_dis.
lv_cal_dis = lv_diff.
MODIFY g_item_data_itab INDEX sy-tabix FROM wa_tab TRANSPORTING kwmeng .
* MODIFY G_ITEM_DATA_ITAB TRANSPORTING kwmeng index sy-tabix.
ENDIF.
gt_sordd[] = gt_sord[].
DELETE gt_sordd WHERE zsdscheme NE wa_scheme-zsdscheme AND disc_type EQ 'F'.
DESCRIBE TABLE gt_sordd LINES w_line.
IF w_line GT 1.
SORT gt_sordd BY zsdscheme DESCENDING.
* SORT gt_sordd BY quantity DESCENDING.
CLEAR wa_sord.
* LOOP AT gt_sordd WHERE quantity_from LT wa_shceme-kwmeng AND quantity_to GT wa_shceme-kwmeng.
LOOP AT gt_sordd INTO wa_sord WHERE qty_from LT wa_scheme-kwmeng AND qty_to GT wa_scheme-kwmeng.
* LOOP AT gt_order INTO wa_order WHERE scheme = wa_scheme-scheme.
LOOP AT gt_order INTO wa_order WHERE zsdscheme = wa_scheme-zsdscheme.
* LOOP AT g_item_data INTO wa_item_data WHERE matnr EQ wa_order-matnr.
LOOP AT g_item_data_itab INTO wa_tab WHERE matnr EQ wa_order-matnr.
wa_orderconditionsin-itm_number = wa_tab-posnr.
* wa_orderconditionsin-itm_number = wa_item_data-posnr.
wa_orderconditionsin-cond_st_no = '001'.
* IF gt_sordd-calc EQ ‘post AND disc_type EQ ‘percentage’.
IF wa_sord-calc_type EQ 'O' AND wa_sord-disc_type EQ 'P'.
wa_orderconditionsin-cond_type = 'ZDPD'. "'ZREG'.
* ELSEIF gt_sordd-calc EQ ‘pre’ AND disc_type EQ ‘percentage’
ELSEIF wa_sord-calc_type EQ 'E' AND wa_sord-disc_type EQ 'P'.
wa_orderconditionsin-cond_type = 'ZDPD'. "'ZREG'.
ENDIF.
wa_orderconditionsin-currency = 'INR'.
wa_orderconditionsin-conpricdat = sy-datum.
APPEND wa_orderconditionsin TO orderconditionsin.
CLEAR wa_orderconditionsin.
*Update Discount Conditon
ENDLOOP.
ENDLOOP.
ENDLOOP.
ELSE.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDLOOP.
* select
* ZSD_SCHEME_DTL~ZSDSCHEME
* ZSD_SCHEME_DTL~POSNR
* ZSD_SCHEME_DTL~matnr
* ZSD_SCHEME_DTL~DISC_TYPE
* ZSD_SCHEME_DTL~CALC_TYPE
* ZSD_SCHEME_DTL~QTY_FROM
* ZSD_SCHEME_DTL~QTY_TO
* ZSD_SCHEME~SPART
* ZSD_SCHEME_HDR~CUSTCONDGRP
* ZSD_SCHEME_HDR~WERKS
* ZSD_SCHEME_HDR~MATNR
* from ZSD_SCHEME_DTL
* inner join ZSD_SCHEME on ZSD_SCHEME~ZSDSCHEME = ZSD_SCHEME_DTL~ZSDSCHEME
* inner join ZSD_SCHEME_HDR on ZSD_SCHEME_HDR~ZSDSCHEME = ZSD_SCHEME_DTL~ZSDSCHEME
* into table
* gt_sord
* where ZSD_SCHEME_DTL~matnr = i_matnr and
* ZSD_SCHEME~DATUV LE sy-datum and
* ZSD_SCHEME~DATUB GE sy-datum.
* break-point.
* Process Common Logic for Schemes Processcing
CLEAR wa_sord.
* Convert FOC Quantity and Materials
* LOOP AT gt_sord INTO wa_sord.
** lv_cal = i_kwmeng / wa_sord-QTY_FROM.
* lv_cal_foc = i_kwmeng DIV wa_sord-qty_from.
* lv_cal_dis = i_kwmeng MOD wa_sord-qty_from.
* ENDLOOP.
*lv_new_qty = i_kwmeng - lv_cal_dis.
* Get the Sales Document Type
SELECT SINGLE low
FROM tvarvc
INTO lv_dtyp WHERE
name = 'SD_DOC_TYPE'.
SELECT SINGLE * FROM knvv INTO wa_knvv WHERE kunnr = i_kunnr.
IF sy-subrc = 0.
lv_sorg = wa_knvv-vkorg.
lv_sdch = wa_knvv-vtweg.
lv_sdiv = wa_knvv-spart.
ENDIF.
* Give the Popup for schemes with multiple FOC
* Schemes Specific Processing
* Schemes Specific Processing
orderheaderin-doc_type = lv_dtyp.
orderheaderin-sales_org = lv_sorg.
orderheaderin-distr_chan = lv_sdch.
orderheaderin-division = lv_sdiv.
wa_orderpartners-partn_role = 'AG'.
wa_orderpartners-partn_numb = i_kunnr.
APPEND wa_orderpartners TO orderpartners.
* wa_ORDERPARTNERS-PARTN_ROLE = 'WE'.
* wa_ORDERPARTNERS-PARTN_NUMB = p_ship.
* append wa_ORDERPARTNERS to ORDERPARTNERS.
* Item number begin
CLEAR : lv_posmat.
lv_posmat = lv_posmat + 10.
wa_orderitemsin-itm_number = lv_posmat.
wa_orderitemsin-material = wa_sord-matmn. "i_matnr.
wa_orderitemsin-target_qty = lv_new_qty.
* wa_ORDERITEMSIN-TARGET_QU = i_VRKME.
APPEND wa_orderitemsin TO orderitemsin.
wa_orderitemsinx-itm_number = lv_posmat.
wa_orderitemsinx-material = 'X'.
wa_orderitemsinx-target_qty = 'X'.
wa_orderitemsinx-target_qu = 'X'.
APPEND wa_orderitemsinx TO orderitemsinx.
wa_orderschedulesin-itm_number = lv_posmat.
wa_orderschedulesin-sched_line = lv_posmat.
wa_orderschedulesin-req_qty = lv_new_qty.
APPEND wa_orderschedulesin TO orderschedulesin.
wa_orderschedulesinx-itm_number = lv_posmat.
wa_orderschedulesinx-sched_line = lv_posmat.
wa_orderschedulesinx-req_qty = 'X'.
wa_orderschedulesinx-updateflag = 'X'.
APPEND wa_orderschedulesinx TO orderschedulesinx.
wa_orderconditionsin-itm_number = lv_posmat.
wa_orderconditionsin-cond_st_no = '001'.
wa_orderconditionsin-cond_type = 'ZDPD'. "'ZREG'.
wa_orderconditionsin-currency = 'INR'.
wa_orderconditionsin-conpricdat = sy-datum.
APPEND wa_orderconditionsin TO orderconditionsin.
wa_orderconditionsinx-itm_number = lv_posmat.
wa_orderconditionsinx-cond_st_no = '001'.
wa_orderconditionsinx-cond_type = 'ZDPD'. "'ZREG'.
wa_orderconditionsinx-updateflag = 'X'.
wa_orderconditionsinx-cond_value ='X'.
wa_orderconditionsinx-currency = 'X'.
APPEND wa_orderconditionsinx TO orderconditionsinx.
****18/06Beg
* if not lv_cal_dis is initial.
* lv_posmat = lv_posmat + 10.
* wa_ORDERITEMSIN-ITM_NUMBER = lv_posmat.
* wa_ORDERITEMSIN-MATERIAL = WA_SORD-MATMN. "i_matnr.
* wa_ORDERITEMSIN-TARGET_QTY = lv_cal_dis.
** wa_ORDERITEMSIN-TARGET_QU = i_VRKME.
* append wa_ORDERITEMSIN to ORDERITEMSIN.
* wa_ORDERITEMSINX-ITM_NUMBER = lv_posmat.
* wa_ORDERITEMSINX-MATERIAL = 'X'.
* wa_ORDERITEMSINX-TARGET_QTY = 'X'.
* wa_ORDERITEMSINX-TARGET_QU = 'X'.
* append wa_ORDERITEMSINX to ORDERITEMSINX.
* wa_ORDERSCHEDULESIN-ITM_NUMBER = lv_posmat.
* wa_ORDERSCHEDULESIN-SCHED_LINE = lv_posmat.
* wa_ORDERSCHEDULESIN-REQ_QTY = lv_cal_dis.
* append wa_ORDERSCHEDULESIN to ORDERSCHEDULESIN.
* wa_ORDERSCHEDULESINX-itm_number = lv_posmat.
* wa_ORDERSCHEDULESINX-sched_line = lv_posmat.
* wa_ORDERSCHEDULESINX-req_qty = 'X'.
* wa_ORDERSCHEDULESINX-updateflag = 'X'.
* append wa_ORDERSCHEDULESINX to ORDERSCHEDULESINX.
* endif.
* lv_posmat = lv_posmat + 10.
* wa_ORDERITEMSIN-ITM_NUMBER = lv_posmat.
* wa_ORDERITEMSIN-MATERIAL = i_matnr. "WA_SORD-MATMN.
* wa_ORDERITEMSIN-TARGET_QTY = LV_CAL_FOC.
* wa_ORDERITEMSIN-ITEM_CATEG = 'ZDGN'.
** wa_ORDERITEMSIN-TARGET_QU = i_VRKME.
* append wa_ORDERITEMSIN to ORDERITEMSIN.
* wa_ORDERITEMSINX-ITM_NUMBER = lv_posmat.
* wa_ORDERITEMSINX-MATERIAL = 'X'.
* wa_ORDERITEMSINX-TARGET_QTY = 'X'.
* wa_ORDERITEMSINX-TARGET_QU = 'X'.
* wa_ORDERITEMSINX-ITEM_CATEG = 'X'.
* append wa_ORDERITEMSINX to ORDERITEMSINX.
* wa_ORDERSCHEDULESIN-ITM_NUMBER = lv_posmat.
* wa_ORDERSCHEDULESIN-SCHED_LINE = lv_posmat.
* wa_ORDERSCHEDULESIN-REQ_QTY = LV_CAL_FOC.
* append wa_ORDERSCHEDULESIN to ORDERSCHEDULESIN.
* wa_ORDERSCHEDULESINX-itm_number = lv_posmat.
* wa_ORDERSCHEDULESINX-sched_line = lv_posmat.
* wa_ORDERSCHEDULESINX-req_qty = 'X'.
* wa_ORDERSCHEDULESINX-updateflag = 'X'.
* append wa_ORDERSCHEDULESINX to ORDERSCHEDULESINX.
****18/06End
* Item number end
* Switch off dialog (BAPIs always run without)
CALL FUNCTION 'DIALOG_SET_NO_DIALOG'.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
* SALESDOCUMENTIN =
order_header_in = orderheaderin
* ORDER_HEADER_INX =
* SENDER =
* BINARY_RELATIONSHIPTYPE =
* INT_NUMBER_ASSIGNMENT =
* BEHAVE_WHEN_ERROR =
* LOGIC_SWITCH =
* TESTRUN =
* CONVERT = ' '
* IMPORTING
* SALESDOCUMENT =
TABLES
return = return
order_items_in = orderitemsin
order_items_inx = orderitemsinx
order_partners = orderpartners
order_schedules_in = orderschedulesin
order_schedules_inx = orderschedulesinx
order_conditions_in = orderconditionsin
order_conditions_inx = orderconditionsinx
* ORDER_CFGS_REF =
* ORDER_CFGS_INST =
* ORDER_CFGS_PART_OF =
* ORDER_CFGS_VALUE =
* ORDER_CFGS_BLOB =
* ORDER_CFGS_VK =
* ORDER_CFGS_REFINST =
* ORDER_CCARD =
* ORDER_TEXT =
* ORDER_KEYS =
* EXTENSIONIN =
* PARTNERADDRESSES =
* commit work.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT =
* IMPORTING
* RETURN =
LOOP AT return INTO wa_return.
WRITE:/ wa_return-message.
ENDLOOP.
ENDFUNCTION.
*& Include ZSD_SO_CHANGES2_TOP Module Pool ZSD_SO_CHANGES2
PROGRAM ZSD_SO_CHANGES2.
***&SPWIZARD: DATA DECLARATION FOR TABLECONTROL 'ITEM_DATA'
*&SPWIZARD: DEFINITION OF DDIC-TABLE
TABLES: VBAP,kna1.
*&SPWIZARD: TYPE FOR THE DATA OF TABLECONTROL 'ITEM_DATA'
TYPES: BEGIN OF T_ITEM_DATA,
POSNR LIKE VBAP-POSNR,
MATNR LIKE VBAP-MATNR,
KWMENG LIKE VBAP-KWMENG,
VRKME LIKE VBAP-VRKME,
END OF T_ITEM_DATA.
*&SPWIZARD: INTERNAL TABLE FOR TABLECONTROL 'ITEM_DATA'
DATA: G_ITEM_DATA_ITAB TYPE T_ITEM_DATA OCCURS 0,
G_ITEM_DATA_WA TYPE T_ITEM_DATA. "work area
DATA: G_ITEM_DATA_COPIED. "copy flag
*&SPWIZARD: DECLARATION OF TABLECONTROL 'ITEM_DATA' ITSELF
CONTROLS: ITEM_DATA TYPE TABLEVIEW USING SCREEN 4000.
DATA:GV_NUM TYPE I VALUE 1,
GV_NUM2 TYPE I.
DATA: G_T_YREC_TAB_LINES LIKE SY-LOOPC.***********top*************
*& Include ZSD_SO_CHANGES2_TOP Module Pool ZSD_SO_CHANGES2
PROGRAM ZSD_SO_CHANGES2.
***&SPWIZARD: DATA DECLARATION FOR TABLECONTROL 'ITEM_DATA'
*&SPWIZARD: DEFINITION OF DDIC-TABLE
TABLES: VBAP,kna1.
*&SPWIZARD: TYPE FOR THE DATA OF TABLECONTROL 'ITEM_DATA'
TYPES: BEGIN OF T_ITEM_DATA,
POSNR LIKE VBAP-POSNR,
MATNR LIKE VBAP-MATNR,
KWMENG LIKE VBAP-KWMENG,
VRKME LIKE VBAP-VRKME,
END OF T_ITEM_DATA.
*&SPWIZARD: INTERNAL TABLE FOR TABLECONTROL 'ITEM_DATA'
DATA: G_ITEM_DATA_ITAB TYPE T_ITEM_DATA OCCURS 0,
G_ITEM_DATA_WA TYPE T_ITEM_DATA. "work area
DATA: G_ITEM_DATA_COPIED. "copy flag
*&SPWIZARD: DECLARATION OF TABLECONTROL 'ITEM_DATA' ITSELF
CONTROLS: ITEM_DATA TYPE TABLEVIEW USING SCREEN 4000.
DATA:GV_NUM TYPE I VALUE 1,
GV_NUM2 TYPE I.
DATA: G_T_YREC_TAB_LINES LIKE SY-LOOPC.
************************pbo*******************
*& Include ZSD_SO_CHANGES2_PBO
*&SPWIZARD: OUTPUT MODULE FOR TC 'ITEM_DATA'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: COPY DDIC-TABLE TO ITAB
MODULE ITEM_DATA_INIT OUTPUT.
IF G_ITEM_DATA_COPIED IS INITIAL.
*&SPWIZARD: COPY DDIC-TABLE 'VBAP'
*&SPWIZARD: INTO INTERNAL TABLE 'g_ITEM_DATA_itab'
* SELECT * FROM VBAP
* INTO CORRESPONDING FIELDS
* OF TABLE G_ITEM_DATA_ITAB.
* G_ITEM_DATA_COPIED = 'X'.
REFRESH CONTROL 'ITEM_DATA' FROM SCREEN '4000'.
ENDIF.
ITEM_DATA-LINES = G_T_YREC_TAB_LINES + 15.
ENDMODULE.
*&SPWIZARD: OUTPUT MODULE FOR TC 'ITEM_DATA'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: MOVE ITAB TO DYNPRO
MODULE ITEM_DATA_MOVE OUTPUT.
MOVE-CORRESPONDING G_ITEM_DATA_WA TO VBAP.
ENDMODULE.
*& Module STATUS_4000 OUTPUT
* text
MODULE STATUS_4000 OUTPUT.
SET PF-STATUS 'APAR'.
* REFRESH G_ITEM_DATA_ITAB.
GV_NUM = 1.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_4000 OUTPUT -
Problem with Back button in Top Level Navigation
Hi all,
We are facing a minor problem with the Back button in the Top Level Navigation in Portal. This button is present under the Roles and Worksets menu along with the History, Forward, and Add to Portal Favorites links.
The problem is faced when we have some worksets under a single role. While browsing accross these worksets by randomly clicking on them, we wish to use the Back button as well to go back to the previous workset. But when we use the Back button, the Detailed Navigation panel in the last workset is not retrieved.
I will explain with the System Administration Role. I open the worksets under this role in the following manner:
First I open Transport;
Next I open Portal Display;
Next I open System Configuration;
Now I wish to go back to Portal Display workset by clicking on the Back button. But when I do this, although the Portal Display workset opens up, but I cannot see the Detailed Navigation Panel. See the screenshot below:
http://img399.imageshack.us/my.php?image=backbuttonkg6.jpg
Please help me in solving this issue.
Regards,
AnkurI think I have found a resolution, although not very pleasant:
[Note 950426 - Portal Back button not working correctly|https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes/sdn_oss_ep_pi/~form/handler%7b5f4150503d3030323030363832353030303030303031393732265f4556454e543d444953504c4159265f4e4e554d3d393530343236%7d]
Regards,
Ankur -
How to handle The Back button on Module Pool screen
Hi Gurus,
I have created a module pool screen. In that screen I have used some input/output fields(text box) which i have marked mandatory by making the input field as "required" under program tab.
now when running the screen if no data is entered into these mandatory input field then BACK button does not work. First I have to enter some data into the input filed only then the BACK button works. How should i code so that the back button works even without entering the data into these mandatory fields.hi,
use AT EXIT-COMMAND with the module.
eg. module user_command at exit command.
then there will be no problem. -
Problem with back button with myfaces/jsf
Hi guys
i have very strange kind of problem , i have a page where i am shwing tabular data with data scroller , thats work fine , in this tabbular data we are shing user infomration , and a link on user name ti see his details , this link works fine , and take user to user details page ,
but from that page if user press back button , and reaches back to tabbular data page , in this page if user select any link , page reloads , and stay there , and after reloading page if user select any link then it works
Any one geting this kind of preoblem , hope i am not alone
please help me out
X-preetHi Luisa,
1 .Create 2 views View1 and View2
2. Place buttons on both the views and create actions for both in view1 and view2
3.Create outboundplug from View1 to View2.(Navigation link also)
4.Create outboundplug from View2 to View1.(Navigation link also)
5. In View1 button action fire the outboundplugto View2
6. In View2 button action fire the outboundplugto View1.
Regards, Anilkumar -
Multiple Video Tracks Problem with Back Button
Hi,
I am making a DVD that has to contain 16 films. Unfortunately the videos don't have the same aspect ratios, so I have to create one video track for each film.
When the DVD is started they are supposed to play all in a row (no menus). So the end action for each track is to jump to the first chapter of the next track.
My problem is that once I am playing, say, track 5, there is no way to get back to track 4 with the "back button" on the remote control.
Do I have to script this? And if yes, how?That is exactly my problem. Chapter markers only work on the same track, for some reason you can't jump to a chapter in a different track. What I need is a solution to jump from a track to the previous one when pressing the back button on the remote.
As I wrote before I can't use just one track for all films, because they have different aspect ratios.
Message was edited by: schmiddl -
Servlet Problem with Back Button on IE
Hello All:
This is a weird problem I am facing on IE.
I have a servlet which is invoked by the doGet() method. This servlet
has a FORM which has few fields. One of the field has a hyperlink which
makes a window.open() call for Onclick. This pop-up allows a user to
search for some value. The result of the search is displayed in a
SELECT box. Based on the value selected in this SELECT box, the field
in the servlet that called this pop-up gets populated. After this is
done, I close this pop-up & click on the proceed button of the FORM
(using POST) which takes us to another servlet. Then when I click on
the back button, the fields on the form which were populated are gone.
I have made the following analysis:
(i) On clicking the back button, a request is sent to the server.
(ii) It works on FireFox & not on IE
(iii) If I do not use the hyperlink to bring the pop-up, and then I
click on proceed and then back, the fields do not vanish.
(iv) I tried using http://www.google.com to the call on window.open().
Does not help
(v) The very action of using pop-up by clicking on it causes this
problem
(vi) I tried replacing the hyperlink with a button. It did not work.
Any help or tips in this regard would be helpful.
Thanks in advance.
MaheshI dont know how you can post on the back button, and am a bit confused as to why you need to go back, you would normally want to go forwards :).
What I would do is have the same servlet handle both cases.
I would make 1 servlet SUBMIT TO ITSELF.
You may have to pass an additional parameter to indicate whether this is the initial / first request, or a subsequent request where the servlet has re-submitted back to itself.
If you want to disable the back button you can use javaScript
<script language="JavaScript" type="text/JavaScript">
<!--
javascript:window.history.forward(-1);
-->
</script>
I used this when I found that users could use the back button and re-submit when I didnt want them to, kind of the opposite of your problem! -
Hi all,
i have idoc number in alv output.when the user clicks on this ,it should take the control to BD87 transaction with idoc number getting transferred there .also BD87 screen has changed on select option where the default is sy-datum .i need to clear this along with transfer of idoc number.
i tried using submit statement,but its not working.
then i used call transaction in error mode to acheive this functionality and i was sucessful.
beloe is my code:
REFRESH bdcdata.
READ TABLE t_out INTO wa_out INDEX rs_selfield-tabindex.
DATA: lv_mode(1) TYPE c VALUE 'E'.
PERFORM bdc_dynpro USING 'RBDMON00' '1100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'SX_UPDDA-HIGH'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=CRET'.
PERFORM bdc_field USING 'SX_DOCNU-LOW'
wa_out-docnum.
PERFORM bdc_field USING 'SX_CRETI-LOW'
'00:00:00'.
PERFORM bdc_field USING 'SX_CRETI-HIGH'
'00:00:00'.
PERFORM bdc_field USING 'SX_UPDDA-LOW'
PERFORM bdc_field USING 'SX_UPDDA-HIGH'
PERFORM bdc_field USING 'SX_UPDTI-LOW'
'00:00:00'.
PERFORM bdc_field USING 'SX_UPDTI-HIGH'
'00:00:00'.
PERFORM bdc_call_transaction USING 'BD87' lv_mode 'N'.
So,the control directly takes me inside the BD87 screen just after the screen which we get after execting the selection screen of bd87 with idoc details
the problem is whn i click on back button or F3,the control does not take me back to the ALV output screen rather it takes me to the selection screen of BD87.
So,any way out to solve the back button problem???
ThanksHi Kunal,
That's a really tough report to handle by submit.
You can try to call the transaction in error mode and place one moment to force the screen to appear. Then complete the BTCI with the last steps to exit the selection screen.
Try it like this:
REFRESH bdcdata.
READ TABLE t_out INTO wa_out INDEX rs_selfield-tabindex.
DATA: lv_mode(1) TYPE c VALUE 'E'.
PERFORM bdc_dynpro USING 'RBDMON00' '1100'.
PERFORM bdc_field USING 'BDC_CURSOR' 'SX_UPDDA-HIGH'.
PERFORM bdc_field USING 'BDC_OKCODE' '=CRET'.
PERFORM bdc_field USING 'SX_DOCNU-LOW' wa_out-docnum.
PERFORM bdc_field USING 'SX_CRETI-LOW' '00:00:00'.
PERFORM bdc_field USING 'SX_CRETI-HIGH' '00:00:00'.
PERFORM bdc_field USING 'SX_UPDDA-LOW' ''.
PERFORM bdc_field USING 'SX_UPDDA-HIGH' ''.
PERFORM bdc_field USING 'SX_UPDTI-LOW' '00:00:00'.
PERFORM bdc_field USING 'SX_UPDTI-HIGH' '00:00:00'.
*btci is interrupted in presentation of the result screen
*last steps to exit selection screen
PERFORM bdc_dynpro USING 'RBDMON00' '1100'.
PERFORM bdc_field USING 'BDC_OKCODE' '/ECBAC'.
PERFORM bdc_field USING 'BDC_CURSOR' 'SX_UPDDA-LOW'.
*use error mode in call transaction
CALL TRANSACTION 'BD87' USING bdcdata MODE 'E'.
*PERFORM bdc_call_transaction USING 'BD87' lv_mode 'N'.
hope it helps,
Edgar -
Problem with back button when using task flow to navigate through pages
I am using unbounded task flow to navigate through my pages
in page2 I added back button so I can back to page1 using the action A2
task flow 1
page 1 -----A1-------> page 2
page2 ----A2--------> page1
the problem when I used page2 in another task flow
task flow 2
page 3 -----A3------> page2
page 2 -----A4 -----> page3
here when I click on back button he take me to page1
how can I back to page3 ???????For this you have to know where the user came from when he navigated to page2. You can e.g. store the back target in a variable in the session or pageflow scope (when the user navigates from page1 or page3 to page2), then you bind the back button of page 2 to the stored variable.
Timo -
Having problem with back button on
The bottom left hand button on the Zen Micro won't seem to work correctly unless it is charged into the power adapter. I've tried the clean up mode but that didn't do anything, is there anything else that I can do other than rebooting it because I would hate to have to go through the whole method of inporting my music back on there cause it takes hours. Please give me any advice you have!
~Michellehaving the same problem at www.dealnews.com
not a problem with previous 3.32 version, but now i can't get back to the previous page without pressing the back button twice quickly.
if you press it once, it just reloads the same page.
i've reset safari, but nothing fixes it.
anyone else have an idea?
thanks! -
Problem with back button in alv o/p
Hi guys,
I am using Grid display to display a data. but when i am clicking on back button on o/p the o/p is displaying duplicate records for the first o/p. i,e it is displaying multiple records, again clicking on back it displaying extended o/p with more duplicate data...Hi
Check did u refreshed the internal that u displayed.
And also check grid control is initial or not
Data: g_cust_container TYPE REF TO cl_gui_custom_container,
g_cust_grid TYPE REF TO cl_gui_alv_grid.
**Create Container ALV Grid
IF g_cust_grid IS INITIAL.
Create Control Container for Grid
CREATE OBJECT g_cust_container
EXPORTING
container_name = g_container.
IF sy-subrc <> 0.
add your handling, for example
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = sy-repid
txt2 = sy-subrc
txt1 = text-m02. "The control could not be created.
ENDIF.
CREATE OBJECT g_cust_grid
EXPORTING
i_parent = g_cust_container.
ENDIF.
CALL METHOD g_cust_grid->refresh_table_display.
Regards,
Raghu. -
Problem with back button in jsp
hi all,
i am submitting some text field values and select option to a do_registration.jsp page.
till now everything is ok.
code in do_registration
if (rowCount > 0) //means user already exists
out.print("user already exists");
out.print("<A HREF='#' ONCLICK='javascript:history.back(-1);return false;'>back</a>");
else
insert syntax
if userexists i its diplays the message and
when i click on back link what ever the contents the registerform is cleared.i mean whatever the user input the values in the text fields etc everything has gone.user has to retype whole text again.
so where i am wrong.
any helpYou can definetly do this globaly on all browsers not looking at the settings by creating a small user bean. Just have a class User with getter and setter methods for main fields, or fields that you need to show in the back button. Then put that class in your WEB-INF classes dir.
Create a JSP as the page before where you are trying to validate a user. Use jsp tags. <jsp:Bean var="user" class="myPackage.User" scope="session"> In form input fields do the following.
<input name="first" value="<%=user.getFirst()%>">
Now everytime this page will be called that field will be populated
Hope this helps -
Urgent ...problem with back button in my browser
hello,
i created one login.jsp file and wellcome.jsp file and one logout.jsp file and one login controleservlet.If i login once i got wellcome page.In that i have logout button, and if i will click that button
it will display logout successfully message on browser.my requirement is that after i will get logoutsuccessfully message i want to avoid back button in my browser.if i click back button then it will display an error message like "your session expire".
please send the reply as soon as possible.I'm not certain of whether you want to disable the back button in the user's browser or you want to avoid this error message...
Assuming you want to avoid the error message entirely, I would set a variable in the session scope when the user logs in and any time you don't see that when you process a request in your servlet, redirect the user to the login page.
If you're looking to simply disable the back button in the browser, beyond asking the user nicely not to click the back button, good luck to ya. :)
Hope this helps!
- Kyle -
Problem with select option in module pool
Hello friends,
I have successfully created a select option in my module using sub-screen. My problem is the EXTENSION buttom in the select option. When i click on the EXTENSION button a proper pop-up appears but when i input some values or cancel this pop-up then the program gives the following dump.
Error
The attribute screen type with the values 'Normal Screen' and
'Subscreen' determines the use of the screen. If a normal screen is used
as subscreen or vice versa, an error occurs.
The screen "ZRPMSEA" 0002 has, in this respect, an inappropriate screen type.
Kindly HelpHI,
Go to the Screen Attributes and select the appropriate Radio Button
1) Normal Screen " Whichever is required (in Which type of Screen you Want)
2) Subscreen " Check for the Correct type and Check the Radio Button Accordingly
3) Modal Scree
Cheerz
Ram -
Hi All,
Iam in the BP_HEAD overview screen there i have a navigation link which takes me to BP_HEAD of the particular BP selected.
Now when i try to come back to BP_HEAD overview screen the data in some of the assignement blocks(Z) is not refreshed.
These carrry the data of the BP that was being called.
Any hints /pointersI facing same issue , may i know how you fixed it.
Maybe you are looking for
-
see these threads...they are old but i posted up on one ages ago and have never got around to fixing or replacing the drive since then.... slack... http://discussions.apple.com/message.jspa?messageID=3559409#3559409 and.. http://superdrive.crc.id.au/
-
How do you un-highlight text highlighted in error in Reader?
How do you un-highlight text highlighted in error in Reader? Also How can you change the color of the highlighting?
-
PL SQL File Download - file name shows up as procedure name?
Hello, I have been following the article below to create a download link to my db blobs, however when downloading the files, the file name appears as the procedure name as opposed to the desired file name. http://download.oracle.com/docs/cd/E10513_01
-
Does anybody know the name of the artist who the played the guitar for the N series advert shown in Hong Kong.
-
Hi all, I created a normal table 'ZNLMEVENTS' with 4 fields. I entered data. Now i created a function module with below code. Problem i have is i get only one record inspite of having more rows. How to get all rows shown.. i came to know its possible