私は、ワークフローのプログラミングとSPDでの展開から次のことを学びました。
1.ワークフローコールアウトに必要なすべてのフィールドを渡すことに頼らないでください。賢明と思われるものを定義します。ただし、SPListアイテムにアクセスすると、内部からオブジェクトモデルを操作できますインターフェイスを繰り返し変更したり再デプロイしなくてもワークフローを実行できます。
つまり、あなたの.ACTIONSファイルでこれらの3つのことを定義し、あなたが展開する際に明示的に渡すことを忘れているかもしれないものは何でもアクセスするように設定しているワークフロー
public static DependencyProperty __ContextProperty = DependencyProperty.Register("__Context", typeof(WorkflowContext), typeof(YourWorkflowClass));
public static DependencyProperty __ListIdProperty = DependencyProperty.Register("__ListId", typeof(string), typeof(YourWorkflowClass));
public static DependencyProperty __ListItemProperty = DependencyProperty.Register("__ListItem", typeof(int), typeof(YourWorkflowClass));
にそれらを通過した後。
2.コンテキストを直接使用して、目的のSharepointアイテムのインスタンスを作成しているときに、ワークフローを呼び出す人の権限を知らずに渡すことがあります。すなわち、これに代えて、この
SPWeb tmpweb = __Context.Web;
SPSite site = new SPSite(tmpweb.Url);
SPWeb web = site.OpenWeb();
の操作を行います。
SPWeb web = __Context.Web;
3.Debuggingは、あなたは、Visual Studioは、SharePointと同じボックスにインストールされている発生しない場合に設定することは困難です。