【问题标题】:Can a DOORS real-number attribute be assigned a nonfinite value?可以为 DOORS 实数属性分配一个非限定值吗?
【发布时间】:2019-03-29 13:32:26
【问题描述】:

我有一个 DOORS 模块,其属性用数字字符串填充,因为这些属性并不适用于所有对象。为了明确识别不受影响的对象,属性当前包含 "N/A" 。出于排序和其他操作的目的,我想用数字类型替换这些属性。是否有任何特殊值被 DOORS 理解为“NULL”或“N/A”,甚至可以在数字属性中使用的“Inf”?

我知道我可以编写一些脚本来创建单独的 DXL 属性,将数字字符串转换为数字,但如果可能的话,我宁愿避免这种情况。

【问题讨论】:

    标签: ibm-doors


    【解决方案1】:

    我担心您要么必须坚持使用字符串,要么定义代表“n/a”的个人整数值,例如“0”。具有 '0' 值的对象在排序后将很容易处理 -- 使用 DXL,您可以使用bool null(t value) 函数检查value 是否为空(bool: false, char: '0', int: 0, real :0.0,字符串:“”)。如果您坚持使用整数字符串,则有一个函数 bool isValidInt(string s) 可以帮助您相应地处理“n/a”字符串。

    【讨论】:

      【解决方案2】:

      你能把那个对象的属性留空吗?

      似乎可以将 int 类型属性设置为 "" - 您可以根据该属性为空或非空来过滤对象。

      有趣的是,在 DXL 空间中,以下似乎适用于基于整数的属性 ( inttest )

      Object o = current
      int x = o."inttest"
      print ( x ) "\n"
      print ( null x ) "\n"
      print ( x == 0 )
      

      打印以下结果:

      0
      true
      true
      

      所以 null 被解释为 0 - 如果 0 是您的属性中的预期值,请注意这一点。

      【讨论】:

      • 不幸的是,我不能使用零或空白。该属性不完整,我们需要确定“尚未填写”和“不适用于此用例”之间的区别。是的,对于许多订单项来说,零是一个有效值。
      • 如果是这样的话,我认为上面 Twonky 的回答可能是最好的。您可能还希望在属性 pre-save 中添加一个 dxl 触发器,以检查字符串是否为有效的 int 或等于“N/A”。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多