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

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

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

<シリーズ 第2回> 「IBM i 」から「kintone」にデータを追加してみよう

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

第1回では「kintone」のデータを取得して「IBM i 」の画面に表示する実証実験を行ないました。
その際、第2回では、「IBM i 」のデータを「kintone」で取得・表示してみよう、をお届けすると予告しましたが、
「kintone」のデータを「IBM i 」での操作をまとめてお届けしよう、ということになりましたので、今回はデータの追加についてご紹介することとしました。
「IBM i 」のデータを「kintone」で操作する内容は、次のシリーズでお届け予定です。
しばらくお待ちください。

それでは今回の本題に入りたいと思います。
今回も前回使用した「kintone」<顧客リスト>のデータを使用します。

まずは完成イメージをご紹介します。
kintone側のデータは、レコード番号20まで存在しています。

ここに「IBM i 」からデータを追加します。
入り口は、データ照会の画面になります。バージョンアップを行ない、「F6=登録」を追加しました。

F6キーを押下すると、登録画面が表示されます。

データを入力し、F6キーで登録します。

登録処理後は、一覧画面に戻ります。

さて、入力データが「kintone」に登録されているでしょうか・・・?
一覧に、赤枠で囲った「レコード番号21」が追加されています。

追加登録された「レコード番号21」の詳細をみてみると
IBM i に登録したマスター情報が反映されています。

同様の情報がIBM i の画面でも照会できます。

さて、それでは実装方法をご紹介していきましょう。
まず、「API-Bridge」の定義です。

※前回ご紹介した通り、「kintone」の当該テーブルにアクセスするためには「トークン」が必要となります。
 今回はデータの追加なので、メソッドには「*POST」を指定します。

2画面目から5画面目は、今回、未使用です。

6画面目にパラメータを指定します。追加データをIFSのディレクトリにJSON形式で作成しました。
(詳細は後述します)

7画面目はデータ取得定義と同様になります。(登録時は指定したライブラリは特に使用しません)

定義はこれで終わりです。

6画面目で指定したJSONファイル「kintone/add.json」の内容は以下の通りです。
登録処理で編集・書き込みを行なっています。

次に、RPGを用意します。
既存の照会処理から呼び出されます。

1.SQLREG:登録画面処理およびJSONファイルの出力用

ソースは以下となります。
(前回同様ソースの美しさは求めていませんので、中途半端なILERPGだな、と言わないでください、あしからず)
SQLREG

次に、CLPを用意します。
CLPは以下の構成としました。

1.API_INIT:初期設定用
2.API_EXEC2:登録API-Bridge実行用

API_INIT
JSONデータを出力するファイルをクリア。

API_EXEC2
RPGで作成した登録用のJSONファイルをIFSのフォルダにコピーしています。CCSIDはUTF-8の「1208」を指定しています。

いかがでしょうか。結構簡単にデータ登録処理が作成できました。


しかし、テストで試してみると登録処理がうまくいったりいかなかったり、という状況が発生しました。
ご紹介したサンプルは、最終系のものですのでちゃんと動きますが、ここに至るまでの失敗を以下にまとめておきます。ご参考になれば幸いです。

登録処理がエラーになったケース
〇その1:「IBM i 」と「kintone」で項目の桁数が不一致
→ 至極当然なのですが、実は「kintone」側の設定に落とし穴がありました。
「kintone」の項目設定に以下の通り、文字数の最小、最大値が設定できるのですが、通常は設定されていないケースが多く、この郵便番号もそうだと思っていたところ、なんと設定があったのです。

左:会社名は設定なし      右:郵便番号は設定あり

上記の理由から、「IBM i 」から8桁以上のデータを登録しようとした時、エラーとなってました。
教訓:項目設定は面倒でも全項目確認しましょう!

〇その2:入力できる値がリストされていたが、リストにない値を登録しようとした。
→こちらも確認ミスですね・・・情けない限りですが、思い込みってのは怖いですね。

顧客ランクがその項目に当たるのですが、入力時は確かにプルダウンでの選択なのでその時に気づくべきなんでしょうけど、リスト以外の値を入れてしまったんです・・・
教訓:プルダウンは選択できる項目以外は入力できません!

というわけで、今回は失敗した事例も併せてご紹介しましたが、ご参考になれば幸いです。
今回はここまで。

次回は、「kintone」のデータを「IBM i 」から削除するAPIを実証実験してみます。乞うご期待!

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

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

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


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

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

ページのトップへ