ノードの名前の計算および保管

式を定義して要求時にノード名を計算し、要求が完了してクローズするときにその値を保管できます。

計算された名前は、ノードのプロパティ、または階層内でのノードの位置に基づくことができます。

ユースケースの例

  • シーケンス番号に基づいて、ノード名を計算できます。たとえば、ノードを追加するときに CC_0034、CC_0035などの名前が自動的に付けられるように、"CC_"のような接頭辞をシーケンスと連結できます。
  • プロパティに基づいて、ノード名を計算できます。たとえば、ノード・データ型のカスタム・プロパティをまとめて連結できます。その場合、プロパティを定義すると、ノード名が自動的に計算されます。つまり、カスタム・プロパティ1 = 120、カスタム・プロパティ2 = 200、カスタム・プロパティ3 = 340の場合、120-200-340というノード名が自動的に計算されます。

    Tip:

    また、かわりに120-200-340というノード名を追加した場合、各プロパティの値がそれぞれ120、200および340として導出されるように、ノード・データ型のプロパティに基づいて式を設定して、それらの値を導出することもできます。「派生および保管」プロパティを参照してください。

  • 親、祖先、兄弟といった階層構造情報に基づいて、ノード名を計算できます。たとえば、親の名前とノードの説明を連結できます。
  • また、計算されたノード名を使用して、新しいノードを追加するときにデフォルト名をカスタマイズすることもできます。たとえば、ユーザーがEntityノード・タイプにノードを追加するときに、名前をデフォルトで"New Entity Node"に設定するかわりに、"CC_####"という計算された名前を返して、####に適した値をユーザーが手動で入力するようにすることができます。

考慮事項

  • 次の操作中にノード名を計算できます:
    • 対話型でのノードの追加
    • 要求ファイルのロード
    • サブスクリプションによるノードの同期
  • 要求内の追加アクション中に、ノードが変更されるたびにノード名が再計算されます。

    Note:

    兄弟リストに基づいて(たとえば、最後の兄弟を検出し、それに1を加算することによって)ノード名が計算される場合、他の兄弟がその後に追加され、元のノードが更新されると、ノード名が変更されることがあります。
  • 計算されたノード名が要求内で表示される場合:
    • ノード名の式が値を返す場合は、その値が「計算済」という発生元とともに表示されます。
    • 式がnull値を返す場合は、計算された名前のキーワード<cn ####> (####は現在のタイムスタンプのハッシュ)が「計算済」という発生元とともに表示されます。計算された名前のキーワードの理解を参照してください。
  • 手動で名前を入力することによって、ノード名を上書きできます。発生元には「定義済」と表示されます。
  • 要求内で追加されるノードについて、手動で入力された名前をクリアして、計算された名前に戻すには、「クリア」アクションを使用し、現在の場所をプライマリ場所として設定して(プライマリ場所の理解を参照)、式に基づいてノード名を再計算するには、「リセット」アクションを使用します。計算された値のクリアとリセットを参照してください。
  • 要求が完了してクローズされると、計算されたノード名が保管され、発生元には「定義済」と表示されます。「派生および保管」プロパティの場合とは異なり、発生元は計算および保管として保持されません。
  • 計算されたノード名を含む要求のコンテキストで実行される検証では、現在の計算された名前が使用されます。つまり、たとえば、式が現在nullを返す場合、検証のノード名は"<cn ####>"です。
  • 要求内でノードを検索するときには、追加アクションにおける現在の名前が、計算された名前を持つ新しいノードに使用されます。つまり、たとえば、式が現在nullを返す場合は、"<cn ####>"でノード名を検索できます。
  • 要求ファイルをロードするときに、要求ロード・ファイルの名前列で<cn>または<cn ####>キーワードを使用するか(Core.Nameプロパティについて式が構成されている場合)、名前列を空白のままにして、そのノード名の値を計算します。計算された名前を持つ要求ファイルの処理を参照してください。

計算および保管プロパティの定義

  1. Core.Nameプロパティの定義を検査します。
  2. ノード名を計算するアプリケーションまたはノード・タイプを選択します。
  3. 「デフォルト・タイプ」から、「計算および保管」を選択します。
  4. 「デフォルト値」で、「式」ボタン式の定義をクリックします。
  5. ノード名を計算する式を定義して、「適用」をクリックします。式を使用したカスタム・ビジネス・ロジックの定義を参照してください

プライマリ場所の理解

ノードを追加し、同じノードを他の複数の場所に挿入する場合、システムによって内部で、ノードが追加された階層内の最初の場所がプライマリ場所として指定され、それを使用してノード名が計算されます。ノードが挿入された後続の場所ではすべて、最初の場所からの計算された名前が使用されます。

Note:

ノードが追加された最初の場所がリスト内にある場合、初めてそれが階層に挿入されるときにプライマリ場所が設定されます。

たとえば、ノードの親の名前をノードのプロパティと連結することによってノード名を計算する式があるとします(この例では、そのプロパティにABCという値があります)。親111の下にノードを追加すると、名前が111-ABCとして計算されます。その後、親222の下にノードを挿入した場合、111がプライマリ場所であるため、名前は引き続き111-ABCです。

ノードのプライマリ場所を変更するには、複数の方法があります:

  • 要求内でプライマリ場所からノードを移動した場合、新しい場所がプライマリ場所になり、名前が再計算されます。

  • 要求中にプライマリ場所からノードを除去した場合、それが挿入された次の場所がプライマリ場所になります。

  • ノードが複数の場所にあり、プライマリ場所である場所を手動で変更する場合は、「リセット」アクションを使用します。計算された値のクリアとリセットを参照してください

計算された値のクリアとリセット

手動で定義された名前をクリアして、計算された名前に戻すには、「クリア」を使用します。「クリア」アクションは、デフォルト・タイプが「計算および保管」で、かつ手動で入力された名前を持つ、この要求で追加されたノードについてのみ使用可能です。

計算された名前のプライマリ場所を現在の場所に設定して(プライマリ場所の理解を参照)、現在の場所に基づいてノード名を再計算するには、「リセット」を使用します。「リセット」アクションは、デフォルト・タイプが「計算および保管」で、かつ手動で入力された名前を持たない、この要求で追加されたノードについてのみ使用可能です。

ノードの外部で、ノード名に影響するアクションを実行した場合にも(親プロパティを変更し、新しいプロパティに基づいてノード名を再計算する場合など)、「リセット」を使用してノード名を再計算できます。

検証と計算されたノード名

要求が検証されるときには、追加アクションにおける現在の名前が、計算された名前を持つ新しいノードに使用されますが、例外が1つあります。現在の名前がキーワードのいずれか(<cn>または<cn ####>)である場合は、最小および最大長の検証がスキップされます。これにより、送信者は、名前にキーワードのいずれかを含む要求を送信して、名前を計算するために必要な情報を承認者またはエンリッチ者が追加できるようにすることができます。

最小および最大長の検証は、要求が承認またはコミットされるときに実行されます。

計算された名前とサブスクリプション

計算された名前を使用するサブスクリプションを設定した場合、ソース・ビューポイントで名前が計算され、結果の名前がサブスクリプション要求でターゲット・ビューポイントに渡されます。ターゲット・ビューポイントでノード名が計算されるようにする場合は、名前を空白の値、または計算された名前のキーワードのいずれか(追加の場合は<cn>、追加と挿入の場合は<cn ####> (####は一意の識別子文字列))に変換するように、プロパティ変換をサブスクリプションのノード・タイプ・コンバータで設定する必要があります(ノード・タイプ・コンバータの操作を参照)。計算された名前のキーワードの理解を参照してください。

Note:

代替名(使用可能な場合)を使用する場合は、名前を空白の値に変換します。ターゲット・ビューポイントで常に、計算された値を使用する場合は、名前をキーワードのいずれかに変換します。