Abap 运行时生成程序转储ID时发生内部错误:BCD_溢出

Abap 运行时生成程序转储ID时发生内部错误:BCD_溢出,abap,Abap,运行时生成程序时发生内部错误(转储ID:BCD_溢出) 检查过程中没有错误,但激活时会出现此错误。此问题可能会出现在方法、功能模块或报告中。 这个问题背后的主要原因是代码中属性的运行时配置。 例如 数据:num type int1值256 此语句在语法上很好,但分配给变量num的值超出了INT1类型的范围。因此,它将仅在激活时转储 解决方案: 数据:num type int1 value{此问题可能出现在方法、函数模块中,也可能出现在报表中。 这个问题背后的主要原因是代码中属性的运行时配置。 例

运行时生成程序时发生内部错误(转储ID:BCD_溢出)


检查过程中没有错误,但激活时会出现此错误。

此问题可能会出现在方法、功能模块或报告中。 这个问题背后的主要原因是代码中属性的运行时配置。 例如 数据:num type int1值256

此语句在语法上很好,但分配给变量num的值超出了INT1类型的范围。因此,它将仅在激活时转储

解决方案:
数据:num type int1 value{此问题可能出现在方法、函数模块中,也可能出现在报表中。 这个问题背后的主要原因是代码中属性的运行时配置。 例如 数据:num type int1值256

此语句在语法上很好,但分配给变量num的值超出了INT1类型的范围。因此它将仅在激活时转储

解决方案:
数据:num type int1 value{如果您尝试将值分配给数值属性或变量,则任何ABAP代码中都会出现此问题,该值“超出范围”(因此会导致溢出)。请参阅以下所有内容:

最小可复制示例:

REPORT ztest.
DATA num TYPE int1.
num = 1000.          " <=== run time error

注意:
decloat34
是一种可能更大的数值数据类型,它几乎可以处理任何值。

如果您试图为数值属性或变量分配一个“超出范围”(因此导致溢出)的值,则在任何ABAP代码中都会出现此问题。请参阅以下所有:

最小可复制示例:

REPORT ztest.
DATA num TYPE int1.
num = 1000.          " <=== run time error
注意:
decloat34
是可能更大的数字数据类型,它可以处理几乎任何值。

请提供一个。请提供一个。
REPORT ztest.
DATA num TYPE int2. " <=== larger type
num = 1000.         " <=== no more error