Karino / Still / KPM — Data Integration Specification

苅野・スティル・KPM データ連携仕様

作成日 2026-08-25 最終更新 2026-09-02(§3 に振り分けの見取り図を追記)。前回 2026-09-01 第2版(工程×仕入先ルールの明文化・§3.1 工程整合バリデーション新設・混在受注422の原因特定・§9 追加実装事項の洗い出し新設) 作成者 宮村(AI整理) ペア文書 苅野スティルKPM_データ連携仕様_20260825.md

位置づけ:正本「苅野スティル連携_要求事項・連携仕様・環境別実装事項_20260810.md」からデータ連携仕様のみを抜粋した整理文書。スティル環境の実装スコープ・未解決論点の詳細は正本を参照。矛盾がある場合は正本側が優先。

1連携の全体像

主体役割
苅野Zoho営業・見積・受注・請求・売上、発注管理(マスタの親)。本番稼働中
スティルZoho製造・生産。苅野とKPMの間の仲介地点。未構築(苅野環境のコピーで構築予定)
KPMエキサイター社構築の生産管理システム。REST API(APIキー認証)で受信
現行(暫定・本番稼働中) 苅野Zoho 販売管理(親) スティルZoho 未構築 KPM 生産管理 直接送信(9経路)・S-007A スティル除外あり 戻し:CRM API v8 直接(出荷履歴・入庫管理・納期回答) 正式(目標・切替は Issue #207) 苅野Zoho 卸売・役務は自環境完結 スティルZoho 唯一のKPM送信元 KPM 生産管理 受注処理完了時 受信完了時 出荷準備・入庫・納期回答 2つの箱×2・反映リクエスト
連携経路の現行と正式。正式切替後は苅野→KPMの直接送信を全停止し(納期回答受付APIも例外なし)、苅野・スティル両環境からのKPM送信を同時に有効にしない。

1.1 トランザクション連携の一連の流れ(サマリ)

見積明細の作成から出荷・入庫までの流れと、各段階でどの連携が動くか(正式切替後の姿)。詳細は §3〜§6 を参照。

  1. 1
    見積明細の作成 苅野
    苅野環境で見積明細・明原価(見積明細)を作成する。この段階ではスティル・KPMへの連携は発生しない。
  2. 2
    納期確認(納期回答API・必要な明細のみ) 苅野 スティル KPM
    納期確認依頼を行う見積明細のみ苅野→スティルへ連携し、スティルからKPMへ依頼を送信(POST /delivery-date/requests)。KPMは回答3項目をスティルの見積明細へ書き戻し(Update Records)、スティルが苅野の見積明細へ反映する(§6)。
  3. 3
    受注処理 苅野スティル
    受注処理完了をトリガーに、受注明細(製造レイアウト)を主体とするツリー(明原価・発注明細/発注書/取引先・仕入先マスタ)を苅野→スティルへ連携する(苅野連携フラグ付与。卸売・役務は対象外。§3)。
  4. 4
    KPMへの受注登録 スティルKPM
    苅野からの受信完了を受けて、スティルからKPMへ受注明細・外注情報等を送信する(§5)。以後、KPM側で製造が進行する。
  5. 5
    出荷 KPMスティル苅野
    KPMからスティルへ出荷準備データが届き、スティルで出庫処理と受注明細の数量消込を実行。出庫履歴+消込結果(2つの箱)を苅野へ戻す。出荷請求などの金流データは苅野側で生成する(§4)。あわせて苅野側では出荷全量完了時にスティル仕入先明原価の入庫管理を自動生成する(§4.3)。
  6. 6
    入庫 KPMスティル苅野
    外注の明原価・発注明細に対応する入庫が発生すると、KPMからスティルへ入庫管理データが届き、スティルで入庫処理と明原価の消込を実行。入庫管理データ+消込結果(2つの箱)を苅野へ戻す。出金記録などの金流データは苅野側で生成する(§4)。

2マスターデータ連携(順方向)

送信元 → 先連携データトリガー
苅野スティル商品マスター(製造レイアウト+仕入レイアウト(原材料 RM-・副資材 SM-。卸売品・役務レイアウトは対象外)マスタ作成時・編集時(KPM変更可能項目の変更)
苅野スティル材質マスタMaterial_Types。材質コード MT-+材質名)マスタ作成時・名称変更時
苅野スティル図面管理(KPM連携対象=商品の KPM_Drawing_Management が指すレコード。図面番号・最新リビジョン・図面URL)商品マスタ連携時(依存連携)・リビジョン更新時
スティルKPM商品マスター(苅野連携分+スティル独自分をまとめて)スティルでの作成時 または 苅野からの受信時

3トランザクション連携(順方向)

受注処理により 見積書・見積明細・明原価(見積明細)→ 受注書・受注明細・明原価/発注明細 へ変換され、明原価は仕入先ごとに発注書へ取りまとめられる。

連携の主体は受注明細。受注処理完了をトリガーに、受注明細を起点とするツリー(明原価・発注明細/発注書/取引先・仕入先マスタ)を連携する。見積明細は納期回答API(納期確認依頼)を利用する場合のみ連携する例外で、見積段階のその他のデータは連携しない(2026-08-25 確定)。
送信元 → 先連携データ対象外トリガー
苅野スティル受注明細(製造レイアウト)=連携の主体/明原価・発注明細/発注書(ステータス含む)/取引先・仕入先マスタ(いずれも苅野連携フラグ付与)「卸売」「役務」明細/仕入先=株式会社スティルの明原価(苅野Zohoに残し §4.3 で消込) 2026-09-01 確定受注処理完了時
苅野スティル受注明細の変更差分(KPM変更可能項目に限定:出荷予定日・図面3項目・担当者名・製造指示・外注入出庫予定日・出張検査情報)KPM変更不可項目(数量・品目等。変更は「キャンセル→再受注処理」の例外フローで対応)対象項目の編集時
苅野スティル受注明細キャンセルステータス=キャンセル時
苅野スティル原材料・副資材の明原価(入庫予定):原材料=重量・単価(円/kg)・入庫予定日/副資材=数量・入庫予定日発注前のドラフト発注済ステータス到達時・以後の変更時
苅野スティル見積明細(納期回答API利用時のみの例外連携納期確認依頼を行わない見積明細納期確認依頼時
スティルKPM受注明細/明原価・発注明細/発注書/取引先/仕入先/原材料・副資材入庫予定苅野からの受信完了時
苅野Zoho スティルZoho KPM 受注明細(品目 PD-xxxxx) 素材=スティル(1)・熱処理=外注(2) 加工=なし(0) 明原価:外注(熱処理) 仕入先=他社(例:高熱炉工業) 明原価:外注(鋳造) 仕入先=株式会社スティル 苅野に残す(連携しない) 出荷全量完了時に入庫管理を自動生成し消込(§4.3) 発注書・出金管理・会社間請求突合も苅野側 連携しない 受注明細 苅野連携フラグ=true 明原価:外注(熱処理) 受注登録 PUT /orders 素材=1 → KPM内作として スケジューラーへ outsource.heat_treatment 必須・数量一致チェック 受注処理完了時 受信完了時に送信 ツリーとして連携 外注情報として送信 ⚠ 工程=スティル(1)・なし(0) の工程に外注情報を付けて送ると 422 invalid_combination で受注ごと拒否(PD-90353-S・2026-08-06 E2E) 工程=外注(2) の工程は対応する外注情報が必須(数量一致)。この整合を入力段階で守らせるのが §3.1 の工程整合バリデーション
混在受注(素材=スティル・熱処理=外注・加工=なし)での明原価の振り分け。受注明細と他社仕入先の明原価は苅野→スティル→KPMへ連携され、スティル仕入先の明原価だけが苅野に残って §4.3 の方式で消込まれる。

3.1 工程整合バリデーション 2026-09-01 新規要件・未実装

品目マスタの製造区分(工程宣言)と、紐付ける明原価(外注区分×仕入先)の不整合(ねじれ)を入口で防ぎ、KPM 422 invalid_combination の発生を入力段階で予防する。2026-08-06 E2Eの混在受注422は、素材・熱処理ともスティル宣言の品目(PD-90353-S)に他社仕入先の明原価を紐付けて送ったことが原因と特定されており(§8-1)、E2E設計時でも作り込んでしまうねじれデータを現場入力で防ぐ必要がある。

品目の製造区分(工程ごと)許可される明原価エラーとするケース
スティル(1)仕入先=株式会社スティルのみ他社仕入先の明原価(混在受注422の原因パターン)
外注(2)スティル以外の仕入先(鋳造=1件まで、熱処理・加工=複数可)仕入先=株式会社スティルの明原価/明原価ゼロ(受注処理時のみ判定)
なし(0)明原価なし当該工程の明原価が存在する
タイミング挙動
1見積作成ウィジェット・明原価紐付け時警告表示(ブロックしない。見積段階は仕入先未確定・相見積があり得るため)
2受注処理時ブロック。既存の生産管理必須データバリデーション(入庫予定日等)に追加。ウィジェット外の作成経路(レコード直接作成・インポート・関数生成)も必ず通る関門として機能させる
3KPM送信前チェック最後の砦。既存の数量一致チェックと同列

4トランザクション連携(逆方向)

フロー送信元 → 先データトリガー
出荷KPMスティル出荷準備データ出荷準備完了時
出荷スティル苅野出庫履歴データ+受注明細消込結果(2つの箱)出庫処理完了時
入庫KPMスティル入庫管理データ外注明原価・発注明細に対応する入庫発生時
入庫スティル苅野入庫管理データ+明原価・発注明細消込結果(2つの箱)入庫処理完了時

4.1 KPM→Zoho 戻しの現行仕様(受け口実装済み)

KPMが Zoho CRM API v8 を OAuth 2.0 で直接呼ぶプッシュ方式(正本: 苅野様_KPM→ZohoAPI連携仕様整理.xlsx。項目定義は 2026-08-24 に実環境一致を確認済み)。

用途API宛先モジュールキー・注意点
出荷履歴の作成Insert RecordsShipment_HistorySales_Order_Line_Item ルックアップへ事前に渡した受注明細ID(ZohoレコードID)で紐付け。登録先レイアウト「生産連携」を固定 Layout.id で指定(本番 32322000000407862
入庫管理の作成Insert RecordsInbound_Managementpayload の項目名は Quotation_Item_Cost だが入る値は明原価・発注明細(Purchase_Order_Line_Item_Cost)のレコードID(名前と実体のねじれに注意)。inbound_quantity(合格)/rejected_quantity(不合格)/Accounting_Confirmed
納期回答の更新Update RecordsQuote_ItemsLatest_Start_DateEarliest_Shipping_DateDelivery_Date_Error の3項目を更新

4.2 金流データ生成の制御原則

原則:金流データ(出荷請求・入金予定・出金記録等)は商流の当事者環境でのみ生成。物流・在庫系データ(出庫履歴・消込)は処理を行う環境で生成
処理スティル環境(苅野連携分)苅野環境スティル環境(独自受注)
出庫履歴生成・在庫減算・数量消込実行戻し連携で反映実行
出荷請求明細・出荷請求・入金予定生成しない生成生成
入庫処理・入庫算消込実行戻し連携で反映実行
出金記録・出金予定日生成しない生成生成

4.3 苅野に残るスティル仕入先明原価の消込・出金 2026-09-01 確定

スティル仕入先の明原価はスティルへ連携されず(§3)、KPMでは内作工程のため外注入庫データも発生しない。苅野側の消込は以下の方式で行う。

項目内容
方式親受注明細の出荷が全量完了した時点で、紐づく仕入先=株式会社スティルの明原価すべてに入庫管理レコードを自動生成して全量入庫済みにする(合格数量=明原価数量、入庫日=出荷完了日)
部分出荷消し込まない。受注明細数量と各明原価数量は1対1対応ではなく(工程ごとに数量が異なる・重量ベース等)、按分規則が要件として定義できないため、全量完了時一括が唯一成立する方式
経理確認済FALSE で生成。出金記録の生成は経理が確認済チェックを入れた時点とし、「出荷=支払確定」の会計判断は自動化しない(他社外注分と同運用)。経理はスティルからの会社間請求と突合してチェックする
実装注意明原価ステータスの直書きは禁止(入庫残数量更新が入庫管理レコードの合格数量合計から再計算するため巻き戻る)。入庫管理レコード生成方式で既存連鎖(統合更新→ステータス更新→発注書ステータス再計算→経理確認済→出金記録)に乗せる
判定・除外スティル判定は仕入先レコードIDで行う(名称文字列比較は避ける)。値引き行(Is_Discount_Line)は除外。出荷取消・返品時の巻き戻しは詳細設計で定義
内作原価苅野連携分の内作原価(材料・工数・重量実績)はKPM側で管理し、Zohoスティル環境に内作明原価は作らない

5KPM API 連携経路(現行9経路・本番稼働中)

方式:Zoho CRM → KPM の一方向 Outbound、REST/JSON、APIキー認証(x-api-key)。組織変数 kpm_api_base_urlkpm_api_key

OpenAPI経路対象モジュールトリガー状態
PUT /api/v1/items/{code}Products初回ボタン、以後編集時WF(製造・仕入れレイアウトのみ。卸売品・役務は対象外)正常受理
PUT /api/v1/orders/{order_detail_number}Sales_Order_Line_Item ほか作成時1本+編集時5本のWF正常受理
DELETE /api/v1/orders/{…}Sales_Order_Line_Itemステータス=キャンセル時正常受理
POST /api/v1/delivery-date/requestsQuote_Itemsボタン「納期確認依頼」404・成功未確認
PUT /api/v1/customers/{id}Accounts作成・編集WF正常受理
PUT /api/v1/suppliers/{id}Vendors作成・名称変更WF正常受理
PUT /api/v1/materials/{code}Material_Types作成・名称変更WF正常受理
PUT /api/v1/raw-material-receipts/{id}Purchase_Order_Line_Item_Cost発注済×原材料本番未検証
PUT /api/v1/sub-material-receipts/{id}Purchase_Order_Line_Item_Cost発注済×副資材本番未検証

5.1 外部キー

対象キー種別
受注Sales_Order_Line_Item の ZohoレコードIDID系
得意先/仕入先AccountsVendors の ZohoレコードIDID系
原材料・副資材入庫予定/外注情報 numberPurchase_Order_Line_Item_Cost の ZohoレコードIDID系
品目品目コード(PD-RM-SM-Products.id ではない)コード系
材質材質コード(MT-コード系
納期回答Quote_Items.Name(自動採番)コード系
スティル切替時のキーの扱い:ID系は総入れ替えになる。得意先・仕入先はKPM側で対応表による上書き(合意済み)、トランザクション系はKPM内リセット+再登録の方針(範囲・時期は未確定、エキサイター社 C-1-a)。コード系は苅野の値のままスティル経由で連携し切替をまたいで連続(2026-08-04 認識合わせ済み)。

5.2 送信仕様の要点

6納期回答受付APIの一本化(2026-08-19 確定)

納期回答受付API(POST /api/v1/delivery-date/requests)も含め、KPMとのやりとりはスティルZohoに一本化する。

苅野Zoho 見積明細(発注元) スティルZoho 唯一の依頼元 KPM 生産スケジュール ① 見積明細連携・納期確認依頼 (納期回答用途のみ・対応キーは未設計) ② POST /delivery-date/requests ③ Update Records で回答3項目を更新 Latest_Start_Date / Earliest_Shipping_Date / Delivery_Date_Error ④ 更新を検知して反映リクエスト
納期確認依頼と回答の往復。回答は同期レスポンスでは返らず、KPM→スティルの Update Records(③)で戻る。苅野への反映はスティル発のリクエスト(④)で行う。
#確定事項
1納期回答の戻し先はスティルZohoのみ。苅野への反映はスティル側からのリクエストで実施
2戻し時にZoho側ワークフローは発火する(KPMは trigger キー未送信)。KPM側改修は不要
3estimate_detail_numberQuote_Items.Name(自動採番)を使用
4回答3項目は同期レスポンスではなく KPM→Zoho の Update Records で返る

7暫定処理と正式切替

8未確定事項(データ連携仕様に関わるもの)

#事項確認先
1混在受注の 422 は原因特定済み(2026-09-01):E2Eフィクスチャの工程不整合(PD-90353-S=素材・熱処理ともスティル宣言・加工なしの品目に、高熱炉工業の明原価を外注情報として送付)によるKPM仕様通りの拒否と判明。該当工程=外注と宣言した品目での正フィクスチャ再実証が残タスク(A-1は「整合ルールの明文確認」へ再定義して確認継続)。外注なし受注の 500 は未解決社内(再E2E)・エキサイター社 A-1・A-2
2トランザクション系キーのリセット+再登録の範囲・時期・KPM側実績の扱いエキサイター社 C-1-a
3対応キー設計:見積明細(納期回答API用途・両環境に同番号が並ぶ)に加え、受注明細・明原価等の連携対象トランザクション全体での苅野ID⇔スティルID対応保持(変更差分・キャンセル・戻し連携の前提)社内
4出荷・入庫の数量上限判定の責務分界(入力規則がAPI経由で効かない)エキサイター社・苅野様
5出荷フローの詳細仕様(項目・形式・戻しタイミング・エラー再処理)エキサイター社・苅野様
6品目・材質コードの採番方式(U-17)。苅野一元登録が妥当との社内チェック済み(2026-09-01)・最終確認のみ苅野様
7原材料・副資材入庫予定の本番検証の段取り(KPM側に取消経路なし)エキサイター社 A-5
8数量・品目等KPM変更不可項目の変更時の「キャンセル→再受注」例外フローの定義社内
9図面URL(苅野環境参照)のアクセス権の現状確認社内
10切替前(暫定経路期間)に溜まった既存スティル仕入先明原価の滞留分の清算方針社内・苅野様(切替タスク)
11§4.3 確定仕様(経理確認済チェック運用=会社間請求との突合)の運用共有苅野様・スティル経理
12出荷完了後の出荷取消・返品時の巻き戻し(§4.3 で自動生成した入庫管理の取消)の詳細設計社内
13工程整合バリデーション(§3.1)の詳細設計・実装(見積作成ウィジェット警告・受注処理時ブロック・品目複製への誘導メッセージ)と、品目複製運用(採番・KPM初回送信・製造手順再設定の連鎖)の許容可否確認社内→苅野様

9現状からの追加実装事項(洗い出し)

現状=苅野Zoho→KPM直接送信(9経路)が本番稼働中/KPM→苅野Zohoの戻し受け口(出荷履歴・入庫管理・納期回答)実装済み/S-007A稼働中/スティルZoho未構築。この状態から §1〜§7 の正式経路を実現するために追加で必要な実装を環境別に洗い出す。実装スコープの詳細は正本(20260810 整理文書 §4)を参照。

9.1 苅野Zoho環境への追加実装

#追加実装内容・参照
K-a苅野→スティルのマスタ同期送信商品(製造+仕入レイアウト)・材質・図面管理を作成/編集時に即時送信。依存マスタ(得意先・仕入先・材質・図面管理)の先行連携で順序保証(§2)
K-b苅野→スティルのトランザクション送信受注処理完了時に受注明細ツリー(明原価・発注明細/発注書/取引先・仕入先)を送信。仕入先=株式会社スティルの明原価と同仕入先のみの発注書は除外。連携項目はホワイトリスト方式でKPM系制御項目を送らない(§3)
K-c変更差分・キャンセル・原材料/副資材の送信KPM変更可能項目の編集差分、ステータス=キャンセル、原材料・副資材明原価の発注済到達時・変更時の送信(§3)
K-d見積明細連携(納期回答API利用時のみ)納期確認依頼を行う明細だけをスティルへ連携。苅野ID⇔スティルIDの対応キー設計が前提(§6、§8-3)
K-e工程整合バリデーション品目の製造区分×明原価(外注区分×仕入先)の整合チェック。ウィジェット警告・受注処理ブロック・KPM送信前チェックの3層+品目複製への誘導メッセージ(§3.1)
K-fスティル仕入先明原価の消込自動化親受注明細の出荷全量完了時に入庫管理レコードを自動生成(経理確認済=FALSE)。既存連鎖(統合更新→Status→発注書→出金)に乗せる(§4.3)
K-gスティルからの戻し受信出庫履歴+受注明細消込、入庫管理+明原価消込(2つの箱×2)の受信・反映。既存WF(出荷管理_統合更新等)が発火する書き込み方式+再送時の二重生成を防ぐ冪等性ガード(§4)
K-h苅野ID⇔スティルID対応の保持・対応表出力連携時に相手環境レコードIDを保持する項目の新設。得意先・仕入先はKPM側上書き用の対応表を出力(§5.1)
K-i受注URL相互参照苅野受注書URL→スティル貼付、成立時にスティルURL→苅野戻し(識別方式は要確定)
K-j正式切替時の直接送信全停止KPM送信WF・ボタン・関数(納期確認依頼ボタン含む)の無効化+S-007A削除(§7・Issue #207)
K-kエラー通知の拡充(要判断)得意先・仕入先・材質・原材料/副資材入庫予定には結果記録項目・再送導線が無い(関数ログのみ)。スティルが唯一の送信元になる前に補強するか、不足承知で移植するかを決める

9.2 スティルZoho環境への追加実装(環境自体が新規構築)

#追加実装内容・参照
S-a環境構築(苅野コピー)とコピー起因の手当て組織変数(KPM接続先・スティル専用APIキー)、レイアウトID直書きの全置換(Deluge 16関数97箇所・CS 28ファイル43箇所)、Connection再認可、KPM関連WF25本の有効/無効再設定、自動採番カウンタの扱い
S-b苅野からの受信処理マスタ・トランザクションの受け口。受信データへ「苅野環境からのデータ連携」フラグを付与
S-cスティル→KPM送信の起動受信処理がツリー全件保存を完了した直後に送信関数を直接呼ぶ。既存のKPM送信WFはスティル環境では無効化。S-007Aは移植せず削除(§3・§7)
S-d採番の無効化苅野一元登録前提のため、送信関数内の採番ブロック(RM-/SM-/MT-)を除去し、苅野から受け取ったコードをそのまま使う
S-e苅野連携分の編集不可制御フラグtrueのレコードをGUI編集不可に(Client Script/Record Locking等、手段は要設計)
S-f金流データ生成の抑止分岐苅野連携分は出荷請求作成・出金記録生成をスキップ(親明細フラグ判定)。スティル独自受注は通常生成(§4.2)
S-gKPM→スティル受信の付け替え受け入れ受け口自体はコピーで移るが、出荷履歴「生産連携」レイアウトの新Layout IDをKPMへ連携し差し替えてもらう
S-hスティル→苅野の戻し送信(全面新規)出庫履歴+消込・入庫管理+消込(2つの箱×2)と、納期回答の苅野反映リクエスト
S-i納期確認依頼の実装整理現行の同期レスポンス分岐(機能しない)を除去し、KPMからのUpdate Records受信を前提に再構成(§6)
S-j環境見分け画面色(赤)または会社名・ロゴ表示(手段未確定)

9.3 KPM側(エキサイター社への依頼・確認)

#事項参照
E-a戻し接続先の付け替え(苅野→スティル。OAuth認証情報・出荷履歴Layout ID)C-2
E-b環境別APIキーの発行(苅野用・スティル用の分離)B-2
E-c得意先・仕入先IDの対応表上書き、トランザクション系のリセット+再登録(範囲・時期・実績の扱い)C-1-a
E-d受注受理条件(製造区分と外注情報の整合ルール)の明文確認(A-1再定義)、外注なし受注500の解消、納期回答404の解消、原材料/副資材の検証段取りA-1・A-2・A-3・A-5

9.4 検証・移行タスク

#タスク参照
T-a正フィクスチャ(該当工程=外注と宣言した品目)での混在受注E2E再実証§8-1
T-b原材料・副資材入庫予定の本番検証(KPM側取消経路の段取り後)§8-7
T-c暫定経路期間に苅野へ溜まったスティル仕入先明原価の滞留分清算§8-10
T-d正式切替リハーサル(切替手順・仕掛中案件の扱い・二重送信防止の確認)§7・Issue #207