0

我在 MDS 中有几张表。

一张表(客户)是通过 SQL 填写的,另一张是手动填写的主数据表(国家/地区)。

我对表客户端有一个业务规则:

“名称必须是唯一的”并且没有关于国家/地区的 b 规则。

我想以编程方式验证数据我不想在 Web 界面的资源管理器窗口中单击“应用业务规则”。

我找到了几个关于如何使用标题中提到的 sp (udpValidateModel) 来验证模型中的所有实体的线程。

嗯……这东西什么也没做。在更改业务规则或通过 sql 更新数据后,我可以在每个表“等待重新验证”中看到验证状态。不管我做什么状态都不会改变(webui中的验证图标也不会改变)。

我也尝试了验证实体,但同样的“没有”发生。

下面的SP:

DECLARE @User_ID int 
DECLARE @Model_ID int 
DECLARE @Version_ID int 

SET @User_ID = (SELECT ID FROM [MasterDataServices].[mdm].[tblUser]  where userName = SYSTEM_USER )

SET @Model_ID = (SELECT Top 1 Model_Id  FROM [MasterDataServices].[mdm].[viw_SYSTEM_SCHEMA_VERSION]
                                WHERE Model_MUID = 'MYMODELID')

SET @Version_ID =   (SELECT Top 1 VersionNbr  FROM [MasterDataServices].[mdm].[viw_SYSTEM_SCHEMA_VERSION]
   WHERE Model_MUID = 'MYMODELID' 
                   ORDER BY ID DESC )

EXECUTE [MasterDataServices].[mdm].[udpValidateModel] @User_ID, @Model_ID, @Version_ID, 1

任何人都可以帮忙吗?

4

1 回答 1

0

SP 'udpValidateModel' 工作正常,看起来您填充的参数不正确。

您可以按以下方式更正此问题并尝试;确保系统用户对模型具有完全授权。

SET @User_ID = (SELECT ID FROM [MasterDataServices].[mdm].[tblUser]  where userName = SYSTEM_USER )
SET @Model_ID = (SELECT Top 1 Model_Id  FROM [MasterDataServices].[mdm].[viw_SYSTEM_SCHEMA_VERSION]
                 WHERE Model_MUID = 'MYMODELID')
SET @Version_ID =   (SELECT Top 1 VersionNbr  FROM [MasterDataServices].[mdm].[viw_SYSTEM_SCHEMA_VERSION]
                     WHERE Model_MUID = @Model_ID 
                     ORDER BY ID DESC )
于 2016-01-08T09:30:51.600 回答