通过内置属性代码搜索主数据服务成员

时间:2019-03-11 09:08:46

标签: c# sql-server master-data-services

我可以通过EntityMembersGetCriteria搜索成员,其中SearchTerm包含示例SAP Code = 'abc'的自定义属性的表达式。

var criteria = new EntityMembersGetCriteria
        {
            ModelId = new Identifier { Name = Model },
            EntityId = new Identifier { Name = Entity },
            VersionId = new Identifier { Name = Version },
            SearchTerm = searchTerm,
            MemberType = MemberType.Leaf,
            MemberReturnOption = MemberReturnOption.DataAndCounts
        };

但是它可以与Code='xyz'一起使用。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

SearchTerm设置WHERE子句搜索条件以过滤记录。这意味着需要输入与存储在MDS DB中的名称完全相同的名称

重点是用户定义的属性(UDA)在MDS DB中具有特殊的名称

每个UDA属性都以以下格式存储: uda_{Entity.InternalId}_{Attribute.InternalId},例如uda_2012_45231。如果 Entity.InternalId = 2021和 Attribute.InternalId = 45231。

因此,您已写入SearchTerm:

"uda_2012_45231 = 'abc'"

P.S .:您可以在MetadataGet method中找到Entity和Attribute InternalId的值。

更新:似乎UDA属性根本不在SearchTerm中起作用。 “名称”,“代码”,“ EnterDTM”( CreatedDateTime )和“ LastChgDTM”( UpdatedDateTime )正常工作,但UDA无效。