②でバッチ化したRPGをREST APIでコールできるようにしてみます。
色々な方法が考えられますが、今回はIBM i OS標準機能(追加費用無し)のAPサーバー(IWS=WAS Libertyベース)にサービスとしてデプロイしてみます。
今回はIBM Bobを使用するステップはありません。
1.概要図
2. IWSインスタンスの作成
いろいろな資料があると思うので作成手順のポイントだけ記載します。
Web Administrator for i 、の管理画面を開きます。
http://ron.ibm.co.jp:2001/HTTPAdmin
ron.ibm.co.jpは自社のホスト名
Nav4iのブックマークから開くとhttps で 2010番ポート で開くのでTLS未使用の場合は http と 2001番ポートに変更します。
IWSと関連HTTPサーバー(Apache)が使用するポートを指定。今回は5600 , 5610とします。このサーバーで未使用のポートを指定します。
登録中のRPGを呼び出す際のユーザーIDを指定。今回はGOMA4。このIDが呼び出すRPGの実行権限を持つ必要があり明日。

その他は基本デフォルトで指定して、APサーバーとHTTPサーバーを作成します。
HTTPサーバー、APサーバーを起動・停止する画面は複数ありますが、一例として すべてのアプリケーションサーバーの管理 から、目的のAPサーバーを選択して、始動ボタンを押します。下図はAPサーバーが起動済の画面です。
3. RPGをコールするサービスのデプロイ
すべてのアプリケーションサーバーの管理画面でデプロイしたいAPサーバーをクリックして、新規サービスの配置(デプロイ) ウィザードを開始します。

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

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

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

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

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

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

以上でデプロイが完了します。
4. デプロイしたサービスの起動と実行確認
RPGをコールするサービスを開始します。
LWIの管理画面で、デプロイ済みサービスの管理 画面を開きます。
下記は既にサービスを開始してありますが、もし サービスが停止(赤点灯)の場合はデプロイしたサービスをクリックして、開始ボタンで開始します。(下図では表示されていませんが、停止ボタンの前に開始ボタンが表示されます。)
REST API呼び出すURLは上記のデプロイしたサービスをクリックして、プロパティー ボタンと押すと下記のように表示されます。

ベースリソース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 だけです。その他のパラメーターはダミーな為値は適当に入れています。
5250画面からCALLコマンドで実行したの同様な結果が得られました。







