"SharePoint Designer " にカテゴリー登録されている31 投稿

SharePoint Designer 2013 ワークフロー "タスクが作成されない"

SharePoint Designer 2013 を使ってワークフローを開発するという流れも、今後は Microsoft Flow へと移り変わっていくものと思いますが、まだ Microsoft Flow を社内で利用させる取り決めをしていないというところも多いと思います。もちろん、まだ本格的に運用に乗せようと思うと、日本語対応が不十分だったりともう少し時間がかかりそうです。ましてや、オンプレミスの SharePointを利用しているとなると、もちろん ゲートウェイを利用すればクラウドのMicrosoft Flow のサービスと連携できますが、諸事情で検証が十分に行えないといったこともあり、まだ SharePoint Designer 2013 を使ったワークフロー開発も残っているわけです。

ということで、今更 SharePoint Designer 2013ワークフローのトラブルシューティングネタではあるのですが、備忘録として記載しておきます。

SharePoint Designer 2013 で "SharePoint 2013 ベース" のワークフローを作成していて、承認フローを作ろうと "タスク プロセスを開始する" アクションなどを使っていたのですがタスクが作られないという現象が発生。

結論からいうと、SharePoint 側の"証明書が切れていた" という落ちでした。。。Workflow Manager 1.0 との接続に SSLを使っていたのですが、うっかり証明書が切れていたわけです。しかし、SharePoint 2013ベースのワークフローは作成でき、発行もでき "タスク作成" 以外が動くので、原因追及に少し時間を要しました。今回はたまたま "タスク作成" のところで躓きましたが、細かく見ていけば他にも影響はあるかもしれません。

ということで、本番環境ではこうしたことはないと思いますが、検証用の環境でなまじ SSL など使って設定していると証明書の更新をうっかり忘れる、ということはありそうですのでご参考まで。

 


SharePoint Designer 2013 と多要素認証

SharePoint Online を利用していてかつ多要素認証 (MFA) l利用している場合は、SharePoint Designer 2013 を使ってワークフロー開発などをするために SharePoint サイトにアクセスすることがあると思いますが、通常のユーザー名とパスワードでは認証が通りません。

MFA を使っている場合は、アプリケーション パスワードを指定する必要があります。アプリケーション パスワードは Outlook 接続に必要だったりしますが、SharePoint Designer 2013 の場合も同様です。

アプリパスワードの取得方法については下記を参照してください。

Office 365 のアプリ パスワードを作成する

2 段階認証を使用する場合に、Office 365 に接続するプログラムのアプリ パスワードを作成する方法について説明します。


SharePoint Designer 2013のダウンロードに関して

SharePoint Designer 2013 は後続バージョンがリリースされないことが決まっていますが、SharePoint 2016 でも引き続き利用できるようになったため延長サポート期間ものび、2026年まで利用できます。

ところで、このツールは無償提供されており、Microsoft のダウンロードセンターからダウンロードできますが、日本語版は公開日が 2012/10/30 となっています。韓国語版や中国語版も確認しましたが同様です。バージョンはいずれも 1.0。

2017-03-22_6-46-19

しかし、English 版は公開日が 2016/10/4 となっている!  何か違いがあるのかしら???

2017-03-22_6-47-14

 

 英語版と日本語版は同居できないため、手軽に違いを確認できないのが悩ましいところです。が、ダウンロードした実行ファイルの[デジタル署名]を確認すると英語版でもタイムスタンプは "2012年10月5日" となっており、中身は同じであるようです。

2017-03-22_9-25-03

ところでSharePoint Designer 2013 を入手してすぐに必要なのが SP1の適用です。原則、Windows Update で最新版には更新され、これが推奨されています。ダウンロードセンターからSP1を直接入手することもできます。

現在のバージョンを確認するには SharePoint Designer 2013 を起動したら、[ファイル]>[アカウント]の順にクリックし、[SharePoint Designer のバージョン情報]ボタンをクリックします。SP1 がインストールされていれば、15.0.4569.1506 以降になっているはずです(KB2817441)。

さて、英語版ですが別マシンを用意して試しにインストールしてみると既定ではバージョンが 15.0.4420.1017 となっており、SP1 は適用されていない状態となっています。結局日本語版と変わらずWindows Update によりアップデートして利用していく必要があるということですね。

2017-03-22_9-30-44 

 


SharePoint Designer 2013 内に表示されるSharePointのバージョン

SharePoint Designer 内に表示される SharePoint のバージョンはあまりあてになりません。

たとえば、SharePoint Online に接続している場合は SharePoint のバージョンは16.0.x.x. 台となるはずですが、手元の日本語版だと 15.0.0.4455 となっていたりします。

2017-03-22_6-49-18

16バージョン以降は認識していないようですね。

ちなみに、SharePoint Online で SharePoint のバージョンを確認したい場合は、次の URL を実行すればわかります。

・https://テナントのホスト名.sharepoint.com/_vti_pvt/service.cnf

 オンプレミスでも同じでサイトのURLの後に "/_vti_pvt/service.cnf " を付けてアクセスすれば表示されます。

バージョンに関しては本ブログの右側リンクに掲載している "お役立ち情報" からそれぞれの Build Number を確認してみてください。


[SP2013] SharePoint Designer 2013 ワークフローの発行時エラーへの対処法(2)

 SharePoint Designer 2013 を使って SharePoint 2010ベースのワークフローを開発しているとき、ワークフロー発行時に次のようなエラーメッセージが表示され、正常に発行できないことがあります。

「ワークフローのコンパイル中にエラーが発生しました。ワークフロー ファイルは保存されましたが、実行することはできません。」

詳細

(0,0)Activity 'ID436' の検証に失敗しました: IfElseActivity には、IfElseBranchActivity という種類の子を少なくとも 1 つ含める必要があります。)

2015-03-26 23-11-52

 一旦こうしたエラーが出ると、これ以降はこのワークフローも含むすべてのワークフロー発行時に次のエラーが表示され発行できなくなってしまうことがあります。

「ワークフローに関連するサーバーで、不明なエラーが発生しました」

2015-03-26 23-15-01

まず、「ワークフローに関連するサーバーで、不明なエラーが発生しました」のエラー発生原因ですが、本来ワークフローが内部的に書き込むフォルダーが、先のエラーにより削除されてしまうことに起因しています。この場合、次の場所に Temp という名前のフォルダ―を作成すると修正できます。

[SharePoint サーバー上]

C:\Users\spfarm\AppData\Local

※上記のうち、spfarm は、発行先となる SharePoint サイトをホストしている IIS のアプリケーション プールID です。環境に応じて読み替えてください。

Workflow Temp

以上の手順でエラーとなっているワークフローは発行できるようになります。

さて、元々のエラーとなっているワークフローの原因ですが、今回のようなエラーが出る場合は、エラーメッセージ通りに条件分岐の書き方に問題がある場合が多いので慌てずにロジックをしっかり見直してみてください。Else ブロックが正しくないなどないかどうか確認します。しかし、それでも原因がよくわからないこともあります。そこで、内部構造を調べてみたところ、SharePoint Designer 上の不具合が発生している場合があるようです。

大体、エラーメッセージに記載されている 'ID436' ですが、これは何の番号でしょうか? そもそも、SharePoint 2010 ベースのワークフローを作成する際には内部的に XOML と呼ばれる XML 形式のファイルが生成されます。実はこのIDはこの XOML ファイル内に記載されている内部IDであり、SharePoint Designer の UI 上には直接でてこないものです。そこで次のような手順で内容を確認してみます。

  1. サイト コレクションの管理者として、SharePoint Designer 2013 を起動し、SharePoint サイトにアクセスする。
  2. ナビゲーションから[すべてのファイル]>[Workflows]の順にクリックする。
    2015-03-26 23-27-07

  3. 問題が起きているワークフローをクリックする。
    2015-03-26 23-28-09
  4. *.xoml ファイルを選択し、リボン メニューから [ファイルのエクスポート]をクリックし、任意の場所に保存する。
    2015-03-26 23-30-58

  5. 保存した *.xoml ファイルをメモ帳などで開く

ファイルを開いて、エラーメッセージに出ていたIDを検索します。

2015-03-26 23-32-26

上記の場合だと次のような XML要素が見つかります。

<IfElseActivity x:Name='ID436'/>

この IfElseActivity というタグは本来は子要素を持つ必要があるのですが、見ての通り子要素がないまま自己完結しています。これがエラーの問題でした。しかし、この内容は SharePoint Designer の表面上では確認できません。

対処するため、今回、このタグは使っていないので削除します。上書き保存をしてから、再び SharePoint Designer 内の元の場所にインポートして上書きします。

最後に発行すると正常に発行できるはずです。

Course-Banner-Workflow