本文へ移動
Wagby11
マニュアルのグループを選ぶ

WAGBY11 MANUAL / 22

承認経路と条件を設定する

承認段階と担当者を順に設定し、申請内容に応じて必要な承認段階だけを実行できます。

最終更新日:

ワークフローの小目次へ

1. このページで伝える機能

承認段階と担当者を順に設定し、申請内容に応じて必要な承認段階だけを実行できます。

2. Wagby11で実現できること

備品申請をまず直属上司が確認し、購入金額が1万円を超える場合だけ部門責任者の決裁へ進める例です。第1段階は常に実行し、第2段階に購入金額の条件を設定します。

第2段階にpurchaseAmount > 10000を設定した例です。差し戻し先と再開段階も経路で決めます。
第2段階にpurchaseAmount > 10000を設定した例です。差し戻し先と再開段階も経路で決めます。

条件がない段階は常に実行し、条件がfalseとなる段階は省略します。この例では5,000円の申請は上司の承認で決裁、30,000円の申請は部門責任者の承認まで進みます。すべての段階を省略する申請はエラーとなり、自動で決裁されるわけではありません。

担当者は、固定のユーザー・直接所属グループ・ロールや、申請者の上司・組織の責任者から決められます。固定のユーザー・グループ・ロールを併記した場合はOR条件です。グループとロールの両方を満たす条件という意味ではありません。

経路の申請者条件は、登録者のうち誰が申請できるかを決めます。「全員」を許可しても、他人が登録したデータを代わりに申請できるようにはなりません。申請した時点の経路と担当者は保存され、後の経路変更を進行中の申請へ自動反映しません。

2.1 実行条件で使える文法と式

実行条件は、「この承認段階が必要か」をtrue(実行する)またはfalse(省略する)で返す式です。段階の人数を決める「承認条件」や、誰が担当するかを決める「担当者条件」とは別の設定です。

項目は対象モデルの英語名name_enをそのまま書きます。例えばpurchaseAmountは購入金額です。式全体を#{...}や${...}で囲みません。以下の項目名は例なので、自分のモデルで公開されている項目名に置き換えます。

使える内容記法・例意味・注意点
保存済みの項目値purchaseAmount、reason公開されている文字列・整数・十進小数・真偽値・日付・時刻・日時の項目を参照できます。
文字列の定数'SPECIAL'、"SPECIAL"一重または二重引用符で囲みます。項目名や関数名は大文字・小文字を区別します。
整数の定数10000、-1、3000000000L整数定数の負号を使えます。小数は#decimalで指定します。
真偽値・未設定値true、false、nullはい/いいえの値や、値が入っていない状態を表します。
一致・不一致==、!=
category == 'SPECIAL'
同じか・異なるかを比較します。文字列も内容で比較します。
大小比較<、<=、>、>=
purchaseAmount > 10000
数値や日付など、比較できる型同士を使います。数値と文字列は暗黙に変換しません。真偽値の大小比較はできません。
両方を満たすand または &&二つの条件が両方trueならtrueです。左がfalseなら右は評価しません。
どちらかを満たすor または ||どちらかがtrueならtrueです。左がtrueなら右は評価しません。
条件の否定! または not
!#isBlank(reason)
trueとfalseを反転します。この例は「理由が空欄ではない」です。
条件のまとまり(条件1 or 条件2) and 条件3括弧で、どの条件を先にまとめるかを明示できます。

2.2 使える関数は3種類

関数名の先頭には#を付けます。ワークフローの実行条件で使える関数は次の3種類で、いずれも引数は一つです。

関数何を返すか実行条件での使用例主な規則
#decimal(text)正確な十進小数purchaseAmount > #decimal('10000.50')符号付き十進文字列から数値にします。整数部38桁・小数部18桁まで。指数・桁区切り・通貨記号・nullは使えません。
#date(text)日付purchaseDate >= #date('2026-10-01')yyyy-MM-dd形式です。存在しない日付、不正な形式、nullはエラーです。
#isBlank(text)空欄ならtrue、それ以外はfalse!#isBlank(reason)文字列専用です。null・空文字・空白だけの文字列ならtrueです。数値や日付の未設定判定には使いません。

2.3 業務でよく使う実行条件の例

購入金額purchaseAmount、購入日purchaseDate、申請区分category、要確認フラグneedsReview、理由reasonが、利用可能な保存済み項目として定義されている例です。

この段階を実行したいとき実行条件
購入金額が入力済みで、1万円を超えるpurchaseAmount != null and purchaseAmount > 10000
購入金額が入力済みで、1万円以上purchaseAmount != null and purchaseAmount >= 10000
特別申請、または要確認フラグがオンcategory == 'SPECIAL' or needsReview == true
理由が入力されている!#isBlank(reason)
購入日が入力済みで、2026年10月1日以降purchaseDate != null and purchaseDate >= #date('2026-10-01')
購入金額が入力済みで、10,000.50を超えるpurchaseAmount != null and purchaseAmount > #decimal('10000.50')

2.4 計算式との違いと、使えない記法

初期値や計算・導出項目の式で使える関数・記法を、そのまま実行条件へ使うことはできません。共通の式評価基盤を使いますが、ワークフローでは許可範囲を絞っています。

  • 四則演算・余りなどの算術演算や、条件 ? 値1 : 値2による三項演算子は使えません。quantity * unitPrice > 10000のように、その場で計算して判定する式も使えません。
  • #today()・#now()・#userId()・#hasGroup()・#moveDay()など、上の3種類以外の関数は使えません。IF(...)・AND(...)などの関数形式も使いません。
  • 非表示・予約・保存しない項目、参照・ファイル項目や関連データは参照できません。customer.nameのように他モデルへたどる記法、配列の添字、任意のJavaメソッド呼び出し・代入・正規表現なども使えません。
  • 式は最大2,000文字、括弧・式の構造の深さは最大32段です。文字列定数の外側の語・記号にも128要素の上限があります。
  • 式の最終結果は必ず真偽値にします。数値や文字列だけを書く式、未取得項目、不正な型の比較、不正な関数引数はエラーです。実行時に選ばれない条件の中も、保存時に構文・型などを検証します。

複雑な金額計算などが必要なら、保存時計算であらかじめ結果を業務項目へ保存し、実行条件ではその公開項目を比較する方法があります。一般の計算式の仕様は関数と式の仕様で説明しますが、このページの実行条件には上記の制約を適用します。

3. AIへの指示例

最小限の指示例

購入金額が1万円を超える申請だけ、部門責任者の決裁も必要にしてください。

AIは金額項目、境界金額を含めるか、通常の承認段階、誰を責任者とするかを類推して補います。1万円ちょうどをどちらに含めるかも伝えると明確です。

より詳細な指示例

備品申請の第1段階を直属上司、第2段階を所属組織の部門責任者にしてください。第1段階は常に実行し、第2段階だけpurchaseAmount > 10000を指定します。10,000円以下は上司の承認で決裁とします。金額は保存済みの公開数値項目を使い、経路の条件は管理画面で設定してください。5,000円・10,000円・30,000円で実行段階を確認します。実行条件で許可される文法と3種類の関数だけを使い、金額が未入力の場合の扱いも確認してください。
既存の定義・データ・権限を保持し、Wagby11のguide・referenceを確認してください。利用者向け操作マニュアルを更新し、生成・ビルド後に該当する利用者の画面とAPIで動作を確認してください。

4. 編集されるAppSchemaの例

以下は関連する定義の抜粋です。構文を覚えなくても、誰がどの条件で申請・承認するかをAIへ伝えられます。

entity:
  workflow: { enabled: true }
  attributes:
    # 他の属性は省略
    - name: 購入金額
      name_en: purchaseAmount
      type: number

AppSchemaは条件式で利用する金額項目と、モデルのワークフロー対応を定義します。承認経路の実行条件式は運用設定です。式で使えるのは保存済みの公開スカラー項目などに限られ、非表示項目や参照・ファイルなどは使えません。

5. 参考資料

承認経路と条件
designer/docs/appschema/html/guide/14-workflow/02-routes.html
モデルの準備
designer/docs/appschema/html/guide/14-workflow/01-setup.html
reference:式言語(ワークフローの許可範囲)
designer/docs/appschema/html/reference/16-expression-language.html
ワークフロー仕様:承認ノードの実行条件
designer/docs/java/html/28_workflow.html