Data Relationship Managementオブジェクト

次に、Oracle Data Relationship Managementオブジェクト、およびそのメソッドとプロパティを説明します。

SysObject

Sysと呼ばれる1つのSysObjectは、自動的に作成されます。このオブジェクトはすべてのコンテキストで使用可能で、汎用的な関数およびData Relationship Managementアプリケーションの情報を提供します。このオブジェクトにプロパティはありません。

表12-9 SysObjectメソッド

名前 説明

FormattedDate (value, formatString)

式のシステム・ルールに従って日付をフォーマットします。古い式プロパティに正確に一致させる下位互換に便利です。

  • 値はDateオブジェクトか有効な日時文字列であることが必要です

  • formatStringは、有効なフォーマット文字列であることが必要です(FormattedDate関数を参照してください)

GetNextID(key)

特定の文字列キー値について次に使用可能な整数IDを返します。

GetPropDef(abbrev)

指定されたプロパティ名のPropDefObjectを戻します。名前は、完全修飾名であることが必要です。

GetRequestByID(int)

ワークフロー要求をID別に返します。

GetSysPrefValue(abbrev)

指定されたシステム・プリファレンス(HierNodeSeparatorなど)の値を戻します

InRange(dataType, input, min, max, minExclusive, maxExclusive)

式関数InRangeに対応します。必須パラメータはdataType、inputおよびminです。

IsNodeAbove(ancestor, child)

階層内で祖先が子より上の場合にTrueを戻します。パラメータがLocalNodeObjectsではない場合、または同じ階層にない場合にFalseを戻します。

IsNodeBelow(descendant, parent)

階層内で子孫が親より下の場合にTrueを戻します。パラメータがLocalNodeObjectsではない場合、または同じ階層にない場合にFalseを戻します。

RunFormula(node, propDef, formulaString)

Data Relationship Managementの式を実行し、文字列の結果を戻します

  • ノードはNodeObjectまたはLocalNodeObjectです。NodeObjectを渡す際に、式文字列でローカル・プロパティを参照しないようにする必要があり、参照するとエラーが発生します。LocalNodeObjectを渡す際は、使用可能なすべてのグローバルおよびローカルのプロパティを参照できます。

  • propDef––正しく解析または実行するには、一部の式関数にプロパティ定義が必要です。これらの関数を使用する際は、プロパティ定義を指定する必要があります。一般的に、プロパティ定義文字(レベル、グローバルとローカル、およびタイプなど)は一致する必要がありますが、formulaString用の実際のプロパティである必要はありません。関連がなくてもかまいません。ほとんどの式で、このパラメータにnullを渡すことができます。構文はSys.GetPropDef(abbrev)です。例:

    Sys.RunFormula(node, Sys.GetPropDef("Custom.MyProp1"), "Concat(Prop value ', PropValue(Custom.MyProp2),' ,is, ,valid)");
  • formulaStringは従来のData Relationship Management式です; 空白は式のリテラルの一部とみなされるため、必要に応じて除去する必要があります。

    ノート: これはベスト・プラクティスではないため、従来の動作と完全に一致させる必要がある場合にのみ使用します。このメソッドを使用すると、パフォーマンスが低下します。

PropDefObject

このオブジェクトにメソッドはありません。

表12-10 PropDefObjectプロパティ

名前 説明

Abbrev

プロパティ定義名(完全修飾ネームスペースなど)

Cascade

プロパティ値を継承する場合はTrue

ColumnWidth

デフォルトのエクスポート列の幅

DataType

DataType.StringなどのDataType列挙値(列挙定数を参照)

Descr

説明

DefaultValue

プロパティ定義のデフォルト値。タイプはプロパティ定義のデータ型によって異なります。

EditorLabel

ラベル

Global

プロパティがグローバル・ノード・プロパティの場合はTrue

Hidden

プロパティをプロパティ・グリッドから非表示にする場合はTrue

ID

ID

Level

PropLevel.NodeなどのPropLevel列挙値(列挙定数を参照)

List

propを値のリストから選択できる場合はTrue

ListValues

ユーザーが選択可能な値の配列

LookupValues

参照プロパティのキーと値のペアを検索します。この配列にあるオブジェクトのキーと値のプロパティを使用します。

MaxValue

最大値

MinValue

最小値

Namespace

プロパティ定義のネームスペース

PropType

PropType.DefinedなどのPropType列挙値(列挙定数を参照)

PropClass

派生クラス(式またはスクリプト)

ReadOnly

プロパティが読取り専用(コア統計プロパティなど)の場合はTrue

VersionObject

表12-11 VersionObjectプロパティ

名前 説明

Abbrev

名前

Descr

説明

HierCount

階層の数

ID

ID

NodeCount

ノードの数

表12-12 VersionObjectメソッド

名前 説明

GetHierarchies()

現在のユーザーが使用可能なバージョンのすべての階層の配列を取得します

GetGlobalNodes()

バージョンのすべてのグローバル・ノード(NodeObjects)の配列を取得します

GetOrphans()

バージョンのすべての孤立(NodeObjects)の配列を取得します

HierByAbbrev(abbrev)

HierarchyObjectを名前ごとに取得します

HierByID(id)

HierarchyObjectをIDごとに取得します

NodeByAbbrev(abbrev)

NodeObjectを名前ごとに取得します

NodeByID(id)

NodeObjectをIDごとに取得します

NodeExists(abbrev)

指定された名前のグローバル・ノードが存在する場合はTrueを戻します

Prop(abbrev)

バージョンの指定されたプロパティのNodePropObjectを取得します

PropValue(abbrev)

バージョンの指定されたプロパティの値を取得します。戻り値の型はプロパティ定義のデータ型によって異なります。

HierarchyObject

表12-13 HierarchyObjectプロパティ

名前 説明

Abbrev

名前

Descr

説明

HierarchyUrl

階層URL

ID

ID

NodeCount

階層のノード数

SharedNodesEnabled

共有ノードが有効な場合はTrue

TopNode

LocalNodeObjectの最上位ノード

Version

VersionObject

VersionAbbrev

バージョンの名前

VersionID

バージョンのID

表12-14 HierarchyObjectメソッド

名前 説明

NodeByAbbrev(abbrev)

NodeObjectを名前ごとに取得します

NodeByID(id)

NodeObjectをIDごとに取得します

NodeExists(abbrev)

指定された名前のローカル・ノードが存在する場合はTrueを戻します

Prop(abbrev)

バージョンの指定されたプロパティのNodePropObjectを取得します

PropValue(abbrev)

バージョンの指定されたプロパティの値を取得します。戻り値の型はプロパティ定義のデータ型によって異なります。

共通のノード・プロパティおよびメソッド

NodeObjectおよびLocalNodeObjectの2つのオブジェクトではプロトタイプ・チェーンは共有されていませんが、一部のプロパティおよびメソッドは、この両方のオブジェクトに共通です。

コンテキストがグローバルであるかローカルであるかによって値が異なるあらゆるケースで、そのコンテキストに適切な値が戻されます。たとえば、NodeObjectのGetChildren()を呼び出すと、結果のArrayにはNodeObjectが含まれます。LocalNodeObjectで同じ呼出しを行うと、結果の配列にはLocalNodeObjectが含まれます。

表12-15 NodeObjectおよびLocalNodeObjectの共通プロパティ

名前 説明

Abbrev

Core.Abbrev

AddedBy

Core.AddedBy

AddedOn

Core.AddedOn

Changed

Core.Changed

ChangedBy

Core.ChangedBy

ChangedOn

Core.ChangedOn

ChildNodeCount

子ノードの数

Descr

Core.Descr

DomainAbbrev

Core.DomainAbbrev

DomainNodeAbbrev

Core.DomainNodeAbbrev

ID

Core.ID

Inactive

Core.Inactive

IsPrimary

ノードが共有ノードのプライマリである場合はTrue; ノードが共有されていない場合やプライマリでない場合はFalse

IsShared

ノードが共有ノードの場合はTrue

Leaf

Core.Leaf

NodeApproved

Core.NodeApproved

Version

ノードの所有者はVersionObject

VersionAbbrev

ノードのバージョン名

VersionID

ノードのバージョンID

表12-16 NodeObjectおよびLocalNodeObjectの共通メソッド

名前 説明

GetChildren(sorted)

このノードの直接の子のArrayを取得し、オプションでソート順にできます。sortedのデフォルトはFalseです。

GetDescendants(inclusive, sorted)

このノードの子孫のArrayを取得し、オプションでこのノードを含めること/ソート順にすることが可能です。inclusiveのデフォルトはTrueです。sortedのデフォルトはFalseです。

NodeByAbbrev(abbrev)

NodeObjectを名前ごとに取得します

NodeByID(id)

NodeObjectをIDごとに取得します

NodeExists(abbrev)

指定された名前のグローバル・ノードが存在する場合はTrueを戻します

Prop(abbrev)

バージョンの指定されたプロパティのNodePropObjectを取得します

PropValue(abbrev)

バージョンの指定されたプロパティの値を取得します。戻り値の型はプロパティ定義のデータ型によって異なります。

LocalNodeObject

階層内の他のノードの検索には、様々なxxxWith関数を使用することをお薦めします。たとえば、ChildrenWithは、GetChildren()を呼び出して結果を反復するよりはるかに高速で実行されます。同様に、GetReferenceInHierも、GetReferences()を呼び出して結果を反復するより、はるかに高速で簡単に使用できます。

表12-17 LocalNodeObjectプロパティ

名前 説明

GlobalNode

現在のノードのグローバルNodeObject

Hier

ノードが存在する階層のHierarchyObject

HierAbbrev

Core.HierAbbrev

HierID

Core.HierID

Level

階層におけるノードのレベルを表す数値

MissingPrimary

プライマリ・ノードが見つからない場合はTrue

NodeUrl

ノードURL

Parent

このノードの親ノードのLocalNodeObject。階層の最上位ノードにはNullが戻されます。

ParentNodeAbbrev

親ノードの名前

Primary

この共有ノードのプライマリ・ノード。プライマリがこの階層に存在しない場合は、それが存在する最初の階層のプライマリが戻されます。プライマリが存在する階層のリストが必要な場合は、戻されたプライマリ・ノードでGetReferences()を呼び出します。共有ノードまたはプライマリが見つからない場合は、nullが戻されます。

PrimaryNotInHier

プライマリ・ノードは存在するが、この階層ではない場合はTrue

表12-18 LocalNodeObjectメソッド

名前 説明

AncestorsWith(func, maxResults, searchFromTop, inclusive)

指定された関数を満たすノードの祖先チェーンを検索します。これは、祖先を検索する最速の方法です。LocalNodeObjectの結果のArrayが戻されます。

  • funcは単一のノード引数を使用する関数であることが必要で、結果にノードが含まれる必要がある場合はTrueが、テストに失敗した場合はFalseが戻されます。

  • maxResultsはオプションで、デフォルトで1に設定されます。制限なし(条件を満たすすべてのノード)の場合は0を使用します。

  • searchFromTopはオプションで、デフォルトでFalseに設定されます。階層の最上位で開始する場合はTrueを使用します。

  • inclusiveはオプションで、デフォルトでFalseに設定されます。潜在的な一致に現在のノードを含めるにはTrueを使用します(テストは通過する必要があります)。

ChildrenWith(func, maxResults)

指定された関数を満たすノードの子リストを検索します。これは、子を検索する最速の方法です。LocalNodeObjectの結果のArrayが戻されます。

  • funcは単一のノード引数を使用する関数であることが必要で、結果にノードが含まれる必要がある場合はTrueが、テストに失敗した場合はFalseが戻されます。

  • maxResultsはオプションで、デフォルトで1に設定されます。制限なし(条件を満たすすべての子)の場合は0を使用します。

DescendantsWith(func, maxResults, inclusive, depthFirst)

指定された関数を満たすノードの子孫チェーンを検索します。これは、子孫を検索する最速の方法で、LocalNodeObjectの結果のArrayが戻されます。

  • funcは単一のノード引数を使用する関数であることが必要で、結果にノードが含まれる必要がある場合はTrueが、テストに失敗した場合はFalseが戻されます。

  • maxResultsはオプションで、デフォルトで1に設定されます。制限なし(条件を満たすすべてのノード)の場合は0を使用します。

  • inclusiveはオプションで、デフォルトでFalseに設定されます。潜在的な一致に現在のノードを含めるにはTrueを使用します(テストは通過する必要があります)。

  • depthFirstはオプションで、デフォルトでTrueに設定されます。Trueの場合、ツリーをバックアップして次の分岐に移動する前に、各分岐がヒントまですべて調査されます。Falseの場合は、ノードのすべての子が先に調査され、次に各子のノードが、その次にその子というように調査されます。ノードがツリー形式になっている場所がわかる場合は、ここで適切な値を選択すると、検索を大幅に高速化できます。

GetAncestorEnumerator()

祖先ノードを列挙するNodeEnumeratorObjectを取得します

GetAncestors(inclusive)

LocalNodeObjectの祖先のArrayを取得します

GetChildEnumerator(sorted)

子ノードを列挙するNodeEnumeratorObjectを取得します。sortedがTrueの場合、子はソートされた順序で表示されます。

GetDescendantEnumerator()

子孫ノードを列挙するNodeEnumeratorObjectを取得します

GetImplicitly SharedDescendants(inclusive)

この共有ノードが関連するプライマリ・ノードの子ノードを取得します

GetInvertedLevel()

式InvertedLevel関数と等価です

GetReferences()

このノード(このノードが表示されるすべての階層)の参照先であるLocalNodeObjectsのArrayを取得します

GetReferenceInHier(hierAbbrev)

指定された階層で、このノードへの参照を取得します。階層にアクセスできない場合や、階層にこのノードが存在しない場合、結果はnullになります。

NextSibling()

ソート順でこのノードの次の兄弟を取得します

PreviousSibling()

ソート順でこのノードの前の兄弟を取得します

SiblingsWith(func, maxResults, inclusive)

指定された関数を満たすノードの兄弟を検索します。LocalNodeObjectの結果のArrayが戻されます。

  • funcは単一のノード引数を使用する関数であることが必要で、結果にノードが含まれる必要がある場合はTrueが、テストに失敗した場合はFalseが戻されます。

  • maxResultsはオプションで、デフォルトで1に設定されます。制限なし(条件を満たすすべての祖先)の場合は0を使用します。

  • inclusiveはオプションで、デフォルトでFalseに設定されます。潜在的な一致に現在のノードを含めるにはTrueを使用します(テストは通過する必要があります)。

NodePropObject

表12-19 NodePropObjectプロパティ

名前 説明

Abbrev

プロパティ定義の名前

ControllingHierarchy

このバージョンにおけるプロパティ定義の制御階層のHierarchyObject。プロパティがグローバル・ノード・プロパティではない場合、制御階層がない場合、または制御階層が見つからない場合、戻り値はnullになります。

Locked

値がロックされている場合はTrue

Origin

PropOrigin.OverriddenなどのPropOrigin列挙値(列挙定数を参照)

Owner

この値が関連付けられているオブジェクト(VersionObject、HierarchyObject、NodeObjectまたはLocalNodeObject)

PropType

PropType.DefinedなどのPropType列挙値(列挙定数を参照)

StringValue

このプロパティのraw文字列値。DerivedまたはRWDerivedプロパティの場合は、プロパティ定義のデフォルト値または上書きされた値になります。

Value

このプロパティの解釈された値(たとえば、DataType.FloatおよびDataType.Integerの場合、この値は数値オブジェクトになります)。すべてのDataTypesに、必ずしも文字列以外の表現があるとはかぎりません。

表12-20 NodePropObjectメソッド

名前 説明

GetPropDef()

ノード・プロパティのPropDefObjectを取得します

RangeListObject

RangeListObjectは値のRangeListを表し、手動で文字列を解析することなく、RangeListプロパティの検査に使用できます。適切なデータ型の派生プロパティから戻されるよう、新しいRangeListObjectを構成することも可能です。

コンストラクタの例

var x = new RangeListObject();
var y = new RangeListObject("1-10,20-25");
var z = new RangeListObject([{start:1, end:10},{start:20, end:25}]);

表12-21 RangeListObjectコンストラクタ・パラメータ

パラメータ オプション 説明

ranges

True

初期化の範囲の値。このパラメータはオプションです。2つのフォーマットを使用できます:

  • Array––配列の各要素が、範囲を示す開始と終了のプロパティを持つオブジェクトである配列。これらのプロパティがない配列のオブジェクトは無視されます。

  • String––文字列エントリのカンマ区切りリスト。各エントリには、ダッシュ(-)または等号(=)記号で区切られた、開始値と終了値が含まれます。

表12-22 RangeListObjectプロパティ

名前 説明

Ranges

オブジェクトの配列。各オブジェクトには2つのプロパティがあります:

  • start––範囲エントリの開始

  • end––範囲エントリの終了

このプロパティは読取り専用です。範囲を変更するには、次のメソッドを使用します。

表12-23 RangeListObjectメソッド

名前 説明

AddRange(start, end)

範囲リストに新しい範囲を追加します。これにより、既存の範囲エントリを拡張するか、新たに作成します。リストに1つの数字を追加するには、開始と終了の両方のパラメータにその数字使用します。必要な場合は、両方のパラメータが整数に強制されます。

Contains(value)

値が範囲リスト内にある場合はTrue、それ以外の場合はFalseが戻されます。

必要な場合は、値が整数に強制されます。

IsSupersetOf(range)

現在のRangeListObjectが、指定されたRangeListObjectのスーパーセットである場合はTrueが戻されます。別のタイプのオブジェクトを渡すとエラーが発生します。

RemoveRange(start, end)

リストから範囲を除去します。この除去により、既存の範囲エントリが2つに分割されるか、エントリ全体が除去されます。リストから1つの数字を除去するには、開始と終了の両方のパラメータにその数字を使用します。必要な場合は、両方のパラメータが整数に強制されます。

NodeEnumeratorObject

NodeEnumeratorObjectを使用すると、ノードのリストをより効率的に操作できます。一度にリスト全体をすべて作成するかわりに、列挙子が必要に応じて一度に1つのノードを取得します。リストの中ほどで探していたものが見つかった場合は、列挙子を中断できます。ノード・オブジェクトのArrayを戻すプロパティおよびメソッドは、配列の最後のアイテムにアクセスするかどうかに関係なく、配列全体をすぐに作成する必要があります。

列挙子は、現在の値をnullとして開始されます。列挙子をリストの最初のノードに進めるには、MoveNext()を呼び出す必要があります。

注:

検索するノードが、可能性のあるすべての一致の中のいくつかのみで、リストを反復するのが一度のみの場合は、AncestorsWithまたはSiblingsWithメソッドなど、Withメソッドを使用することをお薦めします。祖先ノードのリストを何度も繰り返す必要がある場合や、祖先の大部分またはすべてが必要であることがわかっている場合は、列挙子の方が高速です。

表12-24 NodeEnumeratorObjectメソッド

名前 説明

GetCurrent()

現在のノード(コンテキストにより、NodeObjectまたはLocalNodeObject)。

MoveNext()

列挙子を次のノードに進めます。列挙するノードが存在しない場合はFalseが戻されます。

ValidationObject

表12-25 ValidationObjectプロパティ

名前 説明

Abbrev

検証の名前(完全修飾ネームスペースを含む)

Descr

説明

EditorLabel

ラベル

Cascade

検証の割当てを継承する場合はTrue

ValidationClass

検証クラスの名前

ValidationLevel

ValidationLevel.NodeなどのValidationLevel列挙値(列挙定数を参照)。

ValidationType

ValidationType.BatchなどのValidationType列挙値(列挙定数を参照)。

検証スクリプト

  • 検証スクリプトは「success」という名前のプロパティを含むJavaScriptオブジェクトを戻します。スクリプトがブール値または非ブール・オブジェクト(数値、文字列など)を戻す場合、その値は標準のJavaScript変換ルールを使用してブールに変換され、successプロパティに割り当てられます。スクリプトはparametersという名前のプロパティに、オプションで、値のJavaScript配列を戻すことができます。配列値は、文字列置換を使用して、検証のエラー・メッセージに置き換えられます。

  • ブール値(TrueまたはFalse)を戻すことができます。Trueを戻す場合、検証は成功です; それ以外の場合は失敗です。値を戻さない場合は、Falseが戻されたのと同じであるとみなされます。

  • 数値や文字列など、ブール以外のオブジェクトを戻すと、ブールに変換されてから戻されます。標準のJavaScript変換が適用されます。ゼロに等しい数値、空の文字列、nullまたは未定義のオブジェクトはfalseと解釈されます。その他のすべての値はtrueです。

  • 「success」という名前のプロパティを含む複合オブジェクトを戻す場合、そのsuccessプロパティはブールに変換され、検証の戻り値として使用されます。「parameters」という名前のプロパティに、オプションで、値の配列を戻すことができます。これはJavaScript配列オブジェクトで、移入されてパラメータで示されるエラー・メッセージに使用される必要があります。パラメータは、文字列置換を使用して、検証のエラー・メッセージに置き換えられます。エラー・メッセージのプレースホルダに対応する、適切な数の値を戻す必要があります。余分なパラメータを戻した場合は無視されます。十分な数のパラメータを戻さないと、不足しているパラメータは空の文字列とみなされます。

RequestObject

RequestObjectは、要求ヘッダーとアイテムを含むガバナンス要求を表します。Itemsプロパティは、要求に追加された要求アイテムのリストを表します。主要な属性は、すべて関連スクリプト・オブジェクトを介してアクセスできるその階層とノードを含む要求のターゲット・バージョンであるVersionプロパティです。

表12-26 RequestObjectプロパティ

名前 説明

ID

ID

Title

要求のタイトル

Version

要求のターゲット・バージョン

ModelName

要求のワークフロー・モデル

StageName

要求の現在のステージ

StageType

WorkflowStageType.SubmitなどのWorkflowStageType列挙値(列挙定数を参照)

Status

WorkflowStatus.SubmittedなどのWorkflowStatus列挙値(列挙定数を参照)

Items

要求に追加されたRequestItemObjectのリスト

RequestItemObject

RequestItemObjectは、現在のタスクや更新されるノードに関する情報など、ガバナンス要求の個々の要求アイテムを、そのアイテムの詳細(プロパティ値)とともに表します。Requestプロパティは、ヘッダー・プロパティとその他のアイテムなど、アイテムの要求オブジェクト全体へのアクセスを提供します。

NodeNamePendingInRequestメソッドは、ターゲット・バージョンに対する他の処理中の要求との潜在的なノード名の競合を識別するために使用され、別の保留中要求のアイテムに同じノード名の追加アイテムが含まれている場合にTrueを戻します。

表12-27 RequestItemObjectプロパティ

名前 説明

ItemID

アイテムID

RequestID

要求ID

Request

アイテムが属する要求オブジェクト

NodeName

更新されるノードのCore.Abbrev

説明

更新されるノードのCore.Descr

HierarchyName

更新されるノードの階層

ParentName

更新されるノードのCore.Parent

TaskName

要求アイテムのワークフロー・タスク名

TaskAction

WorkflowAction.AddLimbなどのWorkflowAction列挙値(列挙定数を参照)

TaskDomain

ワークフロー・タスクのドメイン名(存在する場合)

ItemDetails

要求アイテムのRequestItemDetailObjectのリスト

表12-28 RequestItemObjectメソッド

名前 説明

NodeNamePendingInRequest(name)

テストする特定のノード名のパラメータを受け入れます。バージョンに対する現在の要求以外の処理中の要求に指定された名前のAddLimb/Leafアイテムが含まれている場合にTrueを戻します

RequestItemDetailObject

RequestItemDetailObjectは、単一のプロパティ値に対応するガバナンス要求の個々の要求アイテム詳細を表します。

表12-29 RequestItemDetailObjectプロパティ

名前 説明

CalcValue

プロパティの計算された値

HasCalcValue

値が計算されている場合にTrueを戻します

Modified

要求で値が変更された場合はTrueを戻します

PropertyName

プロパティの名前

Value

プロパティの値