动态设置CDS 按钮、字段可用性属性

在另外 一文中在BOPF的Determination中设置按钮的可用性。在这里主要说明在使用中设置CDS中字段在在ODATA中的一些属性,

主要属性为:

  • Enabled ,可用性,FLASE时在FIORI APP中不可以
  • Read-only,只读性,TRUE时,当编辑状态时也不可编辑
  • Mandatory,必输入,TRUE时,当TRUE时,字段必须输入值,

以下分别说明设置方法

1.固定给值

可以在CDS,或者是SEGW中设置字段的属性,比如SEGW中设置字段的只读、使能属性。

动态设置CDS 按钮、字段可用性属性 - 第1张  | 优通SAP
在CDS中设置
动态设置CDS 按钮、字段可用性属性 - 第2张  | 优通SAP

2.动态给值

在使用中,我们可能需要依据数据记录中的值来设置字段的属性,比如当状态为审批完成后,一些字段的值就不能再被修改,也就是字段的属性的使能属性为FALSE

一些文档中说要使用“EXTERNAL_CALCULATION”,更多细节可参考这里

1.CDS中设置。

动态设置CDS 按钮、字段可用性属性 - 第3张  | 优通SAP

2.在BOPF的Determination中依据数据的值来设置属性。

上面的实现会在FIORI APP中’YHZH‘字段在编辑时为不可编辑(不可输入),

但在使用中发现CDS中如不设置@ObjectModel.readOnly: ‘EXTERNAL_CALCULATION’,只在代码中写上面的SET_ATTRIBUTE_READ_ONLY,发现,如设置的是主键时不可编辑,其它字段可编辑,但保存提示不能被改变。

动态设置CDS 按钮、字段可用性属性 - 第4张  | 优通SAP

3.依据字段值直接设置,

我记得在网上见过,应该是可以直接使用一个CDS来判断各字段 的可用性,然后在需要的消费的CDS中association那CDS,再使用他的可能性来设置。这个现没找到例子,

此总价参考