月1,400〜2,400枚のFAX注文書(新刊予約)を Gemini Vision で自動読取し、書店マスタ97,234件 (Kintone 連携) と照合してTHINKs一括入力用Excelを生成する。松本課長の手入力工数を「数十時間/月 → 30分/日」に圧縮する。
この 1 週間で「自動化の心臓部」がほぼ完成しました。FAXファイルの自動読み取りから Excel 出力までの一連の流れが動く状態になり、6/2 リリース目標に向けて残るは実地での試験運用と最終確認です。5/18 定例MTG での決定事項・追加要件もこのページに反映しています。
大和書房さんで使われている FAX 注文書の DocuWorks ファイル形式を、追加ソフト購入なし・人手介入なしで PDF に変換できるようになりました。これがプロジェクト最大の技術的不安要素でしたが、完全に解消しています。
従来は Excel ファイル (約 23,000 件) を手動配置する想定でしたが、御社で既に稼働している THINKs から Kintone への日次同期マスタ (97,234 件) を直接参照する方式に変えました。マスタが常に最新で、ファイル受け渡しの手間もゼロです。
毎朝の自動処理が終わったときに、松本さんに「何件処理した/要確認は何件か」を自動でメール送信する機能を組みました。今は西川宛で動作確認できる状態で、本番では松本さんアドレスに切替えます。
[大和書房OCR] 処理完了通知 YYYY-MM-DD HH:MM共有フォルダに FAX ファイル (DocuWorks 形式) が届いたら、自動で検知 → PDF 変換 → OCR 読取 → Excel 出力 まで一気通貫で動くようになりました。人の手は一切介在しません。
毎朝決まった時刻 (例: 8:00) に Windows が自動でパイプラインを起動し、処理結果をログに記録、異常時はメール通知する仕組みが完成しました。RDP 接続を切っていても自動実行されます。
Phase 1 (新刊予約 FAX の自動入力) を 5 つの段階に分けています。段階 1〜2 はほぼ完了、段階 3 (本番環境での試験) からが今後の山場です。
下記 6 項目を 5/30 までに完了させ、6/2 定例で本番リリース判定する想定です。松本さんに確認・同席いただきたい項目が 4 件あります。
6/2 (月) の定例MTG で本番リリース判定 + 同日リリース。それまでに実機テストと最終確認を完了させます。
\【テスト】フォルダ に 20 ファイル 受領(拡材希望/サイン本希望/重ね注文 全て含む)→ ロジック構築・精度検証中。FAX 注文書(新刊予約)の処理を「人手で読んで手入力」から「Pythonが自動読取してExcel出力 → 人は要確認のみ目視」に転換する。完全無人運用ではなく、人間が最後のチェッカーに残る設計。
共有フォルダに届くFAX (PDF / DocuWorks .xdw) を検知 → Gemini Vision OCR → 書店マスタ照合 → THINKs 一括入力用 Excel に追記。松本課長は Excel を THINKs 画面に貼り付けるだけ。
OCR が読み取った書店コード or 書店名を、取次マスタの5段階フォールバック照合で補正。書店コード精度はほぼ 100%。OCR で多少の誤読があっても自動で正しいコードに着地する。
担当者欄は手書きの走り書きが多く OCR 精度が最も低い箇所。「1文字/英数字のみ/カタカナのみ/『様』含む/異体字含む」の5ルールで明らかな誤読を ファックス に統一。「デタラメよりはファックスの方がマシ」という松本課長合意ベース。
予約数 = 1(空欄との混同リスク)・書店コード/名前不一致・信頼度<70% など、要注意レコードに ⚠️ フラグを自動付与。松本課長は「全件確認」ではなく「フラグ付きだけ確認」で済む。
共有フォルダの実態は .xdw 形式。xdwlib (PyPI) + Windows 同梱の XDWAPI.DLL で GUI を一切起動せず .xdw → PDF 変換。DocuWorks Desk の手動印刷も追加ライセンスも不要。
大和書房社内に置いた小型PC上で Python / Windows Task Scheduler が朝 8 時に起動。共有フォルダ監視 → OCR → Excel 追記 → 完了通知(メール/Slack)まで自動。RDP で名古屋から保守可能。
FAX 着信から THINKs 入力まで、3 層(営業現場 → 大和PC上の自動処理 → 松本課長の確認)で完結する。VPN 不要、外部サーバなし、追加ライセンス費 0 円。
flowchart TB
subgraph external["① 営業現場 / 外部"]
fax["✅ 複合機
FAX 受信"]
shop["書店
新刊予約 FAX 送信"]
end
subgraph share["② 大和書房 社内共有フォルダ (Synx)"]
input["✅ 入力前データ
.xdw / .pdf"]
pending["🟡 _pending_xdw/
(現在は xdw を退避)"]
done["✅ 入力済データ
処理済原本"]
end
subgraph pc["③ 大和PC (NucBox4) — Python 自動処理"]
watcher["✅ file_watcher
(watchdog)"]
xdw["🟡 xdwlib_convert
.xdw → .pdf"]
ocr["✅ OCR v7.4
Gemini 2.0-flash"]
master["✅ 書店マスタ照合
23,505件"]
excel["✅ Excel 追記
order_ocr_master.xlsx"]
notifier["🟡 通知
(メール/Slack)"]
end
subgraph user["④ 松本課長 (RDP or 直接)"]
review["人間チェック
Wフラグだけ目視"]
thinks["✅ THINKs 一括入力
(コピペ)"]
end
shop -->|FAX 送信| fax
fax -->|自動転送| input
input -->|.xdw 検知| watcher
input -->|.pdf 検知| watcher
watcher --> xdw
xdw --> ocr
ocr --> master
master --> excel
excel --> notifier
notifier -.->|要確認通知| user
excel --> review
review --> thinks
watcher -->|処理済原本退避| done
松本課長が日次で見る Excel ファイル。「入力中」シートに新規行が追記され、Wチェックフラグだけ確認 → THINKs 画面の取次×書誌ごとに A〜C 列をコピペ。
本Phase 1 では 3 つの登場人物。営業現場(FAX を送る書店)はシステムには現れない。
order_ocr_master.xlsx を開くFAX 着信から Excel 追記まで、1 件あたり 30 秒〜2 分。Gemini API 呼び出し回数を最小化するため、信頼度が低いページのみ Gemini 2.5-pro に再スキャンする 2 段構成。
sequenceDiagram
autonumber
actor shop as 書店
participant fax as 複合機
(FAX)
participant share as 共有フォルダ
(Synx)
participant watcher as file_watcher
(watchdog)
participant xdw as xdwlib_convert
participant ocr as OCR v7.4
participant gem as Gemini Vision
(2.0-flash → 2.5-pro)
participant mst as 書店マスタ
(23,505件)
participant xlsx as order_ocr
_master.xlsx
participant matsu as 松本課長
rect rgb(245,245,250)
Note over shop,share: 受信フェーズ
shop->>fax: 新刊予約 FAX
fax->>share: .xdw 自動保存
end
rect rgb(245,250,245)
Note over watcher,xlsx: 自動処理フェーズ(朝 8:00 起動 or リアルタイム)
share-->>watcher: 新規ファイル検知
watcher->>watcher: ファイルサイズ安定待ち
watcher->>xdw: .xdw を渡す
xdw->>xdw: XDWAPI で PDF 化
xdw->>ocr: .pdf を渡す
ocr->>gem: 2.0-flash で各ページ OCR
gem-->>ocr: JSON(書店コード/予約数/担当者)
alt 全0 or 全同値 or 名前不一致
ocr->>gem: 2.5-pro で再スキャン
gem-->>ocr: 高精度結果
end
ocr->>mst: 5段階フォールバック照合
mst-->>ocr: 補正済み書店コード
ocr->>xlsx: 「入力中」シートに追記
xlsx->>xlsx: Wチェックフラグ判定
end
rect rgb(250,247,240)
Note over xlsx,matsu: 確認フェーズ
xlsx-->>matsu: 処理完了通知(メール/Slack)
matsu->>xlsx: 「要確認」を目視
matsu->>matsu: THINKs に貼付
end
v7.4 で確定した出力 Excel の列定義。A〜C 列が THINKs 入力用、D 列が要確認フラグ、E〜M 列が参考情報・デバッグ用。
| 列 | 項目 | 用途 | 出元 |
|---|---|---|---|
| A | 書籍名 | 第一ソートキー | FAX ヘッダ部から抽出 |
| B | 書籍コード | 参考 | 単行本1点は ISBN 末尾5桁 |
| C | 取次コード | 第二ソートキー | 001=トーハン、002=日販 等(マスタB列) |
| D | 書店コード | ⭐ THINKs 入力用(薄黄色) | マスタ照合の最終結果 |
| E | 予約数 | ⭐ THINKs 入力用(薄黄色) | Gemini OCR 出力(表示「注文数」) |
| F | 担当者名 | ⭐ THINKs 入力用(薄黄色) | 5ルールフィルタ後の値(誤読は ファックス) |
| G | Wチェックフラグ | ⚠️ 要確認の理由 | 予約数1 / コード名前不一致 / 信頼度<70% etc |
| H | 処理日 | 履歴 | パイプライン実行日時 |
| I | ISBN-13 | 参考 | マスタ照合の補助 |
| J | 原本パス | 松本課長確認用 | 共有FDの PDF へのハイパーリンク |
| K | 信頼度 | デバッグ | OCR の自己評価スコア |
| L | 書店名(OCR) | デバッグ | Gemini が読んだ生テキスト |
| M | 書店名(マスタ) | デバッグ | マスタ照合の結果 |
| N | 照合方法 | デバッグ | exact / name+code_cross / exact_name_mismatch 等 |
| O | 備考 | 履歴 | Pro 参考値 / 担当者変換前の値 |
| P | FAXタイプ | 分類 | 単行本1点 / 単行本一覧 / 文庫一覧 |
2026-03-23 v7.0(THINKSフォーマット対応)から始まり、4/6 までに v7.4 まで進化。書店コード精度はほぼ 100%、予約数は90〜95%、担当者名は2〜3割(残りは ファックス 自動変換)。
| バージョン | 追加機能 | 結果 |
|---|---|---|
v7.0 | THINKSフォーマット対応 / 0件ページ残し / 取次名追加 / 書籍コード5桁追加 | 基本要件達成 |
v7.1 | Gemini 2.5-flash 試行 + 全0は Pro 再スキャン | 2.5-flash は 2.0-flash より精度低 → 2.0-flash に回帰 |
v7.2 | 2.0-flash 回帰 + 1判定プロトコル + Pro 再スキャン拡張(全0/全同値/0含み) | 空ページ0件達成。ただし p1 [0,1,0] が Pro [1,1,1] で改悪 |
v7.3 | セル単位クロップOCR(OpenCV) | セル座標取得不安定 → 無効化 |
v7.3b | 担当者名 5 ルールフィルタ + A3方式(0含みは Flash 維持) | 担当者 72 件をファックス変換、p1 [0,1,0] 保護 |
v7.4 | 書店名不一致時 Pro 再スキャン + Wチェックフラグ + 書籍名追加 | 最終版。マスタ照合 96% 達成 |
flowchart LR
s1["1️⃣ exact
コード完全一致"] --> s2["2️⃣ exact_name
書店名完全一致"]
s2 --> s3["3️⃣ fuzzy_name
類似度80%以上"]
s3 --> s4["4️⃣ name+code_cross
名前+末尾2桁照合"]
s4 --> s5["5️⃣ unmatched
マスタ無し"]
s1 -.->|名前<50%| warn["⚠️ exact_name_mismatch
→ Pro 再スキャン"]
| # | ルール | 該当例 | 理由 |
|---|---|---|---|
| 1 | 1 文字 | 在、中、梯、榛、棟 | 名前として不完全 or 注文書デフォルト記載の誤読 |
| 2 | 英数字のみ | MC、2 | 名前ではない |
| 3 | カタカナのみ | サイトウ | OCR 読み取り不安定 |
| 4 | 「様」含む | いぬい様 | 注文書テンプレートの一部 |
| 5 | 異体字含む | 山下檢、トラ械 | 明らかに誤読 |
→ 82 件中 72 件を ファックス に自動変換。正しい名前(三宅、塚田、吉岡、阿部)は保持。
| Flash 結果パターン | 動作 | 狙い |
|---|---|---|
[0, 0, 0] 全0 | Pro に差し替え | FAX 自体が空ページかもしれないが、要確認 |
[n, n, n] 全同値 | Pro に差し替え | Flash の引きずられ誤読の可能性 |
[x, 0, y] 0含み | Flash 維持、Pro は備考のみ | p1 で正解 [0,1,0] が Pro [1,1,1] に改悪された事例の保護 |
複合機 → 共有フォルダの実態は .xdw(DocuWorks 独自形式)。当初 DWVIEWER.EXE のサイレント印刷を採用予定だったが、実機検証で NG → xdwlib + Windows 同梱 XDWAPI.DLL 方式に最終決定。
C:\Windows\System32\xdwapi.dll(311関数Export)が大和PCに既にインストール済みと判明。xdwlib (PyPI) でラップして doc.export_image(format='PDF') 一発で PDF 化できる。GUI 一切起動せず、追加ライセンス不要。import xdwlib
doc = xdwlib.xdwopen(r"\\192.168.1.114\共有\...\20260417135024.xdw")
doc.export_image(0, r"C:\tmp\out.pdf",
pages=doc.pages, dpi=300, color="COLOR", format="PDF")
doc.close()
| 出力形式 | サイズ | 用途 | 採否 |
|---|---|---|---|
| PDF (300dpi COLOR 全ページ) | 1.0 MB | ⭐ 既存 v7.4 パイプライン互換 | ◎ 採用 |
| TIFF (300dpi MONO) | 1.1 MB | OCR 専用ならコンパクト | ○ 代替 |
| JPEG (300dpi COLOR) | 1.0 MB | Gemini 直接投入も可 | ○ 代替 |
| BMP (300dpi) | 27 MB | 大きすぎ | × |
DWVIEWER.EXE /p /t "DocuWorks PDF" を実機で試行 → GUI 起動扱いでタイムアウト、印刷キューにも投入されず。DWVIEWER /? のヘルプフラグですら timeout(=CLI 非対応)。/p /t は DocuWorks 9.x 以前のみ対応、10.x で廃止された可能性→ プリンタ自動保存設定の追求は中止。xdwlib 採用で完全に回避。
| 方式 | コスト | 採否 | 備考 |
|---|---|---|---|
| DocuWorks Desk 手動印刷 | 人件費(月3.3h) | 緊急時保険 | 松本課長が朝一括 PDF 化 → 後段は自動 |
| printToPdfFromDocuWorksFile (eDocArrangement) | 有償(数万円) | 第2保険 | xdwlib NG時のフォールバック |
| PDFオートコンバータEX | 年30万円 | 不採用 | コスト過大 |
| 紙スキャン運用 | 現場負荷増 | 不採用 | OCR 精度劣化 |
2026-05-18 M3b で本番フォルダ 10 件を実機検証。マスタ照合 30/30 = 100% 達成(4/5 時点の Excel ベース 96% を超え)。Kintone マスタ 97,234件への切替で件数 4 倍化、精度向上。
77 件のテストデータで 全件正解。OCR で多少誤読されても 5 段階マスタ照合で補正される。実質、新刊予約注文の自動入力で最も価値の高い列。
手書きの 0 と 1 の混同(空欄か「1」か)のみが残課題。該当レコードには Wチェックフラグを自動付与し、松本課長が原本リンクで確認できる仕組み。
手書きの走り書きが多く、最も読取困難。5 ルールフィルタで誤読は ファックス に統一。「デタラメよりはファックスのほうがマシ」という松本課長合意。
本番フォルダから 10 件サンプリング → xdwlib PDF化 → v7.4 + Kintone マスタ照合で 30/30 全件成功。Excel 23,505件版の 96% (v6.1基準) を超え、Kintone 97,234件版で件数 4 倍 + 精度向上。
v7.2 で達成。送信されたページは全て出力に残る。「送ってくれたのに何もなかったことにされる」(廣瀬本部長)事故を構造的に防止。
マスタ完全一致: Gemini 68% / Claude 46%。空ページ救出は Claude 優位だが、書店コード精度は Gemini が圧勝。メインエンジンは Gemini で確定。
⚠️ 当初推定 (101=日販、102=トーハン) は誤り。正確には 001 トーハン、002 日販。`data/torituki_master.csv` として確定マスタを管理。
| コード | 取次 | カナ | コード | 取次 | カナ |
|---|---|---|---|---|---|
| 001 | トーハン | – | 013 | とも社 | – |
| 002 | 日販 | – | 014 | 弘済会 | – |
| 003 | 楽天BN | ラクテンBN | 018 | 宮井 | – |
| 004 | 栗田 | – | 019 | 共栄 | – |
| 006 | 中央社 | – | 020 | 博文社 | – |
| 007 | 太洋社 | – | 021 | 日本地図共販(株) | ニホンチズキョウハンカブ |
| 008 | 三和 | – | 022 | 啓徳社 | ケイトクシャ |
| 009 | 協和 | – | 023 | 明文図書(株) | メイブンショカブ |
| 010 | 日教販 | – | 024 | トシー | – |
| 011 | 樋口 | – | 012 | 弘正堂 | コウセイドウ |
※ 005, 015-017 は欠番か未確認。スクショから読み取った 20 社で運用開始
Phase 1 では「共有フォルダ + Gemini API + Excel + 通知」の 4 つだけで完結。THINKs への入力は手動コピペ(一括入力画面の API は無いため)。
| 連携先 | 方式 | 頻度 | 自動度 | Phase | 備考 |
|---|---|---|---|---|---|
| 共有フォルダ (Synx) | SMB マウント(大和PC直接) | 常時監視 | 完全自動 | P1 | watchdog で新規 .xdw / .pdf 検知 |
| Gemini Vision API | REST(HTTPS) | ページごと | 完全自動 | P1 | 2.0-flash → 必要時 2.5-pro |
| DocuWorks API (XDWAPI.DLL) | ctypes(Windows 同梱) | ファイルごと | 完全自動 | P1 | xdwlib 経由、追加ライセンス不要 |
| 書店マスタ (Kintone) ⭐ | Kintone REST API + 24h キャッシュ | 起動時ロード (キャッシュ HIT 0.8s) | 完全自動 | P1 | 97,234件 / アプリID 87 / THINKs から日次同期 (別PJ) |
| THINKs(基幹) | 手動コピペ(一括入力画面) | 日次 | 手動 | P1 | 取次×書誌ごとに画面を開いて貼付 |
| 通知(メール/Slack/Teams) | SMTP / Webhook | 処理完了時 | 準自動 | P1 | チャネル選定中(B4-1 確認待ち) |
| Windows Task Scheduler | OS 標準 | 朝 8:00 | 完全自動 | P1 | RDP 切断中でも動作 |
| 稼働在庫マスタ(書籍) | ローカルファイル | 起動時 | 完全自動 | P1 | 1,226 件 / 書籍名表示用 |
| kintone(書誌DB) | REST API | 非同期 | 対象外 | P3 | THINKs リプレース時に統合検討 |
| BEAT-VPN | — | — | 廃止 | — | 大和PC直接運用で不要に |
運用で必ず発生するエッジケース。それぞれ「自動判定 or 人間確認」のどちらに振るかを設計済み。
[0,1,0] の「0含み」パターン → Flash 維持[0,0,0] 全0 → Pro で再スキャン[1,1,1] 全同値 → Pro で再スキャンexact_name_mismatchempty_page として「⚠️ 要確認」フラグ付きで残すファックス に自動変換doc.pages でページ数取得 → export_image(0, path, pages=doc.pages, format='PDF') で全ページ一括 PDF 化セッション協調ボード(_session_board.md)の OA-1 〜 OA-6 に対応。OCR 精度(OA-1)と DocuWorks 変換方式(OA-2a)は完了、現在は OA-2b(パイプライン統合)が主戦場。2026-06-02(月) 定例MTG で Go/No-Go 判定 + 本番適用(松本課長指示)。
ClickUp 親タスク 86exgwr3q(確定)配下に Step 0〜4 を配置。各 Step に細粒度の孫タスクを置き、6/2(月) Go/No-Go 逆算で開始-終了日を設定。太字 が現在進行中。
| ID | タスク名 | 担当 | 開始 | 終了 | 期間 | ステータス |
|---|---|---|---|---|---|---|
M-pre | OCRエンジン v7.4 確立(書店マスタ照合96%、担当者5ルール) | 西川 | 3/23 | 4/06 | 15日 | ✅ Done |
M0 | 大和PC NucBox4 セットアップ + RDP環境構築(VPN不要化) | 西川+情シス | 4/10 | 4/10 | 1日 | ✅ Done |
M0.5 | 共有フォルダ疎通確認 + テスト用パス開設 | 西川 | 4/21 | 4/21 | 1日 | ✅ Done |
M0.6 | パイプラインプロトタイプ(watchdog + Excel追記 + 通知スタブ) | 西川 | 4/21 | 4/21 | 1日 | ✅ Done |
M0.7 | DocuWorks(.xdw)変換方式 実機検証 → xdwlib + XDWAPI.DLL 確定 | 西川 | 5/16 | 5/17 | 2日 | ✅ Done |
| ID | タスク名 | 担当 | 開始 | 終了 | 期間 | ステータス |
|---|---|---|---|---|---|---|
M1 | xdwlib_convert.py 新規モジュール作成(xdw_to_pdf 関数) | 西川 | 5/18(月) | 5/18(月) | 1日 | 🔄 Now |
M2 | run_pipeline_demo.py 統合改修(.xdw を SUPPORTED_EXTENSIONS に追加 / OCR前に変換挿入) | 西川 | 5/19(火) | 5/19(火) | 1日 | 📋 Next |
M3 | 多ページ .xdw 動作検証(_pending_xdw/ 全4件で変換 → OCR精度同等性確認) | 西川 | 5/20(水) | 5/20(水) | 1日 | ⏳ Wait (M2) |
M4 | 通知チャネル決定(メール/Slack/Teams)+ pipeline_notifier.py 実装 | 西川+松本 | 5/21(木) | 5/22(木) | 2日 | ⏳ Wait (P0-2) |
M4.5 | T-B3-1〜8 回帰テスト(正常PDF×.xdw×破損ファイル×並列etc) | 西川 | 5/22(木) | 5/22(木) | 1日 | ⏳ Wait |
| ID | タスク名 | 担当 | 開始 | 終了 | 期間 | ステータス |
|---|---|---|---|---|---|---|
M5 | Excel プロトタイプ生成(ダミー30件)+ 松本課長レビューMTG | 西川+松本 | 5/21(木) | 5/22(木) | 2日 | 📋 Next |
M6 | シート管理運用ルール策定(入力中/処理済み/要確認の3シート方式 確定) | 西川+松本 | 5/26(月) | 5/28(水) | 3日 | ⏳ Wait (M5) |
M7 | 取次コードマッピング確認(103以降)+ マスタ更新フロー確定 | 松本→西川 | 5/22(木) | 5/22(木) | 1日 | ⏳ Wait (P0-5) |
| ID | タスク名 | 担当 | 開始 | 終了 | 期間 | ステータス |
|---|---|---|---|---|---|---|
M8 | 本番共有フォルダ UNCパス確定 + 権限・命名規則・形式比率把握 | 松本+西川 | 5/23(金) | 5/23(金) | 1日 | ⏳ Wait (P0-4) |
M9 | E2E カットオーバーリハ(本番1日分 50-70枚で全工程テスト) | 西川 | 5/24(土) | 5/25(日) | 2日 | ⏳ Wait (M8) |
M10 | THINKs 一括入力 突合検証(松本課長同席、貼付フロー実機 ≤30分達成) | 松本+西川 | 5/26(月) | 5/27(火) | 2日 | ⏳ Wait (M9) |
M11 | 自動実行 + 監視構築(Windows Task Scheduler 朝8:00 / JSON Lines ログ / 異常通知) | 西川 | 5/27(火) | 5/29(木) | 3日 | ⏳ Wait (M9) |
M11.5 | 48時間連続稼働テスト(RDP切断中も継続動作確認) | 西川 | 5/28(水) | 5/29(木) | 2日 | ⏳ Wait (M11) |
| ID | タスク名 | 担当 | 開始 | 終了 | 期間 | ステータス |
|---|---|---|---|---|---|---|
M12 | 運用マニュアル v1 作成(手順 / トラブルシュート / ロールバック) | 西川 | 5/28(水) | 5/29(木) | 2日 | ⏳ Wait |
M13 | 実運用 1日シミュレーション(松本課長同席で AS-IS 業務並行確認) | 松本+西川 | 5/29(木) | 5/29(木) | 1日 | ⏳ Wait |
M14 | 定例MTG: Go/No-Go + 本番適用 🎯 マイルストーン | 松本+廣瀬+西川 | 6/2(月) | 6/2(月) | 1日 | ⏳ Wait |
M15a | 🚀 本稼働開始 + 初週ダブルチェック運用 | 松本 | 6/02(月) | 6/06(金) | 5日 | ⏳ Wait (M14) |
M15b | 初週レビュー → 自動化のみに移行(手入力廃止) | 松本+西川 | 6/09(月) | 6/09(月) | 1日 | ⏳ Wait (M15a) |
Phase 1 MVP は「新刊予約 FAX」のみ対象。Phase 2 以降で対象を拡張する。
| Phase | カバー範囲 | 論点 | 確度 |
|---|---|---|---|
| Phase 2 | 即出荷(在庫品の追加発注) | FAX フォーマットが新刊予約と異なる。既存マスタへのマッピングを再設計。OCR プロンプトは v7.4 系列を派生 | 中 |
| Phase 2 | チェーン一括(複数店舗まとめ発注) | 1 FAX に複数店舗が並ぶ形式。Gemini の表構造認識能力を再評価。Phase 1 では対象外 | 中 |
| Phase 2 | セット売り(1 セット = 5 点等) | 1 行に複数書誌が紐づく。スキーマ拡張要。Phase 1 では対象外で松本課長と合意 | 高 |
| Phase 3 | 全カテゴリ対応 | 返品・調整・特殊取引等。FAX 件数の Long Tail 部分。Phase 1〜2 の運用安定後 | 低 |
| Phase 4 | kintone UI 置き換え | Excel コピペを廃止し、kintone 上で承認・台帳化まで一気通貫。THINKs リプレースとセットで設計 | 低 |
2026-05-18 PoC 実施。技術的に完全実現可能(条件付き)と判定。
docs/discovery/thinks-automation-feasibility.md 詳細あり。
| 項目 | 値 |
|---|---|
| THINKs 構成 | .NET Framework 4.6.2 / WinForms / C1FlexGrid 2.6 / Oracle 直結 |
| API の有無 | 公式 API / REST エンドポイントなし → GUI 自動化が唯一の現実解 |
| 自動化方式 | pywinauto (UIA backend) + pyperclip + Ctrl+V |
| ボタン識別 | 全 32 ボタンに automation_id 設定済 (btnF02=一括入力、btnF09=登録) |
| Edit 識別 | 16 Edit 全て automation_id + name で識別可 |
| C1FlexGrid 貼付 | デフォルトで Ctrl+V (TSV/CRLF) 対応 |
| 運用方針 | ⚠️ F9 確定は当面 HITL (人間レビュー後の手動押下) で安全運用 |
| 工数見積 | PoC 0.5日 (済) / 本実装 3-5日 / 運用安定化 2-3日 / 合計 5.5-8.5 人日 |
本稼働 Go/No-Go 前に解消が必要な項目。優先度 P0(要決定)・P1(早期確認)・P2(運用前)で整理。
\\192.168.1.114\共有\FAX受信トレイ 営業部A\【新刊】単行本\\192.168.1.114\共有\FAX受信トレイ 営業部A\【新刊】文庫Step 1(5/18〜22 パイプライン統合)→ Step 2(5/21〜28 出力Excel)→ Step 3(5/23〜29 本番移行 + 検証)→ Step 4(5/30 Go/No-Go → 6/2 本稼働)。各 M-番号は Section 12 の詳細チケット表と対応。
5/18(月))
projects/order-ocr/scripts/xdwlib_convert.py に xdw_to_pdf() 関数を定義
5/19(火))
PENDING_EXTENSIONS から .xdw 撤去 / SUPPORTED_EXTENSIONS に .xdw 追加 / OCR 直前に変換挿入
5/20(水))
_pending_xdw/ の 4 件全てで変換 → v7.4 投入 → マスタ照合 ≥95% 確認
5/21(木)〜5/22(木))
ダミー 30 件で生成した order_ocr_master.xlsx を画面共有 → フィードバック反映
5/21〜5/22)
P0-2 の松本課長承認待ち。メール / Slack / Teams のいずれか