I_CHANGE_STATUS可以用来更新销售订单的审批状态。
VA02进入之后双击行项目会进到计划行,此时会有状态一栏,此函数可用来进行状态的更新。
例子:
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(L_VBELN) LIKE VBAP-VBELN
*" VALUE(L_POSNR) LIKE VBAP-POSNR
*" EXPORTING
*" VALUE(L_FLAG) TYPE FLAG
*" VALUE(L_MESS) TYPE CHAR50
*"----------------------------------------------------------------------
DATA:l_objnr LIKE vbap-objnr,
l_objnr2 LIKE vbap-objnr.
CHECK l_vbeln IS NOT INITIAL
AND l_posnr IS NOT INITIAL.
SELECT SINGLE objnr INTO l_objnr FROM vbap
WHERE vbeln = l_vbeln
AND posnr = l_posnr.
SELECT SINGLE objnr INTO l_objnr2 FROM jest
WHERE bjnr = l_objnr
AND stat = 'E0002'.
IF l_objnr2 = ''.
CALL FUNCTION 'I_CHANGE_STATUS'
EXPORTING
objnr = l_objnr
estat_inactive = 'E0001'
estat_active = 'E0002'
stsma = 'SO_1'
EXCEPTIONS
cannot_update = 1
OTHERS = 2.
IF sy-subrc = 0.
l_flag = 'Y'.
l_mess = '销售订单审批状态更新成功!'.
ELSE.
l_flag = 'N'.
l_mess = '销售订单审批状态更新失败!'.
ENDIF.
ELSE.
l_flag = 'N'.
l_mess = '销售订单之前已审批,不需要再进行审批,保存失败!'.
ENDIF.