2022年1月25日火曜日

Flows for APEXによる経費精算アプリの作成(0) - はじめに

 Flows for APEXを使った経費精算を行なうアプリケーションを作成します。

以下の記事で構成されます。

0. はじめに - この記事。準備作業について
1. フロー・モデルの作成
2. ワークフローの実装
3. レーンとロールのを使ったアクセス制御
4. フロー・モデルのバージョニング
5. フロー・モデルのエクスポート
6. アプリケーションの更新
10. コール・アクティビティ

Flows for APEXを使うための準備については、休暇申請のアプリケーションを作る記事で解説しています。Flows for APEXのインストール方法や基本的な使い方は、休暇申請の記事を参照してください。

英語のTutorialは、MG GmbHのFlows for APEXのページよりダウンロードすることができます。ダウンロードされたZIPファイルには以下の3つのファイルが含まれています。

  • Tutorial_Flows_for_APEX_v22.2.pdf
  • tuto_db_objects.sql
  • tuto_expense_pkg.sql

本記事は英語のTutorialを元にしていますが、同じ内容ではありません。表の定義、APEXアプリケーション、フロー・モデルも微妙に異なります。また、英語のTutorialに含まれているEmail templatesに関する記述については触れていません。


最初に、経費精算アプリの雛形となるアプリケーションを作成します。

経費を保持する表TUTO_EXPENSESをクイックSQLを使って作成します。

SQLワークショップユーティリティクイックSQLを開きます。表を作成するスクリプトは以下になります。
# prefix: tuto
expenses /colprefix expe
    invoice_dd date /nn
    amount num      /nn
    purpose vc50
    justification vc150
    status vc15     /nn
    account num
    submitted_by vc30 /default coalesce(sys_context('apex$session','app_user'),sys_context('userenv','os_user'),sys_context('userenv','session_user')) /nn
    submitted_on tstz /default systimestamp /nn
    comment_mgr vc1000
    comment_vp vc1000
SQLの生成SQLスクリプトの保存レビューおよび実行を順番にクリックして表を作成します。


SQLのレビューおよび実行の画面で、EXPE_SUBMITTED_BY、EXPE_SUBMITTED_ONのデフォルト値が不要な ' (アポストロフィ)で囲まれているので削除します

SQLの修正後、実行をクリックします。


即時実行します。


表が作成されたことを確認し、アプリケーションの作成を実行します。


続けて、アプリケーションの作成を実行します。


アプリケーション作成ウィザードが起動します。

アプリケーションの名前経費精算とします。機能アクセス制御チェックを入れます。それ以外の機能は使用しないので、チェックを外します。

デフォルトで作成対象となるフォーム付き対話モード・レポートは使用しません。削除するために、編集をクリックします。


削除をクリックします。


アプリケーションの作成を実行します。


経費精算を行なうアプリケーションの雛形が出来上がります。

アプリケーション定義の編集をクリックし、アプリケーションの別名を設定します。


アプリケーションの別名EXPENSECLAIMとし、変更の適用をクリックします。


経費精算のアプリケーションも以前の記事にある休暇申請のアプリと同様に、アプリケーション・アイテムとしてPROCESS_IDSUBFLOW_IDおよびSTEP_KEYを使います。

共有コンポーネントアプリケーション・アイテムを開き、アプリケーション・アイテムを作成します。


名前PROCESS_IDセッション・ステート保護制限なしとして、アプリケーション・アイテムの作成を実行します。


同様の手順にて、アプリケーション・アイテムSUBFLOW_IDSTEP_KEYを作成します。

アプリケーション・アイテムPROCESS_IDSUBFLOW_IDおよびSTEP_KEYが作成されたことを確認します。


続いて、Flows for APEXを使うAPEXアプリケーションに必要なプラグインを、Flows for APEXのアプリケーションからコピーします。

共有コンポーネントプラグインを開きます。


作成をクリックします。


プラグインの作成として既存のプラグインのコピーを選択します。へ進みます。


アプリケーションからコピーとしてFlows for APEXを選択します。

へ進みます。


リージョン・プラグインのFlows for APEX - Modelerを除いて(これはいいえ)、それ以外ははいを選択します。プラグインのコピーを実行し、4つのプラグインを経費精算のアプリにコピーします。


コピーされたプラグインを確認します。


この経費精算のAPEXアプリケーションで扱うFlows for APEXのフローは、経費精算という名前で作成します。このフローの名前をコンポーネントのデフォルトになるよう設定します。

共有コンポーネントコンポーネント設定を開きます。


Flows for APEX - Manage Flow Instance [プラグイン]を開きます。


Global Flowとして経費精算を設定します。変更の適用をクリックします。


このように設定することにより、Flows for APEXのプラグインを元にプロセスを作成したときに、Select Flow usingComponent SettingFlow (Diagram) selection based onNameと設定すると、コンポーネントのデフォルト(Global Flowとして定義されている経費精算)が使用されます。以下は、プロセスの設定の画面例です。


以上でFlows for APEXを使ってワークフローを実装するアプリケーションの準備は完了しました。

次の記事では、Flows for APEXのアプリケーションを実行して、経費精算のフロー・モデルとダイアグラムを作成します。