ABAP 保存变式

90 篇文章 0 订阅

保存变式
在这里插入图片描述

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP 中,可以使用 SO_USER_EXIT 函数来在保存 SO 前做校验。 1. 首先,在 SE11 中创建一个结构体,用于存储校验结果及相关信息。 2. 在 SE37 中创建一个函数,通过传入 SO 的相关参数,进行校验,并返回校验结果及相关信息的结构体。 3. 在 VA01、VA02、VA03 等事务代码的用户退出函数中,调用上述函数进行校验,若校验结果为错误,则阻止 SO 的保存。 以下是一个简单的示例代码: ``` TYPES: BEGIN OF ty_so_check_result, error TYPE i, message TYPE string, END OF ty_so_check_result. FUNCTION zso_check. *"---------------------------------------------------------------------- *"*"Local Interface: *" IMPORTING *" VALUE(vbeln) TYPE vbak-vbeln *" EXPORTING *" VALUE(result) TYPE ty_so_check_result *"---------------------------------------------------------------------- DATA: wa_vbak TYPE vbak. SELECT SINGLE * FROM vbak INTO wa_vbak WHERE vbeln = vbeln. IF wa_vbak-kunnr IS INITIAL. result-error = 1. result-message = 'Customer is mandatory.'. ENDIF. ENDFUNCTION. FUNCTION zuser_exit_save_document. *"---------------------------------------------------------------------- *"*"Local Interface: *" IMPORTING *" VALUE(ta_vbak) TYPE TABLE OF vbak *" VALUE(ta_vbap) TYPE TABLE OF vbap *" EXPORTING *" VALUE(e_save) TYPE c *"---------------------------------------------------------------------- DATA: wa_so_check_result TYPE ty_so_check_result. CALL FUNCTION 'zso_check' EXPORTING vbeln = ta_vbak[ 1 ]-vbeln IMPORTING result = wa_so_check_result. IF wa_so_check_result-error = 1. MESSAGE wa_so_check_result-message TYPE 'E'. e_save = space. ELSE. e_save = 'S'. ENDIF. ENDFUNCTION. ``` 在上述示例代码中,我们首先定义了一个 ty_so_check_result 的结构体,用于存储校验结果及相关信息。然后,我们创建了 zso_check 的函数,通过传入 SO 的相关参数,进行校验,并返回校验结果及相关信息的结构体。最后,在用户退出函数 zuser_exit_save_document 中,我们调用 zso_check 函数进行校验,若校验结果为错误,则阻止 SO 的保存,否则允许 SO 的保存

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值