Nintex Workflow で、よく言う承認ルートって出来るの?

皆様こんにちは、インフォシェアの小高です。

Nintexの連載記事Season2です。

今回は承認ルート(決済ルート)について考えてみたいと思います。
非常によく聞く話なのですが、中々難儀な話でもありまして・・・

連載記事(Season2)の目次はこちらから。
連載記事(Season1)の目次はこちらからになります。

———————

ワークフローというキーワードで想像する場合、多くの方は申請書や稟議書を申請して、承認の印としてハンコをもらうイメージがあると思います。(この手の仕組みはワークフローシステムの中ではヒューマンワークフローと呼ばれます。)

こうしたイメージでワークフローの話をする場合、
・複数のステップを経て最終承認される
・各ステップに承認者が存在する
・承認者は1人とは限らない(合議、多数決)
・金額等の条件によって、承認者が変更になることがある
・差し戻し、引き戻しをおこないたい
など、(他にもあります)が話の共通点でして、質問の多くはこのような設定はできるの?となります。

そして恐らく、質問者の方はこんな感じの設定をイメージされているのでは?と思います。
最初の承認者は誰で、次の承認者は誰で、と言った形で設定を行っていくような感じです。
こういうのを、ここでは承認ルート(マスタ)と呼びます。

image
※こちらは弊社でも取り扱っておりますが、NextSetの組織ワークフローの設定画面の1つです。

この承認ルートですが、SharePointの世界で考えた場合、質問者の方がイメージしているような、承認ルートマスタが最初から用意されているわけではありません。

SharePoint&Nintexの世界の場合、こうした仕組みはもちろん実現可能です。ただ、自分で用意する必要があるんですね。

———————————–
これはSharePointのワークフローがヒューマンワークフローに特化してないためです。
SharePointのワークフローは、情報システム間のフローを処理する、いわゆるシステムワークフローとしての機能も併せ持ちます。
こうした話は、以下の記事が詳しいです。
ASCII.jp:アドインで活きるSharePointのワークフロー (1/2)|今さら聞けないSharePoint超入門
http://ascii.jp/elem/000/000/508/508958/

Nintex Workflowは、SharePoitのワークフローをそのまま拡張したような製品となるため、申請承認に特化した機能だけ見ると、上にある承認ルートマスタのような、それのみを設定すれば、そのまま使用できるようなものとは少し事情が異なります。
———————————–

すみません、前置きが長いですね。。。

じゃあ、SharePoint&Nintexでどのような設定をするの?と言う話ですね。
この設定を全部乗せるのはさすがに厳しいので要素を紹介します。

例えば、こんなリストを用意してみます。

image

ワークフローの細かい説明は省きますが、例えば上記の承認ルートを取得してループしながら設定された承認者に承認タスクをアサインしていくようなワークフローを組みます。当然ですが、この設定が絶対解ではありません。別にループすることが唯一の正解じゃないですからね。

image

申請書自体には、起票時に申請書の下部に、以下のような承認ルートを表示してもよいですね。必要なら変更できるような感じです。

image

もちろん、表示しないで、ワークフローの中で承認ルートを判断してもよいと思います。

話がどんどん細かくなりますが、申請書の上部に↓のような、現在のステップを表示したり、採番機能を設けてもよいですよね。

image

多分他にも、色々な要件があると思いますが、重要なのは、承認ルートマスタは自分で設定する必要があるかわり、その他の色々な細かい要望を反映することができますってことです。

こうした考え方は非常によくある話ですので、インフォシェアでも申請承認のよくある例としてテンプレート化しています。
もしご興味があれば、Nintexと合わせてご紹介することもできますので、下記からお問い合わせいただければ!
http://www.infoshare.co.jp/contact.php

ではまた。

Nintex Forms でPDF出力ができる!?

皆様こんにちは、インフォシェアの小高です。

Nintexの連載記事Season2です。
Nintex Formsは、昨年Enterprise Editionがリリースされ、その中の機能の一つにフォームをPDF出力する機能が追加されました。

連載記事(Season2)の目次はこちらから。
ちなみに連載記事(Season1)の目次はこちらからになります。

では、行ってみましょう!

———————

残念ながら、SharePointのリストには、印刷画面をどうこうする機能はありません。
普通にブラウザの印刷機能を使用する形になります。
そして、この状況はNintex Forms であっても同様です。

とは言え、Nintex Formsは使用する場合、承認申請をおこなうさいの申請フォームをデザインするといった目的が明確になっている事が多く、印刷の話になることが少なくないのです。

その場合ですが、Nintx FormsではCSSを適用することが比較的平易にできますので、そちらでの対応を考慮することになります。

例えば、こんな感じです。
フォームの設定の中にカスタムCSSがありますので、ここに直接記載します。
今回は赤枠部分として、通常時には表示、印刷時には非表示と記載しています。

image

この赤枠部分のクラスをコントロールのCSSクラスにセットします。

image

今回セットしたのは、フォームの上部にあるこの部分です。実際はパネルコントロールです。
※パネルコントロールは、複数のコントロールをまとめて1つにすることができるコントロールです。

image

普通に表示すると↓ですが、

image

印刷(プレビュー)次には↓のように枠(パネルコントロールですね)が表示されます。

image

印刷時には必要のないボタンなんかは非表示でもいいですよね。
下は印刷プレビューですが、ボタン(閉じるボタン)を非表示にしてみました。
※本当は画面下部にボタンが存在してるんです。

image

さて肝心のPDF出力機能ですが、フォームのリボンにボタンが存在します。

image

上記のCSSも加味されたPDFがダウンロード可能です。

また、こんなコントロールも追加されました。

image

こちらをフォームにドロップすると、↓のようにページ区切りガイドとして機能する形になります。ここで改ページをすることが可能ですね。

image

もちろん、この機能があれば、印刷がALL OKになるような魔法があるわけではなく、前述したCSSを含めて印刷の考慮をする必要はあります。とは言え、申請時のエビデンスを残すと言う意味でPDFを出力する機能は、よく引き合いになるお話です。

もし、ご興味のある場合は、下記からお問い合わせいただければと思います。http://www.infoshare.co.jp/contact.php

では、また!

Nintex Forms で他のデータソースを使用する

皆様こんにちは、インフォシェアの小高です。

Nintexの連載記事Season2です。
Nintex Formsは、昨年Enterprise Editionがリリースされ、その中の機能の一つにフォームから他データソース(データベース等)を参照する機能が追加されました。

ただ良く考えると、このデータ連携って、他にも色々あるような。。。
ですので、この記事では、Nintex Formsを用いた、他データソースの扱いを整理できればと思います。結構色々あるんですよね。

連載記事(Season2)の目次はこちらから。
ちなみに連載記事(Season1)の目次はこちらからになります。

では、行ってみましょう!

———————

当たり前ですが、Nintex FormsはSharePointのリストフォームをデザイン可能にする製品です。

ですので、「うち、色々マスタデータがあるので、フォームに表示したいんだけど」という、あるあるのお話には、まずSharePointで考えていくこと(Webですよ、データベースは直接見えませんよ)ということが大前提になってきます。

■SharePointリスト

マスタデータをSharepointリストで実装する方法です。
この場合、マスタデータを利用するSharePointリストには、参照型の列を作成します。

当然ですが、この参照型のリストはNintex Formsでも普通に使用できます。

こうやってマスタとなるリストを用意して、、、

image

ShaerPointのリスト側で使用します。

image

あとは、そのままNintex Formsを発行すると下図のように参照列をドロップダウンで表示することが可能です。

image

オプションボタン、チェックボックス、リストなんかの見た目に変更することもできますね。

imageimageimage

■外部データ列の使用

SharePointの機能である、外部データ列を用いる方法です。SQL ServerやWebサービスの値を使用する場合に考慮に入れる形になるかと思います。

image

外部データ列の作成には、上にもある、外部コンテンツタイプを予め作成しておく必要があります。これが結構大変なんですよね。SharePoint DesignerかVisual Studio等で作成することになります。

そうすると、マスターデータがSQL ServerやWebサービスであってもSharePoint越しにデータを取得可能です。

これをNintex Formsで表示すると下図のようになります。SharePoint標準と大差ありません。

image

上の商品列が、外部データ列です。右端のアイコンをクリックすると、、、

↓こんな感じでダイアログが表示されて、データを選択することが可能になります。
どのデータベースのどのテーブルをどのようにクエリするのかは、上述した外部コンテンツタイプの方で定義を行う必要がありますね。

image

今回、改めて設定してみましたが、やっぱり面倒ですこれ。。。

■SQL要求(Request)/Web要求(Request)機能

はい、ようやく登場しました。Ninex Forms Enterprise 版の独自機能です。

見た目は↓こんなコントロールです。

image

ドロップするとこんな風にドロップダウンの形になります。

image

まず、SQLの方ですが、こちらは、データベースの内容をFormsで直接参照可能になります。データはSharePoint経由で取得する形ですね。

設定は以下の画面になります。

image

直接SQL記載可能ですねー 素敵です。
(正直こんなにフィールドを書く必要はないんですけど(笑)

見た目のところも、ドロップダウンやリスト等、参照列と同様の表現が可能です。
↓のようにチェックボックスで表現することも可能ですね。

image

(上のSQLでTOP 5って書いているので、上位5件しか出ていません。)

Secure Store Serviceの設定が必要になるのと、クライアントからSQLやストアドプロシージャを直接指定する必要はあるんですが、外部データに比べてかなり設定の負担が減りますね。ドロップダウンやリストで表示できるのも大きいです。外部データの方は現状不可能ですので。

また、よくあるシナリオですが、カテゴリを選択すると、それに従った商品のみが表示される、のような、いわゆるカスケードされたマスタ表示、そんなのも可能です。ちょっとやってみましょう。

SQL要求を2つ使用します。まずカテゴリの方の設定です。
こんな感じで、カテゴリテーブルをクエリして、値フィールドの方にCategoryIDを指定しておきます。

image

次に商品の方です。こんな感じでSQLにWHERE条件句を加えて、値は上で指定したカテゴリの選択結果を当てています。その為にカテゴリの方の値フィールドはCategoryIDにしたわけですね。(なおTOP 5は消し忘れた感じですので、本来は必要ありません。)

image

実行してみると、こんな感じです。カテゴリに飲み物を指定すると、飲み物だけが商品リストに表示されるようになります。

image

お菓子の時は、商品もお菓子のみが表示されますね。うーむ、便利だ。

image

次にWebの方です。

こちらは、 Rest形式のWebサービスを表示する機能です。
こんな感じの設定になります。値の特定にXPathを用いますので、JSON等で値が返ってくる場合は注意が必要です。

image

その辺HTTPのリクエストヘッダーで指定する場合も、ちゃんと設定が用意されていました!

image

これ、SharePointはRest形式のWebサービスで値を取得することもできますから、SharePointの色々な値をフォームに表示することも考えられますよね。(ユーザープロファイルなんかも行けるんじゃないですかね。未確認ですが。)後は、Dynamics CRM等の別製品の値なんかもかもありますよね。

こちらも、ドロップダウン(↓)、リスト、チェックボックス等、他と同様の表示が可能です。image

 

■これ以上は。。。

これでも対応できない場合になって、ようやくJavaScriptの出番になります。
実際の案件では、色々な要望要求があるので、JavaScriptの出番も少なくありませんが。

そうした、カスタマイズ、上記の外部データ列、Secure Store Service等の設定も弊社で行う事も可能です。もし、ご興味のある場合は、下記からお問い合わせいただければと思います。http://www.infoshare.co.jp/contact.php

この辺の話は、大好きなエリアなので、呼んでいただければ、いくらでもお話しちゃいますよー

では、今回はこのあたりで!