短转储BDC_BADDATA

2020-08-18 20:39发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


有人知道为什么这段代码会导致转储吗?

数据:
   lv_p TYPE p长度10个小数位5。

 尝试。
     lv_p =`7588408675670886700030`。
   捕获cx_root。
     如果1 = 2。
       清除lv_p。  "没有短暂的转储
     万一。
 ENDTRY。

 " lv_p是初始的
 DATA(lv_is_initial)= COND#(当lv_p是INITIAL则abap_true)。

 "压缩字段包含错误的BCD格式。
 " BDC_BADDATA
 lv_p = lv_p + 1。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


有人知道为什么这段代码会导致转储吗?

数据:
   lv_p TYPE p长度10个小数位5。

 尝试。
     lv_p =`7588408675670886700030`。
   捕获cx_root。
     如果1 = 2。
       清除lv_p。  "没有短暂的转储
     万一。
 ENDTRY。

 " lv_p是初始的
 DATA(lv_is_initial)= COND#(当lv_p是INITIAL则abap_true)。

 "压缩字段包含错误的BCD格式。
 " BDC_BADDATA
 lv_p = lv_p + 1。
付费偷看设置
发送
2条回答
N-Moskvin
1楼-- · 2020-08-18 21:04

您好 Mike Sidorochkin

为变量分配了过多的数字后,该变量不会 包含一个初始值。

这是变量的初始值(末尾注意C):

这是溢出分配后变量的值(末尾没有C):

因为您随后尝试在变量上加法,所以会出现短转储。

清除变量会将其恢复为适当的初始值,因此没有短转储。

问候,

Mateusz
梦想连接
2楼-- · 2020-08-18 20:55

嗨,迈克,

您不必清洁它。 但是,如果您分配了一个文本值并希望将其转换,则应该处理该异常。

一种实现方法是清理变量,或为它分配一些默认值,以防出现以下情况。

其他是仅在未触发任何异常的情况下进行添加;

 TRY。
     lv_p ='7588408675670886700030'。
     lv_p = lv_p + 1。
   捕获cx_root。
     "例如显示一条消息
 ENDTRY。

关于,
Mateusz

一周热门 更多>