メインコンテンツまでスキップ

PURCHASE-001: 物品購入フロー(IM-Workflow)

素材のダウンロード​

本サンプルで使用しているプロンプト素材(Markdown 一式)を以下からダウンロードできます。

概要​

社員が業務に必要な物品(消耗品・備品・機材等)の購入を申請し、部門長承認を経て購買部が発注処理を行うシステム。 申請時に金額を案件プロパティへ設定し、合計金額が一定額以上の場合は経理部承認を経由する分岐ルートを構成する。最終承認完了時に発注データを業務テーブルへ記録する。

対象ユーザ​

ペルソナ説明
一般社員業務に必要な物品の購入を申請する社員。手軽に申請し、進捗を確認したい
部門長部下の購入申請を承認する直属の部門長。業務妥当性と部門予算を考慮して判断する
経理部担当高額な購入申請の最終確認を行う。全社の購買実績と予算消化状況を管理する
購買部担当承認済みの購入申請を受け、取引先への発注処理を行う

ユーザストーリー​

一般社員として​

  • 必要な物品の品名・数量・単価・取引先を入力して購入申請ができる
  • 部門長が未処理であれば申請を引き戻して修正・再申請できる
  • 不要になった申請を取り止めることができる
  • 差し戻された申請のコメントを確認し、修正して再申請できる

部門長として​

  • 部下の購入申請の内容(品目・金額・取引先・利用目的)を確認し、承認・差戻し・否認できる
  • 差戻し・否認時はコメントで理由を伝えられる
  • 処理を一時保留し、後から再開できる
  • 後続ノードが未処理であれば承認を引き戻せる

経理部担当として​

  • 高額(合計50万円以上)の購入申請に対して内容を確認し、承認・差戻し・否認できる
  • 差戻し先を申請者または部門長から選択できる
  • 全社予算と照らして必要に応じて差戻しを行える

購買部担当として​

  • 全承認済みの購入申請を受け、取引先への発注処理を行える
  • 発注処理の完了をもって案件を承認終了できる
  • 承認終了時に発注データが業務テーブルへ自動的に記録される

ワークフロー定義​

各定義の詳細は個別のドキュメントを参照。

フロー定義 基本情報​

項目値
フロー名物品購入フロー
フローIDpurchase_request
フローグループテナント既定のグループ
案件名ルール物品購入_[申請者名]_[取引先名]

ルート概要​

機能要件​

F-001: 購入申請​

F-001-1: 申請入力​

  • 申請者は購入申請フォームに必要事項を入力し、申請を行える
  • 申請に必要な情報:
    • 取引先(必須、取引先マスタからの選択式)
    • 利用目的(必須、選択式: 業務消耗品/開発機材/オフィス備品/書籍/イベント用品/その他)
    • 希望納期(必須、申請日の翌日以降)
    • 緊急度(必須、選択式: 通常/至急)
    • 明細行(必須、1〜20行)
      • 品名(必須、最大100文字)
      • 数量(必須、1以上の整数)
      • 単価(必須、1円以上の整数)
      • 小計(自動計算: 数量 × 単価)
    • 合計金額(自動計算: 全明細行の小計の合計)
    • 備考(任意、最大500文字)
  • 申請時に明細行の合計金額を計算し、ユーザプログラムにより案件プロパティ purchase_amount へ設定する(分岐判定で使用)
  • 申請完了時にユーザプログラムにより purchase_request および purchase_request_item テーブルへデータを保存する
  • 申請完了時に部門長へ通知メールを送信する

F-001-2: 申請の引戻し​

  • 申請者は部門長が未処理の申請を引き戻すことができる
  • 引戻し後、申請内容を修正して再申請が可能

F-001-3: 申請の取止め​

  • 申請者は未承認の申請を取り止めることができる
  • 取止め後、案件は完了(取止め)となる

F-001-4: 差戻し後の再申請​

  • 差戻しされた申請を修正して再申請できる
  • 差戻しコメントを確認したうえで修正を行う
  • 再申請時にユーザプログラムにより purchase_request および purchase_request_item テーブルを更新し、案件プロパティ purchase_amount を再設定する

F-002: 承認処理​

F-002-1: 部門長承認​

  • 部門長は部下の購入申請を確認し、承認・差戻し・否認・保留・保留解除を行える
  • 承認時の確認事項:
    • 申請内容(品目・数量・単価・取引先・合計金額)
    • 利用目的の業務妥当性
    • 部門予算との整合性
  • 差戻し時は差戻しコメントの入力が必須(最大300文字)
  • 差戻し先は申請ノードとする
  • 否認時は否認理由の入力が必須(最大300文字)
  • 保留時は本人以外の処理対象者の処理が禁止される
  • 後続ノードが未処理の場合、部門長は引戻しが可能
  • 処理完了時に申請者へ結果通知メールを送信する

F-002-2: 経理部承認(合計金額50万円以上の場合のみ)​

  • 経理部担当者は部門長承認済みの高額購入申請を確認し、承認・差戻し・否認・保留・保留解除を行える
  • 経理部承認は分岐ルートにより、合計金額(案件プロパティ purchase_amount)が50万円以上の場合のみ経由する(BR-003)
  • 承認時の確認事項:
    • 申請内容(品目・数量・単価・取引先・合計金額)
    • 全社購買予算との整合性
    • 取引先の与信・信頼性
  • 差戻し時は差戻しコメントの入力が必須(最大300文字)
  • 差戻し先は申請ノードまたは部門長承認ノード(任意の処理済みノード)を選択可能
  • 否認時は否認理由の入力が必須(最大300文字)
  • 保留時は本人以外の処理対象者の処理が禁止される
  • 処理完了時に申請者へ結果通知メールを送信する

F-002-3: 購買部発注処理​

  • 購買部担当者は全承認済みの購入申請を受け、発注処理を承認終了として行える
  • 承認終了時の確認事項:
    • 申請内容(品目・数量・単価・取引先・合計金額)
    • 取引先への発注内容
  • 承認終了時にユーザプログラムにより purchase_orders テーブルへ発注データを INSERT する
  • 差戻し時は差戻し先を申請ノードまたは経理部承認ノード(経由している場合)から選択可能
  • 処理完了時に申請者へ結果通知メールを送信する

F-003: 合計金額の自動計算​

  • 申請画面で明細行を入力するたびに小計(数量 × 単価)と合計金額をクライアント側で自動計算する
  • 申請ボタン押下時にサーバ側で再計算し、案件プロパティ purchase_amount に確定値を設定する

非機能要件​

性能要件​

  • 画面表示: 3秒以内
  • 申請・承認処理: 2秒以内
  • 同時接続ユーザ数: 300人

ビジネスルール​

IDルール
BR-001明細行は1〜20行の範囲でなければならない
BR-002各明細行の数量は1以上の整数、単価は1円以上の整数でなければならない
BR-003合計金額が50万円以上の場合、経理部承認ノードを経由する(案件プロパティ purchase_amount で判定)
BR-004希望納期は申請日の翌日以降でなければならない
BR-005取引先は取引先マスタに存在する取引先のみ選択可能
BR-006合計金額は全明細行の小計の合計と一致しなければならない(サーバ側で再計算して保存)
BR-007承認終了時にユーザプログラムにより purchase_orders テーブルへ発注データを記録する
BR-008否認・取止めされた申請は発注データを生成しない。purchase_request のデータは履歴として保持する

画面一覧​

画面ID画面名IM-Workflow画面種別概要
SCR-001購入申請申請画面 / 再申請画面購入申請の入力フォーム。明細行の動的追加・削除に対応。再申請時は差戻しコメントを表示
SCR-002処理処理画面承認者が申請内容を確認し、承認・差戻し・否認・保留を行う画面
SCR-003処理詳細処理詳細画面処理対象者が案件の詳細を参照する画面
SCR-004参照詳細参照詳細画面参照者が案件の詳細を参照する画面

画面項目定義​

SCR-001: 購入申請画面(申請画面 / 再申請画面)​

項目名入力種別必須備考
申請者表示のみ-ログインユーザ名を自動表示
所属組織表示のみ-ログインユーザの所属組織を自動表示
取引先セレクト○取引先マスタからの選択
利用目的セレクト○業務消耗品/開発機材/オフィス備品/書籍/イベント用品/その他
希望納期日付○カレンダーピッカー。申請日の翌日以降
緊急度ラジオ○通常/至急
明細行動的テーブル○品名/数量/単価/小計の行を1〜20行で追加・削除可能
┗ 品名テキスト○最大100文字
┗ 数量数値○1以上の整数
┗ 単価数値○1円以上の整数
┗ 小計表示のみ-数量 × 単価を自動計算
合計金額表示のみ-全明細行の小計の合計を自動計算
備考テキスト-最大500文字
差戻しコメント表示のみ-再申請時のみ表示。承認者の差戻しコメントを表示

SCR-002: 処理画面(承認者向け)​

項目名入力種別必須備考
申請者表示のみ-申請者名
所属組織表示のみ-申請者の所属組織
取引先表示のみ-申請内容を表示
利用目的表示のみ-申請内容を表示
希望納期表示のみ-申請内容を表示
緊急度表示のみ-申請内容を表示
明細行表示のみ-品名/数量/単価/小計を一覧表示
合計金額表示のみ-申請内容を表示
備考表示のみ-申請内容を表示
コメントテキスト△差戻し・否認時は必須。最大300文字

SCR-003: 処理詳細画面(処理対象者向け)​

項目名入力種別備考
申請者表示のみ申請者名
所属組織表示のみ申請者の所属組織
取引先表示のみ申請内容を表示
利用目的表示のみ申請内容を表示
希望納期表示のみ申請内容を表示
緊急度表示のみ申請内容を表示
明細行表示のみ品名/数量/単価/小計を一覧表示
合計金額表示のみ申請内容を表示
備考表示のみ申請内容を表示
処理履歴表示のみ各ノードの処理履歴を表示

SCR-004: 参照詳細画面(参照者向け)​

SCR-003(処理詳細画面)と同一のレイアウト・項目を使用する。

データモデル(概要)​

ユーザデータ(ユーザコンテンツ管理範囲)​

購入申請ヘッダ (purchase_request)
├── ユーザデータID (PK)
├── 申請者ユーザID
├── 取引先ID
├── 利用目的区分
├── 希望納期
├── 緊急度区分 (normal/urgent)
├── 合計金額
├── 備考
├── 作成日時
└── 更新日時

購入申請明細 (purchase_request_item)
├── 明細ID (PK)
├── ユーザデータID (FK)
├── 行番号
├── 品名
├── 数量
├── 単価
├── 小計
├── 作成日時
└── 更新日時

発注 (purchase_orders)
├── 発注ID (PK)
├── ユーザデータID (FK)
├── 取引先ID
├── 発注日
├── 合計金額
├── 発注者ユーザID(購買部担当)
├── 作成日時
└── 更新日時

案件プロパティ​

プロパティキー設定タイミング用途
purchase_amount申請時合計金額。分岐ルートの判定およびメール置換で使用
vendor_name申請時取引先名。案件名生成およびメール置換で使用

用語集​

用語説明
取引先物品を購入する仕入先。事前に取引先マスタへ登録された企業のみ選択可能
明細行1つの購入申請に含まれる品目ごとの行。1申請につき1〜20行まで登録可能
高額申請合計金額が50万円以上の購入申請。経理部承認ノードを経由する
発注承認終了後に購買部が取引先に対して購入を依頼すること