SharePoint Designer のタスク フォームを新しいタスク アクションのために編集する方法

原文の記事の投稿日: 2012 年 9 月 14 日 (金曜日)

SharePoint Designer ユーザーの皆さん、こんにちは。

私は Chong Youn (John) Choe、SharePoint Designer チームの PM です。新しい問題について記事を投稿できてうれしく思います。 

背景

承認は、ワークフローを適用できる主要な事柄の 1 つです。参加者の応答を受け取るための 2 つのアクションが SharePoint Designer 2013 に用意されています。SharePoint Designer 2013 では、タスク フォームは特定のコンテンツ タイプに基づいて自動生成されます。このため、ワークフローにおけるタスク フォームのカスタマイズに関心があるユーザーにとっては、コンテンツ タイプのカスタマイズ方法を学ぶ価値があります。 

シナリオ例

Contoso の設計者である Chris Bryant は、昨夜発表した新しい製品モデルの設計に関するフィードバックを求めています。既定の [ タスク プロセスを開始する ] アクションは、選択した参加者の承認か却下を確認する場合にしか対応していません。このため、フィードバック収集のニーズに合うようにタスク フォームを変更することにしました。 

カスタム コンテンツ タイプの作成

まず、カスタム コンテンツ タイプはサイト内で作成する必要があります。SharePoint サーバー側と SharePoint Designer クライアント側のどちらでもかまいません。

サーバー側では次のようにします。 

1. [ サイト コンテンツ タイプ ] ページに移動します。

[ サイトの設定 ] に移動し、[Web デザイナー ギャラリー ] セクションの [ サイト コンテンツ タイプ ] を選択します。[ サイト コンテンツ タイプ ] ページで [ リスト コンテンツ タイプ ] の [ ワークフロー タスク (SharePoint 2013) ] を選択します。

図 1 [サイトの設定] メニュー

画像

2 ワークフロー タスク (SharePoint 2013)

画像

2. [ ワークフロー タスク (SharePoint 2013) ] コンテンツ タイプを継承するサイト コンテンツ タイプを作成します。

[ サイト コンテンツ タイプ ] ページに戻り、[ 作成 ] リンクをクリックします。名前と説明を設定してから、[ 親コンテンツ タイプ ] に [ ワークフロー タスク (SharePoint 2013) ] コンテンツ タイプを設定します。 親コンテンツ タイプを [ ワークフロー タスク (SharePoint 2013) ] コンテンツ タイプとして設定することが、新しいカスタム コンテンツ タイプを使用するために必要な手順です。コンテンツ タイプの [ グループ ] を選択するか新たに指定して、[OK] をクリックします。

3 親コンテンツ タイプの設定

画像

3. 新しいコンテンツ タイプを [ タスク ] リストに追加します。

[設定] をクリックしてから [サイト ホームに戻る] をクリックし、[ サイト コンテンツ ] オプションに移動して、[ タスク ] リストをクリックします。

4 [タスク] ボタン

画像

リボンの [ リスト ] タブを選択し、[ リストの設定 ] をクリックします。下にスクロールして [ コンテンツ タイプ ] セクションを表示し、[ 既存のサイト コンテンツ タイプから追加 ] オプションをクリックして、新たに作成したコンテンツ タイプを追加します。

5 [リストの設定] の [コンテンツ タイプ] セクション

画像 
   

同じ作業を SharePoint Designer ではさらに容易に行うことができます。

1. [ ナビゲーション ] ペインの [ サイト オブジェクト ] タブの下の [ コンテンツ タイプ ] メニューに移動します。サイトのすべてのコンテンツ タイプが表示されています。[ コンテンツ タイプ ] ボタンをクリックして、サイト コンテンツ タイプを作成します。

図 6 SharePoint Designer の [コンテンツ タイプ] メニュー

画像  

2. 新しいコンテンツ タイプの名前を選択して、ソート用のグループを選択します。図 7 に示すように親コンテンツ タイプが [ ワークフロー タスク (SharePoint 2013) ] コンテンツ タイプであることを確認します。

図 7 [コンテンツ タイプを作成する] ダイアログ

画像

3. 次に、コンテンツ タイプを [ タスク ] リストに追加します。これは、コンテンツ タイプを [タスク アクション] で使用するために必要です。再び、[ ナビゲーション ] タブの [ サイト オブジェクト ] の下にある [ リストとライブラリ ] の下の [ タスク ] タブに移動します。その後、新たに作成したコンテンツ タイプを [ タスク ] リストに追加します。

図 8 SharePoint Designer の [コンテンツ タイプの選択]

画像  

[ タスク ] リストにコンテンツ タイプを追加しないと、次の実行時エラーが発生します。

図 9 実行時エラー

画像

いずれかの方法を使用してカスタム コンテンツ タイプを作成すると、ワークフローで使用できるようになります。

[ 結果オプション ] 列は、各参加者が選択できるすべての応答を含む列です。上の手順で作成したカスタム コンテンツ タイプは、[ タスク プロセスの開始 ] アクションおよび [ タスクの割り当て ] アクションに表示されます。 

カスタム コンテンツ タイプの変更

[ タスク プロセスの開始 ] または [ タスクの割り当て ] アクションを追加するときに、新しいコンテンツ タイプがタスク アクションのデザイナー タイプに表示されます。

カスタム コンテンツ タイプが作成されたことと、それをワークフローで使用できることを確認したら、次はフォームのカスタマイズ方法について説明します。

フィードバックを収集するごく単純なワークフローを図 10 に示します。

図 10 フィードバック収集ワークフロー

画像

Contoso の設計者 Chris は、社内の専門家グループからのフィードバックを求めています。そのために、各参加者の意見を入力できるようにフォームを変更する必要があります。

1) [ サイト設定 ] ページに移動し、[Web デザイナー ギャラリー ] の [ サイト コンテンツ タイプ ] を開きます。

2) [ リスト コンテンツ タイプ ] の下の [ カスタム コンテンツ タイプ ] をクリックします。

図 11 Contoso コンテンツ タイプ

画像

この時点で、タスク フォームの外見は図 11 の既定のタスク フォームと同じです。

既定フォームの多くのフィールドはこのシナリオでは役に立ちません。Chris は、コンテンツ タイプの次のフィールドを変更できます。

図 12 タスク フォームの Contoso コンテンツ タイプ

画像

図 11 の Contoso コンテンツ タイプのすべてのフィールドを 1 つずつ説明して、作成するタスク フォームで必要かどうかを判断します。

1) [タスク名] は必須フィールドです。

2) [開始日] と [期日] は 重要ですが、作成するフォームで必要なフィールドではありません。

3) [担当者] フィールドはこのフォームでは必要ありません。参加者は自分に割り当てられたフォームを編集するためです。

4) [完了率] は意味がありません。通常、フィードバックは 1 回で収集されるためです。

5) [本文] フィールドはフィードバックの収集に使用します。

6) [先行タスク] はここでは必要ありません。

7) [優先度] はフィードバックとは関係ありません。

8) [タスクの状態] はステータスを追跡するための基本フィールドです。

9) [関連するアイテム] はこのフォームでは必要ありません。

10) [タスクの結果] は結果の選択肢です。このケースでは、単純な [送信] オプションのみがフィードバック プロセスを終了するために必要です。

列を設定するためのページはどれも似ています。スクリーンショット例を次に示します。

フィールドを [ 必須 ] と設定した場合は、その列に入力しない限り、タスク フォームを閉じることができません。[ 任意 ] の列は表示されますが、空白にしておくことができます。[ 非表示 ] 設定にするか、[ 削除 ] ボタンで列を削除すると、タスク フォームに表示されません。たとえば、次のスクリーンショットで [ 削除 ] ボタンをクリックすると、[ 担当者 ] フィールドが [Contoso コンテンツ タイプ ] から消去されます。

図 13 コンテンツ タイプの列の変更

画像

Chris は作業を進め、フィードバック専用に Contoso コンテンツ タイプを変更しました。

この結果を図 14 に示します。[ 関連するアイテム ] 列は削除できないため、非表示になっています。

図 14 変更された Contoso コンテンツ タイプ

画像

他に、[ タスクの結果 ] サイト列が、[ ワークフロー タスク (SharePoint 2013) ] コンテンツ タイプで使用されています。[ タスクの結果 ] 列を削除し、[ サイト内の新しい列から追加 ] を使用して [ 結果選択 ] タイプの新しいサイト列を作成することをお勧めします。

図 15 タスク フォーム [Contoso コンテンツ タイプ] の変更

画像

各参加者は、上のフォームに基づくタスクを受け取ったら、[説明] フィールドに評価を書き込み、[ 送信 ] ボタンをクリックしてタスクを完了することができます。[ 開始日 ] などその他の列も非表示にできます。

この後で、Chris が望むようにフィールドの名前を変更することもできます。たとえば、結果のフィールド [ 送信 ] の名前を変更するには、[ 送信 ] 列を選択し、[ サイト内の列の情報 ] の [ 列の編集 ] リンクをクリックします。図 17 に示すように、ここで列名を変更できます。列の新しい名前には、"テスト" のように ASCII 以外の文字も使用できます。

図 16 列の編集

画像

  図 17 サイト内の列の情報

画像 

制限事項

SharePoint Designer 2013 での SharePoint 2013 のワークフローは、関連付けられたコンテンツ タイプを分析してタスク フォームを生成します。InfoPath は SharePoint 2013 ワークフローではサポートされないことに注意してください。つまり、レイアウトを変更する場合、ユーザーが .aspx 形式を直接編集する必要があります。

既に説明した変更方法にかかわらず、[ 保存 ] ボタンと [ キャンセル ] ボタンは SharePoint または SharePoint Designer で変更できません。また、カスタムの結果ボタンを表示するためには、[ タスクの状態 ] タイプと [ タスクの結果 ] タイプの列がコンテンツ タイプに存在する必要があります。ボタンの順序は、コンテンツ タイプに含まれる [ タスクの結果 ] タイプ列の選択肢の順序と一致します。[ タスクの結果 ] タイプ列は、[サイトの設定] の下で [サイト内の列] として定義されます。

図 18 [タスクの結果] タイプ列の [列の追加設定] の例

画像 

サマリー

SharePoint 2013 ワークフローに 2 つの新しいアクションが導入されています。これらのアクションのタスク フォームは、開発者レベルの知識がなくても SharePoint サイトや SharePoint Designer クライアントで変更できます。[ ワークフロー タスク (SharePoint 2013) ] コンテンツ タイプを継承する新しいカスタム コンテンツ タイプを作成し、それを [ タスク ] リストに追加して、ワークフローで新しいコンテンツ タイプを使用します。また、カスタム コンテンツ タイプを必要に応じて変更します。

フォームをさらにカスタマイズするには .aspx 形式を変更して行うことができますが、このブログでは説明しません。

ここで説明した簡単な方法がワークフロー シナリオの実現に役立つことを願っています。

次の投稿でお目にかかりましょう。

Chong Youn (John) Choe

これはローカライズされたブログ投稿です。原文の記事は、「How to manipulate the Task Form with SharePoint Designer for new task actions?」をご覧ください。