PURCHASE-001: 物品購入フロー(IM-Workflow)
素材のダウンロード
本サンプルで使用しているプロンプト素材(Markdown 一式)を以下からダウンロードできます。
- 一括ダウンロード: purchase-of-goods-prompt.zip
- 個別ファイル:
概要
社員が業務に必要な物品(消耗品・備品・機材等)の購入を申請し、部門長承認を経て購買部が発注処理を行うシステム。 申請時に金額を案件プロパティへ設定し、合計金額が一定額以上の場合は経理部承認を経由する分岐ルートを構成する。最終承認完了時に発注データを業務テーブルへ記録する。
対象ユーザ
| ペルソナ | 説明 |
|---|---|
| 一般社員 | 業務に必要な物品の購入を申請する社員。手軽に申請し、進捗を確認したい |
| 部門長 | 部下の購入申請を承認する直属の部門長。業務妥当性と部門予算を考慮して判断する |
| 経理部担当 | 高額な購入申請の最終確認を行う。全社の購買実績と予算消化状況を管理する |
| 購買部担当 | 承認済みの購入申請を受け、取引先への発注処理を行う |
ユーザストーリー
一般社員として
- 必要な物品の品名・数量・単価・取引先を入力して購入申請ができる
- 部門長が未処理であれば申請を引き戻して修正・再申請できる
- 不要になった申請を取り止めることができる
- 差し戻された申請のコメントを確認し、修正して再申請できる
部門長として
- 部下の購入申請の内容(品目・金額・取引先・利用目的)を確認し、承認・差戻し・否認できる
- 差戻し・否認時はコメントで理由を伝えられる
- 処理を一時保留し、後から再開できる
- 後続ノードが未処理であれば承認を引き戻せる
経理部担当として
- 高額(合計50万円以上)の購入申請に対して内容を確認し、承認・差戻し・否認できる
- 差戻し先を申請者または部門長から選択できる
- 全社予算と照らして必要に応じて差戻しを行える
購買部担当として
- 全承認済みの購入申請を受け、取引先への発注処理を行える
- 発注処理の完了をもって案件を承認終了できる
- 承認終了時に発注データが業務テーブルへ自動的に記録される
ワークフロー定義
各定義の詳細は個別のドキュメントを参照。
フロー定義 基本情報
| 項目 | 値 |
|---|---|
| フロー名 | 物品購入フロー |
| フローID | purchase_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万円以上の購入申請。経理部承認ノードを経由する |
| 発注 | 承認終了後に購買部が取引先に対して購入を依頼すること |