2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM (i) Bob RPGⅢプログラムをモダナイズ ③バッチ変換したRPGをREST化する

2
Last updated at Posted at 2026-03-04

②でバッチ化したRPGをREST APIでコールできるようにしてみます。
色々な方法が考えられますが、今回はIBM i OS標準機能(追加費用無し)のAPサーバー(IWS=WAS Libertyベース)にサービスとしてデプロイしてみます。

今回はIBM Bobを使用するステップはありません。

1.概要図

以下のようになります。
image.png

2. IWSインスタンスの作成

いろいろな資料があると思うので作成手順のポイントだけ記載します。

Web Administrator for i 、の管理画面を開きます。

http://ron.ibm.co.jp:2001/HTTPAdmin

ron.ibm.co.jpは自社のホスト名
Nav4iのブックマークから開くとhttps で 2010番ポート で開くのでTLS未使用の場合は http と 2001番ポートに変更します。

Web Serviceサーバーの作成 ウィザードを開始
image.png

今回サーバー名はGOMA5600としました。
image.png

IWSと関連HTTPサーバー(Apache)が使用するポートを指定。今回は5600 , 5610とします。このサーバーで未使用のポートを指定します。

登録中のRPGを呼び出す際のユーザーIDを指定。今回はGOMA4。このIDが呼び出すRPGの実行権限を持つ必要があり明日。
image.png

その他は基本デフォルトで指定して、APサーバーとHTTPサーバーを作成します。

HTTPサーバー、APサーバーを起動・停止する画面は複数ありますが、一例として すべてのアプリケーションサーバーの管理 から、目的のAPサーバーを選択して、始動ボタンを押します。下図はAPサーバーが起動済の画面です。

image.png

3. RPGをコールするサービスのデプロイ

すべてのアプリケーションサーバーの管理画面でデプロイしたいAPサーバーをクリックして、新規サービスの配置(デプロイ) ウィザードを開始します。
image.png

呼び出すRPGプログラム・オブジェクトのパス・名前をIFS形式で指定します。
下図は/QSYS.LIB/GOMALIB.LIB/まで入力して 参照 ボタンを押した状態です。この場合、GOMALIB 配下のオブジェクト一覧が表示されるのでそこから今回のIPH110BCH.PGM を探すことができます。
image.png

最終このように入力して次へボタン。
image.png

次にPCMLファイルのパスを指定しますが、今回は、

/HOME/GOMA/PCML/IPH110BCH.PCML

としています。
image.png

手順が前後してしまいましたが、このパスは、バッチ化したILE RPGをコンパイルするときにPGMINFO パラメーターで指定しています。ですので、バッチ化したRPGをコンパイルするときに下記を指定してください。
PGMインターフェース パラメーターに *PCML を指定
image.png

プログラムインターフェースストリームファイル パラメーターの生成するPCMLファイルのフルパス名を指定。ここが上のウィザードで指定したPCMLファイル名と合致します。
image.png

ウィザードに戻ります。
ウィザードを進めると下記のようにRPGを呼び出す際のパラメーターが自動的に認識されて表示されます。基本ここを修正する必要はありません。この値はPCMLファイルから取得しています。
image.png

ウィザードの後続の画面で、RESTのメソッドタイプ(今回はGET)、呼び出すRPGのパラメーター指定方法を指定します。コピペミスしてしまい下記登録後の確認画面ですが、同様に入力します。
ポイントはカブのパラメーター(10個あります)の入力ソースのところをそれぞれ *PATH_PARM を指定し、それぞれのパラメーターのIDを指定する(IDは任意で可)点です。
image.png

その他はデフォルトで設定してOKと思います。通常ですとデフォルトでRPGの保存されているライブラリーが追加されているはずです。他に必要なライブラリーがある場合、個々に追加します。
image.png

以上でデプロイが完了します。

4. デプロイしたサービスの起動と実行確認

RPGをコールするサービスを開始します。
LWIの管理画面で、デプロイ済みサービスの管理 画面を開きます。
下記は既にサービスを開始してありますが、もし サービスが停止(赤点灯)の場合はデプロイしたサービスをクリックして、開始ボタンで開始します。(下図では表示されていませんが、停止ボタンの前に開始ボタンが表示されます。)

image.png

REST API呼び出すURLは上記のデプロイしたサービスをクリックして、プロパティー ボタンと押すと下記のように表示されます。
image.png

ベースリソースURLというのが呼出しURLになります。今回はパスパラメーター呼出しを指定したので、URLの後ろにパラメーターも追記して以下のようにURL指定します。今回はブラウザーから呼び出しました。

http://ron.ibm.co.jp:5610/web/services/IPH110BCHp?PS1TOKB=01020&PS2NAKJ=27&PS2ADR1=27&PS2ADR2=27&PS2TIKU=01&PS2POST=27&PS2GEND=0&PS2UZAN=0&PS2GAKU=0&PNOTFOND=2

※ron.ibm.co.jp:5610は個々の環境に合わせて変更してください。
※今回のサンプルPGM(IPH110, IPH110BCH)はインプットパラメーターは最初のPS1TOKB だけです。その他のパラメーターはダミーな為値は適当に入れています。

実行結果例がこちら
image.png

5250画面からCALLコマンドで実行したの同様な結果が得られました。

続き④はこちら

2
1
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?