【実録③】【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もできるな?と妄想が膨らみます。
色々進展がありましたら、ご報告いたします。
読者の気づきやヒントになればうれしいと思って、投稿しておりますので、コメントなど頂けたら嬉しいです。
読んで頂きありがとうございました!
