首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ABAP开发的首选布尔类型

ABAP开发的首选布尔类型
EN

Stack Overflow用户
提问于 2014-03-12 14:59:03
回答 4查看 16.7K关注 0票数 20

SAP没有布尔值的核心数据类型。此外,SAP中较高级别的布尔类型通常有三种状态: true ('X')、false (‘)和unknown ('-')。

显然,布尔值是我许多开发工作的基石,但我意识到,我的类型(数据元素)使用并不十分一致。到目前为止,我认为这是最常见的:

  • abap_bool:在abap类型池中定义,无约束但常量定义为真、假、未知、是和否。
  • os_boolean:数据元素,是('X')或否(‘')
  • xfeld:数据元素True ('X')或False (‘')缺少字段标签,描述为复选框

在我的代码中,我主要使用abap_bool,因为我可以使用常量而不是字符值,而不是不能将abap_true分配给xfeld。但是,有人警告我,这种类型的池可能并不总是可用的。

我现在想知道布尔值的最佳实践,特别是:

  • 是否有我应该使用的首选类型?
  • 使用abap类型池会导致某些模块或场景中的问题吗?
  • 包含未知或任何字符值的abap_bool的可能性重要吗?
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-03-12 16:10:36

我在编码中使用类型池ABAP及其常量。它应该总是可用的,尽管您可能必须手动将它包含在旧的系统上。对于字典元素,我更喜欢使用任何默认域创建自己的数据元素,这样我就可以添加符合我需要的描述。您也可以使用WDY_BOOLEAN。

票数 11
EN

Stack Overflow用户

发布于 2014-03-21 14:21:26

根据官方ABAP方案编制指南的规则6.11,您应该使用abap_bool。

规则6.11:对真值使用abap_bool数据类型 若要显式处理真值,请将abap_bool类型用作实际布尔数据类型的解决方案。以这种方式声明的数据对象不应该包含对应常量abap_true和abap_false (以及abap_undefined)以外的其他值。

票数 9
EN

Stack Overflow用户

发布于 2015-05-20 15:35:30

更新第7.40版,SP08

使用7.40版本时,SP08将得到谓词方法调用,您可以编写如下代码:

代码语言:javascript
复制
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 (‘'))

在线帮助有一个例子。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22355454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档