見出し画像

【実録③】【REST API】もうClickとEnterはやめよう!Service Layerの威力

■はじめに

先日、Geminiと話していた時、SAP B1には、Service Layerなる便利機能があることを知りました。

これを使えば、SAP B1の1つの伝票を作る時に、マウスを使って「文字入力, Tab, 文字入力, Tab, Enter, Click」などの一連の作業をしなくてよいらしいのです。

半信半疑ながら、早速試してみることにしました。

※Service LayerはSAP B1専用のAPIですが、今時のERP(会計システム)は、APIを開放しているそうなので、SAP B1以外のERPを使用している方にも参考になるはずです。

※REST APIとはAPIの1つの種類です。APIとはApplication Programming Interfaceの略で、ソフトウェア同士がやり取りできるようにする技術で、現在、Uberや家計簿アプリをはじめいたるところで使われている技術だそう。

■結果1

まずは、ITコンサルの方に、Service Layerを設定依頼。

次に、Postmanというソフトウェアを使って、動作確認です。

  • SAPテスト環境・本番環境へのログイン

  • Getリクエストで、伝票参照できるか確認

  • Postリクエストで、伝票書き換えができるか確認。

Postリクエストでは、SAP B1では、伝票番号とは別のDocEntryという内部番号が採番されており、Service Layerを使って操作するには、この内部番号を使う必要がると分かり、少し手間取りました。

でも、トータル30分くらいで、動作確認は無事に終了。


■結果2

毎日作られるSales Orderにちょっとした問題があります。

放っておいても大したことは無いのですが、一日数件から10件程度、Tax Codeが空欄のSales Orderが作られてしまうのです。

そのまま放置しておくと、あとあと、商品が出荷されて、AR Invoiceを作成する時にエラーで止まってしまうのです。

私のチームでは、AR Invoiceの作成は自動化していますので、イチイチそのせいで自動化プログラムが止まってしまうのは、とてももったいない。

そこで、実際の本番環境で、Open Sales Orderの中で、空欄になっているTax Codeを一括で更新するプログラムを作成しました。

この前と同様、Batchファイルをダブルクリックするだけで、無事に更新が終了。快感です。

■結果3

次に試したのは、こちら。

で少し触れたやつです。

照合した結果を使って、Service Layerで、伝票作成まで終えてしまうということです。

2-3時間格闘し、一通りエラーをつぶしたら、 これも見事成功!

■ちょっと考察1

今回の出来事は、私にとっては衝撃でした。会社の中で、

「うぉー!!」

っと叫びたいくらい。

同僚をびっくりさせてしまうので、やめておきましたが(笑)

ちょっと考察してみますと、

Service Layerは

「操作を自動化する」のではなく、「データそのものを直接扱う」

という発想の転換です。

今まで当たり前のように、画面から入力操作を行っていた私からすれば、革命的でした。

■技術的補足(少しだけ)

Service Layerは、HTTPSでSAP B1にアクセスするAPIです。
例えば、ログインはこんな感じで行います。

POST https://server:50000/b1s/v1/Login

送信するのはJSON形式のデータ。

{
  "CompanyDB": "TESTDB",
  "UserName": "manager",
  "Password": "*****"
}

すると、以下のようなレスポンスが返ってきます。

{
  "SessionId": "abc123...",
  "Version": "100.0.140"
}

この「SessionId」が取得できれば、ログイン成功。
ここからがスタートです。


Sales Orderの更新も、基本は同じ仕組みです。

例えば、Tax Codeを更新する場合:

PATCH https://server:50000/b1s/v1/Orders(12345)

ここで重要なのが DocEntry

SAP画面で見る伝票番号(DocNum)ではなく、
内部番号であるDocEntryを使って指定します。

これが分からず、最初は少しハマりました(笑)

■ちょっと考察2


少々俯瞰して、考察してみますと、Geminiやチャッピーのおかげで、
スキルやノウハウの価値が変わってきた気がいたします。

Howは彼らが教えてくれるから、彼らに任せればいい。

技術を使って何ができるか?
そう。
Whatを知ること。そして、試してみること。

この重要性が高まっていると感じています。

彼らは、ふわっとした質問にはふわっとしか返しませんからね。

私の投稿では、このWhatをお伝えすることを企図しています。
何ができるかを知っていれば、彼らに具体的な質問を投げることができると思うのです。

今回で言えば、
「API経由でうちの会社のシステム(ERP)を操作したいんだけど・・・」
みたいな質問をしてみるのです。そうすると、急に具体的な回答が返ってきます。
そして、あとは、実行するのみ。

この記事を読んだことをきっかけに、実際に試した方がいれば、是非コメントで教えて下さい♪

■あとがき

今回はここまで。
これができるということは、XXXもできるな?と妄想が膨らみます。
色々進展がありましたら、ご報告いたします。

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

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

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