式を定義して要求時にノード名を計算し、要求が完了してクローズするときにその値を保管できます。
計算された名前は、ノードのプロパティ、または階層内でのノードの位置に基づくことができます。
ユースケースの例
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がプライマリ場所であるため、名前は引き続き111-ABCです。
ノードのプライマリ場所を変更するには、複数の方法があります:
要求内でプライマリ場所からノードを移動した場合、新しい場所がプライマリ場所になり、名前が再計算されます。
要求中にプライマリ場所からノードを除去した場合、それが挿入された次の場所がプライマリ場所になります。
ノードが複数の場所にあり、プライマリ場所である場所を手動で変更する場合は、「リセット」アクションを使用します。計算された値のクリアとリセットを参照してください
計算された値のクリアとリセット
手動で定義された名前をクリアして、計算された名前に戻すには、「クリア」を使用します。「クリア」アクションは、デフォルト・タイプが「計算および保管」で、かつ手動で入力された名前を持つ、この要求で追加されたノードについてのみ使用可能です。
計算された名前のプライマリ場所を現在の場所に設定して(プライマリ場所の理解を参照)、現在の場所に基づいてノード名を再計算するには、「リセット」を使用します。「リセット」アクションは、デフォルト・タイプが「計算および保管」で、かつ手動で入力された名前を持たない、この要求で追加されたノードについてのみ使用可能です。
ノードの外部で、ノード名に影響するアクションを実行した場合にも(親プロパティを変更し、新しいプロパティに基づいてノード名を再計算する場合など)、「リセット」を使用してノード名を再計算できます。
検証と計算されたノード名
要求が検証されるときには、追加アクションにおける現在の名前が、計算された名前を持つ新しいノードに使用されますが、例外が1つあります。現在の名前がキーワードのいずれか(<cn>
または<cn ####>
)である場合は、最小および最大長の検証がスキップされます。これにより、送信者は、名前にキーワードのいずれかを含む要求を送信して、名前を計算するために必要な情報を承認者またはエンリッチ者が追加できるようにすることができます。
最小および最大長の検証は、要求が承認またはコミットされるときに実行されます。
計算された名前とサブスクリプション
計算された名前を使用するサブスクリプションを設定した場合、ソース・ビューポイントで名前が計算され、結果の名前がサブスクリプション要求でターゲット・ビューポイントに渡されます。ターゲット・ビューポイントでノード名が計算されるようにする場合は、名前を空白の値、または計算された名前のキーワードのいずれか(追加の場合は<cn>
、追加と挿入の場合は<cn ####>
(####は一意の識別子文字列))に変換するように、プロパティ変換をサブスクリプションのノード・タイプ・コンバータで設定する必要があります(ノード・タイプ・コンバータの操作を参照)。計算された名前のキーワードの理解を参照してください。
Note:
代替名(使用可能な場合)を使用する場合は、名前を空白の値に変換します。ターゲット・ビューポイントで常に、計算された値を使用する場合は、名前をキーワードのいずれかに変換します。