
インフォシェアブログをご覧の皆様、ごきげんよう!
神田なんですけども。
長らく更新しておりませんでした、Nintex Workflowの連載記事を再開させたいと思いますー。
1か月以上も放置していました。ごめんなさい。_(._.)_
さて、今回はNintex Workflowの「Webサービスの呼び出し」というアクションをご紹介したいと思いまーす。
連載記事(Nintex)の目次はこちらから。
えっと、ちなみに「Webサービスの呼び出し」については、テクニカル・ドキュメントでもご紹介させていただいておりますー。
「Webサービスの呼び出し」アクションは、その名の通りワークフローからWebサービスを呼び出して処理をさせるためのアクションなのですが、SharePoint標準のWebサービスとは別にNintex Workflowが独自に用意しているWebサービスを使用することもできるんですねー。
えー、少し細かい話になってしまうのですが、「Webサービスの呼び出し」アクションで呼び出せるWebサービスは、SOAP Webサービスになります。
REST Webサービスを使いたいときは、「Web リクエスト」というアクションを使いまーす。
で、今回は、その中でも非常に便利なメソッド「StartSiteWorkflow」をご紹介しますねー。
「StartSiteWorkflow」メソッドなのですが、これまた名前の通りサイトワークフローを開始させるためのメソッドです。
Nintex Workflowで作ったサイトワークフローは、スケジュール(日時を指定)実行するか、Nintex Formsで作ったワークフロー開始フォームを使わないと開始できないんですねー。
今回は、サンプルとして以前ご紹介させていただいたNintex Workflowの動画の中から「WordファイルをPDFに一括変換」のシナリオを使って、ご説明させていただきますねー。
[youtube https://www.youtube.com/watch?v=4jpR5xUir0o]
えーっとまず、このシナリオで使っているワークフローが、Nintex Workflowで作成したサイトワークフローなんですね。
このワークフローは、リスト内のすべてのWordファイルをPDFに変換するのですが、下記の図のように、通常であれば夜間にスケジュール実行するのが適切かと思います。(SharePointに負荷をかける処理なので)
しかし、イレギュラーな処理が発生するのが、業務の常、ですよねー。
例えば、臨時対応で「申請承認後にサイトワークフローを実行したい」みたいなケースの場合、申請承認用のリストがあって、承認後にそのリストのワークフローからサイトワークフローを実行するというようなことが、「StartSiteWorkflow」メソッドを使うとできちゃうんですねー。
で、使い方も意外と簡単です。
まずは、全体像を見ていただきたいのですが、
って全体像っていうほどのものでもないんですけど。。。
あのーあえてですよ、今回の焦点は「Webサービスの呼び出し」なので、他のアクションがごちゃごちゃあって、わかりにくくなるとダメだと思って、ブログをご覧になっている皆さんを思ってのことですよ(;・∀・)
さて、シンプルでわかりやすいと思うのですが、まず最初のアクション「臨時対応申請」で、承認者に承認タスクが割り当てられます。
で、承認されると、今回のメインである「Webサービスの呼び出し」の登場です。
下図が、「Webサービスの呼び出し」アクションの設定画面ですー。
今回、使用している設定項目をご説明しますねー。
えっと、ここでのポイントは、ユーザー名の部分ですねー。
Webサービスを呼び出すユーザー名を指定するわけですが、今回はサイトワークフローを実行するWebサービスなので、サイトワークフローを実行するユーザーにもなるんですねー。
Webサービスを呼び出すユーザー = サイトワークフロー実行ユーザー
で、何がポイントかと言いますと、Nintex Workflowで作成したサイトワークフローを実行するには、スケジュール実行をするか、Nintex Formsのワークフロー開始フォームを使うしかないわけですけど、Nintex Formsの開始フォームで実行するといってもワークフローの実行権限がないとエラーになります。
つまり、「Webサービスの呼び出し」アクションを使うと、
サイトワークフローを実行するユーザーを指定できるのです!
なので、「臨時対応申請」のワークフローを実行したユーザーにサイトワークフローを実行する権限がなくても、サイトワークフローを実行できます。
つまりつまり、極端に言うと
「臨時対応申請」は、どのユーザーでもできるのです!
えー今回は、「StartSiteWorkflow」メソッドを使用しましたが、似たようなメソッドで「StartWorkflow」や「StartWorkflowOnListItem」ってのもあります。
こちらも名前の通り、ワークフロー(リスト/ライブラリ)の開始や、指定したアイテムのワークフローの開始ができるメソッドです。
これらのメソッドも今回の例と同じようにワークフローを実行するユーザーを指定することができるので、ワークフローから他のワークフローを実行したいときに、元のワークフローを実行したユーザーに次のワークフローを実行する権限がない場合などにも使えるんですねー。
何かワークフローワークフローって連呼していますね。。。
うーん、便利さが伝わったかなー。
次回は、もう少し早めに更新しますねー。
以上、神田でしたー。