(Part 1) SharePoint Designer のカスタムアクティビティの開発で workflowProperties と同等の変数を使うには


※ 以下、Tech ED T-405 セッションに関するフォローアップ記事 Part 1です。
尚、ここに記載する方法は、マニュアルに記載された正式な手段ではありませんのでご注意ください

  1. SharePoint Designer のカスタムアクティビティの開発で workflowProperties と同等の変数を使うには 
  2. SharePoint ワークフローで Modification Form (修正フォーム) を開発する際のいくつかのポイント
  3. Replicator を使いこなす (実行時にワークフローの流れを変える)
  4. SharePoint ワークフローにおけるカスタムなワークフローステータスの設定
  5. SharePoint ワークフロー : 上級者のための IListItemService の活用
  6. SharePoint の Workflow 用 Web Service を使ってシステム連携をおこなう

環境:
Microsoft Office SharePoint Server 2007
SharePoint Designer 2007
Visual Studio 2005 (及び Workflow 用の extensions)

こんにちは。

Tech ED で、SharePoint Designer 用のカスタムアクティビティにおける __ (アンダーバー 2 つ) ではじまる隠しプロパティ (SPD が自動で値を渡してくれるプロパティ) についてご紹介しましたが、セッションで型と名前が思い出せなかった「workflowProperties と同等のプロパティ」について、以下、記載します。

作成するカスタムアクティビティの中で、プロパティを SPWorkflowActivationProperties 型で以下の通り宣言しておくことで利用可能です。

public partial class Test : Activity
{
    public Test()
    {
        InitializeComponent();
    }

    public static DependencyProperty __ActivationPropertiesProperty = DependencyProperty.Register("__ActivationProperties", typeof(Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties), typeof(Test));
    [ValidationOption(ValidationOption.Required)]
    public Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties __ActivationProperties
    {
        get
        {
            return (Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties)base.GetValue(__ActivationPropertiesProperty);
        }
        set
        {
            base.SetValue(__ActivationPropertiesProperty, value);
        }
    }

    protected override ActivityExecutionStatus Execute(ActivityExecutionContext provider)
    {
        // any custom process ...

        return ActivityExecutionStatus.Closed;
    }
}

SharePoint Designer 用の .ACTIONS ファイルは以下になります。

<Action Name="Test GetInitParams"
  ClassName="MyActivities.Test"
  Assembly="MyActivities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=07de7bd45da6740e"
  AppliesTo="all"
  Category="コア アクション">
  <RuleDesigner Sentence="属性取得をテストします! (パラメータは何もありません)">
   </RuleDesigner>
  <Parameters>
        <Parameter Name="__ActivationProperties" Type="Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties" Direction="In" />
  </Parameters>
</Action>

デバッグは、いつものように w3wp.exe へのアタッチでおこなうことができます。(あと、SPD 用のアクティビティ開発ではキャッシュのクリアもご注意ください。>> こちら の追加情報のリンクです)

尚、上述しましたが (セッションでもご説明しましたが)、この仕組みは、SDK ドキュメントやマニュアル等に記載される正規の方法ではありません (マイクロソフト製品の内部で使用されている仕組みです)。
乱用を避け、プロパティは、可能な限りユーザ (SPD の利用者) に選択をしてもらうように構築してください。(ドキュメント上に記載のないものは、将来のバージョンアップなどに際し、通知なく、廃止、機能変更されることもありますのでご注意ください。)

 

Comments (1)

  1. こんにちは。 Tech ED 「T4-405 : Microsoft SharePoint Products and Technologies におけるワークフロー : 開発者向け詳述」 にご参加いただいた皆様、申し訳ございませんでした。もりだくさんすぎて、結局、予定していたデモの多くを残す結果となってしまいました。

Skip to main content