iCafe | IBM i / AS400等に関する技術情報ポータルサイト

IBM i / AS400等に関する技術情報ポータルサイト

ニュース
iBI主催 IBM i 勉強会レポート~第1回~


平成31年4月26日、日本アイ・ビー・エム(株)箱崎事業所でiBIiBusiness Initiative)技術部会主催による第1回IBM i 勉強会が開催されました。大型連休直前にもかかわらず満席という熱気溢れる会の主な内容をレポートします。

iBI技術部会は、様々な事情でIBM i の新しい機能を学ぶ機会を逸し、そのためにIBM i は時代遅れだと思い込んでいるユーザーにIBM i の真価を伝え、その能力をフルに活用してもらうための活動を行っています。今回のIBM i 勉強会はその一環として企画、開催されたものです。

今回は、

  • IBM i Access Client Solutions(ACS)紹介
  • ACSの5250エミュレータ機能の使いこなそう
  • ILE RPGのススメ

という3つのテーマを主題に、これらを活用することでどこまで現代的なアプリケーション作りが可能かについて具体例を用いた説明が行われました。

IBM i Access Client Solutions(ACS)紹介

ご存知のように、ACSは5250エミュレータ、データ転送機能、SQLスクリプト実行機能、導入・配布機能など、IBM i とPCの間の多様なデータのやり取りを支援する機能を提供するJavaベースの製品で、Windows10、Mac OS、Linuxという幅広いクライアントに対応可能です。

ACSの機能の詳細については既にiCafeコラム -【どうする5250】第1回 IBM i Access Client Solutions (https://www.i-cafe.info/column/win10_5250/acs/) - でご紹介していますのでそちらを参照していただくとして、ここでは今回の勉強会で強調されていたACSを取り巻く環境の変化とそれに伴う注意事項について述べることにします。

  • IBM i Access for Windows7.1は2019年4月30日サポートが終了し、Windows10で使用することはできません。また、Windows7のサポートが2020年1月14日に終了しWindows10への移行が迫られていることを考え合わせると、Windows10で使用できるACSへの移行準備及び作業に早急に着手する必要があります。
  • ACSはJavaをベースにしており、JDKの導入が前提条件になります(ACS 1.8.1.0以降はJava 8が必要、推奨はJava 8アップデート171以降の使用)。ところがOracleは2019年1月にJDK8の無償での商用サポートを終了しています。この問題に関しては、OracleやIBMがそれぞれ提供している有償サポート契約を結ぶという選択肢もありますし、無償で使用できるOpenJDKを使うという選択肢もあります。どれを選ぶかはお客様の事情によって判断することになります。詳しくはこちらを参照してください。

ACSの5250エミュレータ機能を使いこなそう

ACSの5250エミュレータ機能を使い、CUIながらもGUIに劣らぬ操作性に優れたユーザーインターフェースが作成可能であることを示す一例として、iSite Plus販売管理というパッケージ製品への適用事例がデモを交えて紹介されました。

紹介された事例では、以下のような機能を使ってGUIに似た見た目を与えると同時に、操作もマウスを主体に使用できるよう工夫されています。

  • ホットスポットを活用した様々なPCアプリとの連携
    • URLリンク
    • メールアドレスリンク
    • ファイルリンク
    • マウスボタン(ファンクション・ホットスポット)
  • マウスのスクロール操作による画面操作
  • ウォータマーク(透かし模様)を使用し画面の背景にjpgを表示
  • カラーの活用による視認性の向上


図. デモ画面の一例

具体的にはまず、マウスのクリック操作でメニューを切り替えたり、サブファイル画面をマウス操作でロールアップ/ダウンしたりできる様子が紹介され、マウスによる操作性向上のメリットを実感できました。これらは5250エミュレータの設定だけで実現でき、プロフラムには一切修正の必要がないという点も魅力的です。

更に、アプリケーションの画面から取引先のURLをクリックすると、ブラウザーが立ち上がり取引先のホームページが表示され、担当者一覧からメールアドレスをクリックするとメールを送るためにメールアプリケーションが立ち上がり、商品一覧で商品イメージへのリンクをクリックするとイメージビューアーが立ち上がって商品の画像が表示されるなど、ホットスポットのリンク機能を活かしたユーザーインターフェースへの利用法が紹介されました。

また、デモで使用したパッケージでは、27行/132桁の画面サイズ(*DS4)が活用されていました。*DS4を使用すると24行/80桁の画面サイズ(*DS3)で作られたアプリケーションが使えない、あるいは画面が縮小されてしまうのではないかと誤解しているユーザーを時々見かけますが、画面サイズを*DS4に指定しても*DS3で作成されたアプリケーションは、問題なく*DS3のまま表示されます。表示領域が広がれば表示できる情報量も増えるので、スプールファイルの表示などシステム系の画面の使い勝手が向上するのはもちろん、ユーザーアプリケーションでも画面設計の自由度が増し、使い勝手の良いユーザーインターフェースが設計できます。これも5250エミュレータの設定を変更するだけで利用できますので、是非試してみるよう呼びかけられていました。

なお、上記デモ画面の詳細資料はiCafeの資料ダウンロードサイトから入手可能です。「IBM i TECHセミナー2018秋」セミナー資料ダウンロードを選択し、「Tool要らずのモダナイゼーション ACS&RPGの実力再発見」という資料をダウンロードしてください。また、iCafeの特別記事(【激論!】RPGは残す?残さない?~第1回 株式会社アイエステクノポート)を併せて読んでいただけるとデモの内容が更に良く理解できると思います。

ILE RPGのススメ

ILE RPGというと自由形式によるコーディングが思い浮かぶ方も多いと思います。また、ILEはモジュラーコーディングとセットで説明されることが多いため、コーディングスタイルを変える必要があると思われているユーザーもあるようですが、RPGⅢと同じ構造のままILE RPGに書き換えることが可能です。RPGⅢからILE RPGへの移行は思っているほど難しいものではありません。実際、OSで提供されているCVTRPGSRCコマンドを使えば、RPGⅢのソースコードのプログラム構造を引き継いだままILE RPGのソースコードに変換することができます。この場合モジュラーコーディングによる拡張性や変更容易性といったメリットは享受できませんが、それでも豊富な組み込み関数が利用できるということだけでもコーディングが容易になり、コードも簡素化できます。

たとえば、勉強会で紹介されていた例とは少し違いますが、今日から100日後の日付の計算がしたければ

 

DUEDATE = %DATE() + %DAYS(100)

 

のように、%DATE、%DAYSという組み込み関数を使って簡単にコーディングすることができます。組み込み関数がなければ、結構面倒なサブルーチンを作らなければならない処理がいとも簡単にコーディングできてしまうことがお分かりいただけると思います。

ILE化に関して、すべてのプログラムをILEにしなければならないと誤解されているユーザーも意外に多いのですが、もちろんそのようなことはなく、1本のプログラムだけをILE RPGに書き直すことも可能です。既存プログラムの修正や新規開発などはILE RPGを試してみる良い機会になります。

また、ILE RPGではRPGⅢにおける制約条件が大幅に緩和されており、プログラムが作成しやすいというメリットもあります(表1)。たとえば、フィールド名や配列名などは4096文字まで許されますので、見て理解し易い名前を付けることができ可読性の高いプログラムが作成できます。今回、ファイルの最大数が50から無制限になっていることを知った参加者からは、これまでこの制約のために2つに分割せざるを得ないプログラムがあったが、ILE RPGを使えば自然な形で1本のプログラムで処理が行えるという声も聞かれました。

とかく技術的に難しいと思われがちなILE RPGですが、こうした制約事項の緩和や組み込み関数の活用といったレベルからILE RPGを使い始めるのが、技術的なハードルも低くメリットを享受しやすい良い方法だと感じました。

項目 RPGⅢの制約 ILE RPGの制約
フィールド/配列名/DS名の長さ 6バイト 4096バイト
レコード様式名の長さ 8バイト 10バイト
ファイル名の長さ 8バイト 10バイト
最大使用可能ファイル数 50 無制限
最大文字フィールド長 256バイト 16773104バイト
名前付き定数(文字/16進)の最大長 256文字 16380文字
DSのサイズ 9999バイト 16773104バイト
小数点以下の桁数 9桁 63桁
配列の要素数 9999 16773104
サブルーチンの数 254 無制限

表1.RPGⅢとILE RPGの主な制約事項

 

その他、ILE RPGのプロシージャで定義された変数はRPGⅢの内部サブルーチンと違って呼び出しモジュールから独立しているので、呼び出しモジュール中の変数名との名前の重複による副作用を気にすることなくプロシージャの開発ができるという利点も指摘されていました。

最後に

今回の勉強会を通して、「5250やRPGはもう古い」とか「ILE RPGは難しいし、あまりメリットもない」といった先入観を捨て、まずは簡単に使える機能を試してみるだけでもIBM i の持つ現代のサーバーとしての優れた機能の一端を垣間見ることができるのだと再認識しました。是非皆さんも機会を捉えてこれらのことにチャレンジしてみてください。きっと新しいIBM i の姿を発見できると思います。

 

<著者プロフィール>
西原 裕善(にしはら ひろよし)
日本IBMでSEとしてS/34、S/38のシステム設計および導入作業に従事した後、米国ロチェスターの国際技術支援部門に出向し、全世界のIBM SEやお客様に対してAS/400の技術サポートを行う。帰国後、日本IBM システムズ・エンジニアリング(株)でITアーキテクトとして様々なシステムのアーキテクチャ設計を担当。現在はフリーのテクニカル・ライターとしてIBM iを中心に執筆活動を行っています。

この記事のあとにはこちらの記事もおススメです。

関連キーワード

メールマガジン登録

注目キーワード

フリーワード検索

お探しの情報に関する単語を入力してください。

資料ダウンロード

iCafeではIBM iに関するさまざまな資料を掲載しています。お探しの資料をぜひさがしてみてくださいね。

アクセスランキング