2017年8月31日木曜日

Nintex入門 第3回 リスト準備・UI作成

Nintex連載の第3回となる本記事では、SharePoint上での申請・承認内容を記録するためのカスタムリストを作成し、Nintex製品を用いたユーザーインタフェースの作成を行っていきます。

 

1.1.  作成するワークフローシステムの仕様


今回の連載で作成していくワークフローシステムの仕様を纏めておきます。

1.  作成に使用するソフトウェア


 
2.  ワークフロー申請の要件

   i.      承認者として、最大5人のユーザーを指定できること


  ii.      承認画面は、承認者として指定されたユーザーのみが閲覧できること


iii.      申請/承認画面には、以下の項目を有すること


 
  iv.      集計表にある金額欄が変更されたときに、自動的に合計金額欄の再計算を行うこと

 

1.2.  カスタムリストの作成


ワークフローシステムにおいてアイテムの登録先として使用するための、SharePointカスタムリストを作成する手順をご紹介します。


1.  まず、SharePointサイトへアクセスします。


 
2.  必要に応じてサブサイトを作成し、サブサイトへ移動する必要があるかもしれません。



3.  「リストやライブラリ、その他のアプリを追加」をクリックします。



4.  「カスタムリスト」をクリックします。


 
5.  カスタムリストの名称を指定します。今回は「CustomList02」を指定しました。


 
6.  作成したカスタムリストがサイトコンテンツ画面の一覧に表示されるので、カスタムリストの「…」をクリックします。


7.  ポップアップの左下にある「設定」をクリックします。


 
8.  設定画面が開きます。デフォルトで作成されている列を、必要に応じて控えておくと良いでしょう。これらの列は、SharePointのバージョンの差異によって異なることがあるため、注意が必要です。



9.  「列の作成」をクリックします。



10. 「列の作成」画面が表示されるので「列名」を入力し、列に保存する「情報の種類」を選択した後、「OK」をクリックします。

この時入力する列の名称には、マルチバイト文字は使わないことをお勧めします。表示名にマルチバイト文字を使用してしまうと、API経由でアクセスする際に使用する「内部名」が、表示名を文字参照に変換したものにされてしまうためです。これではAPI経由でSharePointカスタムリストにアクセスする際など、一見しただけではどのような文字列を指定すればよいのかわかりにくくなってしまいます。半角英数字であれば文字参照に変換されることはないため、表示名と内部名を揃えることができます。


 
11. この後の手順で使用する列の種類のうち代表的なものを例に、以下に設定例をご紹介します。

  1行テキスト」
300弱までの文字数の改行を含まない文字列を入力するための列です。





  「日付と時刻」
日付や時刻を入力するための列です。操作者に選択してもらうのが日付だけであるのか時刻も必要であるのかに応じて、「日付と時刻の形式」を指定します。




  「ユーザーまたはグループ」
ADに登録されているユーザーや、SharePointに作成したグループを入力するための列です。操作者に選択してもらうのがユーザーかグループか、単数か複数かに応じて、「次を選択できるようにする」、「複数選択できるようにする」を指定します。




  「選択肢 (メニューから選択)
 
 
「それぞれの行に選択肢を入力してください」の設定値は、以下の図のように指定します。

ここで入力されていない値をワークフロー側で指定しようとすると空白が設定されてしまいます。図では、承認者が5人いるワークフローを想定した選択肢となっていますが、承認者の人数が10人に増えた場合には、「申請者6承認済」から「申請者10承認済」までを予め登録しておかないと、6人目の承認者から先のステップで想定通りの動作をしなくなってしまうのです。



「既定値」も指定しておきます。



  「複数行テキスト」
改行を含んだり、長かったりするような文字列を入力するための列です。



他にも、SharePointサイト内の別の場所に存在する情報を選択肢として表示する「参照」列や、高精度な数値計算を入力するための「通貨」列等がありますが、スクリーンショットだけでご紹介するのは困難であるため、今後ワークフロー作成手順の中でご紹介したいと考えております。

12. 列の作成後、カスタムリストの設定画面を開いて、作成した列が存在することを確認します。




1.3.  ユーザーインタフェースの作成


ワークフローシステムにおいて申請者や承認者が操作する画面を、Nintex Formsを使用して作成するための手順をご紹介します。
 
1.  先程作成したSharePointカスタムリストを開いて、リボンにある「Nintex Forms」をクリックします。


 
2.  Nintex Formsの編集画面が表示され、カスタムリストの列名とその種類に応じたフォームコントロールが配置されます。


 
3.  好みに合わせてフォームコントロールのレイアウトやラベルのテキストを調整します。今回は、以下の図のように整えました。

編集画面を見ると、操作者に入力してもらう項目の他に、ボタンのすぐ上にあるリストボックスのように、画面遷移を行う前後で情報を保持し続けるために使用する項目も配置されていることが分かります。これらのアイテムは編集画面では可視状態となっていますが、完成したワークフローシステムでは隠すことになります。


 
4.  フォームコントロールが配置されたところで、一度フォームを公開できるか確認しておきます。まずはリボンにある「保存」をクリックしてフォームを保存します。


 
5.  次に、リボンにある「公開」をクリックします。



6.  「発行の確認」ダイアログが開くので、「公開」をクリックします。


 
7.  「フォームは正常に発行されました。」と表示されることを確認し、「OK」をクリックします。

 
8.  発行されたフォームを確認するために、カスタムリストを開き、「新しいアイテム」をクリックします。


 
9.  SharePointのデフォルトの編集画面ではなく、先程編集していた画面(フォーム)が表示されることを確認します。


 

1.4.  計算処理の追加


Nintex Formsのフォームコントロールの中には、簡単な計算をGUIで設定し、配置可能な「計算値」コントロールがあります。今回のワークフロー画面では、集計表に入力された金額の合計を求めるために、「計算値」コントロールを配置してみます。

1.  まず、フォームに「計算」コントロールを配置します。


 
2.  「計算」コントロールの右クリックメニューを開き、「設定」をクリックします。



3.  「数式」テキストボックスをクリックしてフォーカスを合わせます。


 
4.  右側のパネルにある「名前付きコントロール」をクリックし、配下の「Price1」をダブルクリックします。



5.  「数式」テキストボックスに「Price1」が挿入されたことを確認します。


 
6.  次に、右側のパネルの「演算子」配下にある「+」をダブルクリックします。


 
7.  「数式」テキストボックスの「Price1」の後ろに「+」が追加されたことを確認します。



8.  同様に「Price4」までの値を追加します。



9.  「保存」をクリックします。


 
10. 「数式」欄に文字列が追加されたことを確認します。



11. 再び保存・発行を行った後、カスタムリストを開き、「アイテムの新規作成」をクリックしてフォームを表示します。


 
12. 動作確認のために、「Price1(金額列の1行目)に「111」と入力します。



13. Price1」からフォーカスが外れたタイミングで、「Price1」に入力した値が「計算」コントロールに反映されることを確認します。


 
14. 同様に「Price2」から「Price4」までのテキストボックスにも数値を入力し、「計算」コントロールに計算結果が表示されることを確認します。



15. デフォルトで配置されるボタンは「保存」および「キャンセル」の2個のみですが、必要なボタンは6個であるため、ボタンを4つ追加する必要があります。


 
16. 配置した6つのボタンの「設定」を開き、以下の通りに設定します。


 

1.5.  まとめ


ここまでの手順で、ワークフロー申請を行ったり、承認を行ったりするための画面を作成することができました。しかし、どのボタンがクリックされたか判定するための処理や、画面遷移しても状態を保持するための処理をまだ追加していないため、この状態で発行しても申請から承認完了までの一連の流れはまだ実現していません。こうしたイベント処理の設定方法については、次回の記事でご紹介いたします。

ブログアーカイブ

前回までのブログと今後の予定
Nintex Workflow
 第2回 Nintex インストール手順 8月10日記事
 第3回 Nintex リスト準備・UI作成 8月31日記事
 第4回 Nintex イベント・書式定義 9月中旬掲載予定
 
その他以下ブログを発信中です。
 
機械学習(Azure Machine Learning)の入門からビジネス活用へ