Microsoft Master Data Services:如何以编程方式获取/设置Model/Entity的描述

flo*_*low 23 c# sql-server master-data-management master-data-services

我使用MDS 2008/API以编程方式插入/更新模型,实体,属性和成员.

我想获取或设置一个模型或一个实体的描述.

如果掌握在Master Data Manager上,我们可以在一个模型或实体的元数据上看到这一点: 在此输入图像描述

在这里,我们可以看到模型的描述,但我们无法获取或设置它.

有谁知道如何使用MDS API做到这一点?

Dan*_*Dan 1

模型的描述只是实体“模型元数据定义”中的一个属性,它存在于“元数据”模型中。因此更改该值应该就像更改任何其他实体的属性值一样。

由于我从未使用过 MDS API,因此我将描述如何使用 MDS Stage 成员表和存储过程来执行此操作,但我认为这应该能让您了解如何使用 API 执行此操作。

由于我们要更改成员 22(这是您的测试模型)的“Description”属性,因此在 tblStgMemberAttribute 表中插入一条记录:

insert mdm.tblStgMemberAttribute (ModelName, EntityName, MemberType_ID, 
    MemberCode, AttributeName, AttributeValue)
values ('Metadata', 'Model Metadata Definition', 1, 
    22, 'Description', 'My new description')
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用管理器执行批处理,或以编程方式执行:

DECLARE @Version_ID int, @User_Id int

/* Get latest version of the model */
SET @Version_ID = (SELECT MAX(ID) FROM MDS.mdm.viw_SYSTEM_SCHEMA_VERSION  
                   WHERE Model_Name = 'Metadata')

/* Get the UserID from the username */  
SET @User_Id = (SELECT ID FROM mdm.tblUser u 
                WHERE u.UserName = 'domain\username') /* TODO: Replace domain/username */

EXEC mdm.udpStagingSweep @User_Id, @Version_ID, 1
Run Code Online (Sandbox Code Playgroud)