Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MDS中业务规则的TSQL列表_Tsql_Powerbi_Master Data Services - Fatal编程技术网

MDS中业务规则的TSQL列表

MDS中业务规则的TSQL列表,tsql,powerbi,master-data-services,Tsql,Powerbi,Master Data Services,我需要在SQL中查询业务规则的帮助 我在MDSWeb服务中创建了两个业务规则来验证我的主数据,发现我的数据中有2%不符合这些规则。现在,我已经创建了一个SQL订阅视图来报告PowerBI中的无效数据。在我的PowerBI报告中,我需要告诉业务用户数据无效的原因,但我不能,因为订阅视图只告诉数据无效的位置,而不告诉数据无效的原因。因此,我需要知道如何从SQL中的MDS数据库查询业务规则,并将其映射到PowerBI数据模型。有没有办法从MDS数据库查询业务规则列表 好的,有多种方法可以做到这一点。这

我需要在SQL中查询业务规则的帮助


我在MDSWeb服务中创建了两个业务规则来验证我的主数据,发现我的数据中有2%不符合这些规则。现在,我已经创建了一个SQL订阅视图来报告PowerBI中的无效数据。在我的PowerBI报告中,我需要告诉业务用户数据无效的原因,但我不能,因为订阅视图只告诉数据无效的位置,而不告诉数据无效的原因。因此,我需要知道如何从SQL中的MDS数据库查询业务规则,并将其映射到PowerBI数据模型。有没有办法从MDS数据库查询业务规则列表

好的,有多种方法可以做到这一点。这里有一些解决方案,请选择一个适合您的场景

1.SQL-所有业务规则的列表 以下查询将检索MDS中创建的所有活动业务规则的列表

挑选* 来自[MDM].[MDM].[viw_系统\u架构\u业务规则] 其中Model_Name='YourModelName' 和BusinessRule_StatusName='Active' 当然,您可以通过实体名称等进一步过滤。 在您的案例中,重要的列将是:

[业务规则名称] [业务规则描述] [业务规则\规则条件文本] [BusinessRule_RuleActionText] 注意:我认为,在您的场景中,挑战在于实体的订阅视图没有失败的确切业务规则的ID。所以我不确定如何将这两个失败的行->业务规则列表联系在一起。还要记住,每行可能有多个失败的业务规则

2.使用视图viw_系统用户验证 这是一个具有所有失败的业务规则+行信息的历史列表的视图。您可以通过以下方式使用视图:

选择 不同的验证发布ID、版本ID、版本名称、模型ID、模型名称、实体ID、实体名称、层次结构ID、层次结构名称、成员ID、成员代码、成员类型ID、成员类型、条件文本、操作文本、业务规则ID、业务规则名称、优先级、创建日期、通知状态ID、通知状态 来自[MDM].[MDM].[viw_系统用户验证] 其中-castdatecreateasdate=castgetdateasdate和 ModelName='YourModelName' -和EntityName中的“Entity_1”和“Entity_2”-使用它来筛选特定的实体 在这里,使用列Model\u ID、Entity\u ID和Member\u ID/MemberCode来标识失败的特定模型、实体和行

列BusinessRuleName、ConditionText和ActionText将为用户提供有关失败的业务规则的其他信息

注:

使用此视图的一个问题是,即使用户在第二天解决了故障条件,该视图仍会显示在某个日期验证失败。通过列DateCreated。 还请注意,如果同一行上的多个业务规则验证失败,则同一失败数据行将在此处多次出现。将出现不同的BusinessRuleID/名称等。请注意。 同样,如果同一行在不同的时间再次失败,那么它可能会出现多次。为了解决这个问题,如果您的最终报告可以这样做,请在DateCreated列上添加WHERE子句,这样您就只能看到今天失败的任何行。注释掉的代码行执行相同的操作。如果您不能使用它,只需确保数据行是不同的。但是,如果您这样做,请记住,如果某个内容昨天失败,并且仍然处于失败状态,那么它可能不会显示。 我的建议是使用稍微修改过的解决方案2:

从订阅视图中获取失败行的列表数据行的验证状态实际上仍然是“失败的”,然后加入viw_SYSTEM_USER_VALIDATION,确保您仅为同一数据行和业务规则选择具有MAXDateCreated值的行

祝你好运,如果你在解决这个问题的过程中发现了什么,一定要在这里与我们大家分享你的学习


最后,如果您觉得这很有用,请记住将其标记为答案:

您好,谢谢您的输入。我成功地查询了我的业务规则,但第二次查询的结果:system\u user\u validation为空?是否因为数据临时存储在此视图中?我的存储过程包含结果。那么,我将如何从当前为空的视图中查询ValidationSue的结果,或者将存储过程中临时表的结果保存到新表中。