コンテンツ定義: 物品購入コンテンツ
本書は specification.md の「コンテンツ定義」セクションを詳細化したものである。
基本情報
| 項目 | 値 |
|---|---|
| コンテンツ名 | 物品購入コンテンツ |
| コンテンツID | purchase_request_content |
画面定義
画面定義一覧
| 画面種別 | 画面ID | パス種別 | スクリプトパス | 初期使用 | 備考 |
|---|---|---|---|---|---|
| 申請画面 | SCR-001 | スクリプト開発 | purchase/apply/apply | ○ | imwUserDataIdはファンクション・コンテナで採番 |
| 再申請画面 | SCR-001 | スクリプト開発 | purchase/apply/apply | ○ | 申請画面と同一。差戻しコメントを追加表示 |
| 処理画面 | SCR-002 | スクリプト開発 | purchase/approve/approve | ○ | 申請内容を読み取り専用で表示 |
| 処理詳細画面 | SCR-003 | スクリプト開発 | purchase/detail/detail | ○ | 参照のみ |
| 参照詳細画面 | SCR-004 | スクリプト開発 | purchase/detail/detail | ○ | 処理詳細画面と同一画面を使用 |
画面項目定義
画面項目の詳細は specification.md - 画面項目定義 を参照。
ユーザプログラム定義
開発モデル
| 項目 | 値 |
|---|---|
| 開発モデル | スクリプト開発モデル(SSJS) |
| 画面技術 | JSSP(HTMLテンプレート + ファンクション・コンテナ) |
| ユーザプログラム | サーバサイドJavaScript(アクション処理 / 案件終了処理) |
アクション処理一覧
| プログラム名 | 配置パス | 対象ノード | 処理内容 |
|---|---|---|---|
| ActionProcess1 | purchase/action/ActionProcess1.js | 申請ノード | 申請・再申請時のデータ保存・バリデーション・案件プロパティ設定 |
| ActionProcess2 | purchase/action/ActionProcess2.js | 購買部承認ノード | 承認終了時の発注データ記録 |
ActionProcess1(申請ノード用)の処理詳細
| 処理種別 | ステップ | 処理内容 | 対応ルール |
|---|---|---|---|
| apply(申請) | 1 | ユーザパラメータから画面入力値(ヘッダ・明細行)を取得 | - |
| 2 | バリデーション: 明細行数 1〜20 | BR-001 | |
| 3 | バリデーション: 各明細行の数量 ≧ 1、単価 ≧ 1 | BR-002 | |
| 4 | バリデーション: 希望納期 ≧ 申請日 + 1日 | BR-004 | |
| 5 | バリデーション: 取引先IDが取引先マスタに存在 | BR-005 | |
| 6 | サーバ側で各明細行の小計および合計金額を再計算 | BR-006 | |
| 7 | 検証エラー時、resultFlag = false + エラーメッセージを返却 | - | |
| 8 | purchase_request へ INSERT(キー: userDataId) | - | |
| 9 | purchase_request_item へ明細行を一括 INSERT | - | |
| 10 | 案件プロパティ purchase_amount に合計金額を設定 | BR-003 | |
| 11 | 案件プロパティ vendor_name に取引先名を設定 | - | |
| 12 | resultFlag = true を返却 | - | |
| reapply(再申請) | 1 | ユーザパラメータから画面入力値を取得 | - |
| 2-7 | バリデーション・合計金額再計算(申請時と同様) | BR-001, 002, 004, 005, 006 | |
| 8 | purchase_request を UPDATE、purchase_request_item を全削除後に再 INSERT | - | |
| 9 | 案件プロパティ purchase_amount・vendor_name を再設定 | BR-003 | |
| 10 | resultFlag = true を返却 | - |
ActionProcess2(購買部承認ノード用)の処理詳細
| 処理種別 | ステップ | 処理内容 | 対応ルール |
|---|---|---|---|
| approveEnd(承認終了) | 1 | userDataId をキーに purchase_request からヘッダデータを取得 | - |
| 2 | purchase_orders へ発注データを INSERT(発注者は処理者ユーザID) | BR-007 | |
| 3 | resultFlag = true を返却 | - | |
| その他(approve / deny / sendBack 等) | - | 業務データ操作不要。resultFlag = true を返却 | BR-008 |
案件終了処理
| プログラム名 | 配置パス | 処理内容 |
|---|---|---|
| MatterEndProcess | purchase/action/MatterEndProcess.js | メール送信可否を返却(data = true で送信する) |
通知定義
通知方式
| 項目 | 値 |
|---|---|
| 通知方式 | メール通知 |
| 定義方式 | メッセージ定義(推奨方式) |
| IMBox通知 | 使用しない |
メール送信一覧
| 送信タイミング | 通知種別 | 送信先 | 件名例 |
|---|---|---|---|
| 申請時 | 処理依頼 | 部門長 | 物品購入申請が届きました |
| 部門長承認時 | 処理依頼 | 経理部/購買部 | 物品購入申請の承認が必要です |
| 経理部承認時 | 処理依頼 | 購買部 | 物品購入申請の発注処理が必要です |
| 承認時 | 処理結果通知 | 申請者 | 物品購入申請が承認されました |
| 承認終了時 | 処理結果通知 | 申請者 | 物品購入申請の発注が完了しました |
| 差戻し時 | 処理結果通知 | 申請者 | 物品購入申請が差し戻されました |
| 否認時 | 処理結果通知 | 申請者 | 物品購入申請が否認されました |
置換文字列
メール本文内で以下の置換文字列を使用可能。
| 置換文字列 | 説明 |
|---|---|
| 案件プロパティ値 | purchase_amount(合計金額)、vendor_name(取引先名) |
| intra-mart URL | 処理画面・参照画面へのリンク |
案件プロパティ
| プロパティキー | 設定タイミング | 用途 |
|---|---|---|
| purchase_amount | 申請時 | 合計金額。分岐ルートの判定およびメール置換で使用 |
| vendor_name | 申請時 | 取引先名。案件名生成およびメール置換で使用 |
ルール定義
合計金額に応じて経理部承認ノードを経由するか分岐するため、ルール定義を設定する。
ルール一覧
| ルールID | 判定キー(案件プロパティ) | 比較条件 | 条件値 | 分岐先 |
|---|---|---|---|---|
| RULE-AMOUNT-LOW | purchase_amount | 未満 | 500000 | 経理部承認をスキップ |
| RULE-AMOUNT-HIGH | purchase_amount | 以上 | 500000 | 経理部承認ノードへ進む |
- 分岐の構成は route_definition.md のルート構成図を参照
- ルール判定は分岐開始ノードで実行される
関連ドキュメント
- specification.md - 仕様書本体
- flow_definition.md - フロー定義
- route_definition.md - ルート定義