需求:
在使用事务代码VA01创建销售订单时,在点击保存按钮后,根据销售组织(VBAK-VKORG)及订单类型(VBAK-AUART)读取自定义表,如果自定义表有值且“自动审批”标识为“X”则自动将该订单抬头-状态中的参数设置为40审批通过。
前台位置:
spro配置的地方:
看看具体的表:
找到增强点:
可以看看英文的描述:
好就是这个位置了,做隐士增强即可
大致参考代码如下:(最好别直接加在里面,封装在fm里,方便以后修改维护)
IF sy-tcode = 'VA01' OR sy-tcode = 'VA02'.
SELECT SINGLE spbz FROM zsdtlh91070 INTO lv_spbz_flag
WHERE vkorg = is_vbak-vkorg "销售组织
AND auart = is_vbak-auart. "单据类型
IF sy-subrc = 0.
user_status = 'E0004'.
CALL FUNCTION 'STATUS_CHANGE_EXTERN'
EXPORTING
objnr = is_vbak-objnr
user_status = user_status
EXCEPTIONS
object_not_found = 1
status_inconsistent = 2
status_not_allowed = 3
OTHERS = 4.
IF sy-subrc <> 0.
* Implement suitable error handling here
ELSE.
RETURN. "如果审批通过,不再发送
ENDIF.
ENDIF. "endif subrc
ENDIF. "endif tcode
有时候修改状态,都是先读取 ,用STATUS_READ ,或者修改:STATUS_CHANGE
但是新建的时候,其实库表里是没有的,
所以使用STATUS_CHANGE_EXTERN
具体可以在项目里测试下看看哪个能达到效果
欢迎关注订阅号:SAP学习记录 (SAPlearning )