*&--------------------------------------------------------------
*& Form save_data
*&--------------------------------------------------------------
FORM. SAVE_DATA.
DATA: ZCM03INS LIKE ZCM03 OCCURS 0 WITH HEADER LINE,
ZCM04INS LIKE ZCM04 OCCURS 0 WITH HEADER LINE,
ZCM17INS LIKE ZCM17 OCCURS 0 WITH HEADER LINE,
SDOCNUMBER LIKE ZCM03-DOCNUMBER,
* SDOCYEAR LIKE ZCM03-DOCYEAR,
ITEMSEQUN TYPE I.
DATA: LNRN(2) TYPE C. "Number range number Elven20070104
DATA:LSUBRC LIKE SY-SUBRC.
LOOP AT ZCM04TAB WHERE NOT MATNR IS INITIAL .
* and markdeletion <> 'X'.
* Elven20070112 add authorization check
*add by yuan-yuan xiao 080623
IF F_SHOW <> 'Y'.
*
PERFORM. CHECK_SAVE_AUTHORIZATION
USING ZCM04TAB-WERKS ZCM04TAB-UMWRK ZCM03-DOCTYPE .
ENDIF.
* TABLES ZMM029 .
* SELECT SINGLE UNAME FROM ZMM029 INTO ZMM029-UNAME WHERE
* WERKS = ZCM04TAB-WERKS AND
* TCODE = SY-TCODE AND UNAME = SY-UNAME AND
* STATUS = 'Y' .
*
* IF SY-SUBRC NE 0 .
* MESSAGE E000(ZPCEMM001) WITH SY-UNAME
* ' have no authority for Tcode/Plant :' SY-TCODE
* ZCM04TAB-WERKS .
* EXIT.
* ENDIF.
ENDLOOP.
* Elven20070112 add authorization check END
MOVE-CORRESPONDING ZCM03 TO ZCM03INS.
IF TRANSACTION EQ SPACE .
ZCM03INS-ERDAT = SY-DATUM.
ZCM03INS-ERNAM = SY-UNAME.
ZCM03INS-ERZET = SY-UZEIT.
ELSE.
READ TABLE ZCM04TAB WITH KEY UPTINDICATOR = 'X'.
IF SY-SUBRC EQ 0.
ZCM03INS-AEDAT = SY-DATUM.
ZCM03INS-AENAM = SY-UNAME.
ZCM03INS-AEZET = SY-UZEIT.
ENDIF.
ENDIF.
ZCM03INS-DOCSTAS = '0' .
IF ZCM03INS-DOCNUMBER IS INITIAL.
IF SY-MANDT ='809' OR SY-MANDT ='204' OR SY-MANDT ='709' .
LNRN = '01' .
ELSE.
LNRN = '05' .
ENDIF.
PERFORM. GET_DOCUMENT_NUMBER USING LNRN SDOCNUMBER.
ZCM03INS-DOCNUMBER = SDOCNUMBER.
ZCM03INS-DOCYEAR = SY-DATUM+0(4).
ELSE.
SDOCNUMBER = ZCM03INS-DOCNUMBER.
ENDIF.
CLEAR G_DOCUMENT .CLEAR G_DOCYEAR .
G_DOCUMENT = ZCM03INS-DOCNUMBER .
G_DOCYEAR = ZCM03INS-DOCYEAR .
ZCM03-DOCNUMBER = G_DOCUMENT .
ZCM03-DOCYEAR = G_DOCYEAR .
APPEND ZCM03INS. CLEAR ZCM03INS.
LOOP AT ZCM04TAB WHERE NOT MATNR IS INITIAL.
MOVE-CORRESPONDING ZCM04TAB TO ZCM04INS.
ZCM04INS-DOCNUMBER = SDOCNUMBER.
IF ZCM04INS-DOCYEAR = '' .
IF ZCM03-DOCYEAR = '' .
"JL080102.n
ZCM04INS-DOCYEAR = SY-DATUM+0(4).
ELSE .
ZCM04INS-DOCYEAR = ZCM03-DOCYEAR .
ENDIF .
ENDIF .
IF TRANSACTION EQ SPACE.
ADD 1 TO ITEMSEQUN.
ZCM04INS-DOCITEM = ITEMSEQUN.
ENDIF.
APPEND ZCM04INS. CLEAR ZCM04INS.
ENDLOOP.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14397246/viewspace-666163/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14397246/viewspace-666163/