【実録⑤】【SAP B1の弱点を克服】知識不要! あなた専用経理Dashboardが作れます!
■ はじめに
正直に言いますと、私はJavaScriptについて何も知りませんでした。
それでも、チャッピーとGeminiに相談しながらコードを書き、
SAP B1用のダッシュボードを完成させました。
完成したのが、こちら。

■ SAP B1の“弱点”を補完できる
前にも、少し書きましたが、SAP B1って、正直レポート機能が少し弱いと思うんです。
· 欲しい情報がすぐ出てこない
· 今日何件処理した?
· 今週何件?
· 先月?
· 未処理は何件?
こういう「経理として一瞬で見たい情報」が、
パッと出てこない。
でも、自作ダッシュボードなら、それが出来ちゃいます。
✔ 今日の伝票数
✔ 今週の処理件数
✔ 月間累計
✔ 未処理件数
全部、ワンクリックで表示。
欲しい情報が“バーン”と出るのです。
■ ③ トグル表示 & フロー可視化で達成感が生まれる
作る過程で、チャッピーやGeminiから提案をもらいました。
「トグルで表示切り替えできますよ」
→ すぐ実装。
「業務フローを可視化しては?」
→ すぐ入れた。
AP側フロー
· Goods Receipt
· AP Invoice
· Payment
AR側フロー
· Delivery
· AR Invoice
· Payment
これを流れで表示すると…
「今週これだけ仕入れて、これだけ支払った」
「これだけ出荷して、これだけ回収した」
経理としての“作業の達成感”が可視化されることになります。
数字って、達成感を生むんですよね。
■ ④ 自動化の効果測定にも使える
これからService Layerで更なる自動化を実現していく予定です。
その時にこのダッシュボードがあると
· 先週何件処理した?
· 今月何件?
· 自動化前と後で何秒短縮?
すぐ計算できます。
つまり、
「1件あたり○秒短縮 → 月間○時間削減」
が一瞬で見えるわけです。
改善活動において、欲しい情報がすぐ出てくると、「よし、やるぞ!」とMotivationを高めてくれます。
※Service Layerって何?と思った方は、こちらをご参照ください。
#3 【REST API】もうClickとEnterはやめよう!Service Layerの威力|シエル君
■ ⑤ 市販ダッシュボードより速くて自由
実は、去年、Boyumというアドオンソフトを購入しまして、
それに、ダッシュボード機能も付いていました。
悪くはないんですけど。
でも…
· ロード時間が重い
· 内容を少し変えたいけど分かりづらい
結果として、あまり使わなくなってしまいました。
その点、自作ダッシュボードは?
✔ ロード速い
✔ 自分の好きに変更できる
✔ 必要な情報だけ表示
これ、可能性を感じますよね。
■ 技術的補足(少しだけ)
今回のダッシュボードは、
Python × JavaScript × SAP Service Layer
の組み合わせで動いています。
全体構造はこんな感じです。
[ Browser (JavaScript) ]
↓ fetch()
[ Flask API (Python) ]
↓ REST
[ SAP Business One Service Layer ]① Python側(Flask + Service Layer)
バックエンドは Flask を使用。
SAPへの接続は Service Layer をRESTで叩いています。
ログイン処理はこんな感じです。
app
res = sap_session.post(f"{BASE_URL}/Login", json={
"CompanyDB": COMPANY_DB,
"UserName": USER_NAME,
"Password": password
})ログイン後は $count エンドポイントを使って
伝票件数を直接取得。
url = f"{BASE_URL}/{endpoint}/$count"例えば:
· PurchaseInvoices
· VendorPayments
· Invoices
· IncomingPayments
を期間フィルタ付きで取得しています。
DocDate ge '2026-02-01' and DocDate le '2026-02-21'つまり、
SAPの画面を触らずに
直接データだけを取得している。
これが速い理由です。
② JavaScript側(ブラウザUI)
フロント側は fetch() でPython APIを呼び出します。
index
const response = await fetch(`/api/get_stats?period=${period}`);
const data = await response.json();取得したJSONを、
· カード表示
· Chart.jsのグラフ
に即反映。
chartAP.data.datasets[0].data = data.ap.trend;
chartAP.update();画面リロードは不要。
完全にSPA的な動きです。
③ 期間ロジックはPython側で制御
面白いのはここ。
期間計算(今週・先週・月・前年)は
全部Pythonで作っています。
if period == 'CurrentWeek':
monday = today - timedelta(days=today.weekday())つまり、
UIはシンプル
ロジックはバックエンドで制御
という設計。
これにより、
JavaScriptをあまり複雑にせずに済んでいます。
■ あとがき:Python × JavaScriptの世界へ
今回の気づきはこれです。
「Pythonだけじゃなかった。」
JavaScriptを使えば、
· ブラウザをUIとして使える
· SAP B1とService Layer経由で連携できる
· 欲しい情報をリアルタイム表示できる
つまり、
ブラウザがSAP B1の拡張コックピットになるのです。
今はまだ応用可能性を全部言語化できていませんが、
できることの幅が一段階広がった。
と思います。
今回はここまで。
読者の気づきやヒントになればうれしいと思って、投稿しておりますので、コメントなど頂けたら嬉しいです。
読んで頂きありがとうございました!
