SharePoint Designer 2013 のビジュアル デザイナーを使用してサイト間でワークフローを移動する方法

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

皆さん、こんにちは。画像

私は Sam Chung です。SharePoint Designer の PM をしています。このブログでは、ビジュアル デザイナーのインポート/エクスポート機能で完全に利用できるようになった便利な新しいシナリオについてお話しします。

はじめに

多くの開発者は、ワークフローを広げるという特殊なニーズを経験することがあります。具体的には、サイト間でワークフローを移動する必要がある場合です。理由はさまざまですが、最も一般的な理由は、開発環境、ステージング環境、運用環境の間でワークフローを移動するときです。ただし、どのような理由であれ、サイトからサイトにワークフローを移動しようとするときには、この記事が役に立ちます。

この記事の前に、次の記事をお読みください。

1 つ目は、ビジュアル デザイナーの概要に関する記事です。

https://msdn.microsoft.com/ja-jp/library/jj163272.aspx

この記事で、ビジュアル デザイナーのしくみを理解してください。

2 つ目は、パッケージ機能を使用してリストとワークフローをパッケージ化する方法についての記事です。

https://blogs.technet.com/b/office_jp/archive/2012/09/28/3523061.aspx

これらの記事を読み、ワークフローで参照されているすべてのリストをパッケージ化する方法を理解してください。

ワークフローの作成

ワークフローはどのようなものでもかまいません。移動できるものに関して技術的な制限はありません。ただし、発行や実行時の問題を避けるため、次の点には注意してください。

1. ワークフローで参照されているすべてのオブジェクトがターゲット サイトに存在することを確認します。

a. リストをパッケージする方法については、パッケージの記事をお読みください

2. ソース サイトで使用されているすべてのアクションがターゲット サイトに存在することを確認します。

a. ソース サイトにカスタム アクションがある場合は、ワークフローを移動する前に、カスタム アクションをターゲット サイトに移動する必要があります。

3. プロジェクト ワークフローを PWA サイトから PWA 以外のサイトに移動することはできません。

a. SPD は、プロジェクト ワークフローが PWA 以外のサイトにインポートされていることを検出すると、インポートの間にそれをブロックします。

b. プロジェクト ワークフローには特別なデータが多く含まれるため、PWA サイト間でのみ移動できます。

このブログでは、例としてとても簡単なワークフローを使用します。イベント シナリオに対して Ideas リストを有効にします。これから作成するワークフローは、"Event Ideas" リストに対して使用される簡単なワークフローです。ユーザーは、すべてのイベント アイデアに対して新しいリスト アイテムを入力します。必要な情報をすべて入力したら、ユーザーはレビューの準備ができたことを示します。この時点でワークフローが開始し、特定の承認者にアイデアの承認または拒否を要求します。

次のようなリストを使用します。

画像

このリストは次のような列で構成されます。

· Event Idea

o 1 行の文字列

· Location

o 1 行の文字列 · Cost

o 通貨

· Status

o 選択フィールド

ワークフロー自体は次のようなものです。

画像

ワークフローの処理は次のようになります。

clip_image002[15]

· 最初のステージにいることを履歴に記録します

· Status 列フィールドが "Ready for Review" に設定されているかどうかを確認します

o  設定されていない場合は、"Ready for Review" に設定されるまで待機します

clip_image002[17]

· アイデアをレビューするタスクを割り当てていることを履歴に記録します

· Status 列を "Under Review" に更新します

· タスクを割り当てます

clip_image002[21]

· アイデアが承認された場合はこのステージに移動し、アイデアが承認されたことを履歴に記録します

· Status 列を "Accepted" に設定します

clip_image002[23]

・ アイデアが拒否された場合はこのステージに移動し、アイデアが拒否されたことを履歴に記録します

・ Status 列を "Rejected" に設定します

ワークフローのエクスポート

ワークフローができたので、次にこれをエクスポートします。そのためには、リボンの [Visio にエクスポート] ボタンをクリックします。

画像

注: [Visio にエクスポート] ボタンをクリックすると、最初にワークフローがサーバーに自動的に保存されてから、エクスポート機能が開始されます。これは、エクスポートの時点で、エクスポートされたワークフローとサーバーのワークフローを確実に同期させるためです。

ボタンをクリックすると次のようなダイアログが表示されます。

画像

ファイルを保存する場所を選択し、[保存] ボタンをクリックします。

選択した場所に Visio 図面が保存されます。必要であれば、すぐに Visio 2013 で図面を開くことができます。

注: この例ではビジュアル デザイナーからワークフローをエクスポートしましたが、次の場所からエクスポートすることもできます。

· テキスト ベースのデザイナー

· ワークフロー設定ページ

· ワークフロー ギャラリー

ただし、いずれの場合も、ビジュアル デザイナーを有効にしておく必要があります。また、そのためには、Visio 2013 Professional が SharePoint Designer 2013 と同じコンピューターにインストールされている必要があります。

ワークフローのインポート

ワークフローをエクスポートしたので、次に別の SharePoint 2013 サイトを SharePoint Designer 2013 で開き、ワークフローをインポートします。次の手順で行います。

1. SPD を新しいサイトに接続します

2. ナビゲーション ウィンドウの [ワークフロー] をクリックします

画像

3. [Visio からインポート] の下半分をクリックし、[Visio 2013 の図面をインポート] オプションを選択します

画像

4. 標準の [ファイルを開く] ダイアログが表示されます。エクスポートした図面を選択して開きます

画像

5. [ワークフローの作成] ダイアログが表示されます

a. ワークフローの名前を指定します

b. 必要であれば説明を入力します

c. [ワークフローの種類] が [リスト ワークフロー] でグレー表示になっていることに注意してください。これは、インポートされたワークフローがリスト ワークフローであることを SPD が検出したためです。そのため、正しいワークフローの種類が自動的に選択されています。新しい図面を Visio からインポートした場合は (SPD で処理されていないワークフロー)、このオプションは選択できるようになります。

d. これはリスト ワークフローなので、ワークフローを関連付けるリストを選択するオプションが有効になります。リストを選択します。このオプションは、リスト ワークフローの場合にのみ有効になります。理想的な方法としては、リストもエクスポートしてインポートします。その場合は、前のサイトで使用したものと同じリストを選択するだけです。

e. [OK] をクリックします

画像

6. 前のサイトのときとまったく同じワークフローの図面が表示されます。

a. ワークフローのすべてのロジックが維持されています

b. すべてのアクション プロパティが維持されています

c. すべてのローカル変数が維持されています

7. 続いてワークフローを編集できます。ただし、発行する前に、次のセクションを読んでください。

展開後、発行の前に行う作業

異なるサイトからワークフローをインポートした場合、それをすぐにはっこうすることはできません。すぐに発行してもエラーなしで動作するかもしれませんが、ほぼ間違いなく実行時に障害が発生します。ワークフローをインポートした後は、次の手順を必ず実行または確認してください。

1. ワークフロー設定ページに移動し、タスク リストと履歴リストを更新します

a. 今の時点では、[新しいタスク リスト] および [新しい履歴リスト] と表示されています。ただし、最新の変更のため、ワークフローを発行すると、新しいタスク リストおよび履歴リストは作成されません。そのため、ワークフローは実行時にエラーになります。

画像

b. 選択できるタスク リストおよび履歴リストが既にあるはずです。それを選択します。

注: 新しいタスク リストまたは履歴リストを実際に作成する場合は、最初に別のリストをクリックしてから、[新しいタスク リスト] または [新しい履歴リスト] オプションを再度選択します。これにより、新しいリストの作成を確認するポップアップが表示されます。新しいリストの作成を確認すると、SPD で新しいリストがすぐに作成されます。

2. 参照を修正します

a. VSDX ファイルと一緒にリストを移動しなかった場合は、通常、ワークフローをまったく異なるリストと関連付けます。そのとき、リスト アイテムまたはプロパティを参照していた場合は、修正が必要になることがあります。

画像

b. 元のサイトからリストをパッケージし、ワークフローをインポートする前にそれを新しいサイトに展開すると、これを回避できます。リストをパッケージする方法について詳しくは、「リスト ワークフロー、サイト ワークフロー、および再利用可能なワークフローのパッケージ化、およびパッケージを展開する方法」をご覧ください

3. ワークフローのカスタム アクションのうち、新しいサイトに存在しないものを確認します

a. ワークフローにカスタム アクションがある場合は、そのワークフローをインポートする前に、アクションを新しいサイトに展開してください。

4. プロジェクト ワークフローの場合: ワークフローをインポートする前に、ステージ、フェーズ、PDP、カスタム フィールドを移動します。

a. プロジェクト ワークフローの場合は、移動前に使用していたすべてのプロジェクト オブジェクトを、古いサイトから新しいサイトに移動する必要があります。プロジェクト オブジェクトの移動方法については、プロジェクト ブログを参照してください。

これらの問題に対処した後は、問題なくワークフローを新しいサイトで発行して実行できるはずです。

この記事が皆さんの役に立つことを願っています。遠慮せずにコメントをお送りください。

お読みいただき、ありがとうございました。

Sam

これはローカライズされたブログ投稿です。原文の記事は、「How to use SharePoint Designer 2013's Visual Designer to Move Workflows Between Sites」をご覧ください。