Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

call screen not working

Former Member
0 Likes
2,746

Hi gurus,

I m developing a report and I m trying to call another screen after a statement. I have a problem. ALthough ı m writing call screen 300, the 100 numbered screen comes. What may be the reason? Thanks in advance?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,873

Hi,

Please try with this code.


** PBO Module **************************************
process before output.

  module status_0100.
  call subscreen sub_1 including sy-repid w_scrno.
  call subscreen sub_2 including sy-repid w_scrno1.

*** PAI Module  ************************************

process after input.

  module exit_command at exit-command.


** Calling the first Subscreen
  call subscreen sub_1.


** Call Subscreen area 2
  call subscreen sub_2.

regrads,

Suvajit.

Hi gurus,

I m developing a report and I m trying to call another screen after a statement. I have a problem. ALthough ı m writing call screen 300, the 100 numbered screen comes. What may be the reason? Thanks in advance?

8 REPLIES 8
Read only

Former Member
0 Likes
1,873

MY--CODES

..................................................

DATA: L_VALID TYPE C.

DATA :

TIMETICKETS TYPE BAPI_PP_TIMETICKET OCCURS 0 WITH HEADER LINE,

RETURN LIKE BAPIRET1,

LINK_CONF_GOODSMOV TYPE BAPI_LINK_CONF_GOODSMOV

OCCURS 0 WITH HEADER LINE,

GOODSMOVEMENTS TYPE BAPI2017_GM_ITEM_CREATE OCCURS 0 WITH HEADER LINE.

CALL METHOD CI_ALV->CHECK_CHANGED_DATA

IMPORTING

E_VALID = L_VALID.

  • CALL METHOD CI_ALV->GET_SELECTED_ROWS

  • IMPORTING

  • ET_INDEX_ROWS = LT_INDEX_ROWS.

  • LOOP AT LT_INDEX_ROWS INTO LS_INDEX_ROWS.

  • READ TABLE GT_ITAB INDEX LS_INDEX_ROWS-INDEX.

  • IF SY-SUBRC = 0.

  • ENDIF.

  • ENDLOOP.

REFRESH : DETAIL_RETURN.

READ TABLE GT_ITAB WITH KEY CHK = 'X'.

IF SY-SUBRC NE 0.

MESSAGE E000(ZPP) WITH 'Lütfen operasyon seçin'.

ENDIF.

CLEAR : DETAIL_RETURN, DETAIL_RETURN[].

LOOP AT GT_ITAB WHERE CHK IS NOT INITIAL

AND OK IS INITIAL.

IF GT_ITAB-LMNGA LE 0 AND GT_ITAB-XMNGA LE 0.

MESSAGE E000(ZPP) WITH

'Operasyon' GT_ITAB-VORNR 'için miktar girin'.

ENDIF.

REFRESH : TIMETICKETS, DETAIL_RET.

CLEAR : TIMETICKETS, DETAIL_RET.

TIMETICKETS-ORDERID = GT_ITAB-AUFNR.

TIMETICKETS-OPERATION = GT_ITAB-VORNR.

TIMETICKETS-YIELD = GT_ITAB-LMNGA.

TIMETICKETS-SCRAP = GT_ITAB-XMNGA.

CLEAR ACT_LMNGA.

ACT_LMNGA = TIMETICKETS-YIELD + TIMETICKETS-SCRAP.

  • export gv_lmnga to memory id 'GV_LMNGA'.

TIMETICKETS-CONF_QUAN_UNIT = GT_ITAB-AMEIN.

TIMETICKETS-FIN_CONF = GT_ITAB-AUERU.

TIMETICKETS-POSTG_DATE = GV_BUDAT.

*--- Calculate activity

SELECT SINGLE * FROM AFKO WHERE AUFNR = GT_ITAB-AUFNR.

IF SY-SUBRC IS INITIAL.

SELECT * INTO TABLE WLT_AFVC

FROM AFVC WHERE AUFPL = AFKO-AUFPL

AND VORNR = GT_ITAB-VORNR .

IF NOT SY-DBCNT IS INITIAL.

SORT WLT_AFVC BY APLZL.

LOOP AT WLT_AFVC.

CLEAR: AFVDB_TAB[],

AFVDB_TAB.

CALL FUNCTION 'ZPP_CO_DB_AFVGD_SINGLE_READ'

EXPORTING

AFVG_AUFTRAG = WLT_AFVC-AUFPL

AFVG_VORGANG = WLT_AFVC-APLZL

TABLES

AFVDB_TAB = AFVDB_TAB

EXCEPTIONS

NOT_FOUND = 1

OTHERS = 2.

IF SY-SUBRC <> 0.

ELSE.

LOOP AT AFVDB_TAB WHERE AUFPL = WLT_AFVC-AUFPL

AND APLZL = WLT_AFVC-APLZL.

CLEAR: ACT_AFVGD,

EXP_ACTIVITIES.

MOVE-CORRESPONDING AFVDB_TAB TO ACT_AFVGD.

*-Calculate Activity values--


*

PERFORM CALCULATE_ACTCONF_QTY USING GT_ITAB-MATNR

GT_ITAB-AMEIN

ACT_LMNGA

GV_ACTMG.

*----


*

CALL FUNCTION 'CO_R0_DET_TOTAL_ACTIVITY'

EXPORTING

ACT_AFVGD = ACT_AFVGD

ACT_FLG_CONSIDER_CONF = 'X'

ACT_QUANTITY = GV_ACTMG

ACT_DATUM = SY-DATUM

ACT_FLG_MST = 'X'

ACT_ARBID = ACT_AFVGD-ARBID

ACT_WERKS = ACT_AFVGD-WERKS

IMPORTING

EXP_ACTIVITIES = EXP_ACTIVITIES

EXCEPTIONS

DIVISION_BY_ZERO = 1

OTHERS = 2.

IF SY-SUBRC <> 0.

ELSE.

TIMETICKETS-CONF_ACTIVITY1 = EXP_ACTIVITIES-ACTI1.

TIMETICKETS-CONF_ACTI_UNIT1 = EXP_ACTIVITIES-UNIT1.

IF GT_ITAB-CONF_ACTIVITY2 IS INITIAL.

TIMETICKETS-CONF_ACTIVITY2 = EXP_ACTIVITIES-ACTI2.

ELSE.

TIMETICKETS-CONF_ACTIVITY2 = GT_ITAB-CONF_ACTIVITY2.

ENDIF.

TIMETICKETS-CONF_ACTI_UNIT2 = EXP_ACTIVITIES-UNIT2.

IF GT_ITAB-CONF_ACTIVITY3 IS INITIAL.

TIMETICKETS-CONF_ACTIVITY3 = EXP_ACTIVITIES-ACTI3.

ELSE.

TIMETICKETS-CONF_ACTIVITY3 = GT_ITAB-CONF_ACTIVITY3.

ENDIF.

TIMETICKETS-CONF_ACTI_UNIT3 = EXP_ACTIVITIES-UNIT3.

TIMETICKETS-CONF_ACTIVITY4 = EXP_ACTIVITIES-ACTI4.

TIMETICKETS-CONF_ACTI_UNIT4 = EXP_ACTIVITIES-UNIT4.

TIMETICKETS-CONF_ACTIVITY5 = EXP_ACTIVITIES-ACTI5.

TIMETICKETS-CONF_ACTI_UNIT5 = EXP_ACTIVITIES-UNIT5.

TIMETICKETS-CONF_ACTIVITY6 = EXP_ACTIVITIES-ACTI6.

TIMETICKETS-CONF_ACTI_UNIT6 = EXP_ACTIVITIES-UNIT6.

ENDIF.

ENDLOOP.

ENDIF.

ENDLOOP.

ENDIF.

ENDIF.

*---

APPEND TIMETICKETS.

APPEND TIMETICKETSALL.

DATA : GV_ZZSHIFT LIKE AFRU-ZZSHIFT,

GV_ZZZOPER LIKE AFRU-ZZZOPER,

GV_ZZZOPE1 LIKE AFRU-ZZZOPE1,

GV_ZZZDRN1 LIKE AFRU-ZZZDRN1,

GV_ZZZDRS1 LIKE AFRU-ZZZDRS1,

GV_ZZZDRN2 LIKE AFRU-ZZZDRN2,

GV_ZZZDRS2 LIKE AFRU-ZZZDRS2,

GV_ZZZDRN3 LIKE AFRU-ZZZDRN3,

GV_ZZZDRS3 LIKE AFRU-ZZZDRS3.

GV_ZZSHIFT = GT_ITAB-ZZSHIFT.

GV_ZZZOPER = GT_ITAB-ZZZOPER.

GV_ZZZOPE1 = GT_ITAB-ZZZOPE1.

GV_ZZZDRN1 = GT_ITAB-ZZZDRN1.

GV_ZZZDRS1 = GT_ITAB-ZZZDRS1.

GV_ZZZDRN2 = GT_ITAB-ZZZDRN2.

GV_ZZZDRS2 = GT_ITAB-ZZZDRS2.

GV_ZZZDRN3 = GT_ITAB-ZZZDRN3.

GV_ZZZDRS3 = GT_ITAB-ZZZDRS3.

EXPORT GV_ZZSHIFT TO MEMORY ID 'ZZSHIFT'.

EXPORT GV_ZZZOPER TO MEMORY ID 'ZZZOPER'.

EXPORT GV_ZZZOPE1 TO MEMORY ID 'ZZZOPE1'.

EXPORT GV_ZZZDRN1 TO MEMORY ID 'ZZZDRN1'.

EXPORT GV_ZZZDRS1 TO MEMORY ID 'ZZZDRS1'.

EXPORT GV_ZZZDRN2 TO MEMORY ID 'ZZZDRN2'.

EXPORT GV_ZZZDRS2 TO MEMORY ID 'ZZZDRS2'.

EXPORT GV_ZZZDRN3 TO MEMORY ID 'ZZZDRN3'.

EXPORT GV_ZZZDRS3 TO MEMORY ID 'ZZZDRS3'.

CALL FUNCTION 'BAPI_PRODORDCONF_CREATE_TT'

EXPORTING

POST_WRONG_ENTRIES = '1'

IMPORTING

RETURN = RETURN

TABLES

TIMETICKETS = TIMETICKETS[]

GOODSMOVEMENTS = GOODSMOVEMENTS[]

LINK_CONF_GOODSMOV = LINK_CONF_GOODSMOV[]

DETAIL_RETURN = DETAIL_RET[].

IF RETURN-TYPE IS INITIAL . "islem basarili

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'.

GT_ITAB-OK = 'X'.

CLEAR GT_ITAB-CHK.

GT_ITAB-ROWCOLOR = 'C510'.

MODIFY GT_ITAB.

ELSE.

GT_ITAB-ROWCOLOR = 'C610'.

CLEAR GT_ITAB-CHK.

MODIFY GT_ITAB.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

ENDIF.

LOOP AT DETAIL_RET.

MOVE-CORRESPONDING DETAIL_RET TO DETAIL_RETURN.

APPEND DETAIL_RETURN.

GT_ITAB-MESSAGE = DETAIL_RET-MESSAGE.

MODIFY GT_ITAB.

ENDLOOP.

CALL SCREEN 300.

ENDLOOP.

Edited by: OSMANBIYIK on Dec 21, 2010 7:40 AM

Read only

0 Likes
1,873

Hi Osman,

this link may help you to [post code in SCN, and some things NOT to do...|;

Regards,

Clemens

Read only

0 Likes
1,873

Hi,

Have you define screen 100 or 300.

Please check the condition line in debugging mode

'LOOP AT GT_ITAB WHERE CHK IS NOT INITIAL AND OK IS INITIAL'

Please check in this line condition is felt or not.

Read only

Former Member
0 Likes
1,873

Hi,

Keep a breakpoint in call screen statement

and check where the flow is going.

May b in PBO of screen 300,it is calling the screen 100.

Read only

Former Member
0 Likes
1,874

Hi,

Please try with this code.


** PBO Module **************************************
process before output.

  module status_0100.
  call subscreen sub_1 including sy-repid w_scrno.
  call subscreen sub_2 including sy-repid w_scrno1.

*** PAI Module  ************************************

process after input.

  module exit_command at exit-command.


** Calling the first Subscreen
  call subscreen sub_1.


** Call Subscreen area 2
  call subscreen sub_2.

regrads,

Suvajit.

Read only

Former Member
0 Likes
1,873

hi gurus,

my requirement is to call two screens in the sma subscreen area.i have declared two screens with 200 and 300 and wrote code CALL SUBSCREEN NAME IN PAI event , CALL SUBSCREEN NAME INCLUDING SY-REPID DYNNR IN PBO EVENT.

this code is not working.....plz help me

CASE OK_CODE.

WHEN 'ALV'.

DYNNR = '0200'.

WHEN 'TC'.

  • SELECT * FROM MAKT INTO TABLE IT_MAKT WHERE MATNR BETWEEN P_MATNR1 AND P_MATNR2.

DYNNR = '0300'.

WHEN 'CLEAR'.

CLEAR P_MATNR1.

CLEAR P_MATNR2.

WHEN 'BACK'.

LEAVE TO SCREEN 0.

clear dynnr.

ENDCASE.

thanks,

Edited by: VAMSHI KISHORE CHADUVU on Mar 5, 2011 5:30 AM

Read only

Former Member
0 Likes
1,873

hi gurus,

i have to call two subscreens in the same area,not at the same time.i wrote the code but call subscreen statement in the PAI event is not working ( i checked it in debugging mode it is leaving the program at that statement.....................plz help me

thanks in advance

Read only

0 Likes
1,873

Hi,

Make sure that the CALL SUBSCREEN subscreenareaname is the first statement after the 'Process after input' in your flow logic of the main screen. CASE OK_CODE should be written in another module after the CALL SUBSCREEN subscreenareaname in the PAI. May be your ok_code is getting changed somewhere. If all this doesn't help, try going in Debugging mode and see what happens.

Hope this will help.

Regards,

Mahesh M.S.