SAP没有布尔值的核心数据类型。此外,SAP中较高级别的布尔类型通常有三种状态: true ('X')、false (‘)和unknown ('-')。
显然,布尔值是我许多开发工作的基石,但我意识到,我的类型(数据元素)使用并不十分一致。到目前为止,我认为这是最常见的:
abap_bool:在abap类型池中定义,无约束但常量定义为真、假、未知、是和否。os_boolean:数据元素,是('X')或否(‘')xfeld:数据元素True ('X')或False (‘')缺少字段标签,描述为复选框在我的代码中,我主要使用abap_bool,因为我可以使用常量而不是字符值,而不是不能将abap_true分配给xfeld。但是,有人警告我,这种类型的池可能并不总是可用的。
我现在想知道布尔值的最佳实践,特别是:
发布于 2014-03-12 16:10:36
我在编码中使用类型池ABAP及其常量。它应该总是可用的,尽管您可能必须手动将它包含在旧的系统上。对于字典元素,我更喜欢使用任何默认域创建自己的数据元素,这样我就可以添加符合我需要的描述。您也可以使用WDY_BOOLEAN。
发布于 2014-03-21 14:21:26
根据官方ABAP方案编制指南的规则6.11,您应该使用abap_bool。
规则6.11:对真值使用abap_bool数据类型 若要显式处理真值,请将abap_bool类型用作实际布尔数据类型的解决方案。以这种方式声明的数据对象不应该包含对应常量abap_true和abap_false (以及abap_undefined)以外的其他值。
发布于 2015-05-20 15:35:30
更新第7.40版,SP08
使用7.40版本时,SP08将得到谓词方法调用,您可以编写如下代码:
IF cl_abap_demo_services=>is_production_system( ). "There is no '= abap_true' needed!
cl_demo_output=>display(
'This demo cannot be executed in a production system' ).
LEAVE PROGRAM.
ENDIF.方法(在示例is_production_system中)必须返回布尔值 (abap_true ('X')或abap_false (‘'))
在线帮助有一个例子。
https://stackoverflow.com/questions/22355454
复制相似问题