Module Pool Prog Demo

*----------------------------------------------------------------------*
* Name of the program: *
* *
* Purpose: DEMO OF MODULE POOL PROGRAMMING
*
*----------------------------------------------------------------------*
* Author : JATIN SINGHAL *
* Date : 30.05.2014 *


PROGRAM yj_funmodule_demo.

TABLES : yjdemo, makt.

DATA : ok_code TYPE sy-ucomm.

*DATA : wa_mara like line of mara.

*DATA : WA Type YJDEMO.

*&---------------------------------------------------------------------*
*& Module STATUS_0001 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0001 OUTPUT.
SET PF-STATUS 'STATUS'.
SET TITLEBAR 'TITLE'.

* IF yjdemo-ymatnr IS NOT INITIAL.
* SELECT SINGLE maktx FROM makt INTO makt-maktx WHERE matnr = yjdemo-ymatnr.
* ENDIF.

ENDMODULE. " STATUS_0001 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0001 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*AT USER-COMMAND.


MODULE user_command_0001 INPUT.

*PERFORM f_user_comand CHANGING ok_code.
PERFORM database_update.
*Perform update .
commit work.

CASE ok_code.

* WHEN 'ENTR'.
* Select single maktx from makt into makt-maktx where matnr = yjdemo-ymatnr.

WHEN 'DISP'.
SELECT SINGLE * FROM yjdemo WHERE ymatnr = yjdemo-ymatnr.
IF sy-subrc NE 0.
MESSAGE text-005 TYPE 'E'.
ENDIF.

WHEN 'RFSH'.
CLEAR yjdemo.
CLEAR makt.

WHEN 'EXIT'.
LEAVE PROGRAM.

WHEN 'BACK'.
LEAVE TO SCREEN 0.
Endcase.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module POPULATE_MAT_DESC INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE populate_mat_desc INPUT.
clear ok_code.
SELECT SINGLE maktx FROM makt INTO makt-maktx WHERE matnr = yjdemo-ymatnr.

ENDMODULE. " POPULATE_MAT_DESC INPUT


MODULE f4_matnr INPUT.

DATA: screen_values TYPE TABLE OF ddshretval,
screen_value
LIKE LINE OF screen_values.

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname
= 'YJDEMO'
fieldname
= 'YMATNR'
dynpprog
= sy-cprog
dynpnr
= sy-
dynnr
dynprofield
= 'YJDEMO-YMATNR'

TABLES
return_tab
= screen_values.
READ TABLE screen_values INTO screen_value INDEX 1.

SELECT SINGLE maktx FROM makt INTO makt-maktx WHERE matnr EQ screen_value-fieldval .

yjdemo
-ymatnr = screen_value-fieldval.
LEAVE TO SCREEN 001.
ENDMODULE. " F4_MATNR INPUT
*&---------------------------------------------------------------------*
*& Form F_USER_COMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_OK_CODE text
*----------------------------------------------------------------------*
*FORM f_user_comand CHANGING fp_code TYPE syucomm.

*CALL FUNCTION 'YJ_MODULE_POOL_UPDATE'
* EXPORTING
* matnr = YJDEMO-YMATNR
* catch = FP_CODE
* IMPORTING
* LS_MARA = YJDEMO
* EXCEPTIONS
* RECORD_DELETED = 1
* RECORD_NOT_FOUND = 2
* RECORD_MODIFIED = 3
* RECORD_NOT_MODIFIED = 4
* MATERIAL_NOT_FOUND = 5
* OTHERS = 6.
*
*IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*ENDIF.

*ENDFORM. " F_USER_COMAND

*&---------------------------------------------------------------------*
*& Form DATABASE_UPDATE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form DATABASE_UPDATE .
CALL FUNCTION 'YJ_DB_UPDATE'
EXPORTING
ls_mara
= yjdemo
catch = ok_code.

endform. " DATABASE_UPDATE

*&---------------------------------------------------------------------*
*& Module VALIDATE INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*module VALIDATE input.
* DATA lv_mandt type mandt.
*
* SELECT single mandt from MARA into lv_mandt where matnr = yjdemo-ymatnr.
* If sy-subrc <> 0.
* MESSAGE text-005 type 'E'.
* Endif.
*endmodule. " VALIDATE INPUT


*&---------------------------------------------------------------------*
*& Form UPDATE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
*form UPDATE .
*CASE ok_code.

* WHEN ' '.
* Select single maktx from makt into makt-maktx where matnr = yjdemo-ymatnr.

* WHEN 'DISP'.
* SELECT SINGLE * FROM yjdemo WHERE ymatnr = yjdemo-ymatnr.
* IF sy-subrc NE 0.
* MESSAGE text-005 TYPE 'E'.
* ENDIF.
*
* WHEN 'MODI'.
* MODIFY yjdemo FROM yjdemo ."TRANSPORTING ylongtext yactive yvalid_from_date yvalid_to_date yfling ymeins .
* CLEAR yjdemo.
* IF sy-subrc = 0.
* MESSAGE text-003 TYPE 'I'.
* ELSE.
* MESSAGE text-004 TYPE 'W'.
* ENDIF.
* CLEAR yjdemo.
*
* WHEN 'INST'.
* INSERT into yjdemo values yjdemo.
*
* WHEN 'RFSH'.
* CLEAR yjdemo.
* CLEAR makt.
*
* WHEN 'DELT'.
* DELETE yjdemo FROM yjdemo." WHERE YMATNR = YJDEMO-YMATNR.
* CLEAR yjdemo.
* IF sy-subrc = 0.
* MESSAGE text-001 TYPE 'I'.
* ELSE.
* MESSAGE text-002 TYPE 'E'.
* ENDIF.
*
* WHEN 'EXIT'.
* LEAVE PROGRAM.
*
* WHEN 'BACK'.
* LEAVE TO SCREEN 0.
*
* ENDCASE.
*endform. " UPDATE


Flow Logic of screen 001.

PROCESS BEFORE OUTPUT.
MODULE status_0001.

PROCESS AFTER
INPUT.

* CHAIN.
* FIELD yjdemo-ymatnr.
* MODULE validate.
* ENDCHAIN.

MODULE user_command_0001.
MODULE populate_mat_desc.


PROCESS
ON VALUE-REQUEST.
FIELD yjdemo-ymatnr MODULE f4_matnr.

Comments

Popular posts from this blog

Export data to xls using OOPS

Factory method ALV sap abap

Delete Selected Record in ALV Report