JIGS-TMS 脱Flash・Angular移行

有償PoC ご提案書

株式会社Fabbi (Fabbi JSC + Fabbi Japan)
TDC Software 様 / 先行情報 (Senko Information) 様
2026年5月28日 ・ Rev 1.0

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

アジェンダ

  1. 基本方針 — なぜ今、脱Flash・Angular移行か
  2. 進め方・PoCの仕方 — 6画面をどう移行・検証するか
  3. 成果物・検証条件 — 何を納め、どう合否判定するか
  4. チーム体制 — 日本側 / ベトナム側
  5. スケジュール — 13週間
Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

① 課題 — 現行システムと放置リスク

レイヤー 現状 評価
フロントエンド Adobe Flash (Flex/MXML/AS3) EOL — Flash Player 2020年12月終了
バックエンド Java (Seasar2) 安定稼働 → 維持
データベース Oracle 維持(スキーマ変更なし)
通信 AMF / BlazeDS モダンブラウザ非対応 → 要REST置換

放置リスク 4点: ①セキュリティパッチ停止 ②ブラウザ非対応で業務停止 ③Flash/Flex人材枯渇 ④技術的負債累積
→ 移行対象は Flash + 通信層 (AMF) のみ。Java/Oracle 資産は活かす。

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

① 基本方針 — なぜ Angular × なぜ PoC が先か

Flash (Flex) は EOL — 全 約370画面 (標準137 + 標準外57 + 住宅174) の Angular移行が不可避。

本PoCは全体移行の 前段 — 6画面で「共通基盤」を確立し Phase1 へ資産継承。

目的: ① 移行リスクを抑える ② 全体見積の精度を高める

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

② PoCの範囲 — 6画面 + 共通基盤

範囲

  • 6画面 (Tier A×2 + B×4) + Angular共通基盤 + Java/API共通基盤
  • 期間 3ヶ月 (6月中旬開始) ・ 契約 Ukeoi (請負)
  • 2プラン: 標準 / PMO付き

なぜこの6画面

  • 送り状系 = 業務の中核 (登録・配車・編集)
  • マスタ系 = 全画面が参照する基盤データ
  • A2+B4 → 複雑度の幅を網羅 → Phase1 見積 calibration
Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

② 対象6画面 — FARE KB 実ソース解析 (一覧)

画面 画面ID Tier LOC files AMF 主要構成
送り状登録 JBus0200 A 2,050 24 8 MVC + 郵便番号→住所連携
簡易セル送り状登録 JBus3700 A 5,500 24 6 セル一括入力・最大規模
送り状配車編集 JBus5300 B 3,000 63 4 HUB画面・7種ItemRenderer
キーボード送り状登録 JBus0230 B 2,800 18 2 高速キー入力 (F5/F6)
ドライバーマスタ JMst0600 B 1,500 21 5 CRUD・配車が参照
得意先マスタ JMst0400 B 2,200 39 5 TgcbTargetSite連携・49列

合計 約17,050 LOC / 189 files — 以降、各画面を項目レベルで深掘り。

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

② 深掘り:送り状登録 JBus0200 (Tier A)

実ソース解析 (約2,050 LOC / 24 files) → 移行設計を項目レベルで確定済。

現行 (Flash/Flex) → Angular 移行
DTO InvoiceRegistrationDto 39項目 (AMF binary) REST JSON + TypeScript interface
AMFサービス 8メソッド getInitData/searchComboboxList/registInvoice/updateInvoice/deleteInvoice REST 8エンドポイント
24コンボマスタ (配送区分/元着区分/未収区分/計算区分/車種/部材大分類…) API初期化 + 遅延ロード
AdvancedDataGrid 2基 / 69列 + CAutoCompleteComboBox 20基 Ignite igxGrid セルテンプレート
郵便番号→住所マスタ連携 (SearchAddress) / MVC構成 8ファイル 業務ルール維持 (Reactive Forms)
CValidator (運賃計算地区CD ^[0-9]{5}$ / 住所 maxByteLength=240 / 出荷日 YYYYMMDD / precision=3) Angular Validators

FARE KB が全項目 (DTO 39 / AMF 8 / 検証ルール 30+) 抽出済 → コードを読んだ移行設計。

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

② 深掘り:簡易セル送り状登録 JBus3700 (Tier A・最大規模)

実ソース解析 (約5,500 LOC / 24 files・最大規模) → 移行設計を項目レベルで確定済。

現行 (Flash/Flex) → Angular 移行
DTO InvoiceTableRegistrationDto 51項目 (AMF binary) REST JSON + TypeScript interface
AMFサービス 6メソッド getInitData/doSearch/registInvoice/getKeiyakuInfo/calHighway/calcParking REST 6エンドポイント
処理フロー (初期化→検索→グリッド編集→料金計算→一括登録→チェック→結果) Angular Stepper + Reactive Forms
8種 MXAdvancedDataGridItemRenderer (Excel風セル編集) Ignite igxGrid + インラインエディタ
コンボマスタ (荷主/業者/部材大分類/中分類/請求品種/消費税) API初期化 + 遅延ロード
CDateValidator ×2 (作業日 必須) + grid restrict/maxChars Angular Validators

DTO 51項目 / 操作フロー / セル一括入力という最大規模画面までコードを読んだ移行設計。

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

② 深掘り:送り状配車編集 JBus5300 (HUB画面)

実ソース解析 (3,000 LOC / 63 files / Tier B) → 移行設計を項目レベルで確定済。

現行 (Flash/Flex) → Angular 移行
DTO OkurijoHaisyaEditDto 約50項目 (AMF binary) REST JSON + TypeScript interface
AMFサービス 4メソッド getInitData / search / selectOkurijo / update REST 4エンドポイント
17コンボマスタ (配送区分/荷主/地区G/車種/ドライバー/台車/業者/料金区分…) API初期化 + 遅延ロード
7種 ItemRenderer (Text/Check/Combo/Date/Button/Group/Item) Ignite igxGrid セルテンプレート
親子送り状 mtmKbn=子 → 行非活性ロジック 業務ルール維持 (Reactive Forms)
CValidator (邸No≤15byte / 発地区 ^[0-9]{5}$ / ドライバー電話) Angular Validators

全項目・全コンボ・全バリデーション抽出済 → 最も複雑な HUB画面の移行設計を確定。

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

② 深掘り:キーボード送り状登録 JBus0230 (Tier B)

実ソース解析 (約2,800 LOC / 18 files) → 移行設計を項目レベルで確定済。

現行 (Flash/Flex) → Angular 移行
DTO KeyboardInvoiceRegistrationDto 40項目 (AMF binary) REST JSON + TS interface
AMFサービス 2メソッド registInvoice / outPutOkurisakiAdr REST 2エンドポイント
高速キー入力/フォーカス制御 F5=登録・F6=全件クリア・tabIndex・前行コピー @HostListener キーバインド + Reactive Forms
3コンボマスタ (荷主CD・品種・積地CD) API初期化 + 遅延ロード
CValidator (業者CD≤8 / 荷主CD≤10 / 運行回数 max99 / 配車日) Angular Validators

10行×13項目グリッド + 送り先CD→住所自動補完を setFocus() 連鎖でキーボード完結 → FormArray + フォーカス制御で1:1再現。

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

② 深掘り:ドライバーマスタ JMst0600 (Tier B)

実ソース解析 (約1,500 LOC / 21 files / AMF 5) → 移行設計を項目レベルで確定済。

現行 (Flash/Flex) → Angular 移行
DTO DriverMasterDto + DriverModel 約16項目 (AMF binary) REST JSON + TS interface
AMFサービス driverMasterService 5メソッド getInitData/doSearch/doInsert/doUpdate/doDelete REST 5エンドポイント (CRUD)
検索一覧 (CAdvancedDataGrid 13列) + 登録/更新/削除 igxGrid + Reactive Forms
3コンボマスタ gyosyaList(業者)/gosyaList(号車)/driverLicenseList(保持免許) API初期化 + 遅延ロード
CValidator (ドライバーCD/名 必須 / 出社・退社時間 CTimeFieldValidator) Angular Validators

配車画面が参照する基盤マスタ — DriverModel 実16項目からコードを読んだ移行設計。

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

② 深掘り:得意先マスタ JMst0400 (Tier B)

実ソース解析 (約2,200 LOC / 39 files・最多関連) → 移行設計を項目レベルで確定済。

現行 (Flash/Flex) → Angular 移行
DTO TokuisakiMasterDto 約20項目 (updateModel/tokuisakiKbnList/tgcbTargetSiteFlg) REST JSON + TS interface
AMFサービス tokuisakiMasterService 5メソッド getInitData/doSearch/doInsert/doUpdate/doDelete REST 5エンドポイント (CRUD)
TgcbTargetSite サブ画面 (専用 Action/View/Helper/Validator) 関連テーブル統合 (REST + Service)
CAdvancedDataGrid 49列 (担当者名01-08/メールアドレス01-08 含む) igxGrid テンプレート
CValidator (地区CD ^[0-9]{5}$ / 電話・FAX / 住所 maxByteLength=90) Angular Validators

関連マスタ最多 (39 files) — TgcbTargetSite 連携サブ画面まで実コードから移行設計を確定。

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

業務フロー — PoC対象6画面

center

受注 → 送り状 → 配車 → マスタ参照 → 帳票 ・ 送り状系4 + マスタ系2 ・ Flash→Angular / AMF→REST

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

画面相関図 — モジュール連携

center

送り状系 (配車編集=HUB) ↔ マスタ系 (ドライバー/得意先) ・ 全画面 AMF→REST 化 → Oracle

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

② 進め方 — AI-first 7ステップ + HITL

Step 内容 (具体) PIC
① 資産分析・KB構築 FARE で 6画面の DTO/AMF/コンボ/検証を全抽出 (実施済) Fabbi
② 環境・AI Skill 定義 Angular + Java REST 共通基盤を構築 Fabbi
②.5 中間レビュー 代表サンプルで方向性を合意 TDC様
③ TDD テスト生成 検証ルール (^[0-9]{5}$ 等) → 正常/異常/境界 TC Fabbi
④ 移行実装 + UT MXML+DTO → NEXA → igxGrid+Reactive Forms → HITL → UT Fabbi
⑤ 新旧比較テスト Flash ↔ Angular 全操作照合 ≥90% Fabbi
⑥ ドキュメント納品 設計書雛形・比較レポート (Markdown) Fabbi

HITL レビュー対象: 業務ルール (親子送り状等) / 検証パリティ / AMF→REST 契約。
Step7 本番展開は参考値 (お見積り対象外・PIC: TDC様)

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

② 移行の具体例 — 1コンポーネント (配車編集セル)

OkurijoHaisyaEditTextItemRenderer (Flash) を Angular igxGrid セルへ — 挙動を1:1で再現。

現行 Flash (実コード挙動) → Angular 実装
focusIn=フォーマット解除 / focusOut=再フォーマット + 変更イベント cell editor + valueChanges (Reactive Forms)
親子送り状 mtmKbn=子enabled=false [disabled] 条件バインド
連動クリア (driverNm変更→driverCdhatuTikuCdhatuTikuNm) valueChangespatchValue
行ハイライト (コピー 0xDBBEDA / 選択 0xFCD5B4) [ngClass] 行スタイル
AMF DTO OkurijoHaisyaEditDto (RemoteClass binary) TS interface + HttpClient REST

AI生成ドラフト → HITL でこの挙動レベルの再現を確認 → 業務ロジックを失わない移行。

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

② 2 Wave 実装 + なぜ 77.8MD で可能か

2 Wave

  • 共通基盤を先行構築 → 各画面で再利用
  • Wave1 (W5-8): 送り状系 3画面 (難度高・先行)
  • Wave2 (W9-12): マスタ系 + 残り (速度ramp)

なぜ 77.8MD で可能か

  • FARE KB 実施済 → 資産解析工数を圧縮
  • NEXA AI生成 → 実装ドラフト高速化
  • 共通基盤 再利用 (Angular 85% / Java 70%)
  • HITL = AI下書き + 人手品質保証 (人を置換しない)
Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

システムアーキテクチャ

center

Angular SPA → REST/JWT → 既存 Java Seasar2 (in-place) → Oracle ・ AMF→REST 置換

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

コード構造マッピング — As-Is → To-Be

center

Flash (MXML/AS3) → Angular Component ・ AMF→REST(JSON)+JWT ・ Java Seasar2 in-place 維持 / Oracle 変更なし

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

移行イメージ — Before / After

center

バックエンド (Java Seasar2 / Oracle) は維持、フロントエンドのみ Flash → Angular へ移行

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

② 技術スタック + セキュリティ

スタック

  • フロント (NEW): Angular 17+ / TypeScript / Signals+RxJS / Ignite UI (TDC様提供) / SCSS
  • バック (維持): Java Seasar2 in-place REST / DTO adapter (AMF→REST) / Oracle

セキュリティ (境界化が成果)

  • 現行: 平文パスワード / AMFバイナリ (境界不明瞭) / CORS未定義
  • PoC: AMF→REST(JSON) で API境界 + JWT + CORS 導入
  • 平文→ハッシュ化は Phase1。PoC は「境界を持つ」実証まで。
Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

② 共通基盤 = 投資回収 (Foundation Reusability)

PoC は「使い捨て」ではない。基盤は Phase1 全体移行へ継承 → コスト削減として還元。

Bucket 再利用率 Phase1 への継承
C Angular 共通基盤 85% routing / layout / auth / API client / Ignite ラッパー
D1 Java/API 共通基盤 70% REST controller / DTO / JWT / OpenAPI / test harness
D2 画面別 wrapper 0% 画面固有 — P1 で個別再見積
F 設計書雛形 (DD template) 100% DD テンプレート + 移行仕様書サンプル → 全画面標準適用
Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

② TDC自前移行 vs Fabbi AI提案

TDC自前移行 (手動) Fabbi AI提案
通信 AMF 手動移植 (画面ごと) AMF→REST 体系化 (共通adapter)
セキュリティ 平文認証を維持 JWT + CORS 導入 (REST境界)
カバー率 属人テスト 新旧比較 ≥90% (全操作照合)
スケーラビリティ 画面個別実装 共通基盤再利用 (Angular 85% / Java 70%)
生産性 全手動 AI生成 + HITL レビュー

同じ1:1移行ゴールでも、Fabbi は基盤化・自動化で Phase1 全体移行へ資産を継承。

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

③ 成果物 — 具体的な納品物

実ソース解析を起点に、実体のある成果物を納品。

成果物 具体 (例)
TypeScript interface 6画面 DTO → .ts (OkurijoHaisyaEditDto 50項目 / InvoiceTableRegistrationDto 51項目 …)
REST controller (Seasar2 in-place) 各AMFサービス → REST endpoint (okurijoHaisyaEditService 4 → REST 4 …)
Angular コンポーネント 6画面 (igxGrid + Reactive Forms + Validators) + 動作デモ
画面設計書 雛形 Markdown仕様書 + 移行仕様書サンプル
新旧比較レポート 画面別 一致率表
Phase1 ベース見積 全体移行の基礎見積
Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

③ 検証条件 — 新旧比較の進め方 (例: 配車編集)

Flash (旧) と Angular (新) を全操作レベルで照合。

観点 検証手順 (具体) 合否
検索 同一条件 (日付/荷主/地区G) → 件数・グリッド値の一致 差分0
更新 update 実行 → Oracle 同一レコード更新 (DAO/SQL維持) 差分0
検証発火 発地区CD不正 (^[0-9]{5}$ 違反) → 新旧で同一エラー 一致

成功基準: 全操作 一致率 ≥90% + UI差分目視承認 + ベース見積承認 → Phase1 LOI トリガー。

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

④ チーム体制

役割 担当内容
日本 (Fabbi Japan) PMO 1名 (日本語ネイティブ) ※プランb KH窓口・スコープ/リスク調整・MTG運営
ベトナム (Fabbi Software) テクニカルリード 1名 アーキ・共通基盤・レビュー・HITL
ベトナム プロンプトエンジニア 1名 NEXA/AI生成・画面実装
ベトナム QCエンジニア 1名 新旧比較・品質
  • 氏名はキックオフ前に確定 (役割ベース提示) ・ 稼働: 1ヶ月目=基盤 / 2-3ヶ月目=実装+比較
  • TDC側: 藤沢様 (リード) + 有賀/高松/江原様 (レビュー)
Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

⑤ スケジュール — 13週間

フェーズ 内容 ゲート
W1 準備 kickoff・環境・6画面確定・Oracle接続
W2-4 共通基盤 Angular基盤 + Java REST基盤 + 1サンプル ◆M1 基盤レビュー
W5-8 Wave1 3画面 (A/B/B) + UT + 新旧比較 ◆M2 中間レビュー
W9-12 Wave2 3画面 (B/B/B) + UT + 比較 + フルデモ
W13 評価 全体回帰比較 + 全体ベース見積 + 報告 ◆M3 最終+見積

期間: 2026年6月中旬 → 9月初旬 (開発3ヶ月)・週次レビュー (毎金) + ゲート (W4/W8/W13)

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

お見積り (税抜)

項目 標準プラン (a) PMO付き (b)
Fabbi Offshore 開発工数 (77.8 MD) ¥1,683,000 ¥1,683,000
BrSE (VN側・日本語コミュニケーション) ¥750,000
FJ PMO (日本語ネイティブ窓口) ¥1,350,000
AI 利用費 (FARE + LLM + NEXA) ¥234,000 ¥234,000
Infra 環境 (3ヶ月 × ¥40,000) ¥120,000 ¥120,000
Ignite UI ライセンス ¥0 ¥0
合計 (税抜) ¥2,787,000 ¥3,387,000

差額 ¥600,000 = (b)は BrSE → FJ PMO へ置換 ・ 契約: Ukeoi (請負) 月次精算

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

要協議事項 — PoC開始前に TDC様と要確認

# 項目 状態 / 想定
1 Ignite UI ライセンス TDC様 ご提供 (無償) 想定。28/5 MTG で最終確認
2 Staging Oracle アクセス VPN + アカウント + テストデータ。PoC clock = Oracle供与開始
3 契約形態 Ukeoi (請負) 月次精算 → Phase1 で請負継続
4 PoC 成功基準 合格率 ≥90% + UI差分目視承認 + LOI (本見積 §10)

留意: ST/UAT・本番デプロイは TDC様側。新規 Spring Boot 作らず既存 Seasar2 へ in-place。Oracle スキーマ変更なし。

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案

まとめ・次ステップ

6画面PoC → 共通基盤確立 → Phase1 全体移行

PoC成功基準クリア → Phase1 LOI

5/28 ご確認事項: ① プラン選択 (a/b) ② Ignite UIライセンス ③ 契約開始・kickoff日

ありがとうございます

Fabbi | TDC JIGS-TMS 脱Flash・Angular移行 有償PoC ご提案