Skip to content

kmh-no3/obb8-studio

Repository files navigation

SAP支払条件(OBB8)提案ツール

日本の商習慣に対応したSAP支払条件(OBB8 / Terms of Payment)のテンプレート提案ツールです。

🌐 デモ: https://kmh-no3.github.io/obb8-studio/


📖 このツールについて

SAPの支払条件設定は「要件→パラメータ→計算結果」が定型的でテンプレート化に向いていますが、基準日(Baseline date)運用や固定日払いなど、実装と運用の組み合わせ次第でズレが起きやすい領域です。

このツールは、日本の商習慣に合わせた支払条件の設定値を自動提案し、SAP OBB8への投入値を生成します。

✨ 主な機能

  • 📋 支払パターンの選択: 月末締め、20日締めなど、日本で頻出する支払パターンから選択
  • ⚙️ 基準日運用モードの選択: 請求書日付・転記日付・締日基準から運用方針に合わせて選択
  • 🎯 自動生成される内容:
    • OBB8投入値(T052相当の行セット)
    • 推奨支払条件コード(命名規則に基づく)
    • 基準日モードごとの注意事項
    • テストケース(最低5件)

🎨 対応している支払パターン(MVP版)

  • 月末締 翌月末払い
  • 月末締 翌々月末払い
  • 20日締 翌月末払い(2行構成)

🚀 使い方

1. 支払パターンを選択

画面上部から、要件に合う支払パターンを選択します。各パターンには以下の情報が表示されます:

  • 締日と支払日の組み合わせ
  • サイト(支払期間)
  • 行構成(単行 or 複数行)

2. 基準日運用モードを選択

システムの運用方針に合わせて基準日モードを選択します:

  • A(請求書日付): 請求書の日付を基準に支払期日を計算
  • B(転記日付): 会計伝票の転記日付を基準に支払期日を計算(推奨)
  • C(締日基準): 締日に寄せて転記、またはZFBDTを締日に寄せる運用

3. 結果を確認

以下の情報が自動生成されます:

  • 推奨コード: JP_EOM_EOM_M1などの命名規則に基づくコード
  • OBB8投入値: 日限、固定日、追加月数、追加日数の値
  • 注意事項: 選択した基準日モードでの注意点
  • テストケース: 実装前の検証用ケース

4. SAP実機で設定

トランザクションOBB8で実際の設定を行います。(本ツールは提案のみで、自動設定は行いません)


⚠️ 免責事項

  • このツールは検討支援を目的としており、実装の確定を保証するものではありません
  • SAP OBB8への投入方法や、実際のシステム設定は別途必要です
  • 設定前に必ず実機でテストを実施してください
  • SAP公式ドキュメントもあわせてご確認ください

本ツールの対象外

以下の機能はMVPでは対応していません:

  • 休日補正: 営業日ベースの支払期日調整
  • 割引(スキント): 早期支払割引の設定
  • 支払プログラム連携: F110等との連携設定
  • 銀行連携: DME、振込データ作成

👨‍💻 開発者向け情報

🛠️ 技術スタック

  • Framework: Next.js 15 (App Router)
  • Language: TypeScript
  • Styling: Tailwind CSS
  • Runtime: Node.js 20+
  • Hosting: GitHub Pages

📦 セットアップ

前提条件

  • Node.js 20以上
  • npm 10以上

インストール

# 依存関係のインストール
npm install

# 開発サーバーの起動
npm run dev

ブラウザで http://localhost:3000 を開いてください。

ビルド

# 静的エクスポート(GitHub Pages用)
npm run build

ビルド結果は out/ ディレクトリに出力されます。

⚠️ Google Drive上での注意事項

このプロジェクトをGoogle Drive上で開発する場合、同期処理によりnpm installが正常に完了しないことがあります。

推奨対応:

  1. プロジェクトをローカルディスク(C:ドライブなど)にコピーして使用
  2. または、Google Driveの設定でnode_modulesフォルダを同期対象から除外

🎨 プロジェクト構造

obb8-studio/
├── app/                    # Next.js App Router
│   ├── page.tsx           # メインページ
│   ├── layout.tsx         # レイアウト
│   └── globals.css        # グローバルスタイル
├── components/            # Reactコンポーネント
│   ├── PatternSelector.tsx
│   ├── BaselineModeSelector.tsx
│   └── ResultDisplay.tsx
├── lib/                   # ビジネスロジック
│   ├── patterns.ts        # テンプレートデータ
│   └── code-generator.ts  # コード生成ロジック
├── types/                 # TypeScript型定義
│   └── index.ts
├── .github/
│   └── workflows/        # GitHub Actions
│       └── deploy.yml    # GitHub Pages自動デプロイ
└── README.md

📚 データモデル

OBB8Line(支払条件の1行)

{
  day_limit: number;   // 日限(1〜31、末日は31)
  fixed_day: number;   // 固定日(10/20/25/31=月末)
  add_months: number;  // 追加月(1=翌月、2=翌々月)
  add_days: number;    // 追加日(ネット日数)
}

PaymentPattern(支払パターン全体)

  • パターンID
  • 表示名・説明
  • 推奨基準日モード
  • OBB8行セット
  • 警告メッセージ
  • テストケース

🧪 テスト

各パターンには最低5件のテストケースが含まれています。実装後は必ず以下を確認してください:

  1. 各テストケースの入力日で支払期日が正しく計算されるか
  2. 月末日の扱い(2月、30日月、31日月)
  3. 年またぎの計算
  4. 基準日モードによる差異

🚀 デプロイ

GitHub Pagesへの自動デプロイは、mainブランチへのプッシュ時に自動的に実行されます。

ワークフローの詳細は .github/workflows/deploy.yml を参照してください。

🔧 今後の拡張予定

  • パターン追加(15日締、10日締、固定日払いバリエーション)
  • 割引(スキント)対応
  • 休日補正ロジックの提案
  • テストケース自動計算機能
  • Excel/CSVエクスポート
  • 多言語対応(英語)

📄 ライセンス

このプロジェクトは個人ポートフォリオとして作成されています。

🙏 謝辞

日本の商習慣における支払条件の複雑さと、SAP FI/MMモジュールの設計思想に敬意を表します。


作成者: obb8-studio
バージョン: 0.1.0 (MVP)
最終更新: 2026年1月

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages