SharePoint Designer で作成したワークフローを別サイトにコピーする

通常のリスト(またはライブラリ)に SharePoint Designer で作成したワークフローを加えたコンテンツの場合、通常の方法では、そのコンテンツを他サイトに移動、もしくはコピーすることは出来ません。

リストやサイトのテンプレート化では、ワークフローを含むことが出来ませんし、そもそも、SharePoint Designer のワークフローは、内部にリスト情報を GUID で持っているため、GUID の違うリストでは動きません。

このエントリでは、サイトに作成したリストとワークフローを、別のサイトにコピーする方法をご紹介します。

特定のリストとワークフローをセットでエクスポート/インポートするには、SharePoint Designer の機能である「個人webパッケージ」を利用するのが最も手軽です。

Designer でサイトを開き、[ファイル]→[エクスポート]→[個人webパッケージ] を実行します。

Web パッケージのエクスポートダイアログが表示されます。

この画面で、パッケージ化したいコンテンツを[追加]するだけです。
ただし、注意点として、リスト/ライブラリ単位で追加した場合、ライブラリは登録されている全てのファイルもパッケージに含まれますが、リストの場合、アイテムはパッケージに含まれません。
つまり、リストアイテムをコピーする目的では「個人webパッケージ」パッケージは利用できません。

また、ライブラリで、ファイルを含まずに設計情報だけをパッケージ化したい場合は、配下の Form を指定します。

子要素が追加されると、その要素が必要とする親要素は自動的に追加されます。
追加した要素の中から、選択的に[削除]することも可能です。
これを応用すれば、特定のビュー設計のみをエクスポートすることも出来ます。

必要なリストとワークフローを追加したら、[OK] をクリック。
保存先を指定すると、エクスポートが開始されます。
出力ファイルの拡張子は .fwp です。

保存に成功したら、次はインポートです。
Designer でインポート先のサイトを開きます。
[ファイル]→[インポート]→[個人用webパッケージ]を実行します。
出力した .fpw ファイルを指定して [開く]。

[インポート] をクリックするとインポートが始まります。

なお、もしインポート先のサイトに既に同じ URL のコンテンツが存在した場合、インポートを開始してすぐに次のダイアログが表示されます。

[OK] すると、既存コンテンツの URL が自動的に変更されます。
URL は Designer を使えば後から変更できますので、あまり神経質になる必要はないでしょう。

インポート(展開)に成功したら、インポートしたリストをワークフローを確認します。

これでコンテンツのインポートは完了です。
しかし、この段階では、ワークフローはリストとの紐付け、および列指定、ワークフロー参照(つまり設計全般)が壊れてしまっているため、動作しません。またリストもワークフローを認識していません。
以下の手順で、ワークフローの設定ファイルを編集する必要があります。

手順自体は、前回のエントリ「SharePoint Designner で作成したワークフローをサイト内の別リストにコピーする」と同様ですので、詳細は省略します。

1.リストの GUID を取得する。
2.エクスポート元のリストの GUID を取得する。
3.ワークフローの構成ファイル hogehoge.xoml.wfconfig.xml を編集して、元リストの GUID を新しいリストの GUID に置換。
4.同様に、hogehoge.xoml を編集して GUID を置換。
5.ワークフローを編集して [完了] する

ただし、この方法では、前述のとおり、リストアイテムはコピーできません。
また、ファイルについても「新規作成」扱いになるため、更新日時や更新者は全てインポートを実行した時刻、ユーザになってしまいます。
同様に、セキュリティ設定も引き継がれません。
あくまで、設計のコピー機能、という位置づけですね。

なお、stsadm.exe によるサイト単位のエクスポート/インポートなら、これらの情報を保持できます。
しかし、stsadm.exe を利用した場合でも、ワークフローの設定が「壊れて」しまうのは同じですので、上記と同様、設定ファイルの編集が必要になります。

SharePoint Designner で作成したワークフローをサイト内の別リストにコピーする


Author

中村 和彦(シンプレッソ・コンサルティング株式会社 代表)が「ユーザ視点の SharePoint 情報」を発信します。元大手製造業 SharePoint 運用担当。現SharePoint コンサルタント。お仕事のお問い合わせはこちらまでお願いします。当ブログにおける発信内容は個人に帰属し所属組織の公式発信/見解ではありません。
FB : 中村 和彦
blog: Be・Better!
MS MVP SharePoint 2009/10-2011/9
MS MVP Office 365 2012/10-2014/9