0% found this document useful (0 votes)
52 views9 pages

Function Data Type C: 'Viewproc - Z202Emp - Mview'

This document contains the source code for a program that handles maintenance and editing of a database view called VIEWFRAME_Z202EMP_MVIEW. It selects and displays data, allows editing data, handles user commands, and saves any changes back to the database by calling functions and handling exceptions. Key functions include selecting data, editing data, handling user commands like save or transport, and refreshing or saving data to the database.

Uploaded by

marypercis
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views9 pages

Function Data Type C: 'Viewproc - Z202Emp - Mview'

This document contains the source code for a program that handles maintenance and editing of a database view called VIEWFRAME_Z202EMP_MVIEW. It selects and displays data, allows editing data, handles user commands, and saves any changes back to the database by calling functions and handling exceptions. Key functions include selecting data, editing data, handling user commands like save or transport, and refreshing or saving data to the database.

Uploaded by

marypercis
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

*---------------------------------------------------------------------*

* program for: VIEWFRAME_Z202EMP_MVIEW


* generation date: 09.09.2019 at 15:01:36
* view maintenance generator version: #001407#
*---------------------------------------------------------------------*
FUNCTION VIEWFRAME_Z202EMP_MVIEW .

DATA: ENQUEUE_PROCESSED TYPE C. "flag: view enqueued by VIEWFRAME_...

*-<<<-------------------------------------------------------------->>>>*
* Entrypoint after changing maintenance mode (show <--> update) *
*-<<<-------------------------------------------------------------->>>>*
DO.
*----------------------------------------------------------------------*
* Select data from database *
*----------------------------------------------------------------------*
CALL FUNCTION 'VIEWPROC_Z202EMP_MVIEW'
EXPORTING
FCODE = READ
VIEW_ACTION = VIEW_ACTION
VIEW_NAME = VIEW_NAME
TABLES
EXCL_CUA_FUNCT = EXCL_CUA_FUNCT
EXTRACT = Z202EMP_MVIEW_EXTRACT
TOTAL = Z202EMP_MVIEW_TOTAL
X_HEADER = X_HEADER
X_NAMTAB = X_NAMTAB
DBA_SELLIST = DBA_SELLIST
DPL_SELLIST = DPL_SELLIST
CORR_KEYTAB = E071K_TAB
EXCEPTIONS
MISSING_CORR_NUMBER = 1
NO_VALUE_FOR_SUBSET_IDENT = 2.
CASE SY-SUBRC.
WHEN 1.
RAISE MISSING_CORR_NUMBER.
WHEN 2.
RAISE NO_VALUE_FOR_SUBSET_IDENT.
ENDCASE.
*-<<<-------------------------------------------------------------->>>>*
* Entrypoint after saving data into database *
* Entrypoint after refreshing selected entries from database *
*-<<<-------------------------------------------------------------->>>>*
DO.
*----------------------------------------------------------------------*
* Edit data *
*----------------------------------------------------------------------*
DO.
CALL FUNCTION 'VIEWPROC_Z202EMP_MVIEW'
EXPORTING
FCODE = EDIT
VIEW_ACTION = MAINT_MODE
VIEW_NAME = VIEW_NAME
CORR_NUMBER = CORR_NUMBER
IMPORTING
UCOMM = FUNCTION
UPDATE_REQUIRED = STATUS_Z202EMP_MVIEW-UPD_FLAG
TABLES
EXCL_CUA_FUNCT = EXCL_CUA_FUNCT
EXTRACT = Z202EMP_MVIEW_EXTRACT
TOTAL = Z202EMP_MVIEW_TOTAL
X_HEADER = X_HEADER
X_NAMTAB = X_NAMTAB
DBA_SELLIST = DBA_SELLIST
DPL_SELLIST = DPL_SELLIST
CORR_KEYTAB = E071K_TAB
EXCEPTIONS
MISSING_CORR_NUMBER = 1
NO_VALUE_FOR_SUBSET_IDENT = 2.
CASE SY-SUBRC.
WHEN 1.
IF MAINT_MODE EQ TRANSPORTIEREN AND VIEW_ACTION EQ AENDERN.
MOVE VIEW_ACTION TO MAINT_MODE.
ELSE.
PERFORM BEFORE_LEAVING_FRAME_FUNCTION
USING X_HEADER-FRM_BF_END.
RAISE MISSING_CORR_NUMBER.
ENDIF.
WHEN 2.
RAISE NO_VALUE_FOR_SUBSET_IDENT.
WHEN OTHERS.
EXIT.
ENDCASE.
ENDDO.
*----------------------------------------------------------------------*
* Handle usercommands... *
* ...at first handle commands which could cause loss of data *
*----------------------------------------------------------------------*
IF FUNCTION EQ BACK. FUNCTION = END. ENDIF.
IF ( FUNCTION EQ SWITCH_TO_SHOW_MODE OR
FUNCTION EQ GET_ANOTHER_VIEW OR
FUNCTION EQ SWITCH_TRANSP_TO_UPD_MODE OR
FUNCTION EQ END ) AND
STATUS_Z202EMP_MVIEW-UPD_FLAG NE SPACE.
PERFORM BEENDEN.
CASE SY-SUBRC.
WHEN 0.
CALL FUNCTION 'VIEWPROC_Z202EMP_MVIEW'
EXPORTING
FCODE = SAVE
VIEW_ACTION = MAINT_MODE
VIEW_NAME = VIEW_NAME
CORR_NUMBER = CORR_NUMBER
IMPORTING
UPDATE_REQUIRED = STATUS_Z202EMP_MVIEW-UPD_FLAG
TABLES
EXCL_CUA_FUNCT = EXCL_CUA_FUNCT
EXTRACT = Z202EMP_MVIEW_EXTRACT
TOTAL = Z202EMP_MVIEW_TOTAL
X_HEADER = X_HEADER
X_NAMTAB = X_NAMTAB
DBA_SELLIST = DBA_SELLIST
DPL_SELLIST = DPL_SELLIST
CORR_KEYTAB = E071K_TAB
EXCEPTIONS
MISSING_CORR_NUMBER = 1
NO_VALUE_FOR_SUBSET_IDENT = 2
SAVING_CORRECTION_FAILED = 3.
CASE SY-SUBRC.
WHEN 0.
IF STATUS_Z202EMP_MVIEW-UPD_FLAG EQ SPACE. EXIT. ENDIF.
WHEN 1. RAISE MISSING_CORR_NUMBER.
WHEN 2. RAISE NO_VALUE_FOR_SUBSET_IDENT.
WHEN 3.
ENDCASE.
WHEN 8. EXIT.
WHEN 12.
ENDCASE.
*----------------------------------------------------------------------*
* ...2nd: transport request *
*----------------------------------------------------------------------*
ELSEIF FUNCTION EQ TRANSPORT.
IF STATUS_Z202EMP_MVIEW-UPD_FLAG NE SPACE.
PERFORM TRANSPORTIEREN.
CASE SY-SUBRC.
WHEN 0.
CALL FUNCTION 'VIEWPROC_Z202EMP_MVIEW'
EXPORTING
FCODE = SAVE
VIEW_ACTION = MAINT_MODE
VIEW_NAME = VIEW_NAME
CORR_NUMBER = CORR_NUMBER
IMPORTING
UPDATE_REQUIRED =
STATUS_Z202EMP_MVIEW-UPD_FLAG
TABLES
EXCL_CUA_FUNCT = EXCL_CUA_FUNCT
EXTRACT = Z202EMP_MVIEW_EXTRACT
TOTAL = Z202EMP_MVIEW_TOTAL
X_HEADER = X_HEADER
X_NAMTAB = X_NAMTAB
DBA_SELLIST = DBA_SELLIST
DPL_SELLIST = DPL_SELLIST
CORR_KEYTAB = E071K_TAB
EXCEPTIONS
MISSING_CORR_NUMBER = 1
NO_VALUE_FOR_SUBSET_IDENT = 2
SAVING_CORRECTION_FAILED = 3.
CASE SY-SUBRC.
WHEN 0. MAINT_MODE = TRANSPORTIEREN.
WHEN 1. RAISE MISSING_CORR_NUMBER.
WHEN 2. RAISE NO_VALUE_FOR_SUBSET_IDENT.
WHEN 3.
ENDCASE.
WHEN 8.
EXIT.
WHEN 12.
ENDCASE.
ELSE.
MAINT_MODE = TRANSPORTIEREN.
ENDIF.
*----------------------------------------------------------------------*
* ...now reset or save requests *
*----------------------------------------------------------------------*
ELSEIF FUNCTION EQ RESET_LIST OR
FUNCTION EQ RESET_ENTRY OR
FUNCTION EQ SAVE.
*----------------------------------------------------------------------*
* Refresh selected entries from database or save data into database *
*----------------------------------------------------------------------*
CALL FUNCTION 'VIEWPROC_Z202EMP_MVIEW'
EXPORTING
FCODE = FUNCTION
VIEW_ACTION = MAINT_MODE
VIEW_NAME = VIEW_NAME
CORR_NUMBER = CORR_NUMBER
IMPORTING
UPDATE_REQUIRED = STATUS_Z202EMP_MVIEW-UPD_FLAG
TABLES
EXCL_CUA_FUNCT = EXCL_CUA_FUNCT
EXTRACT = Z202EMP_MVIEW_EXTRACT
TOTAL = Z202EMP_MVIEW_TOTAL
X_HEADER = X_HEADER
X_NAMTAB = X_NAMTAB
DBA_SELLIST = DBA_SELLIST
DPL_SELLIST = DPL_SELLIST
CORR_KEYTAB = E071K_TAB
EXCEPTIONS
MISSING_CORR_NUMBER = 1
NO_VALUE_FOR_SUBSET_IDENT = 2
SAVING_CORRECTION_FAILED = 3.
CASE SY-SUBRC.
WHEN 1. RAISE MISSING_CORR_NUMBER.
WHEN 2. RAISE NO_VALUE_FOR_SUBSET_IDENT.
WHEN 3.
ENDCASE.
ELSE.
EXIT.
ENDIF.
ENDDO.
*----------------------------------------------------------------------*
* ...now other commands... *
*----------------------------------------------------------------------*
CASE FUNCTION.
WHEN SWITCH_TO_SHOW_MODE.
* change maintenance mode from update to show
PERFORM ENQUEUE USING 'D' X_HEADER-FRM_AF_ENQ. "dequeue view
CLEAR ENQUEUE_PROCESSED.
VIEW_ACTION = ANZEIGEN.
WHEN SWITCH_TO_UPDATE_MODE.
* change maintenance mode from show to update
PERFORM ENQUEUE USING 'E' X_HEADER-FRM_AF_ENQ. "enqueue view
IF SY-SUBRC EQ 0.
MOVE 'X' TO ENQUEUE_PROCESSED.
VIEW_ACTION = AENDERN.
ENDIF.
WHEN SWITCH_TRANSP_TO_UPD_MODE.
* change maintenance mode from transport to update
VIEW_ACTION = AENDERN.
WHEN TRANSPORT.
* change maintenance mode from update to transport
VIEW_ACTION = TRANSPORTIEREN.
WHEN OTHERS.
IF ENQUEUE_PROCESSED NE SPACE.
PERFORM ENQUEUE USING 'D' X_HEADER-FRM_AF_ENQ. "dequeue view
ENDIF.
PERFORM BEFORE_LEAVING_FRAME_FUNCTION USING X_HEADER-FRM_BF_END.
EXIT.
ENDCASE.
ENDDO.
ENDFUNCTION.

*---------------------------------------------------------------------*
* program for: VIEWPROC_Z202EMP_MVIEW
* generation date: 09.09.2019 at 15:01:38
* view maintenance generator version: #001407#
*---------------------------------------------------------------------*
FUNCTION VIEWPROC_Z202EMP_MVIEW .
*----------------------------------------------------------------------*
* Initialization: set field-symbols etc. *
*----------------------------------------------------------------------*
IF LAST_VIEW_INFO NE VIEW_NAME.
ASSIGN Z202EMP_MVIEW TO <TABLE1>.
ASSIGN *Z202EMP_MVIEW TO <INITIAL>.
ASSIGN STATUS_Z202EMP_MVIEW TO <STATUS>.
PERFORM INITIALISIEREN.
ENDIF.
PERFORM JUSTIFY_ACTION_MODE.
MOVE: VIEW_ACTION TO MAINT_MODE,
CORR_NUMBER TO CORR_NBR.

*----------------------------------------------------------------------*
* Get data from database *
*----------------------------------------------------------------------*
IF FCODE EQ READ OR FCODE EQ READ_AND_EDIT.
PERFORM PREPARE_READ_REQUEST.
IF X_HEADER-FRM_RP_GET NE SPACE.
PERFORM (X_HEADER-FRM_RP_GET) IN PROGRAM.
ELSE.
PERFORM GET_DATA_Z202EMP_MVIEW.
ENDIF.
IF FCODE EQ READ_AND_EDIT. FCODE = EDIT. ENDIF.
ENDIF.

CASE FCODE.
WHEN EDIT. " Edit read data
PERFORM CALL_DYNPRO.
PERFORM CHECK_UPD.
*....................................................................*

WHEN SAVE. " Write data into database


PERFORM PREPARE_SAVING.
IF <STATUS>-UPD_FLAG NE SPACE.
IF X_HEADER-FRM_RP_UPD NE SPACE.
PERFORM (X_HEADER-FRM_RP_UPD) IN PROGRAM.
ELSE.
IF SY-SUBRC EQ 0.
PERFORM DB_UPD_Z202EMP_MVIEW.
ENDIF.
ENDIF.
PERFORM AFTER_SAVING.
ENDIF.
*....................................................................*

WHEN RESET_LIST. " Refresh all marked entries of EXTRACT from db


PERFORM RESET_ENTRIES USING LIST_BILD.
*....................................................................*

WHEN RESET_ENTRY. " Refresh single entry from database


PERFORM RESET_ENTRIES USING DETAIL_BILD.
*.......................................................................
ENDCASE.
MOVE STATUS_Z202EMP_MVIEW-UPD_FLAG TO UPDATE_REQUIRED.
ENDFUNCTION.

FUNCTION Z202CUST_BY_SELOPT.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" TABLES
*" T_CUST_DATA TYPE Z202_CUST_ADDR_T
*" T_CUST_NUM STRUCTURE SELOPT
*"----------------------------------------------------------------------

SELECT kunnr
ort01
land1
FROM KNA1
INTO TABLE T_CUST_DATA
WHERE KUNNR IN T_CUST_NUM.

ENDFUNCTION.

FUNCTION Z202FM1.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(I_AMT) TYPE I
*" REFERENCE(I_DENOM) TYPE I
*" EXPORTING
*" REFERENCE(E_NO_OF_NOTES) TYPE I
*" REFERENCE(E_REM_BAL) TYPE I
*"----------------------------------------------------------------------
E_NO_OF_NOTES = I_AMT DIV I_DENOM.

E_REM_BAL = I_AMT MOD I_DENOM.

ENDFUNCTION.

FUNCTION Z202_CUST_ADDR.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(I_LAND1) TYPE LAND1_GP
*" TABLES
*" T_CUST_ADDR TYPE Z202_CUST_ADDR_T
*" EXCEPTIONS
*" ISINITIAL
*"----------------------------------------------------------------------
SELECT KUNNR
LAND1
NAME1
ORT01
PSTLZ
FROM KNA1
INTO TABLE T_CUST_ADDR
WHERE LAND1 = I_LAND1.
IF T_CUST_ADDR[] IS INITIAL.
RAISE isinitial.
ENDIF.
ENDFUNCTION.

FUNCTION Z202_EMP_FM.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" TABLES
*" T_EMP_DATA TYPE Y202EMP_T
*" T_EMP_NUM STRUCTURE SELOPT
*"----------------------------------------------------------------------
select dno
salkey
empno
empname
sal
from y202emp
into table t_emp_data
where empno in t_emp_num.
ENDFUNCTION.

FUNCTION Z202_FM.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(I_FORMNAME) TYPE CHAR25
*" REFERENCE(I_PROGNAME) TYPE SY-REPID
*"----------------------------------------------------------------------
WRITE: /5 'First Line inside function module'.
PERFORM (I_FORMNAME)
IN PROGRAM (I_PROGNAME).
WRITE: /5 'Last Line inside function module.'.

ENDFUNCTION.

FUNCTION Z202_MATERIAL_FM.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(IT_MATNR_SELOPT) TYPE EFG_TAB_RANGES
*" EXPORTING
*" REFERENCE(ET_MATERIAL_DATA) TYPE Z202_MAT_T
*"----------------------------------------------------------------------

SELECT A~MATNR
A~MTART
A~MBRSH
A~MATKL
B~MAKTX
C~MTBEZ
D~MBBEZ
E~WGBEZ
FROM MARA AS A INNER JOIN MAKT AS B
ON A~MATNR = B~MATNR
INNER JOIN T134T AS C
ON A~MTART = C~MTART
INNER JOIN T137T AS D
ON A~MBRSH = D~MBRSH
INNER JOIN T023T AS E
ON A~MATKL = E~MATKL
INTO TABLE ET_MATERIAL_DATA
WHERE A~MATNR IN IT_MATNR_SELOPT
AND B~SPRAS = SY-LANGU
AND C~SPRAS = SY-LANGU
AND D~SPRAS = SY-LANGU
AND E~SPRAS = SY-LANGU.

ENDFUNCTION.

FUNCTION Z202_VENDOR_FM.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(IT_VEND_SELOPT) TYPE EFG_TAB_RANGES
*" EXPORTING
*" REFERENCE(ET_VEND_DATA) TYPE Z202_LFA1_T
*"----------------------------------------------------------------------

SELECT a~LIFNR
a~NAME1
b~ebeln
b~waers
c~matnr
c~netpr
FROM LFa1 as a INNER JOIN ekko as b
ON A~lifnr = B~lifnr
INNER JOIN ekpo as c
on b~ebeln = c~ebeln
into table eT_VEND_DATA
where a~lifnr in iT_VEND_selopt.

ENDFUNCTION.

You might also like