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

PAI not getting triggered.

Former Member
0 Likes
1,673

HIO have a code as below.

The PAI module is not getting triggered.

I guess something small is missing but I am not getting it.

YOur help wud be appretiated and rewarded.

Thanks

=================

PROCESS BEFORE OUTPUT.

MODULE STATUS_0100.

LOOP WITH CONTROL TC.

MODULE FILL_TABLE_CONTROL.

ENDLOOP.

*

PROCESS AFTER INPUT.

MODULE USER_COMMAND_0100.

MODULE CANCEL AT EXIT-COMMAND.

LOOP WITH CONTROL TC.

module read_table_control.

ENDLOOP.

module user_command_0100.

======================

Program Code :

&----


*& Report ZSCD_TEST5

*&

&----


*&

*&

&----


REPORT ZSCD_TEST5.

DATA: BEGIN OF ITAB OCCURS 0,

PERNR TYPE PA0002-PERNR,

NACHN TYPE PA0002-NACHN,

VORNA TYPE PA0002-VORNA,

END OF ITAB.

CONTROLS TC TYPE TABLEVIEW USING SCREEN 100.

DATA: BEGIN OF WA_ITAB ,

PERNR TYPE PA0002-PERNR,

NACHN TYPE PA0002-NACHN,

VORNA TYPE PA0002-VORNA,

END OF wa_ITAB.

data : fill TYPE i.

DATA: ok_code TYPE sy-ucomm,

save_ok TYPE sy-ucomm.

DATA: lines TYPE i,

limit TYPE i.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS : P_LNAME LIKE PA0002-NACHN.

SELECTION-SCREEN END OF BLOCK B1.

start-of-selection.

select pernr nachn vorna from pa0002 into table itab where nachn = p_lname.

CALL SCREEN 100.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE STATUS_0100 OUTPUT.

SET PF-STATUS 'PF1'.

DESCRIBE TABLE itab LINES fill.

TC-lines = fill.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module CANCEL INPUT

&----


  • text

----


MODULE CANCEL INPUT.

LEAVE PROGRAM.

ENDMODULE. " CANCEL INPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE USER_COMMAND_0100 INPUT.

save_ok = ok_code.

CLEAR ok_code.

CASE save_ok.

WHEN 'NEXT_LINE'.

TC-top_line = TC-top_line + 1.

limit = fill - lines + 1.

IF TC-top_line > limit.

TC-top_line = limit.

ENDIF.

WHEN 'PREV_LINE'.

TC-top_line = TC-top_line - 1.

IF TC-top_line < 0.

TC-top_line = 0.

ENDIF.

WHEN 'NEXT_PAGE'.

TC-top_line = TC-top_line + lines.

limit = fill - lines + 1.

IF TC-top_line > limit.

TC-top_line = limit.

ENDIF.

WHEN 'PREV_PAGE'.

TC-top_line = TC-top_line - lines.

IF TC-top_line < 0.

TC-top_line = 0.

ENDIF.

WHEN 'LAST_PAGE'.

TC-top_line = fill - lines + 1.

WHEN 'FIRST_PAGE'.

TC-top_line = 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Module READ_TABLE_CONTROL INPUT

&----


  • text

----


MODULE READ_TABLE_CONTROL INPUT.

lines = sy-loopc.

MODIFY itab from wa_itab INDEX TC-current_line.

ENDMODULE. " READ_TABLE_CONTROL INPUT

&----


*& Module FILL_TABLE_CONTROL OUTPUT

&----


  • text

----


MODULE FILL_TABLE_CONTROL OUTPUT.

READ TABLE itab into wa_itab INDEX TC-current_line.

ENDMODULE. " FILL_TABLE_CONTROL OUTPUT

HIO have a code as below.

The PAI module is not getting triggered.

I guess something small is missing but I am not getting it.

YOur help wud be appretiated and rewarded.

Thanks

=================

PROCESS BEFORE OUTPUT.

MODULE STATUS_0100.

LOOP WITH CONTROL TC.

MODULE FILL_TABLE_CONTROL.

ENDLOOP.

*

PROCESS AFTER INPUT.

MODULE USER_COMMAND_0100.

MODULE CANCEL AT EXIT-COMMAND.

LOOP WITH CONTROL TC.

module read_table_control.

ENDLOOP.

module user_command_0100.

======================

Program Code :

&----


*& Report ZSCD_TEST5

*&

&----


*&

*&

&----


REPORT ZSCD_TEST5.

DATA: BEGIN OF ITAB OCCURS 0,

PERNR TYPE PA0002-PERNR,

NACHN TYPE PA0002-NACHN,

VORNA TYPE PA0002-VORNA,

END OF ITAB.

CONTROLS TC TYPE TABLEVIEW USING SCREEN 100.

DATA: BEGIN OF WA_ITAB ,

PERNR TYPE PA0002-PERNR,

NACHN TYPE PA0002-NACHN,

VORNA TYPE PA0002-VORNA,

END OF wa_ITAB.

data : fill TYPE i.

DATA: ok_code TYPE sy-ucomm,

save_ok TYPE sy-ucomm.

DATA: lines TYPE i,

limit TYPE i.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS : P_LNAME LIKE PA0002-NACHN.

SELECTION-SCREEN END OF BLOCK B1.

start-of-selection.

select pernr nachn vorna from pa0002 into table itab where nachn = p_lname.

CALL SCREEN 100.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE STATUS_0100 OUTPUT.

SET PF-STATUS 'PF1'.

DESCRIBE TABLE itab LINES fill.

TC-lines = fill.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module CANCEL INPUT

&----


  • text

----


MODULE CANCEL INPUT.

LEAVE PROGRAM.

ENDMODULE. " CANCEL INPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE USER_COMMAND_0100 INPUT.

save_ok = ok_code.

CLEAR ok_code.

CASE save_ok.

WHEN 'NEXT_LINE'.

TC-top_line = TC-top_line + 1.

limit = fill - lines + 1.

IF TC-top_line > limit.

TC-top_line = limit.

ENDIF.

WHEN 'PREV_LINE'.

TC-top_line = TC-top_line - 1.

IF TC-top_line < 0.

TC-top_line = 0.

ENDIF.

WHEN 'NEXT_PAGE'.

TC-top_line = TC-top_line + lines.

limit = fill - lines + 1.

IF TC-top_line > limit.

TC-top_line = limit.

ENDIF.

WHEN 'PREV_PAGE'.

TC-top_line = TC-top_line - lines.

IF TC-top_line < 0.

TC-top_line = 0.

ENDIF.

WHEN 'LAST_PAGE'.

TC-top_line = fill - lines + 1.

WHEN 'FIRST_PAGE'.

TC-top_line = 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Module READ_TABLE_CONTROL INPUT

&----


  • text

----


MODULE READ_TABLE_CONTROL INPUT.

lines = sy-loopc.

MODIFY itab from wa_itab INDEX TC-current_line.

ENDMODULE. " READ_TABLE_CONTROL INPUT

&----


*& Module FILL_TABLE_CONTROL OUTPUT

&----


  • text

----


MODULE FILL_TABLE_CONTROL OUTPUT.

READ TABLE itab into wa_itab INDEX TC-current_line.

ENDMODULE. " FILL_TABLE_CONTROL OUTPUT

4 REPLIES 4
Read only

sivasatyaprasad_yerra
Product and Topic Expert
Product and Topic Expert
0 Likes
1,016

Hi,

I think variable OK_CODE is not assigned to the OK button. Go to screen 100. Goto "Element List" tab and check whether OK_CODE variable is assigned to "OK" (Type of screen element) in "general attr" tab.

Regards,

Siva.

Read only

0 Likes
1,016

Hi there.

By Siva: "I think variable OK_CODE is not assigned to the OK button" <- this really could be the reason.

However, i've noticed something strange in PAI of screen 100. Why did you insert module user_command_0100 twice? Comment the first one, and use the last one (should be last command of your PAI.

But my advice is to insert a break-point at statement save_ok = ok_code to see if it's triggered or not.

Regards.

Valter Oliveira.

Read only

Former Member
0 Likes
1,016

Hi,

change this code.

save_ok = ok_code.....change this as:

save_ok = sy-ucomm.

Regards

Sandeep REddy.

Read only

Former Member
0 Likes
1,016

Hi,

You can make the following changes:

1. Remove the module User_command_100 in the first line.

2. Check whether Ok_code has been assigned properly.

3. Put a debug point and check whether the PAI is getting triggered.

4. The Table Control code should be at the beginning of the PAI event.

Hope this helps.

Thanks,

Samantak.

Rewards points for useful answers.