none
VS2008からSharePointにWFをデプロイすると既に設定済みのWFが使用できなくなる。 RRS feed

  • 質問

  • はじめまして。

     

    Visual Studio2008で作成したSharePoint Sequential Workflowの

    デプロイについて質問させていただきます。

     

    【現象】

    ①初回WF作成後DeployメニューよりSharePointサイトにデプロイを行います。

    ②デプロイしたWFをフォームライブラリのWFに登録します。

    ③WFを修正し、再度デプロイを行います。

    すると、登録済みのワークフローのステータスが No New Instance になっていました。

     

    この状態ではワークフローは動作しないため、

    ワークフローのステータスを手動で Allow にすると動作しました。

     

    【質問】

    WFをデプロイする時にステータスを Allow に保ったままにする方法をご教授ください。

     

    現状ではWFを修正するたびに、

    そのWFが登録してある全てのライブラリの設定画面からWFのステータス変更を行わなければいけません。

     

    以上、ご回答よろしくお願いいたします。

     

    2007年12月19日 1:00

回答

  • ご回答ありがとうございます。

     

    ご指摘の点は、よくご質問を受けるポイントです。特に Visual Studio 2008 の場合には Visual Studio 2008 上での関連付けとなりますので、開発時に関連付けしていたもの(WebサイトのURL, ドキュメントライブラリなど)と、テスト環境や本番環境に展開する場合とでは異なってしまい、記載されております通り、バッチでの展開をして頂くことになります。(本件については、申し訳ございません、Visual Studio 上からの SharePoint 専用の発行機能や、Team System でのSharePoint専用の配布機能等は用意されておりません。)

     

    MOSS 開発の環境構築における1つのアプローチですが、実際の開発ではカスタムポリシーやカスタムルータなど細部のデプロイモジュールの開発が発生したり、多数のユーザでの協調開発と統合デプロイが発生したり、製品開発などの場合には複数名で構築されたモジュール類をまとめてソリューションパッケージ(.wsp)を作るといった作業も発生する場合等々が考えられますので、作業の自動化に際しては、お手数ですが、作成したモジュール類をテスト環境・本番環境などに展開するための専用のバッチを構築していただくことをおすすめ致します。

     

    2007年12月26日 3:52

すべての返信

  • こんにちは。松崎と申します。

     

    本件ですが、RTM 版をお使いでしょうか?

    以前 ブログ でも記載させて頂いたのですが、Beta 版では、恒常的にこの現象が発生しますがRTM 版では修正されていると思われます。

     

    VS 2005 (+ SharePoint SDK) の頃もそうでしたが、deactivate や uninstall, バージョン などの関係でこの現象が発生することはありますので、RTM でもこの現象が発生した際は、確実な deactivate, uninstall, 実行中のインスタンスの完了等を実施してから、再度インストール(及びアクティベーション)をやりなおしてください。 (これは、Beta 版のときのように、恒常的に発生するものではございません)

    2007年12月21日 5:43
  • こんにちは。

     

    早速の回答ありがとうございます。

    VSのバージョンですが、RTM版を使用しております。

     

    VSのデプロイメニューでは一連の作業を行ってくれないということでしょうか?

     

    手動でSTSADM.EXEを使用してdeactivate、uninstall、再度インストール、アクティベーション

    をやり直してみましたが、同じ結果(No New Instances)になってしまいました。

     

     

     

    2007年12月25日 2:07
  • ご回答ありがとうございます。

    本来は VS2008 の[配置]の機能で一連の作業を行ってくれるはずですので、おそらく、ワークフローそのものや、環境等が原因で発生しているものと思われます。

     

    ワークフローか環境か、などの切り分けのため、1つ教えて頂けないでしょうか。(既に確認済みでしたら結果教えて頂ければ結構です。)

     

    本現象は、どのワークフローでも常に発生するのでしょうか?

    例えば、当方が記載した http://blogs.msdn.com/tsmatsuz/archive/2007/05/31/orcas-vsto-sharepoint.aspx などに従って新規に(フォームなども使用しない)簡単なワークフローを作成しても、同じ現象が発生してしまうのでしょうか。

     

    もし、他のワークフロー(新規のワークフロー)の場合には発生しないということであれば、ワークフローそのものが原因と思われます。

    さまざまな要因が考えられますので、以下にポイントと考え方を記載しておきます。

    • まずこの仕組み(No New Instances という機能)の意味ですが、ワークフローのバージョンアップなどで使用されるものです。
      ワークフローをバージョンアップしてインストールした際に、以前のバージョンはそのまま稼動させ、新しいインスタンス開始時に新しいバージョンのワークフローを実行したい場合に使われます。
    • ですので、まずはバージョン廻りをご確認ください。
      ワークフローフィーチャーそのもののバージョンは feature.xml に記載されており、ワークフローアセンブリのバージョンはワークフローマニフェスト(通常は workflow.xml) とアセンブリのバージョン記載箇所(C#であればAssemblyInfo.cs)に記載されています(プロジェクトのプロパティからでも表示できます)。
      他に、フィーチャーのID(feature.xml)やワークフローのID(workflow.xml)を勝手にコピーしてしまった場合なども有り得ます(同じフィーチャーの別バージョンとして扱われますので)。
    • 上記で原因が不明の場合は、以前記載させて頂きましたとおり、いったん「確実な」削除を実施してから再インストールをおこなってみてください。
      ドキュメントライブラリに関連付いたワークフローも手動で削除し(過去のワークフロー設定が残っていると以下の理由で何度デプロイしてもまたディアクティベイトされます)、アセンブリもGACから削除してください。過去にドキュメントライブラリに設定したものがそのまま残って使われている、などの可能性がありますので。
    • また、Visual Studio 2008 のデプロイ機能では、内部で、いったんドキュメントライブラリの関連付けの削除と、ワークフローのディアクティベイト、フィーチャーのアンインストールをおこなって、再デプロイをしています。
      よって、例えば、いったんドキュメントライブラリAに設定してから、同じワークフローをドキュメントライブラリBに設定しなおして再度デプロイをすると、Aのライブラリ上では「No New Instances」に設定されます (A側では削除されずにワークフローだけが消えてしまうので、内部で「No New Instances」に自動設定されます)。
      同じ理由で、例えば、Visual Studio からでなく SharePoint 上で自身でドキュメントライブラリと関連付けをおこなった場合でも、再デプロイで「No New Instances」に設定されると思われます。

    また、上記で、もし同様の現象が常に発生するのであれば環境の問題である可能性があります。

    例えば当方の環境では、Windows Server 2003 R2 日本語, MOSS 2007 SP1 日本語 (LangPack適用済), Visual Studio 2008 日本語 (90日トライアル) ですが、この辺りの組み合わせで発生している可能性は否定できません(このようなエラー報告は今のところございせんが。例えば、上記で「No New Instances」と書かれているということは英語版をお使いですね。日本語環境の場合、「新しいインスタンスの開始を許可しない」と表示されますので、この辺りの言語の組み合わせも考えられなくもありません。)

    この場合、サブスクリプションなどに入っているなどサポートの契約に入っている必要がありますが、弊社サポートをご利用頂き、詳細の環境をお伝えして頂くほうが良いと思われます。(当フォーラムでもたまたままったく同じ環境、組み合わせの方が居られれば良いですが、、、)

    2007年12月25日 4:55
  • こんにちは。

     

    回答ありがとうございました。

     

    SharePoint 上でWFの関連づけを行っていたものが[No New Instances]となっており、

    VSで指定したライブラリに設定してあるWFは[Allow]の状態がキープできました。

     

    ただ、プロジェクトワークスペースの中で使用するようなWFを作成する場合、

    WF作成時にはライブラリを特定することはできません。

     

    このような場合は、以前VS2005時代にあったバッチファイルを変更して

    対応するしかないのでしょうか?

     

    なにか効率の良い方法がありましたら、ご教授お願いいたします。

     

    以上

    2007年12月26日 2:38
  • ご回答ありがとうございます。

     

    ご指摘の点は、よくご質問を受けるポイントです。特に Visual Studio 2008 の場合には Visual Studio 2008 上での関連付けとなりますので、開発時に関連付けしていたもの(WebサイトのURL, ドキュメントライブラリなど)と、テスト環境や本番環境に展開する場合とでは異なってしまい、記載されております通り、バッチでの展開をして頂くことになります。(本件については、申し訳ございません、Visual Studio 上からの SharePoint 専用の発行機能や、Team System でのSharePoint専用の配布機能等は用意されておりません。)

     

    MOSS 開発の環境構築における1つのアプローチですが、実際の開発ではカスタムポリシーやカスタムルータなど細部のデプロイモジュールの開発が発生したり、多数のユーザでの協調開発と統合デプロイが発生したり、製品開発などの場合には複数名で構築されたモジュール類をまとめてソリューションパッケージ(.wsp)を作るといった作業も発生する場合等々が考えられますので、作業の自動化に際しては、お手数ですが、作成したモジュール類をテスト環境・本番環境などに展開するための専用のバッチを構築していただくことをおすすめ致します。

     

    2007年12月26日 3:52
  • ご回答ありがとうございます。

     

    VS2005時代に自動生成されたバッチを基に

    デプロイ用の専用バッチを作成し対応したいと思います。

     

    2007年12月26日 8:24