SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Visual Studio 2010によるSharePoint 2010開発の基本

SharePoint 2010のワークフローの作成

Visual Studio 2010によるSharePoint 2010開発の基本(3)

[2]ワークフロー開始フォームを作成する

 ワークフロー開始フォームを追加します。開始フォームを作成することにより、ワークフローの実行時に入力パラメーターを渡すことができます。

 ソリューションエクスプローラーで[Workflow1]を右クリックし、[追加]の[新しい項目]をクリックします。表示された[新しい項目の追加]ダイアログボックスで、[ワークフロー開始フォーム]をクリックし、[名前]は既定のままで[追加]ボタンをクリックします(図8)。

図8 [新しい項目の追加]ダイアログボックス
図8 [新しい項目の追加]ダイアログボックス

 作成されたWorkflowInitiationForm1.aspxには、[ワークフローの開始]ボタンと[キャンセル]ボタンが既に配置されています。さらに、コードビハインドのWorkflowInitiationForm1.aspx.csには、ワークフローを開始するロジックのコードが既に含まれています。

 WorkflowInitiationForm1.aspxに、リスト1のようにTextBoxコントロールを1つ追加し、[ワークフローの開始]ボタンのテキストを変更します。(太字部分)。

リスト1 ワークフロー開始フォームにコントロール追加(WorkflowInitiationForm1.aspx)
<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    <asp:TextBox ID="TaskTitleTextBox" runat="server"></asp:TextBox>
    <asp:Button ID="StartWorkflow" runat="server" OnClick="StartWorkflow_Click" Text="チェックを依頼する" />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <asp:Button ID="Cancel" runat="server" OnClick="Cancel_Click" Text="キャンセル" />
</asp:Content>

 加えて、コードビハインドのWorkflowInitiationForm1.aspx.cs内のGetInitiationDataメソッドを、リスト2のように修正します(太字部分)。

リスト2 ワークフロー開始フォームのコード修正(WorkflowInitiationForm1.aspx.cs)
private string GetInitiationData()
{
    // TODO: ワークフローに渡される開始データを含む文字列を返します。通常、これは XML 形式です。
    return TaskTitleTextBox.Text;
}

 生成されたTODOコメントにもあるように、GetInitiationDataメソッドでは、ワークフロー実行時に渡されるパラメーターを文字列で返します。複数のパラメーターをワークフローに渡したい場合には、パラメーターをXML形式にシリアライズして渡すようにします。この場合、ワークフロー側で、XML形式の文字列をデシリアライズしてパラメーターを復元する必要があります。

[3]ワークフローにLogToHistoryListアクティビティを追加する

 ワークフローにLogToHistoryListアクティビティを追加します。LogToHistoryListアクティビティは、ワークフローの履歴にログを追加します。

 ワークフロー(Workflow1.cs)のデザイン画面を表示します。

 ツールボックスから[SharePointワークフロー]内の[LogToHistoryListActivity]を選択し、デザイン画面上の[onWorkflowActivated1]の下にドロップします(図9)。

図9 LogToHistoryListアクティビティの追加
図9 LogToHistoryListアクティビティの追加

 次に、追加した[logToHistoryListActivity1]を右クリックし[ハンドラーの生成]をクリックすると、logToHistoryListActivity1_MethodInvokingイベントハンドラーが生成されます。このように、WFではMethodInvokingメソッド(イベントハンドラー)を定義することにより、アクティビティ実行時における処理を記述することができます。

 生成されたlogToHistoryListActivity1_MethodInvokingイベントハンドラーに、リスト3のようにコードを追加します(太字部分)。

リスト3 logToHistoryListActivity1_MethodInvokingイベントハンドラーの修正(Workflow1.cs)
private void logToHistoryListActivity1_MethodInvoking(object sender, EventArgs e)
{
    logToHistoryListActivity1.HistoryDescription = workflowProperties.InitiationData;
}

 workflowProperties.InitiationDataプロパティには、手順[2]で作成したワークフロー開始フォームのGetInitiationDataメソッドで返される文字列データが格納されています。

 このデータをlogToHistoryListActivity1オブジェクトのHistoryDescriptionプロパティに設定することにより、ワークフローの履歴に追加するログの説明を設定します。

次のページ

この記事は参考になりましたか?

Visual Studio 2010によるSharePoint 2010開発の基本連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 広瀬 嘉久(株式会社ジェイテックジャパン)(ヒロセ ヨシヒサ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5960 2011/06/10 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー