如何使用 SOA API (Teamcenter) 查找 PropertyDescriptor 的值?

How to find value of PropertyDescriptor using SOA API (Teamcenter)?

在表单的字段 'SoaType' 中有一个子字段 'PropDescs',它包含表单上字段的名称,但不包含值。

例如。字段 'owning_group' 包含键 'owning_group' 和值“{Teamcenter.Soa.Internal.Client.Model.PropertyDescriptionImpl}”,而不是包含 owning_group 名称的字符串。

相反,该值公开了 PropertyDescription 类型成员,例如。 'enabled, FieldType, InitialValue, Localizable, LovCategory' 仅举几例,但同样,字段中的实际值并未 present/or 加载。

运行 DataManagementService.GetProperties 在表示表单的 WorkspaceObject 上未加载任何其他属性,即 Object_properties 在这种情况下似乎是所需的字段。

GetAttachedPropDescs2 文档措辞不清晰 - "Get the attached property descriptor based on input type name and property names structure."

这是否意味着它需要一个输入类型,例如。 "ItemRevision",例如。名称 "object_name",输出将是 "String" 或存储在 object_name?

中的实际值

同样,这个方法如何知道从哪个对象中提取数据?

tl;dr - 如何加载表单上给定字段的输入值并检索它?

ModelObject.GetProperty(string propertyName) returns 一个 'Property' 对象,它包含各种参数中的数据,即 'DisplayValue'、'StringValue' 等.

注意:这个 returns 自定义属性也是通过 BMIDE 创建的,至少对我来说是这样。

例如:

// Load the property
Teamcenter.Soa.Client.Model.Property temp = ModelObject.GetProperty("owning_user");

// Data entered into "owning_user" field
string refFormText = temp.StringValue;