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

时间:2011-01-10 11:11:14

标签: sharepoint-2010 indicator splistitem kpi

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

你好,我现在有几天这个问题了(它开始让我非常生气)。

就像标题所说,我的问题是我需要在工作流程中以编程方式更改(之前创建的)KpiListItem的“更新规则”参数。 访问Item本身或任何东西都不是问题,但我找不到访问参数的方法。 我找到了一个可能的解决方案(教程)来使用KpiFactory(source)访问它,但这个例子已经卡在我尝试调用“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-object是我想要访问的指标)

无论如何,我只是按照教程来测试属性是否可以访问。如果这样做,它只会向前迈出半步,因为最后我想改变属性而不是只读它。

我希望有人能解决我的具体问题。这真让我头疼。 (甚至部分anwser可能会有所帮助。)

此致 Markus Schwalbe

1 个答案:

答案 0 :(得分:0)

您将此问题标记为与Sharepoint 2010相关,但在您包含的代码中,您尝试加载Microsoft {AcronPoint.Portal DLL的12.0.0.0版本。是错字还是可能是问题(意味着如果您使用的是SP2010,则应该让代码加载14.0.0.0 DLL的Microsoft.SharePoint.Portal版本。