*---------------------------------------------------------------------*
* FORM. USEREXIT_SAVE_DOCUMENT_PREPARE *
*---------------------------------------------------------------------*
* This userexit can be used for changes or checks, before a *
* document is saved. *
* *
* If field T180-TRTYP contents 'H', the document will be *
* created, else it will be changed. *
* *
* This form. is called at the beginning of form. BELEG_SICHERN *
* *
*---------------------------------------------------------------------*
FORM. USEREXIT_SAVE_DOCUMENT_PREPARE.
DATA: g_ans TYPE c.
DATA: g_msg(70) TYPE c.
DATA: g_org LIKE vbak-vkorg.
DATA: g_ettyp like vbep-ettyp.
*DATA: g_status(100) TYPE c.
data: g_status like BSVX-STTXT.
DATA: g_wo LIKE afpo-aufnr.
data:r_wo like JEST-OBJNR.
data:g_stonr like TJ30-STONR.
DATA: g_qty TYPE vbap-kwmeng.
CLEAR g_ans.CLEAR g_msg.
CLEAR g_org.CLEAR g_status.
CLEAR g_wo.
IF sy-mandt = '101' OR sy-mandt = '201'
OR sy-mandt = '501' OR sy-mandt = '601'
OR sy-mandt = '701' OR sy-mandt = '801'.
IF sy-tcode = 'VA02'.
LOOP AT xvbap.
SELECT SINGLE vkorg INTO g_org
FROM zsd_apd_005
WHERE vkorg = vbak-vkorg
AND vtweg = vbak-vtweg
AND auart = vbak-auart.
************* control by order type ***************
IF sy-subrc = 0.
* SELECT SINGLE aufnr INTO g_wo
SELECT aufnr INTO g_wo
FROM afpo
WHERE kdauf = xvbap-vbeln
AND kdpos = xvbap-posnr.
r_wo = 'OR'.
r_wo+2 = g_wo.
****************WO status-------------------------
CALL FUNCTION 'STATUS_TEXT_EDIT'
EXPORTING
objnr = r_wo
only_active = 'X'
spras = 'E'
bypass_buffer = '1'
IMPORTING
line = g_status.
****************WO status-------------------------
SELECT SINGLE kwmeng INTO g_qty FROM vbap
WHERE vbeln = xvbap-vbeln
AND posnr = xvbap-posnr.
select single ettyp into g_ettyp from vbep
where vbeln eq xvbap-vbeln
and posnr eq xvbap-posnr.
IF g_status cs 'REL' AND
* g_qty <> xvbap-kwmeng .
( g_qty <> xvbap-kwmeng OR
g_ettyp <> xvbep-ettyp ).
CONCATENATE 'Sales Order:' xvbap-vbeln
'Item:' xvbap-posnr
'WO:' g_wo
'has been released!'
INTO g_msg.
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
textline1 = 'Error ocurrs:'
textline2 = g_msg
titel = 'Error'
cancel_display = ''
IMPORTING
answer = g_ans.
MESSAGE e888(sabapdocu)
WITH g_msg.
ENDIF.
ENDSELECT.
ENDFORM.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15117617/viewspace-618089/
,如需转载,请注明出处,否则将追究法律责任。