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

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

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

Nintex Workflowを外部からスタートする!?外部スタート機能を実行してみる

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

Nintexの連載記事Season2です。
今回はNintex for SharePoint 2016 Workflowの機能の一つ、外部スタート機能についてご紹介いたします。(Enterprise Editionの機能です。)

この機能自体はNintex Workflow 2013 Enterprise から存在していましたが、割と後になって追加された機能であり、設定も煩雑だったので、あまり認知されていなかったと言うのが、本当のところだと思います。

Nintex for SharePoint 2016になり、その辺りが少し整理されてきたと感じていますので、改めて紹介しようかと思ったわけです。

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

———————

「オンプレ環境のサイトワークフロー(※)をSharePoint以外の環境から開始することができる」
機能を簡単に書くとこうなります。

※)サイトワークフローは、特定のリストではなく、サイトに紐づけられるワークフローです。複数のリストを横断した処理やリストやライブラリと関係のない処理等を実装するのに適しています。

例えば、Salesforceで新しいアカウントを作成したときに、Nintexのサイトワークフローを起動するような動作が可能になります。

他にも、Dynamics CRM等が対応環境としてアナウンスされていますが、実態は、RESTのAPI呼び出しですので、自作のシステムに組み込むことも可能のようです。

以下がNintex社からの説明になりますね。

詳細はNintex社の情報をご確認いただくとよいかと思います。https://community.nintex.com/docs/DOC-3167

ユーザー側の設定としては、
・サイトワークフローを発行
・エンドポイントのURLとセキュリティキーを受け取る
の2つがあります。

後は、Nintex側が用意しているNintexCloudからの指示をオンプレミス側にあるNintex Start Serviceが受け取るって感じの様です。

実際は、外部3rdパーティベンダのシステムを監視する、Integration Partnarっていうのがあり、そこのセットアップも必要になるようです。(これによってDynamics CRMのイベントをモニターします。)

じゃあ実際にやってみましょう。

まずサイトワークフローを作成&発行します。
履歴リストにログを入れただけです。適当です。

image

ワークフローインベントリから、上記のワークフローを選択し、その上で外部URLを実行します。URLの追加をクリックすると、URLとセキュリティキーがもらえます。(下記の画面)
適当に名前を付けておきます。

image

詳細の表示をクリックすると、エンドポイントのURLとセキュリティキーを確認できます。
控えておきますね。

image

さて、呼び出し方ですが、今回は以下を使用します。呼び出すための開発記事ですね。ここにサンプルコードもありますので。

Developing with the External Start feature
https://community.nintex.com/docs/DOC-3330

Extarnal Startのサンプルがありますので、ビルドを実行してみます。
(実行環境はどこでもよいかと、私は別のPCで行いました。)

image

エンドポイントのURLとセキュリティキーは上で控えた物を入力しています。
後はStart Workflowをクリックするだけです。しばらくするとWFが動作します。

image

Extarnal Startの内部をみると、簡単なRESTの呼び出しだけの実装となっていますので、工夫すれば色々なクライアント実装が出来そうです。

詳細はNintex社の情報をご確認いただくとよいかと思います。https://community.nintex.com/docs/DOC-3167

こうしたサンプル等、もしご興味あれば、弊社で作成することも可能です。
もしよろしければ、下記からご連絡いただければ!
http://www.infoshare.co.jp/contact.php

では、引き続きよろしくお願いします。

Nintex Workflow (Nintex for SharePoint 2016) のアクション一覧

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

Nintexの連載記事Season2です。今回はNintex for SharePoint 2016 におけるWorkflowアクション一覧をご紹介します。前回同様、に単なる一覧ですので、ご参考までに。
(なお、この一覧はEnterprise Editionの機能になります。)

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

———————

グループ 名前 説明
プロビジョニング AD グループの削除 Active Directory からグループを削除します。
プロビジョニング ADグループからユーザーを削除 Active Directory内のグループからユーザーを削除します。
プロビジョニング ADグループにユーザーを追加 Active Directory内のグループにユーザーを追加します。
プロビジョニング ADグループの作成 Active Directory内にグループを作成します。
プロビジョニング ADユーザーの解除 Active Directory内のユーザーを解除します。
プロビジョニング ADユーザーの更新 Active Directory内のユーザーのプロパティを更新します。
プロビジョニング ADユーザーの作成 Active Directory内にユーザーを作成します。
プロビジョニング Exchange内にユーザーを準備 ユーザー用にMicrosoft Exchange内にメール ボックスを準備します。
プロビジョニング Lync / OCS を有効にする AD ユーザー用に Lync または OCS を有効にする
プロビジョニング サイト コレクションを解除 SharePoint サイト コレクションを解除します。
プロビジョニング サイト コレクションを作成 SharePointサイト コレクションを作成します。
プロビジョニング サイトの作成 SharePointサイトを作成します。
プロビジョニング サイトの削除 SharePointサイトを削除します。
プロビジョニング ユーザー プロファイルの更新 SharePoint内のユーザー プロファイルのプロパティを更新します。
プロビジョニング 対象ユーザーのコンパイル SharePointに対象ユーザーをコンパイルします。
プロビジョニング 対象ユーザーの作成 SharePointに対象ユーザーを作成します。
プロビジョニング 対象ユーザーの削除 SharePointから対象ユーザーを削除します。
ユーザー操作 Flexiタスクの割り当て 構成可能な結果をサポートするタスクを作成し、割り当てます。
ユーザー操作 To Doタスクを割り当て SharePointタスクを作成し、割り当てます。
ユーザー操作 タスク アラーム 指定された時間後にタスク担当者にアラームを送信します。
ユーザー操作 タスクの作成 ユーザーのMicrosoft Exchangeタスク リストにタスクを作成します。
ユーザー操作 データのリクエスト ユーザーにフォームを書き込ませるタスクを作成し、割り当てます。
ユーザー操作 レビューのリクエスト ユーザーにコメント入力を要求するタスクを作成し、割り当てます。
ユーザー操作 ワークフロー タスクの委任 タスクの委任を別のユーザーに依頼します。
ユーザー操作 ワークフロー タスクの完了 実行中のタスクを自動的に完了してワークフローを続行します。
ユーザー操作 会議提案を入手 Microsoft Exchangeカレンダーに基づいて特定のユーザーの会議の提案時間を取得します。
ユーザー操作 承認のリクエスト ユーザーが承認/却下できるタスクを作成し、割り当てます。
ユーザー操作 通知の送信 一人または複数のユーザーに通知を送信します。
ユーザー操作 予約の作成 ユーザーのMicrosoft Exchangeカレンダーに予約を作成します。
ライブラリとリスト アイテムの更新 アイテムのフィールドを更新します。
ライブラリとリスト SharePoint にコピー 別のSharePointサイト内のライブラリに現在のアイテムをコピーします。
ライブラリとリスト アイテムのコピー ソース リストの アイテムをコピー先リストにコピーします。
ライブラリとリスト アイテムのチェックアウト ライブラリのアイテムをチェックアウトします。
ライブラリとリスト アイテムのチェックイン ライブラリにアイテムをチェックインします。
ライブラリとリスト アイテムの権限の設定 現在のアイテムの権限を設定します。
ライブラリとリスト アイテムの作成 現在のSharePointサイトにアイテムを作成します。
ライブラリとリスト アイテムの削除 一覧からアイテムを削除します。
ライブラリとリスト チェックアウトの破棄 現在チェックアウト中のファイルをすべての変更を破棄してチェックインします。
ライブラリとリスト ドキュメント セットのバージョンの取得 ドキュメント セットのバージョンを作成します。
ライブラリとリスト ドキュメント セットの承認状況設定 現在のドキュメント セットの承認状況を設定します。
ライブラリとリスト ドキュメント セットをレポジトリに送信 現在のドキュメント セットをレコードセンターに送信します。
ライブラリとリスト ドキュメントの更新 ドキュメント内のプレースホルダーの内容を読み取ります。
ライブラリとリスト ドキュメントの読み取り ファイルの内容をワークフロー変数に読み取ります。
ライブラリとリスト ドキュメントの変換 ファイルを別のファイルの種類に変換します。
ライブラリとリスト ドキュメントをレポジトリに送信 現在のドキュメントをレコードセンターに送信します。
ライブラリとリスト ファイル共有にコピー ネットワークのファイル共有に現在のアイテムをコピーします。
ライブラリとリスト フィールドの値の設定 現在のアイテムのフィールドを更新します。
ライブラリとリスト リストのクエリ リストからデータを取得
ライブラリとリスト リストの作成 SharePointサイト内に一覧を作成します。
ライブラリとリスト レコードとしての宣言解除 現在のアイテムのレコード宣言を解除します。
ライブラリとリスト レコードとして宣言 現在のアイテムをレコードとして宣言します。
ライブラリとリスト レコードの提出 レコード センターに現在のアイテムを送信します。
ライブラリとリスト 以前のバージョン削除 このアイテムの以前のバージョンをすべて削除します。
ライブラリとリスト 下書きの削除 現在のアイテムのすべてのマイナー バージョンを削除します。
ライブラリとリスト 承認状態の設定 現在のアイテムの承認状況を設定します。
ライブラリとリスト 複数のアイテムを更新 一覧の複数のアイテムを更新します。
ライブラリとリスト 複数のアイテムを削除 リストから複数のアイテムを削除します。
ライブラリとリスト 別のサイトにアイテムを作成 現在のSharePointファームにアイテムを作成します。
ワークフローの発行 ワークフローの発行 変更承認を処理されるワークフローを発行します。 このアクションはワークフローの変更承認システムで必要とされます。
処理 …まで一時停止 指定された日付と時間までワークフローを一時停止
処理 アイテム更新の待機中 現在のアイテムのフィールドが特定の条件を満たすまでワークフローを一時停止します。
処理 コレクションの操作 コレクション変数への操作を実行します。
処理 チェックアウト状況変更の待機中 ドキュメントのチェックアウト状況が特定の状態に設定されるまでワークフローを一時停止します。
処理 データの格納 ワークフロー変数の値を格納します
処理 データの取得 格納されたワークフロー変数の値を取得します
処理 ワークフローの開始 現在のアイテムの特定のワークフローを開始します。
処理 ワークフローの終了 現在のアイテムで実行している特定のワークフローを終了します。
処理 ワークフローの終了 ワークフローを終了し履歴リストにメッセージをログします。
処理 ワークフローの状態を設定 ワークフロー インスタンスのワークフロー状態のフィールドをカスタム値に設定します。
処理 以下の間一時停止… 指定された期間中ワークフローを一時停止します。
処理 数値演算 数値演算を実行します。
処理 正規表現 正規表現を使ってテキストを処理します。
処理 値の変換 テキスト値を他のデータ タイプに変換します。
処理 日付の計算 選択した日付に期間を追加して日付を計算します。
処理 文字列の作成 ワークフロー データを連結して文字列を作成します。
処理 変数の設定 指定された値にワークフロー変数を設定します。
処理 履歴リストにログ ワークフローの履歴リストにログを記録します。
論理とフロー FOR ループ コレクション変数内の各アイテムに一連のアクションを実行します。
論理とフロー アクション セット 一連のアクションをまとめるコンテナを作成します。
論理とフロー スイッチ 変数値に基づいて一連のアクションを実行します。
論理とフロー ステート マシン ステート マシンの構造を作成します。
論理とフロー フィルタ ワークフローを続行するのに必要な条件を定義します。
論理とフロー ループ 条件がが満たされている間、継続して一連のアクションを実行します。
論理とフロー 条件の設定 ワークフローが実行する分枝を特定する条件を評価します。
論理とフロー 条件付きで実行 条件がが満たされている場合のみ、一連のアクションを実行します。
論理とフロー 状態の変更 現在の状態が完了後状態機械に次の状態を設定します。
論理とフロー 並列アクションの実行 複数のアクションの同時実行を許可します。
論理とフロー 保留中の変更をコミット ワークフロー エンジンがバッチ処理した変更を強制します。