見出し画像

【実録⑤】【SAP B1の弱点を克服】知識不要!  あなた専用経理Dashboardが作れます!

■ はじめに

正直に言いますと、私はJavaScriptについて何も知りませんでした。
それでも、チャッピーとGeminiに相談しながらコードを書き、
SAP B1用のダッシュボードを完成させました。

完成したのが、こちら。

ACCOUNTING DASHBOARD

■ 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の拡張コックピットになるのです。

今はまだ応用可能性を全部言語化できていませんが、

できることの幅が一段階広がった。

と思います。

今回はここまで。

読者の気づきやヒントになればうれしいと思って、投稿しておりますので、コメントなど頂けたら嬉しいです。

読んで頂きありがとうございました!

 

いいなと思ったら応援しよう!