言う承認ルートって出来るの?Nintex2016年10月26日(水)皆様こんにちは、インフォシェアの小高です。Nintexの連載記事Season2です。今回は承認ルート(決済ルート)について考えてみたいと思います。連載記事(Season2)の目次はこちらから。ワークフローというキーワードで想像する場合、多くの方は申請書や稟議書を申請して、承認の印としてハンコをもらうイメージがあると思います。(この手の仕組みはワークフローシステムの中ではヒューマンワークフローと呼ばれます。・複数のステップを経て最終承認される・各ステップに承認者が存在する・承認者は1人とは限らない(合議、多数決)・金額等の条件によって、承認者が変更になることがある・差し戻し、引き戻しをおこないたいなど、(他にもあります)が話の共通点でして、質問の多くはこのような設定はできるの?となります。質問者の方はこんな感じの設定をイメージされているのでは?と思います。最初の承認者は誰で、次の承認者は誰で、と言った形で設定を行っていくような感じです。いうのを、ここでは承認ルート(マスタ)と呼びます。※こちらは弊社でも取り扱っておりますが、NextSetの組織ワークフローの設定画面の1つです。この承認ルートですが、SharePointの世界で考えた場合、質問者の方がイメージしているような、承認ルートマスタが最初から用意されているわけではありません。SharePoint&Nintexの世界の場合、こうした仕組みはもちろん実現可能です。自分で用意する必要があるんですね。-----------------------------------これはSharePointのワークフローがヒューマンワークフローに特化してないためです。SharePointのワークフローは、情報システム間のフローを処理する、いわゆるシステムワークフローとしての機能も併せ持ちます。した話は、以下の記事が詳しいです。Workflowは、SharePoitのワークフローをそのまま拡張したような製品となるため、申請承認に特化した機能だけ見ると、上にある承認ルートマスタのような、それのみを設定すれば、そのまま使用できるようなものとは少し事情が異なります。-----------------------------------すみません、前置きが長いですね。SharePoint&Nintexでどのような設定をするの?と言う話ですね。この設定を全部乗せるのはさすがに厳しいので要素を紹介します。こんなリストを用意してみます。ワークフローの細かい説明は省きますが、例えば上記の承認ルートを取得してループしながら設定された承認者に承認タスクをアサインしていくようなワークフローを組みます。当然ですが、この設定が絶対解ではありません。別にループすることが唯一の正解じゃないですからね。申請書自体には、起票時に申請書の下部に、以下のような承認ルートを表示してもよいですね。必要なら変更できるような感じです。表示しないで、ワークフローの中で承認ルートを判断してもよいと思います。話がどんどん細かくなりますが、申請書の上部に↓のような、現在のステップを表示したり、採番機能を設けてもよいですよね。他にも、色々な要件があると思いますが、重要なのは、承認ルートマスタは自分で設定する必要があるかわり、その他の色々な細かい要望を反映することができますってことです。した考え方は非常によくある話ですので、インフォシェアでも申請承認のよくある例としてテンプレート化しています。ご興味があれば、Nintexと合わせてご紹介することもできますので、下記からお問い合わせいただければ!http://www.infoshare.co.jp/contact.phpではまた。PDF出力ができる!?Nintex2016年10月24日(月)皆様こんにちは、インフォシェアの小高です。Nintexの連載記事Season2です。Editionがリリースされ、その中の機能の一つにフォームをPDF出力する機能が追加されました。連載記事(Season2)の目次はこちらから。ちなみに連載記事(Season1)の目次はこちらからになります。SharePointのリストには、印刷画面をどうこうする機能はありません。普通にブラウザの印刷機能を使用する形になります。Formsは使用する場合、承認申請をおこなうさいの申請フォームをデザインするといった目的が明確になっている事が多く、印刷の話になることが少なくないのです。FormsではCSSを適用することが比較的平易にできますので、そちらでの対応を考慮することになります。フォームの設定の中にカスタムCSSがありますので、ここに直接記載します。今回は赤枠部分として、通常時には表示、印刷時には非表示と記載しています。この赤枠部分のクラスをコントロールのCSSクラスにセットします。今回セットしたのは、フォームの上部にあるこの部分です。実際はパネルコントロールです。※パネルコントロールは、複数のコントロールをまとめて1つにすることができるコントロールです。印刷(プレビュー)次には↓のように枠(パネルコントロールですね)が表示されます。印刷時には必要のないボタンなんかは非表示でもいいですよね。下は印刷プレビューですが、ボタン(閉じるボタン)を非表示にしてみました。※本当は画面下部にボタンが存在してるんです。肝心のPDF出力機能ですが、フォームのリボンにボタンが存在します。上記のCSSも加味されたPDFがダウンロード可能です。こんなコントロールも追加されました。こちらをフォームにドロップすると、↓のようにページ区切りガイドとして機能する形になります。ここで改ページをすることが可能ですね。OKになるような魔法があるわけではなく、前述したCSSを含めて印刷の考慮をする必要はあります。言え、申請時のエビデンスを残すと言う意味でPDFを出力する機能は、よく引き合いになるお話です。ご興味のある場合は、下記からお問い合わせいただければと思います。他のデータソースを使用するNintex2016年10月21日(金)皆様こんにちは、インフォシェアの小高です。Nintexの連載記事Season2です。Editionがリリースされ、その中の機能の一つにフォームから他データソース(データベース等)を参照する機能が追加されました。良く考えると、このデータ連携って、他にも色々あるような。Formsを用いた、他データソースの扱いを整理できればと思います。連載記事(Season2)の目次はこちらから。ちなみに連載記事(Season1)の目次はこちらからになります。FormsはSharePointのリストフォームをデザイン可能にする製品です。「うち、色々マスタデータがあるので、フォームに表示したいんだけど」という、あるあるのお話には、まずSharePointで考えていくこと(Webですよ、データベースは直接見えませんよ)ということが大前提になってきます。■SharePointリストマスタデータをSharepointリストで実装する方法です。この場合、マスタデータを利用するSharePointリストには、参照型の列を作成します。Formsでも普通に使用できます。やってマスタとなるリストを用意して、、、ShaerPointのリスト側で使用します。Formsを発行すると下図のように参照列をドロップダウンで表示することが可能です。オプションボタン、チェックボックス、リストなんかの見た目に変更することもできますね。■外部データ列の使用SharePointの機能である、外部データ列を用いる方法です。ServerやWebサービスの値を使用する場合に考慮に入れる形になるかと思います。外部データ列の作成には、上にもある、外部コンテンツタイプを予め作成しておく必要があります。これが結構大変なんですよね。Studio等で作成することになります。ServerやWebサービスであってもSharePoint越しにデータを取得可能です。Formsで表示すると下図のようになります。SharePoint標準と大差ありません。上の商品列が、外部データ列です。↓こんな感じでダイアログが表示されて、データを選択することが可能になります。どのデータベースのどのテーブルをどのようにクエリするのかは、上述した外部コンテンツタイプの方で定義を行う必要がありますね。今回、改めて設定してみましたが、やっぱり面倒ですこれ。■SQL要求(Request)/Web要求(Request)機能はい、ようやく登場しました。見た目は↓こんなコントロールです。ドロップするとこんな風にドロップダウンの形になります。SQLの方ですが、こちらは、データベースの内容をFormsで直接参照可能になります。データはSharePoint経由で取得する形ですね。設定は以下の画面になります。(正直こんなにフィールドを書く必要はないんですけど(笑)見た目のところも、ドロップダウンやリスト等、参照列と同様の表現が可能です。↓のようにチェックボックスで表現することも可能ですね。5って書いているので、上位5件しか出ていません。Serviceの設定が必要になるのと、クライアントからSQLやストアドプロシージャを直接指定する必要はあるんですが、外部データに比べてかなり設定の負担が減りますね。ドロップダウンやリストで表示できるのも大きいです。外部データの方は現状不可能ですので。あるシナリオですが、カテゴリを選択すると、それに従った商品のみが表示される、のような、いわゆるカスケードされたマスタ表示、そんなのも可能です。SQL要求を2つ使用します。カテゴリの方の設定です。こんな感じで、カテゴリテーブルをクエリして、値フィールドの方にCategoryIDを指定しておきます。こんな感じでSQLにWHERE条件句を加えて、値は上で指定したカテゴリの選択結果を当てています。その為にカテゴリの方の値フィールドはCategoryIDにしたわけですね。5は消し忘れた感じですので、本来は必要ありません。)実行してみると、こんな感じです。カテゴリに飲み物を指定すると、飲み物だけが商品リストに表示されるようになります。お菓子の時は、商品もお菓子のみが表示されますね。