Sharepoint 2010 以编程方式更改SharePoint 2010中KPI的“更新规则”参数

Sharepoint 2010 以编程方式更改SharePoint 2010中KPI的“更新规则”参数,sharepoint-2010,indicator,splistitem,kpi,Sharepoint 2010,Indicator,Splistitem,Kpi,[简短提示:英语不是我的母语:] 你好,我有这个问题已经好几天了,它开始让我发疯 正如标题所说,我的问题是我需要在工作流中以编程方式更改在创建KpiListItem之前的更新规则参数。 访问项目本身或任何东西都不是问题,但我找不到访问参数的方法。 我找到了一个可能的解决方案教程,可以使用KpiFactory访问它,但是在我试图调用GetKpiData函数的代码行中,这个示例已经出现了问题:由于emty对象数组,给了我一个异常…,但是不可能在网上获得关于GetKpiData函数参数的一些信息,SD

[简短提示:英语不是我的母语:]

你好,我有这个问题已经好几天了,它开始让我发疯

正如标题所说,我的问题是我需要在工作流中以编程方式更改在创建KpiListItem之前的更新规则参数。 访问项目本身或任何东西都不是问题,但我找不到访问参数的方法。 我找到了一个可能的解决方案教程,可以使用KpiFactory访问它,但是在我试图调用GetKpiData函数的代码行中,这个示例已经出现了问题:由于emty对象数组,给了我一个异常…,但是不可能在网上获得关于GetKpiData函数参数的一些信息,SDK或者我查过的一些书

SPListItem item = newWeb.Lists[nameIndicatorList].Items[0];
Assembly asm = System.Reflection.Assembly.Load("Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c");
Type t = asm.GetType("Microsoft.SharePoint.Portal.WebControls.KpiFactory");
MethodInfo mi = t.GetMethod("GetKpi", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static, null, new Type[] { item.GetType() }, null);
object kpi = mi.Invoke(null, new object[] { item });
mi = kpi.GetType().GetMethod("GetKpiData", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[] { }, null);
object kpidata = mi.Invoke(kpi, new object[] { });
item对象是我要访问的指示器

无论如何,我遵循教程只是为了测试属性是否可以访问。如果这样做有效,那只会向前迈进半步,因为最终我想要更改属性,而不仅仅是阅读它

我希望有人能解决我的具体问题。这真让我头疼。 即使是部分的anwser也会有所帮助

真诚地,
Markus Schwalbe

您将该问题标记为与Sharepoint 2010相关,但在包含的代码中,您尝试加载12.0.0.0版本的Microsoft.Sharepoint.Portal DLL。可能是输入错误,也可能是问题所在,这意味着如果您使用SP2010,您应该让代码加载14.0.0.0版本的Microsoft.SharePoint.Portal DLL。

谢谢,我一定是忽略了它。。。但不幸的是,这也不是问题的根源。我在最后一行仍然得到了一个异常,可能是因为Invoke方法的第二个参数,尽管教程说这样很好。。。。