Technical Blog テクニカルブログ
  1. HOME
  2. テクニカルブログ
  3. <シリーズ2 第2回> 株式会社オムニサイエンス社の「API-Bridge」を使ったIBM i とkintoneのAPI連携をやってみた!

<シリーズ2 第2回> 株式会社オムニサイエンス社の「API-Bridge」を使ったIBM i とkintoneのAPI連携をやってみた!

投稿者:クラウド事業本部 クラウドサービス部 山﨑

<シリーズ2 第2回> 「IBM i 」のデータに「kintone」の画面から登録してみよう」

本シリーズでは、IBM i のモダナイズ、API連携について、実際にSaaS等と連携させた検証作業についてご案内します。

シリーズ2 第1回では「IBM i 」のデータを取得して「kintone」の画面に表示する実証実験を行ないました。
いやー、苦労しましたね~・・・その苦労を今後に活かしていきたいと思います。

さて今回は、データの登録です。
前回使用した「IBM i 」<customer>にデータを追加してみます。
まずは完成イメージをご紹介します。

「IBM i 」側のデータは、23件存在しています。

それでは、「kintone」からデータを登録します。
「kintone」アプリ「customer」のビュー選択プルダウンメニューから「登録」を選択します。

次に、データ登録画面が表示されますので、登録したいデータを入力します。

登録データを入力したら、「登録」ボタンをクリック!

データの登録処理が正常終了すると一覧画面が表示されますので登録したデータが追加されていることを確認してください。
ちゃんと登録されていますね!

では、「IBM i 」側の得意先マスタを確認してみましょう。
24行目に登録データが追加されていることが確認できます。

完成イメージをご覧いただいたところで、実装方法についてご紹介していきましょう。
今回も用意するのは、「API-Bridgeサーバー」でのSQL定義、「kintone」での、HTML、JavaScriptとなります。

まず、「API-Bridgeサーバー」の定義です。
「IBM i 」のデータに登録するために以下の通り定義(「regData」というPOSTメソッドを処理するAPI)を作成しました。

登録するデータの受け渡し方法は、URLのパラメータを使用する方法、登録するデータをJSONファイルとして作成しBODYに指定する方法などがありますが、今回は初心者にも簡単なURLのパラメータを使用する方法を採用しています。
今回のパスパラメータ定義は以下の通りです。

次に、regDataというAPIで実行するSQL(ここでは同じ名前になりますが、regData)を定義します。
データを登録するデータベースを指定し、SQLのINSERT文を定義します。
前回同様、ライブラリ「NICAPI」にあるデータベース「CUSTOMER」を使用しています。
URLで受け取ったパラメータをSQL文に取り込むため、設定ウインドウで定義を行ないます。
定義されたパラメータをSQL文に取り込むにはパラメータの数だけ「?」をSQL文に記述します。
この時、パラメータウインドウで定義された順番でSQL文の「?」に嵌め込まれて行きます。

今回は、12項目ありますので、パラメータ定義は以下のように行ないました。

これで、「API-Bridgeサーバー」の定義は終了です。「IBM i 」のデータに登録する準備ができました。

続いて、登録データを入力する画面定義及び処理を司るJavaScriptを作成していきましょう。

まず、登録データを入力する画面のHTMLは以下となります。
前回の教訓通り、<form>での画面定義ですが、ボタンはここには定義しません!

続いて、データ登録のJavaScriptです。

いかがだったでしょうか。
前回苦労した分、今回は画面周りの実装はそれほど苦労せずできました。

ただ一つ、データを登録するところがうまくいかずちょっと頭を悩ませました。
更新のログを確認すると、どうも「IBM i 」のデータベースにジャーナルがかかっていないことが原因のようでした。
今回、検証環境で実証実験を行なっているため、データベースにジャーナルはかけていないし、かける予定もありませんでした。
賢明な読者の皆様はすでにお気づきかと思いますが・・・そうです「更新のSQLに『with NC』パラメータを記述する」必要がありました。
もちろん、対象のデータベースにジャーナルがかかっていれば、こんなパラメータは不要なのですが、もしジャーナルを使用していない場合は、この「with NC」をお忘れなく!

ということで、今回はここまで。
次回は、「IBM i 」のデータを「kintone」から更新するAPIを実証実験した結果を報告します。
乞うご期待! では・・・

※「IBM i 」は、IBM株式会社の登録商標です。
 「APIBridge」は、株式会社オムニサイエンスの登録商標です。
 「kintone」は、株式会社サイボウズの登録商標です。

IBM i + kintone のAPI連携
– 顧客マスター・メンテナンス –
IBM i + kintone のAPI連携
– 得意先マスター・メンテナンス –
IBM i(AS/400)と LINE のAPI連携をやってみた!

※製品名、サービス名、会社名、ロゴは、一般に各社の商標、または登録商標です。なお、本文および図表中では、「™」、「®」は明記しておりません。
製品の仕様・性能は予告なく変更する場合がありますので、ご了承ください。


本サービスの詳細リンク先:IBM i アプリケーションモダナイズ

本サービスの詳細を知りたい場合は、こちらよりお問い合わせください

ページのトップへ