行使选择权时如何获得合同编号,因为它是指当前合同,而不是合同编号?
我无法通过DAML SDK找到它。
答案 0 :(得分:1)
在非消耗性选择中,有一个隐式变量self
提供当前合同的合同ID。这类似于隐式变量this
,该隐式变量在选择范围内提供合同内容。
当前的DAML语义指定合同在使用选择的开始时被存档,因此即使您可以使用选择使用self
,也无法对其进行任何操作。
答案 1 :(得分:1)
隐含的self
变量实际上在所有选择中都是可见的,无论是非消耗性的还是其他选择。如前所述,目前在消费选择中没有任何价值,因为消费选择的行为是在执行选择主体之前将行使选择的合同实例存档(也就是说,语义是“预先消费”)。在将来的版本中,选择注释集将扩展为包括preconsuming
和postconsuming
。在使用后选择中,self
所引用的合同将在整个选择主体中保持有效,并在最后进行归档。未用preconsuming
,noconsuming
或postconsuming
注释的选择将默认使用预先使用的语义(就像今天一样)。