您可以定义在请求期间用于计算节点名称的表达式,并在请求完成并关闭时存储该值。
计算的名称可以基于节点的属性或节点在层次中的位置。
用例示例
Tip:
您还可以在节点数据类型属性上设置表达式来派生属性的值,如果您添加节点名称 120-200-340,则每个属性的值将分别派生为 120、200 和 340。请参阅“派生和存储属性”。
注意事项
Note:
根据同级列表计算节点名称时(例如,通过找到最后一个同级并向其加 1),请注意,如果在该节点后面添加其他同级,然后更新原始节点,则节点名称可能会更改。
此外,根据请求上下文,在表达式中使用 node.previousSibling
对象来计算节点名称可能会带来意想不到的结果。为了获得最佳结果,请改用 node.siblings.max
。
<cn ####>
(其中 ####
是请求项创建时间戳的散列)。请参阅“了解计算名称关键字”。<cn>
或 <cn ####>
关键字(条件是为 Core.Name
属性配置了表达式)或将名称列留空来计算该节点名称的值。请参阅“使用计算名称的请求文件处理”。定义计算和存储属性
Core.Name
属性定义。Note:
仅当对节点本身执行请求操作时,才会重新计算名称的值。如果计算逻辑中包含节点外部的元素(例如节点的祖先),并且这些元素发生了变化,则不会自动重新计算名称。必须对名称执行清除操作,才能重新计算并存储新的名称值。如果为属性启用了最终提交时锁定,也不会为属性重新计算并存储名称值。请参阅“了解属性数据类型参数”。
了解主位置
如果您要添加节点,然后在多个其他位置插入同一节点,则系统会在内部将层次中添加该节点的第一个位置指定为主位置,并使用该位置计算节点名称。插入该节点的所有后续位置都将使用从第一个位置计算的名称。
Note:
如果添加节点的第一个位置位于列表中,则在第一次将其插入层次时设置主位置。例如,假设您有一个表达式,它通过将节点的父节点名称与节点上的属性(在本例中,该属性的值为 ABC)串联来计算节点名称。您在父代 111 下添加节点时,名称计算为 111-ABC。如果您随后在父代 222 下插入该节点,名称仍为 111-ABC,因为 111 是主位置。
更改节点主位置的方式有多种:
如果您将请求中的节点从其主位置移动到新位置,则新位置将成为主位置,并重新计算名称。
如果在请求期间从主位置删除节点,则插入该节点的下一个位置将成为主位置。
如果在多个位置都有某个节点,并且您想要手动更改作为主位置的位置,请使用重置操作。请参阅“清除和重置计算值”
清除和重置计算值
使用清除来清除手动定义的名称并返回到计算的名称。“清除”操作仅适用于在此请求中添加的默认类型为“计算和存储”且具有手动输入的名称的节点。
使用重置将计算名称的主位置设置为当前位置(请参阅“了解主位置”)并根据当前位置重新计算节点名称。“重置”操作仅适用于在此请求中添加的默认类型为“计算和存储”且没有手动输入的名称的节点。
如果您在节点外部执行了会影响节点名称的操作(例如,您更改父代属性,并希望根据新属性重新计算节点名称),也可以使用“重置”来重新计算节点名称。
验证和计算的节点名称
验证请求时,“添加”操作中的当前名称将用于具有计算名称的新节点,但有一个例外:如果当前名称是关键字之一(<cn>
或 <cn ####>
),将跳过最小和最大长度验证。这允许提交者提交名称中包含某个关键字的请求,以便批准者或扩充者可以添加所需信息来计算名称。
批准或最终提交请求时,将运行最小和最大长度验证。