TATEKANOS Canonical Commercial Architecture
Date: 2026-03-15 JST
Status: Working draft
Purpose: Mitsumori / Toriteki / TATEKAN Core の責務、canonical schema、共通 master、標準連携フローを固定し、個別最適を避けた再設計の正本たたき台とする
1. Architecture Decision (PM-approved 2026-03-16)
master management strategy は次の 3-phase で確定した。
- Phase 1 (NOW):
tatekanos_shared に canonical master model を library として追加する
- Phase 2 (post-Toriteki + Mitsumori beta):
Core を master-only scope で先行起動し、department / building / business_code / customer / supplier の単一正本とする
- Phase 3 (long-term): 必要なら
tatekanos_shared の service 化を検討する
補足:
Con (TATEKAN Control) は master authority にしない
Core は beta 後までは pure master authority ではなく、Phase 1 中は各サービスが shared schema + local Datastore で運用する
- 本文書でいう
Core = pure master authority は Phase 2 以降の責務 として読む
2. 結論
TATEKANOS の標準形は、次の 3 層構造とする。
Mitsumori
- 見積正本
- 商流コンテキスト正本(受注前)
- 顧客受注確定まで
Toriteki
- 仮案件
- 発注
- 履行
- 検収
- 発注/履行進行の正本
TATEKAN Core
- 共通 pure master 正本
- 受注後商流正本
- 請求 / 入金 / 会計IF 正本
- change set 正式確定
MARCURY は起票元ではなく、商流属性 / 外部連携属性 として扱う。
標準連携フローは次の通り。
Mitsumori
-> Core
-> Toriteki
-> Core
-> Accounting Adapter
ただしこれは単純な直列ではなく、役割分担は次のように固定する。
Mitsumori: 顧客向け見積と商流前段
Toriteki: 協力会社発注と履行実績
Core: 受注後商流と共通 master と請求/入金/会計
3. 設計原則
3.1 canonical schema 先行
Core の現行物理DBや GLOVIA販売 テーブルに全体設計を従属させない
- 先に
TATEKANOS canonical schema を定義し、その後に Core/GLOVIA へマッピングする
- 物理実装は現行 Core を活かしてよいが、論理設計はそこに縛られない
3.2 pure master と運用拡張の分離
pure master は Core に寄せる。
department
building
business_code
customer
supplier
運用拡張は App 側または tenant adapter 側に分ける。
customer 運用拡張
- 見積段階では
Mitsumori
- 受注後は
Core
supplier 運用拡張
Toriteki
3.3 pure building / pure customer / pure supplier
building は pure master に保つ
customer は pure master に保つ
supplier は pure master に保つ
請求先 / 契約先 / 管理会社 / 元請商流先 のような役割情報は master に持たせず、commercial_context に寄せる
3.4 標準形と例外形
- 標準形は
Core 併用
Mitsumori単独 は正式にあり得る
Toriteki単独 は標準外オプションとして保留する
4. canonical schema の主要 entity
4.1 共通 master
department
- 組織所属
- 承認系既定値
- 見積既定値
building
- 基本属性
- 所属 department
- 建物種別
business_code
- 業務分類
- 会計/売上区分
- 工事分類
- 集計区分
customer
- pure customer master
supplier
- pure supplier master
4.2 前段商流
quotation
quotation_line
commercial_context
quotation_line_execution_map
補足:
commercial_context は Mitsumori でも正式 entity として持つ
Mitsumori 見積ヘッダ は複数の commercial_context を持てる
見積明細 は commercial_context に明示リンクする
quotation_line と execution_unit は多対多とし、quotation_line_execution_map に
- 按分数量
- 按分金額
- 補足メモ
を持つ
4.3 受注後商流
sales_order
execution_unit
procurement_order
inspection_event
invoice
invoice_line
receipt
payment
accounting_export_batch
accounting_export_line
change_set
approval_event
4.4 粒度ルール
Core受注1件 は sales_order 1 件
sales_order 配下に複数の execution_unit を持てる
execution_unit の標準粒度は 建物 × 業務コード
execution_unit に対して複数の procurement_order を持てる
- 請求は固定粒度ではなく
invoice header + invoice lines
5. アプリ責務
5.1 Mitsumori
責務:
- 見積作成
- 見積承認
- 顧客提示
commercial_context 前段編集
- 顧客受注確定
Core への受注昇格起点
補足:
Mitsumori単独 テナントでは
- 見積作成
- 承認
- 出力/提出
- 受注確度/失注管理
- 簡易受注管理
を標準機能として持つ
Core 導入テナントでは、簡易受注管理は read-only / 補助表示に留める
- 既存の
orders / delegations 相当機能は、Core 併用テナントでは正本機能として維持しない
orders: Core の sales_order 参照または補助表示へ縮退
delegations: 見積承認 / 依頼補助へ再定義するか、不要なら整理対象とする
5.2 Toriteki
責務:
- 受注前の仮案件
- 原価見積/RFQ
- 協力会社発注
- 履行
- 検収
- 請求候補化
補足:
commercial_context は参照のみ
supplier 運用拡張は Toriteki 主編集
Toriteki は最終請求正本や最終会計IF正本を持たない
5.3 Core
責務:
- pure master 正本
sales_order 正本
- 請求対象確定
- 請求確定
- 入金確認
- 会計 export
change_set 正式確定
UI 方針:
Core は基幹/管理ハブ寄り
- 主に扱うのは
- master 管理
- 請求確定
- 入金確認
- change set 確定
6. 商流コンテキスト
6.1 定義
commercial_context は、案件上の相手先関係を保持する entity とする。
最低限含むもの:
6.2 配置原則
building は pure master のまま保つ
- 相手先役割は
building や customer に持たせず、commercial_context に寄せ切る
execution_unit はどの commercial_context に属するかを明示リンクする
6.3 Mitsumori / Core / Toriteki での扱い
Mitsumori
- 見積段階の正式 entity
- 作成・編集を行う
Core
- 受注後の正本
- 継続編集を行う
Toriteki
- 参照のみ
6.4 MARCURY との関係
MARCURY は commercial_context の一属性または外部連携条件として扱う
MARCURY への copy-paste / 提出補助の UI 責務は Mitsumori に置く
- 手動運用が残る場合でも、どの画面がそれを補助するかは
Mitsumori 側で明確に持つ
7. 標準ライフサイクル
7.1 顧客受注前
Mitsumori で quotation と commercial_context を作成
- 必要なら
quotation_line をもとに execution_unit 候補を判定
- 次の OR 条件を満たす場合、
Toriteki に仮案件を起票
- 外注あり
- 工事案件
- MARCURY 連動必要
Toriteki では 建物 × 業務コード 粒度で仮案件を持つ
7.2 顧客受注確定
- 顧客受注/契約が確定した時点で
Mitsumori -> Core
Core に
- quotation
- quotation_line
- commercial_context
- sales_order
を作成
- 条件に応じて
execution_unit を正式生成
7.3 履行・検収
Toriteki で procurement_order を作成
- 発注・履行・納品・検収を行う
inspection_event は Toriteki -> Core へ即時反映
7.4 請求対象化
Toriteki が請求候補を作成
Core が請求対象化を最終確定
invoice / invoice_line を確定
receipt / payment と accounting_export へ接続
8. 変更管理
8.1 change_set
Mitsumori と Toriteki の両方から起票可
- 正式確定は
Core
Core 確定後は Mitsumori / Toriteki へ即時反映
8.2 change_set の対象
- 見積明細
execution_unit
- 受注増減額
- 追加工事
- 差替
- 減額
9. 承認モデル
承認正本は単一システムに寄せず、業務段階ごとに分散する。
Mitsumori
- 見積承認
Toriteki
- 発注承認
Core
- 請求承認
- change set 承認
department が持つ 承認系既定値 は、承認ルートや承認候補者のデフォルト設定を指す。
承認実績そのものの正本は department に持たせず、各業務段階のシステムと approval_event に記録する。
横断監査用に approval_event を共通記録として持つ。
最低限持つ項目:
- 対象ID
- 承認者
- 結果
- 時刻
- コメント
- 承認段階 / ルート情報
10. 3システム横断連携表
| 領域 |
Mitsumori |
Toriteki |
Core |
標準正本 |
department |
参照 |
将来参照 |
管理 |
Core |
building |
参照 |
履行紐付け参照 |
管理 |
Core |
business_code |
見積で使用 |
発注/履行で使用 |
管理 |
Core |
customer pure |
参照 |
原則不要 |
管理 |
Core |
supplier pure |
原則不要 |
参照 |
管理 |
Core |
customer運用拡張 |
前段編集 |
不要 |
後段編集 |
Mitsumori前段 / Core後段 |
supplier運用拡張 |
不要 |
主編集 |
必要時参照 |
Toriteki |
commercial_context |
作成/編集 |
参照のみ |
受注後正本 |
Mitsumori前段 / Core後段 |
quotation |
正本 |
参照起点になり得る |
スナップショット保持 |
Mitsumori |
quotation_line |
正本 |
原価/RFQ起点参照 |
スナップショット保持 |
Mitsumori |
quotation_line_execution_map |
前段作成 |
実行側参照 |
正式保持 |
Mitsumori前段 / Core後段 |
sales_order |
顧客受注確定で昇格 |
参照 |
正本 |
Core |
execution_unit |
条件付き生成元 |
仮案件/履行実体 |
正式保持 |
Core + Toriteki実行 |
procurement_order |
不要 |
正本 |
同期保持 |
Toriteki |
inspection_event |
不要 |
正本 |
即時反映保持 |
Toriteki |
invoice / invoice_line |
単独時は簡易受注まで |
候補生成まで |
正本 |
Core |
receipt / payment |
不要 |
支払予定入力元になり得る |
正本 |
Core |
accounting_export |
不要 |
候補元になり得る |
batch + line 正本 |
Core |
approval_event |
見積承認 |
発注承認 |
請求/変更承認 |
分散正本 + 横断記録 |
change_set |
起票可 |
起票可 |
正式確定 |
Core |
11. Mitsumori / Toriteki の不足・過剰
11.1 Mitsumori に足りないもの
commercial_context の正式 entity 化
quotation_line -> execution_unit 多対多マッピング
business_code 前提の見積構造
customer pure / 運用拡張分離
- 顧客受注確定から
sales_order へ昇格する設計/実装
change_set 起票モデル
Core ありテナントでの簡易受注 read-only 化
11.2 Toriteki に足りないもの
branch / facility から department / building への完全移行
execution_unit = 建物 × 業務コード 粒度への統一
commercial_context 参照前提の設計
procurement_order -> inspection_event -> invoice candidate の canonical 接続
supplier pure / 運用拡張分離
change_set 起票モデル
11.3 Mitsumori に余計なもの
- 受注後商流の本格正本化
- 請求/会計まで持つ方向
agreements / orders を Mitsumori 内部正本として持つ発想
11.4 Toriteki に余計なもの
- 最終請求正本
- 最終会計 export 正本
branch / facility を family 共通 master として維持すること
commercial_context 自前正本化
12. 本書のスコープ外
本書は顧客案件に紐づく商流と履行の canonical architecture を対象とする。
次は本書の直接スコープ外とする。
- 一般購買
- 社内消耗品や事務用品の購買フロー
Toriteki単独 を正式標準形として扱う配備モデル
一般購買は tatekan_responsibility_boundary_memo_20260310.md の整理を参照し、必要に応じて別アーキテクチャで定義する。
13. 実装フェーズ
Phase 1: 共通 master 再編
先行:
department
building
business_code
実装方針:
tatekanos_shared に canonical master model を library として追加する
- Mitsumori / Toriteki は shared schema を採用するが、この phase では各サービスの local Datastore を使う
Core はまだ master authority としては起動しない
後段:
Phase 2: Mitsumori -> Core 主線
最小実装で次を一気に通す。
quotation
quotation_line
commercial_context
- 顧客受注確定で
sales_order 作成
- 条件付き
execution_unit 生成
- これと並行して
Core master-only scope を先行起動し、5 master の単一正本を持たせる
Phase 3: Toriteki -> Core 主線
最小実装で次を一気に通す。
procurement_order
inspection_event 即時反映
- 請求候補化
Phase 4: 後段統制 / optional shared service 検討
customer / supplier 再編
change_set
receipt / payment
accounting_export adapter
- 必要なら
tatekanos_shared service 化の再評価
14. 保留事項
Toriteki単独テナント を正式な標準配備モデルにするか
- tenant ごとの adapter 範囲の詳細
- 現行
Core/GLOVIA 物理DBへの具体的マッピング方式
customer / supplier 後段移行の優先順
15. ClaudeCode レビュー(2026-03-15 19:30 JST)
15.1 全体評価
本文書は responsibility_boundary_memo(2026-03-10)を大幅に発展させた次段の設計文書として十分成立している。canonical schema の定義、pure master vs 運用拡張の分離、commercial_context の first-class entity 化は、Fredy 調査結果とも整合しており設計品質は高い。
15.2 同意する設計判断
- pure master を Core に寄せる判断(department, building, business_code, customer, supplier)
- commercial_context を building/customer に埋め込まず独立 entity とした判断
- execution_unit の標準粒度 = building × business_code
- change_set の分散起票 + Core 確定モデル
- approval_event による横断監査記録
- Mitsumori 単独テナントを正式な標準配備モデルとして認めた判断
15.3 要確認・要明確化の論点
論点1: Mitsumori-first vs Core-first の矛盾解消
responsibility_boundary_memo §3.1 では「Core で案件作成 → Mitsumori で見積作成」としているが、本文書 §6.1 では「Mitsumori で quotation/commercial_context を作成 → 顧客受注確定で Core に sales_order 化」としている。これは逆方向のフローである。
本文書の Mitsumori-first が canonical であるなら、responsibility_boundary_memo の該当箇所を明示的に「旧前提・更新済み」とマークすべき。曖昧なまま残すと実装者が Core-first と Mitsumori-first を混同する。
論点2: department と承認経路のデフォルト設定
Fredy 調査で department に approval_group1-4 が埋め込まれていることを確認した。本文書 §8 では承認を業務段階ごとに分散(Mitsumori=見積承認, Toriteki=発注承認, Core=請求/変更承認)としている。この設計は Fredy パターンより優れている。
ただし明文化が必要: department は「承認のデフォルト設定元」であって「承認実績の正本」ではない。Fredy の承認埋め込みをそのまま継承しないことを明示すべき。
論点3: Mitsumori 既存の /orders, /delegations の扱い
§10.3 で「agreements/orders を Mitsumori 内部正本として持つ発想」を excess と指摘しているが、現在の Mitsumori には既に /orders, /delegations ルートが存在する。移行方針の明確化が必要:
- Core ありテナント: read-only 参照 or Core 昇格前後の補助 UI に縮退
- Mitsumori 単独テナント: 簡易受注管理として限定維持
- delegations: 見積承認/依頼補助へ再定義 or 整理対象
論点4: MARCURY 連携の実務責任
§1 で MARCURY を「商流属性/外部連携属性」として位置付けているのは正しい。ただし、実務的に誰が copy-paste ワークフローを維持するかが未定義。推奨: Mitsumori UI が MARCURY 連携対象案件の提出補助を担う(手動ではあるが UI 責任は Mitsumori 側)。
論点5: 一般購買のスコープ
本文書は顧客案件商流に集中しており、一般購買(社内消耗品・事務用品等)が扱われていない。推奨: §12 保留事項に「一般購買は本 canonical architecture のスコープ外。別アーキテクチャとして扱い、Toriteki を購買ワークフローに流用する余地あり」と明記する。
15.4 追加の設計観察
-
schema と deployment model の分離: Mitsumori 単独可/Toriteki 単独は標準外/Core 標準は「配備モデル」であり、canonical schema とは別の関心事。将来的には別節に分離した方が読みやすい。
-
commercial_context と customer 運用拡張の境界: commercial_context を first-class にした結果、customer 運用拡張との境界を厳密にしないと責務が逆流する。特に請求先/契約先/管理会社は customer 側へ戻さず commercial_context に留めるべき。
-
execution_unit の例外: building × business_code は強い標準粒度だが、time-based recurring services や building をまたがる一括業務が将来出る可能性がある。標準粒度の注記として「例外時は execution_unit を建物横断で束ねる上位 entity を導入する余地あり」程度の escape hatch を記載しておくと安全。
-
Fredy 業務マスターとの関係: 本文書の business_code は Fredy の businesses master に対応する。Fredy 調査で business_code が GLOVIA 連携用コード変換・集計・会計属性付き master であることを確認済み。本文書 §3.1 の business_code 定義(業務分類/会計・売上区分/工事分類/集計区分)は Fredy 実態と整合しており、そのまま採用可能。