1

[短いリマインダー:英語は私の母国語ではありません:)]

こんにちは、私はこの問題を数日間抱えています(そしてそれは私を真剣に怒らせ始めます)。

タイトルにあるように、私の問題は、ワークフロー内で(作成前の)KpiListItemの「更新ルール」パラメーターをプログラムで変更する必要があることです。アイテム自体や何かにアクセスすることは問題ではありませんが、パラメータにアクセスする手段が見つかりません。KpiFactory(ソース)を使用してアクセスするための可能な解決策(チュートリアル)を見つけましたが、この例は、「GetKpiData」を呼び出そうとする行のコードにすでに詰まっています-関数:(空のために例外を与えますobject-array ...ですが、ネット上の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はアクセスしたいインジケーターです)

とにかく、私は、プロパティが到達可能であるかどうかをテストするためだけにチュートリアルに従いました。これが機能する場合、最終的にはプロパティを読み取るだけでなく変更したいので、半分のステップで済みます。

誰かが私の特定の問題の解決策を持っていることを願っています。それは本当に私に頭痛を与えます。(部分的な回答でも役立つ場合があります。)

よろしくお願いいたします。MarkusSchwalbe

4

1 に答える 1

0

12.0.0.0質問にSharepoint 2010関連のタグを付けましたが、含めたコードでは、Microsoft.SharePoint.Portal DLLのバージョンを読み込もうとしています。入力ミスか、それが問題である可能性があります (つまり、SP2010 を使用している場合は、コードでDLLの14.0.0.0バージョンをロードする必要があります。Microsoft.SharePoint.Portal

于 2011-01-10T12:06:38.127 に答える