2020-08-18 15:21发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我尝试使用 BAPI_SALESORDER_CHANGE 更新销售订单附加数据B中的自定义字段。 BAPI调用 USEREXIT_CHECK_VBAP 。 此用户出口对定制字段进行验证,并在验证失败时返回消息类型W。 BAPI立即出错并终止了程序(就像消息类型A)。
为什么BAPI不处理消息类型W?
感谢您的帮助。 谢谢。
最好的问候
多米尼克
可以通过在EXCEPTIONS列表中指定ERROR_MESSAGE来更改功能模块中的错误处理。 通常,您仅应使用异常处理方法(在功能模块内使用MESSAGE ... RAISING或RAISE语句)来调用功能模块中的消息。
当您使用ERROR_MESSAGE时,系统将按以下方式处理被调用的消息,而无需进行显式处理:
将忽略类型为S,I和W的消息(但如果在后台运行程序,则将其输入日志中)。
类型为E和A的消息导致功能模块终止,就像已触发ERROR_MESSAGE异常(SY-SUBRC设置为r E)一样。
将以下内容放入您的BAPI:
通话功能'BAPI_SALESORDER_CHANGE' ...... 例外情况 error_message =1。"这将捕获错误消息。
嗨,Dominic,
用户出口的工作方式是从屏幕读取数据。例如,如果是VA02,则来自屏幕字段的数据将传递到用户出口,然后进行验证。
但是,当涉及到BAPI时,它不与屏幕链接或用户出口。 因此,它不知道如何完成验证。
因此解决方案是,请勿尝试更改用户出口。 但是在将数据传递到BAPI之前,您必须处理相同的事情。
在将数据传递到BAPI之前,您需要执行相同的验证。
TDW。
最多设置5个标签!
可以通过在EXCEPTIONS列表中指定ERROR_MESSAGE来更改功能模块中的错误处理。 通常,您仅应使用异常处理方法(在功能模块内使用MESSAGE ... RAISING或RAISE语句)来调用功能模块中的消息。
当您使用ERROR_MESSAGE时,系统将按以下方式处理被调用的消息,而无需进行显式处理:
将忽略类型为S,I和W的消息(但如果在后台运行程序,则将其输入日志中)。
类型为E和A的消息导致功能模块终止,就像已触发ERROR_MESSAGE异常(SY-SUBRC设置为r E)一样。
将以下内容放入您的BAPI:
嗨,Dominic,
用户出口的工作方式是从屏幕读取数据。例如,如果是VA02,则来自屏幕字段的数据将传递到用户出口,然后进行验证。
但是,当涉及到BAPI时,它不与屏幕链接或用户出口。 因此,它不知道如何完成验证。
因此解决方案是,请勿尝试更改用户出口。 但是在将数据传递到BAPI之前,您必须处理相同的事情。
在将数据传递到BAPI之前,您需要执行相同的验证。
TDW。
一周热门 更多>