下面将介绍 Oracle Data Relationship Management 对象及其方法和属性。
SysObject
会自动创建一个称为 Sys 的 SysObject。此对象在所有上下文中均可用,它提供常规函数以及有关 Data Relationship Management 应用程序的信息。此对象没有属性。
表 12-9 SysObject 方法
名称 | 说明 |
---|---|
FormattedDate (value, formatString) |
按照公式系统规则设置日期的格式。用于实现向后兼容,可精确匹配旧公式的属性。
|
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。如果参数不是 LocalNodeObject,或者不在同一个层次中,则返回 False。 |
IsNodeBelow(descendant, parent) |
如果后代在层次中位于父代之下,则返回 True。如果参数不是 LocalNodeObject,或者不在同一个层次中,则返回 False。 |
RunFormula(node, propDef, formulaString) |
运行 Data Relationship Management 公式并返回字符串结果
|
PropDefObject
此对象没有方法。
表 12-10 PropDefObject 属性
名称 | 说明 |
---|---|
Abbrev |
属性定义名称(包括完全限定命名空间) |
Cascade |
如果属性值是继承的,则为 True |
ColumnWidth |
默认导出列宽 |
DataType |
DataType 枚举值,例如 DataType.String(请参阅“枚举常量”) |
Descr |
说明 |
DefaultValue |
属性定义的默认值。类型取决于属性定义的数据类型。 |
EditorLabel |
标签 |
Global |
如果属性为全局节点属性,则为 True |
Hidden |
如果属性在属性网格中是隐藏的,则为 True |
ID |
ID |
Level |
PropLevel 枚举值,例如 PropLevel.Node(请参阅“枚举常量”) |
List |
如果属性允许用户从值列表中进行选择,则为 True |
ListValues |
由多个值组成的数组,用户可从中进行选择 |
LookupValues |
查找属性的查找键值对。使用此数组中对象的 Key 和 Value 属性。 |
MaxValue |
最大值 |
MinValue |
最小值 |
Namespace |
属性定义的命名空间 |
PropType |
PropType 枚举值,例如 PropType.Defined(请参阅“枚举常量”) |
PropClass |
派生程序类(Formula 或 Script) |
ReadOnly |
如果属性为只读(例如 Core stats 属性),则为 True |
VersionObject
表 12-11 VersionObject 属性
名称 | 说明 |
---|---|
Abbrev |
名称 |
Descr |
说明 |
HierCount |
层次数 |
ID |
ID |
NodeCount |
节点数 |
表 12-12 VersionObject 方法
名称 | 说明 |
---|---|
GetHierarchies() |
获取由该版本中当前用户可见的所有层次组成的数组 |
GetGlobalNodes() |
获取由该版本中所有全局节点 (NodeObject) 组成的数组 |
GetOrphans() |
获取由该版本中所有孤立项 (NodeObject) 组成的数组 |
HierByAbbrev(abbrev) |
按名称获取 HierarchyObject |
HierByID(id) |
按 ID 获取 HierarchyObject |
NodeByAbbrev(abbrev) |
按名称获取 NodeObject |
NodeByID(id) |
按 ID 获取 NodeObject |
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) |
按 ID 获取 NodeObject |
NodeExists(abbrev) |
如果存在使用给定名称的本地节点,则返回 True |
Prop(abbrev) |
获取该版本的给定属性的 NodePropObject |
PropValue(abbrev) |
获取该版本的给定属性的值。返回值类型取决于属性定义的数据类型。 |
共有节点属性和方法
尽管 NodeObject 和 LocalNodeObject 的原型链不同,但是某些属性和方法是这两个对象共有的。
在各种情况下,值可能会因全局或本地上下文而有所不同,但均可针对该上下文返回正确的值。例如,针对 NodeObject 调用 GetChildren() 时,生成的数组将包含 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) |
获取由此节点的直接子代组成的数组(可以选择对数组进行排序)。sorted 的默认值为 False。 |
GetDescendants(inclusive, sorted) |
获取由此节点的后代组成的数组(可以选择包含此节点和/或对数组进行排序)。inclusive 的默认值为 True。sorted 的默认值为 False。 |
NodeByAbbrev(abbrev) |
按名称获取 NodeObject |
NodeByID(id) |
按 ID 获取 NodeObject |
NodeExists(abbrev) |
如果存在使用给定名称的全局节点,则返回 True |
Prop(abbrev) |
获取该版本的给定属性的 NodePropObject |
PropValue(abbrev) |
获取该版本的给定属性的值。返回值类型取决于属性定义的数据类型。 |
LocalNodeObject
Oracle 建议您使用各种 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 结果组成的数组。
|
ChildrenWith(func, maxResults) |
在节点的子代列表中搜索满足给定函数的节点。这是查找子代的最快方法。返回由 LocalNodeObject 结果组成的数组。
|
DescendantsWith(func, maxResults, inclusive, depthFirst) |
在后代链中搜索满足给定函数的节点。这是查找后代的最快方法。返回由 LocalNodeObject 结果组成的数组。
|
GetAncestorEnumerator() |
获取枚举祖先节点的 NodeEnumeratorObject |
GetAncestors(inclusive) |
获取由 LocalNodeObject 祖先组成的数组 |
GetChildEnumerator(sorted) |
获取枚举子节点的 NodeEnumeratorObject。如果 sorted 为 True,则将对子代进行排序。 |
GetDescendantEnumerator() |
获取枚举后代节点的 NodeEnumeratorObject |
GetImplicitly SharedDescendants(inclusive) |
获取与此共享节点相关的主节点的子节点 |
GetInvertedLevel() |
等同于 InvertedLevel 公式函数 |
GetReferences() |
在出现此节点的所有层次中获取由引用此节点的 LocalNodeObject 组成的数组 |
GetReferenceInHier(hierAbbrev) |
在给定层次中获取此节点的引用。如果层次不可访问或此节点不在该层次中,则结果将为 null。 |
NextSibling() |
按排序顺序获取此节点的下一同级 |
PreviousSibling() |
按排序顺序获取此节点的前一同级 |
SiblingsWith(func, maxResults, inclusive) |
在节点的同级中搜索满足给定函数的节点。返回由 LocalNodeObject 结果组成的数组。
|
NodePropObject
表 12-19 NodePropObject 属性
名称 | 说明 |
---|---|
Abbrev |
属性定义的名称 |
ControllingHierarchy |
此版本中属性定义的控制层次的 HierarchyObject。如果属性不是全局节点属性、没有控制层次或者找不到控制层次,则返回值将为 null。 |
Locked |
如果值处于锁定状态,则为 True |
Origin |
PropOrigin 枚举值,例如 PropOrigin.Overridden(请参阅“枚举常量”) |
Owner |
与此值关联的对象(VersionObject、HierarchyObject、NodeObject 或 LocalNodeObject) |
PropType |
PropType 枚举值,例如 PropType.Defined(请参阅“枚举常量”) |
StringValue |
此属性的原始字符串值。如果是 Derived 或 RWDerived 属性,此值可能为属性定义默认值或覆盖的值。 |
Value |
此属性的解释值(例如,对于 DataType.Float 和 DataType.Integer,此值将为 Number 对象)。并非所有数据类型都必须具有非字符串表示法。 |
表 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 |
用于初始化的范围值。此参数为可选。接受两种格式:
|
表 12-22 RangeListObject 属性
名称 | 说明 |
---|---|
Ranges |
由对象组成的数组。每个对象均具有两个属性:
此属性为只读属性。要修改范围,请使用以下方法。 |
表 12-23 RangeListObject 方法
名称 | 说明 |
---|---|
AddRange(start, end) |
向范围列表添加新的范围。此方法可扩展现有范围条目或创建新的范围条目。要向列表中添加单个数字,请同时对 start 参数和 end 参数使用此数字。如有必要,可将这两个参数强制设为整数。 |
Contains(value) |
如果值在范围列表中,则返回 True,否则将返回 False。 如有必要,可将 value 强制设为整数。 |
IsSupersetOf(range) |
如果当前 RangeListObject 为给定 RangeListObject 的超集,则返回 True。传送其他类型的对象将出错。 |
RemoveRange(start, end) |
从列表中删除一个范围。此删除操作可能会将现有范围条目拆分为两个,或删除整个条目。要从列表中删除单个数字,请同时对 start 参数和 end 参数使用此数字。如有必要,可将这两个参数强制设为整数。 |
NodeEnumeratorObject
通过 NodeEnumeratorObject 对节点列表执行操作效率更高。枚举器不会一次构建整个列表,而是根据需要一次仅获取一个节点。如果要查找的内容在列表的中间位置,则可弃用枚举器。返回由节点对象组成的数组的属性和方法必须立即构建整个数组,无论要访问的项目是否位于数组的结尾。
在开始处,枚举器得到的当前值为 null。必须调用 MoveNext() 才能使枚举器进入列表中的第一个节点。
注:
当需要从所有可能的匹配中仅查找少数几个节点并且只需迭代列表一次时,最好使用 With 方法,例如 AncestorsWith 或 SiblingsWith 方法。如果需要循环祖先节点列表多次,或者已知道将需要大多数或所有祖先,则枚举器可能更快。
表 12-24 NodeEnumeratorObject 方法
名称 | 说明 |
---|---|
GetCurrent() |
当前节点(根据上下文确定是 NodeObject 还是 LocalNodeObject)。 |
MoveNext() |
使枚举器进入下一节点。如果没有更多可枚举的节点,将返回 False。 |
ValidationObject
验证脚本
验证脚本返回包含名为 "success" 的属性的 JavaScript 对象。如果该脚本返回布尔值或非布尔值对象(例如,数字或字符串),则将使用 JavaScript 转换规则将其值转换为布尔值,然后分配给 success。该脚本可以选择在属性中返回命名为 "parameters" 的、由多个值组成的 JavaScript 数组。将通过字符串替代将数组值替代到验证的失败消息中。
可以返回布尔值(True 或 False)。如果返回 True,则表明验证成功;否则表明验证失败。如果未返回值,则视为与返回 False 相同。
如果返回的是非布尔值对象(例如数字或字符串),则会将该对象转换为布尔值再返回。将应用标准 JavaScript 转换。等于零的数字、空字符串以及 null 或未定义的对象将被解释为 false。其他所有值均为 true。
如果返回包含命名为 "success" 的属性的复杂对象,则会将该 success 属性转换为布尔值,并用作验证的返回值。可以选择在属性中返回命名为 "parameters" 的、由多个值组成的数组。这是 JavaScript 数组对象,需要进行填充,然后用于参数化的失败消息中。将通过字符串替代将参数替代到验证的失败消息中。应返回与失败消息中的占位符相对应的正确数量的值。如果返回了额外的参数,将忽略该参数。如果未返回足够的参数,则缺失的参数将被视为空字符串。
RequestObject
RequestObject 表示监管请求,包括请求标题和项。“项”属性表示添加到请求的请求项的列表。一个重要的属性是“版本”属性,请求的目标版本包括其层次和节点,全部均可通过相关脚本对象访问。
RequestItemObject
RequestItemObject 表示监管请求的单个请求项,包括有关当前任务和要更新的节点的信息以及该项的详细信息(属性值)。通过“请求”属性可以访问项的全部请求对象,包括标题属性和其他项。
NodeNamePendingInRequest 方法用于确定与目标版本的其他正在进行的请求冲突的潜在节点名称,如果其他暂挂请求上的项包含同一节点名称的“添加”项,则返回 True。
表 12-27 RequestItemObject 属性
名称 | 说明 |
---|---|
ItemID |
项 ID |
RequestID |
请求 ID |
Request |
该项所属的请求对象 |
NodeName |
要更新的节点的 Core.Abbrev |
说明 |
要更新的节点的 Core.Descr |
HierarchyName |
要更新的节点的层次 |
ParentName |
要更新的节点的 Core.Parent |
TaskName |
请求项的工作流任务名称 |
TaskAction |
WorkflowAction 枚举值,例如 WorkflowAction.AddLimb(请参阅“枚举常量”) |
TaskDomain |
工作流任务的域名(如果有) |
ItemDetails |
请求项的 RequestItemDetailObject 的列表 |
表 12-28 RequestItemObject 方法
名称 | 说明 |
---|---|
NodeNamePendingInRequest(name) |
接受要测试的特定节点名称参数。如果除版本的当前请求外正在进行的请求包含具有指定名称的 AddLimb/叶项,则返回 True。 |
RequestItemDetailObject
RequestItemDetailObject 表示监管请求的单个请求项详细信息,对应于单个属性值。
表 12-29 RequestItemDetailObject 属性
名称 | 说明 |
---|---|
CalcValue |
属性的计算值 |
HasCalcValue |
如果值为计算值,则返回 True |
Modified |
如果请求中修改了该值,则返回 True |
PropertyName |
属性的名称 |
Value |
属性的值 |