学習目的で、Visual Studio 2012 を使用して SharePoint 2013 にいくつかのワークフローを実装しようとしています。私が現在取り組んでいるワークフローは非常に単純で、あるリスト項目を別のリストにコピーすることになっていますが、他の ListId を取得するときに例外が発生します。
これがその方法です。
- まず、 GetCurrentListIdアクティビティを使用して現在のリスト GUID を取得し、それを System.Guid 型の変数に保存します。
- その後、GetCurrentItemGuidアクティビティを使用して現在のアイテム GUID を取得し、それを System.Guid 型の別の変数に保存します。
最後に、CopyItemアクティビティを使用します。このアクティビティには、 ListId、ItemGuid、およびToListIdの3 つのパラメーターが必要です。ListId を取得するアクティビティが見つからないため、ToListIdコンボボックスで必要なリストを選択すると、式エディターに次のように書き込まれます。
System.Guid.Parse("{$ListId:List2;}")
とても簡単ですよね?しかし、ワークフローを実行すると、次の例外が発生します。
Dispatcher で予期しない例外が発生しました: System.Runtime.CallbackException: WorkflowInstance 'b1eb965e-d6e4-47d3-9170-ae2677897947' での OnRequestAbort の呼び出しが例外をスローしました。これは致命的であると考えられています。詳細については、内部例外を参照してください。---> System.AggregateException: 永続化可能なアイドルについて通知する場合は処理する必要があります。---> System.AggregateException: 1 つ以上のエラーが発生しました。---> System.FormatException: インデックス (ゼロ ベース) はゼロ以上で、引数リストのサイズ未満でなければなりません。
なぜその例外がスローされるのかわかりません。また、ワークフロー コンテキストの CurrentList ではないリストの GUID を取得する他の方法も見つかりませんでした。
少し助けてください....