前回の記事でテーブルを作って書籍情報を登録できるようになりました。
Pleasanterでは色々なことができるようになるので、次のステップとして貸出管理機能を追加してみます。
プロセスとは?
Pleasanterを使いこなしている方から「プロセス」を使って!とヒントを頂いたので、プロセスについて学んでみましょう。
プロセスは、よくあるいい方をすると稟議申請等に使う承認ワークフロー機能です。状況による制御機能と組み合わせることで項目の表示/非表示や読取専用などの細かい制御もできます。
動かしてみる
テーブルに関するあれこれは左端にあるナビゲーションメニュー > 管理 > テーブルの管理から表示します。少し画面レイアウトにも慣れてきましたね。

テーブルの管理ページが開けたら、タブの一覧からプロセスを選択します。今は何も登録していないので空っぽです。

一覧表の左上あたりの新規作成ボタンをクリックします。

プロセスの設定画面が表示されます。いろいろと設定項目はありますが、全般のみを変更してみて動きを確認します。

どんな項目がどんな役割か全くわからない状態だとどこを変更していいのか分からなかったので、ドキュメントを読みつつ変更してみる項目を決めてみました。
| 項目名 | 説明 | 設定例 |
|---|---|---|
| 名称 | 必須項目。内部的な名称。 | 貸出 |
| 表示名 | 実際に画面に表示される名称。 | 借りる |
| 画面種別 | 新規作成と編集から選択可能。(アクション種別が追加したボタンのみ) |
編集 |
| 現在の状況 | プロセス管理対象とするステータス | *(すべて) |
| 変更後の状況 | プロセス処理後に更新するステータス | *(すべて) |
| ツールチップ | マウスカーソルを合わせた際に表示されるもの | 図書を借りる申請 |
| 確認メッセージ | ボタンを押した後に表示される確認ダイアログ | 借りたい図書は本棚から手元にありますか? |
| 成功メッセージ | プロセス処理後に表示されるメッセージ | 貸出申請しました |
| 実行種別 | プロセス機能を実行する方法設定 | 追加したボタン |
| アクション種別 | プロセス機能で追加されたボタンのアクション種別を設定 | 保存 |
これらの項目をすべて設定したら、保存ボタンを押します。

何もなかったところに、先ほど作成したプロセスが追加されました。一覧画面の下にある更新ボタンを押します。これで先ほど追加したプロセスが反映されます。
トップ > 図書管理 > (任意のレコード)にアクセスして編集画面を表示します。すると先ほど追加した借りるボタンが表示されます。

ボタンの部分を拡大するとこんな感じです。

ツールチップを知らない方にとっては何?と思うかもしれませんが、ボタンにマウスカーソルを合わせた際に表示されるものです。普段何気なく使っているけど、名前で言われるとピンのこない名前ですね。

他の項目も順に確認します。まずは、確認ダイアログです。

次に、サクセスメッセージ。

今回は、特に複雑なことはやってないので、通常の保存ボタンと同じような処理が実行されて終了します。
だいぶ、プロセス機能の雰囲気が掴めました。
貸出管理
今回やろうとしている図書管理に話を戻します。真面目に整理しようとすると色々と要件が出てきてブログとしては分かりにくくなりそうなので、ステータスに応じた制御くらいで留めておきます。
- 要件1: ステータスは、
貸出可能、申請中、貸出中の3種類 - 要件2:
貸出可能では、借りるボタンが表示され、ボタンを押すとステータスが申請中に変更される - 要件3:
申請中では、アクセス権限が付与された人のみに承認ボタンが表示され、ボタンを押すとステータスが貸出中に変更される - 要件4:
貸出中では、返すボタンが表示され、ボタンを押すとステータスが貸出可能に変更される
用件が整理できたらプロセスを組む前にステータスを整えて、要件1を満たしましょう。1回目の記事で作った時に状況のステータス一覧をデフォルトのままにしていたので、要件1に合うように変更します。
ナビゲーションメニュー > 管理 > テーブルの管理 > エディタ > [図書管理] 状況を[図書管理] 貸出状況に変えます。

ステータスの一覧も要件1に合うように変えました。ステータスの1行の書き方にはルールがあり、{{値}},{表示名}},{{短縮名}}{{スタイル}}の順番で記述します。今回は細かいところには拘らないので雰囲気を合わせて作ってみます。

そのまま使いたい方はこちらからコピー&ペーストしてください。
100,貸出可能,可,lent-possible 200,申請中,申,applying 300,貸出中,貸,lent-out
変えた後に状況の項目は特別な意味合いを持った項目だったようにも思い、別で用意した方が良かった?と少し悩んだのですが、今回は突き進みます。
状況ステータスは、選択肢に完了としての意味合いを持たせたりすることができるので、実際に使う際の設計時に気をつけるポイントですね。
値」が 900 以上のものは「完了」として扱われ、 900 未満のものは「未完了」として扱われます。
ステータスが整え終わったら最初に作ったプロセスに戻って現在の状況や変更後の状況で表示されるステータスが先ほど登録した内容に変わっているか確認します。
問題なく反映されていることが確認できたら、先程のステータスに画像のように設定して反映します。

今回はシンプルにしているので、全般のステータスを設定するだけで、ボタンの表示/非表示で制御できるようになりました。
同じような要領で貸出承認プロセスと返却プロセスも追加してみます。
| プロセス名 | 現在の状況 | 変更後の状況 |
|---|---|---|
| 貸出 | 貸出可能 | 申請中 |
| 貸出承認 | 申請中 | 貸出中 |
| 返却 | 貸出中 | 貸出可能 |
プロセスの追加ができたら更新して、図書管理の一覧に戻ります。試しに変更してみるレコードを表示して、ボタンの表示を確認しながら貸出→申請→承認→返却の一連の流れを試してみます。
貸出前

申請後

貸出後

ここまでスクリプトなどを組むことなく、画面の設定だけで実現することができました。
アクセス権限と承認者の指定
テーブルに対して設定するサイトのアクセス制御の時と少しだけ振る舞いが違います。サイトのアクセス制御の時は、すべてのユーザを指定しない限り、自分以外の誰も見ることができませんでした。
プロセスの権限は、何も設定していないと、すべてのユーザが使用可能な状態になります。

なので、特定の誰かだけ承認できるようにしたい時は、承認させたい人を指定することでその人のみが許可されるようになります。

これで、承認は特定の誰かしかボタンが表示されないように変更することができます。
おわりに
実際の業務では、何らかの変更を加えるときに誰かの承認やチェックが必要な場合があります。その時の承認フローを気軽に組むことができて良いですね。スクリプトを書かずにどこまでできるのか、楽しみになってきました。