SharePoint リストテンプレートから ワークフローを削除する方法

SharePoint構築Tips : 2012.05.10 Thursday

SharePointリストの移行

SharePointリストテンプレートを使えば リストを保存して、サイト内にも別サイトにも 展開できます。
しかし、リストにワークフローが付加されている場合は リストの保存/展開はできますが 展開後にワークフローが正しく動作しません。

原因は、ワークフローの情報(イベントレシーバー、ワークフロー関連付けなど)が リストテンプレートに含まれいるため、展開後のリストで 「ワークフローがないのに ワークフローの情報はある」という状態になるためです。
この状態で さらにワークフローを付加すると 1ワークフローが動作したときに 複数のイベントレシーバーが動作してしまい、おかしなことになります。

この問題を回避するためには リストテンプレートを保存する前に、 リストに関連付けられたワークフローを削除します。
例えば 検証用のサイトと実運用のサイトがあった場合、以下の手順になります。
1) 検証用のサイト: リスト/ワークフローを作成
2) 検証用のサイト: 動作テスト
3) 検証用のサイト: ワークフローを削除
4) 検証用のサイト: リストテンプレートを保存
5) 実運用のサイト: リストテンプレートを登録
6) 実運用のサイト: リスト/ワークフローを作成
7) 実運用のサイト: 動作テスト

※ワークフローの種類(SharePoint標準/SharePoint Designer/Nintex Workflowなど) により、ワークフローの移行方法は異なります。
ここでは「リストの移行」のお話しに限定しています。


上記の手順では、
せっかく検証用のサイトで動作テストまでしたのに、 検証用のサイトにはワークフローがない状態になります。
また、検証用のサイトと実運用のサイトとで リスト/ワークフローの設定が異なります。
※検証用のサイトで再度、ワークフローを作成すれば 設定は合わせられますが。



SharePointリストテンプレートからワークフローを削除

SharePointフィールド名(内部名)でも説明しましたが、 SharePointリストテンプレート内の manifest.xml にリストの情報が入っています。
manifest.xml内のワークフロー情報を削除すれば...展開後にワークフローが 悪さ しなくなります。

全体の流れは 以下の通りです。
・リストテンプレートを保存
・リストテンプレートから manifest.xml を展開
・manifest.xml からワークフロー情報を削除
・manifest.xml から リストテンプレートを作成
・リストテンプレートを展開

※リストテンプレートの保存、展開は SharePoint標準機能なので 説明は省きます。


リストテンプレートから manifest.xml を展開

以下の手順で manifest.xmlを展開します。
手順 1) リストテンプレートの拡張子を stp から cabに変更
手順 2) エクスプローラ,EXPANDコマンドなどで cabファイルから、「manifest.xml」を展開



ここで リストテンプレート(cabファイル)内に manifest.xml 以外のファイル(例: 50000000.000)があれば それらのファイルも展開しておいてください。


manifest.xml からワークフロー情報を削除

次に、manifest.xmlからワークフロー情報を削除します。
手順 3) manifest.xmlを XMLエディタ、メモ帳などで開く
手順 4) ListTemplate/UserLists/List/MetaDataタグ配下のReceiversタグを削除
手順 5) ListTemplateタグ配下のWorkflowAssociationsタグを削除
手順 6) manifest.xmlを保存


manifest.xml から リストテンプレートを作成

最後に、編集したmanifest.xmlからリストテンプレート(stpファイル)を作成します。
手順 7) MAKECAB.EXE で manifest.xml からリストテンプレートを作成

MAKECABコマンドは Windows標準のCABファイルを作成するコマンドです。コマンドプロンプトで実行します。
「手順 2)」で リストテンプレートに manifest.xml だけの場合と、リストテンプレートにmanifest.xml以外にもファイルがある場合で CABファイルの作成方法(MAKECAB.EXEのパラメータ指定)が異なります。

[manifest.xml だけの場合]
手順 7A-1) 編集したmanifest.xmlと リストテンプレートファイル名を指定します。

手順 7A-2) カレントディレクトリに リストテンプレートができます。

[manifest.xml以外にもファイルがある場合]
手順 7B-1) 「手順 2)」で展開した manifest.xml以外のファイルと、編集したmanifest.xmlを フォルダ(例: D:¥Work)に 格納

手順 7B-2) フォルダ内に ファイル一覧のテキストファイル(例: filelist)を テキストエディタで作成

手順 7B-3) コマンドプロンプトを起動で MAKECAB.EXEを実行

手順 7B-3) カレントディレクトリ作成された 「disk1」フォルダ内の「1.cab」を リストテンプレート(例: DocLib.stp)にリネーム


以上で、ワークフロー情報を削除した リストテンプレートができました。
後は、このリストテンプレートを SharePoint サイトの設定で リストテンプレートギャラリーに登録し、リストを作成してください。

※通常のCABファイルであれば +Lhacaなどのフリーソフトで作成できますが、 SharePointのリストテンプレートの場合、+Lhacaなどのフリーソフトで作成したCABでは (何故かはわかりませんが)リスト展開時にエラーとなります...。



SharePoint Online
Office 365/
SharePoint Online
事始め
Office 365やるってよ |  Office 365市販本(1) |  Office 365市販本(2) |  MSサイトでプランを勉強 |  TechNetでプランを勉強 |  sway, cortana, delve |  E5プラン |  Office Online制限 |  SharePoint 2016 RC |  アーキテクチャ | 
SharePoint Online
Webパーツ
標準 Webパーツ |  スクリプトエディタ |  RSSビューア |  フィルタWebパーツ |  XsltListViewWebPart |  グラフ表示パーツ | 
SharePoint Online
リスト/ライブラリ
標準 リスト/ライブラリ |  アンケート(Survey) |  画像ライブラリ |  ニュースフィード |  日英サイト間でリストデータ移行 |  ライブラリ ドラッグ&ドロップ |  ライブラリ ファイル一覧出力 |  モダン ドキュメントライブラリ |  リスト外観変更 |  Explorer URL |  ディスカッション掲示板 |  注目リンク | 
SharePoint Online
検索機能
検索の対象 |  検索されたくないファイル |  注目サイト | 
SharePoint Online
Notes移行
Notes情報表示 |  Notesデータ移行 | 
SharePoint Online
カスタマイズ
IE11開発者ツール |  Osloとの戦い |  Style動的変更 |  リダイレクトページ |  IEとChrome |  ボタン名の変更 |  フロー Flow |  注目リンク カスタマイズ | 
SharePiont Online
動作仕様
制限値が気になる |  Webページ破損 |  サイトコレクション削除 |  記憶域とサーバーリソース |  プロファイル画像 |  IsDlg効かず |  プレゼンス表示 |  利用状況レポート |  データ容量管理 |  ごみ箱の日数 |  サイトメールボックス |  標準 サイト |  サイドリンクバー |  外部ユーザー共有 |  おすすめ エラー |  直打ちURL |  外観変更エラー |  サイトコレクション機能 |  ユーザープロファイル |  Access app 廃止 | 
Office 365
動作仕様
OneDrive概要 |  OneDrive設定 |  OWAエラー画面 |  新しい Office 365管理センター |  Office 365メッセージ |  OneNote同期/ファイル |  Office 365サイト |  Office 365監査ログ | 

SharePoint概要
SharePointとは? |  アーキテクチャ |  サイトテンプレート | 
リストテンプレート |  Webパーツ |  アクセス権限 |  SharePoint用語集

SharePoint構築Tips
リスト名(URL) |  ライブラリ名(URL) |  フィールド名(内部名) | 
ビュー名(ファイル名) |  リストテンプレート(ワークフロー削除) | 
大きなリストの問題 |  アイテム一覧の列幅 |  機能とWebパーツ | 
フィールドデータ型 |  禁則文字 |  隠しリスト表示 |  管理パス |  サイト内の列 |  サポート期限 |  PDFをブラウザで開く |  URLエンコード・デコード | 
日時の絶対値表示

SharePoint開発Tips
開発の概要 |  開発者ダッシュボード |  MSDN URL |  REST インターフェイス |  ページ パラメータ IsDlg |  ビジュアルアップグレード |  機能(Feature) | 
2010開発者向けの資格 |  2013開発者向けの資格 |  ページ パラメータ contents |  リソースファイル |  リスト/ライブラリGUID |  テーマ | 
トレースログ |  PowerShell文字コード |  SharePoint Framework

search this site.
SharePoint概要
SharePointとは?
アーキテクチャ
サイトテンプレート
リストテンプレート
Webパーツ
アクセス権限
SharePoint用語集


SharePoint構築Tips
リスト名(URL)
ライブラリ名(URL)
フィールド名(内部名)
ビュー名(ファイル名)
リストテンプレート
(ワークフロー削除)

大きなリストの問題
アイテム一覧の列幅
機能とWebパーツ
フィールドデータ型
禁則文字
隠しリスト表示
管理パス
サイト内の列
サポート期限
PDFをブラウザで開く
URLエンコード・デコード
日時の絶対値表示
Explorer URL

SharePoint開発Tips
開発の概要
開発者ダッシュボード
MSDN URL
RESTインターフェイス
ページパラメータ IsDlg
ビジュアルアップグレード
機能(Feature)
2010開発者向けの資格
2013開発者向けの資格
ページパラメータ contents
リソースファイル
リスト/ライブラリGUID
テーマ
トレースログ
PowerShell文字コード
SharePoint Framework

SharePoint情報サイト
SharePoint Developer Center
Support Team Blog
松崎 剛 Blog
SharePoint Developer
SharePoint Maniacs
SharePoint Technical Note
ILLUMINATE JAPAN Blog
SharePoint Factory
新卒管理者の奮闘ブログ
SharePoint Maniacs
AvePoint Japan Community
idea.toString();
SharePoint Issue
Office365/SharePoint



   風水吉凶方位 |  奇門遁甲 |  金運神社 |  金運本 |  気場 |  水族館 |  イルカ |  ペンギン |  クラゲ |  仏像 |  論語 | 
   般若心経 |  日本庭園 |  二十四節気 |  菜根譚 |  城郭
   情報共有(SharePoint) |  OneNote活用 |  サーバー監視 |  イベントログ |  IT資産管理 |  技術TIPS