2

こんにちは:コンテンツタイプで使用される保持ポリシーによってトリガーされる単純なシーケンシャルワークフローを構築しました。ワークフローは、現在のアイテムのメタデータを取得し、それを別のサイトコレクションにあるパージログリストにコピーします。

保持ポリシーが原因でこれをデバッグするのに苦労しているのは、情報管理と有効期限ポリシーの2つのタイマージョブに依存しています。deguggerをw3wpおよびowetimerプロセスに接続しますが、アクティブ化されたワークフローを確実にキャッチしません。

各ファイルのワークフロー履歴リストには、ワークフローが正常に完了したことが示されています。ワークフローの要は、現在のアイテムからデータを収集し、中央リストを更新するコードアクティビティです。プロセスが完了した後、そのリストにはゼロのアイテムが表示されます。それはcodeactivityにあるコードですか?

表示内容を簡素化するために、すべての例外処理を削除しました。

コード

public Workflow1()
{
InitializeComponent();
}

public Guid workflowId = default(System.Guid);
public SPWorkflowActivationProperties workflowProperties = new SPWorkflowActivationProperties();

string purgeLogListPath = @"http://shptserver/sites/sp";
string listPath = @"http://shptserver/sites/sp/Lists/PurgeLog/AllItems.aspx";

private void onWorkflowActivated1_Invoked(object sender, ExternalDataEventArgs e)
{
}

private void codeActivity1_ExecuteCode(object sender, EventArgs e)
{
  SPSecurity.RunWithElevatedPrivileges(delegate()
  {
    using (SPSite site = new SPSite(purgeLogListPath))
    {
       try
       {
         SPWeb web = site.OpenWeb("/");
         SPList list = web.GetListFromUrl(listPath);
         DateTime today = DateTime.Now;

         SPListItem item = list.Items.Add();

         item["Title"] = onWorkflowActivated1.WorkflowProperties.Item.DisplayName;
         item["Encoded Absolute URL"] = onWorkflowActivated1.WorkflowProperties.ItemUrl;
         item["Content Type"] = onWorkflowActivated1.WorkflowProperties.Item.ContentType.Name;
         item["Date Purged"] = today.ToString("MMMM dd yyyy");
         item["DateTime Purged"] = today.ToString("MMMM dd yyyy hh:mm:ss");

         item.Update();
         }
         catch (Exception ex)
         {
         string errorEntry = ex.Message;
         }
         }
         });
     }
    }
4

1 に答える 1

0

質問の内容がよくわかりませんが、デバッグの問題については、次のようにしてみてください: 1) 配置した後、タイマー サービスを再起動する必要があります 2) 中央管理者を介して、タイマー ジョブに移動し、[今すぐ実行] を選択できますジョブをトリガーしてデバッグを開始する

于 2012-11-15T10:55:35.633 に答える