新入社員の配属、別の業務部門からの異動、あるいはオープン系スキルを備えた技術者の採用。さまざまな状況でIT部門に所属することになったメンバーが、IBM iを初めて学ぶにはどうすればよいか。基礎知識からプログラミングスキル、データベース学習まで、アイ・ラーニングの研修コースから「IBM iの学び方」を解説する。
著者 中村 潤氏
株式会社アイ・ラーニング
IT 研修本部 IBM 製品研修部
ラーニング・アドバイザー
コロナ禍のなか
オンラインクラスの受講が本格化
これまでアイ・ラーニングの研修コースは、IBM i研修に限らず、東京、大阪、名古屋などの都市部で行う教室研修のみであった。しかし昨年のコロナ禍を契機にオンラインクラスへ転換し、今春からは本格的にオンラインクラスが研修の基本形態となっている。
もちろんオンラインクラスだけでなく、アイ・ラーニング本社のある東京・茅場町会場、もしくは札幌、名古屋、大阪、広島、福岡でのサテライト会場クラスでも、これまでと同じ教室研修の提供を続ける。
オンラインクラスでは受講場所がオフィス、自宅のどこであってもPCとネットワーク(オフィス、自宅のネットワーク、公衆Wi-Fiなど)を用意すれば、全国どこからでも受講が可能で、リモートデスクトップを介して研修用のIBM iサーバーを使用する。
受講者側で5250エミュレータ、IBM Rational Developer for i(以下、RDi)などのソフトウェアを用意する必要は一切ない。
また受講者側でPCそのものの用意が難しければ、茅場町会場や全国のサテライト会場で、これまでと同じ教室研修を一部のコースで開催している。IBM i技術者を育成するユーザーには、今春実施される新人研修カリキュラムの中に、これらのオンラインクラス、教室研修などをぜひ活用してほしい。
IBM iの世界に踏み出す最初の一歩
「IBM i 入門編」
アイ・ラーニングが現在提供している開発者向け研修コースは、図表1の順序で受講することを推奨している。
開発と運用、いずれに携わる場合でも、まずIBM iとは何かを知る必要がある。オンプレミスのユーザーはIBM iを直に現場で使用するので、IBM iへの最初の一歩であるサイン・オンやサイン・オフ、5250画面の操作などは、実業務を通して学びやすい環境にある。
しかし新人社員の場合は、「なぜ我社のコンピュータは普段使っているWindowsではないのか」「なぜ昔ながらのディスプレイで仕事をするのか」などの疑問が続出し、IBM iのよさはなかなか伝わりづらい。
またSIerの担当者も、ユーザーの現場業務を知らないままIBM iの勉強が始まると、新入社員の場合以上に、IBM iにアレルギーを起こす人もいるだろう。
アイ・ラーニングの「IBM i 入門編」では、5250画面の基本操作のほかにも、IBM iがこの30年以上の間にどのような経緯をたどってきたか、その歴史と強みをしっかり伝え(図表2)、今後のIBM iでの開発・運用に自信を持てるようにすることを主眼にしている。
また図表1には掲載していないが、IBM iエバンジェリストであるベル・データの安井賢克氏が担当する「IBM i技術者のIT基礎知識」では、IBM iがAS/400として登場して以来、「もう古い」と言われながらも30年以上の歴史を重ね、どのように新しい技術に対応して今日に至ったか、IBM iの歴史と存在意義を学習する。
これはビジネスパートナーの新人研修として有効なだけでなく、5〜6年の営業経験のある担当者でも「IBM iに対する自信」を付けられるだろう。IBM iのよさを理解できないと、開発に入るモチベーションが上がらないし、ましてやIBM iを人に勧めることもできない。
IBM iのすばらしさを再発見するために、IBM iに携わるすべての人に受講してもらいたいコースである。
SEUとRDiの開発方法に触れる
「IBM i プログラミング入門」
「IBM i 入門編」の次に受講すべきコースが、「IBM i プログラミング入門」である。
ここではSEU、PDMの基本操作を学び、さらにプログラムをコンパイルするために必要なライブラリー・リスト、出力待ち行列の指定など、ジョブの設定方法を学習する。
これはIBM iがAS/400として登場して以来、変わらず使い続けてきた機能である。これらの基本的なことを「今さら研修で?」と疑問に思う人もいるだろう。
しかしこのコースを経ずにRPGプログラミングコースを受講し、SEUの操作がわからずに苦労する人も決して少なくない。SEUはこれまで使ってきたベテラン社員には何ら難しくなくても、新入社員にとってはまったく未知の世界である。
ここで出発点を間違えると、IBM iに対するアレルギー、ともすればトラウマとなる可能性もあるので、必ずこのコースを受講したのちに、RPGプログラミングに挑んでほしい。もちろん社内でSEUをしっかり勉強しているのであれば、何も問題はない。
そしてこのコースでは、5250画面で行ったSEU、PDM、さらにライブラリー作成やソース・ファイル作成をRDiでも行う。受講者からはほぼ100%、RDiは5250画面での作業よりも使いやすいとの反応が返ってくる。
RDiはEclipseベースの画面なので、オープン系の開発経験のある人にはまったく問題なく入っていけるうえ、未経験者にもソース・メンバ—を右クリックでコンパイルできるなど、感覚的に操作できるのが大きな魅力である。
しかもコンパイルエラーは、コンパイルリストを見なくてもソース・プログラムに直に表示されるので、5250画面での開発よりも大幅に効率性が高まる(図表3)。
また、これまでの研修では統合ファイルシステム(以下、IFS)にはあまり言及してこなかった。しかし今後はソース・ファイルをソース・メンバ—ではなく、IFS上にテキストファイルで管理することになるだろう。そのためIFSのディレクトリ作成なども、このコースで行っていく予定である。
さらにこのコースでは、「プログラミング入門」の名前のとおり、フローチャートの見方、アルゴリズムの基礎を勉強する。このアルゴリズムも、フローチャートの図に沿って処理を追いかけるだけではプログラミングのイメージが難しいので、対話モードでPythonを使用し、変数の代入や判断、繰り返しを実体験できるようにする。
まずここでIBM iのPythonに触れてみれば、RPG以外の世界にも視野が広がり、今後の開発にも大いに役立つことだろう(図表4)。
データベースを探求する
「Db2 for IBM i 基礎編・実践編」
データベースについては、以前はDDSを使用した物理ファイル、論理ファイル作成を行うコースのみだったが、現在ではDb2 for IBM iの基礎編(1日)と実践編(2日)に分かれ、データベースはまったく初めてという人には、まず基礎編の受講を推奨している。
「Db2 for IBM i 基礎編」では文字どおり、リレーショナルデータベースの基礎、SQLでの操作が中心となる。近年では大学や専門学校でもデータベースに触れる機会が増えているが、SQL操作の経験がないのであれば、Access Client Solutions(ACS)を使用したSQL操作は今後の開発に大いに役立つだろう(図表5)。
テーブルのデータ確認や集計などはプログラムの実行結果確認にも使用されるので、プログラマーには必須の操作である。SQLと同時にQueryの簡単な操作も学べるので、データベース検索でのSQLとQuery、双方のよさが理解できる。
またある程度の開発経験があり、データベースの知識を持つ場合は、「Db2 for IBM i 実践編」でDDSを使用した物理ファイル、論理ファイル作成、さらにSQLを使用したテーブル、ビュー、インデックスの作成を学習する。
このコースではDDSとSQLで、同じ形の物理ファイル(テーブル)、論理ファイル(ビュー、インデックス)を作成するのがポイントである。
DDSとSQL、どちらで作成した場合も、レコード様式が同じであればプログラムはレベルチェックのエラーを起こさずに実行できる。
またSQLではジャーナルが必須で、テーブル作成時に自動的にジャーナリングされるので、SQL環境でのコミット、ロールバックの概念も合わせて学習する。
日常運用の必須知識を学ぶ
「CLプログラミング 基礎編・実践編」
CLプログラミングはRPGプログラム実行を制御したり、日常の作業を自動化するうえで、開発者にもシステム管理者にも必須の知識である。
CLプログラム自体はCLコマンドを指定した順番どおりに実行していくので、基本的な概念はシンプルであるが、プログラムとして成立させるには順次、判断、繰り返しの概念を理解しておく必要がある。
またCLコマンドを実行させることは、システムに何らかの変更を加えることも多く、ある程度のシステム運用経験がないと、CLプログラムの理解は難しい。
「CLプログラミング 基礎編」では、システム管理的なことはさておき、CLプログラムとしての順次、判断、繰り返しを学習する。IF、DOWHILE、DOUNTILを使用し、メッセージを表示したり、やや遊び的な要素も加えて、プログラムとしての基礎知識を習得する。
この基本的なプログラミングの感覚は、のちのRPGプログラムの学習にも大いに役立つはずである(図表6)。
また「CLプログラミング 実践編」では、実際に現場で動いているであろうCLプログラムを想定し、プログラム作成に必要なコマンドを並べるだけではなく、なぜこの作業がCLプログラムで必要なのか、システム管理やシステム運用の要素を織り交ぜながら解説する。
CLプログラムと言えば、やはり現場で多く見かけるのがメニューで、実践編もメニュー作成から始まる。メニューに限らず、CLプログラムでは表示装置ファイルを使用して画面表示を行うことが多いので、前提条件としてRPGプログラミング、RPG Ⅲ、ILE RPGのいずれかの基礎編を受講したあとに受けることを推奨している。
このコースで紹介するCLプログラムでは、多くの現場で使われているバッチ投入、データ域を使用した排他制御、文書化コマンドの活用などを紹介し、演習でプログラム作成を行う。必要なのは、ユーザーの立場から見てシステムをどう運用し、どう自動化させるかという発想力でもある。
ここで学習することがそのまま現場で使われることもあるだろうし、また似て非なる処理があるかもしれない。ここでのプログラムを参考に、現状システムをより便利に自動化させるといった発想力も養ってほしい。
またCLプログラムはRPGと違って、固定位置記入形式ではないので、これまでのソース・ファイルではなく、テキストファイルでIFS上にプログラムを置くことも可能である。
MicrosoftのVisual Studio Codeでは、IBM iのコードを編集するための拡張機能も増えてきたので、個人のPCで勉強できる環境が整ってきた。
Visual Studio Codeでは文法のエラーチェックまでは実行できないが、コマンドや命令コードが色分けされるので、ある程度の文法の正しさは確認できる。開発で使うにはまだ難があるものの、個人で勉強するには十分である。
コンパイルする際にはCRTBNDCLを使って、SRCSTMFパラメータにIFS上のファイルを指定する必要があるが、オープン系技術者には、これまでのソース・ファイルよりもIFSのほうが編集すべきプログラムの場所がわかりやすいだろう。
そういう意味では、今後の研修ではCRTCLPGMよりもCRTBNDCLを推奨し、ソース・ファイルだけでなくIFSで保管し、Visual Studio Codeを使用したソース編集も取り入れていく予定である(図表7)。
RPG Ⅲを学ぶか、ILE RPGで行くか
「RPGプログラミング 基礎編・実践編」
IBM i研修のメインと言えるのが、「RPGプログラミング」である。このコースには、「RPG Ⅲプログラミング 基礎編」「RPG Ⅲプログラミング 実践編」「ILE RPGプログラミング 基礎編」「ILE RPGプログラミング 実践編」「RPG ⅢプログラマーのためのフリーフォームRPG」の5つがある。
形式としては、RPG ⅢとILE RPG(RPG Ⅳ)がそれぞれに基礎編と実践編で構成されている。当初の構成では基礎編、実践編のそれぞれで同じことをRPG Ⅲ、ILE RPGで行う予定であった。
しかしILE RPGは完全フリーフォームRPGなので、RPG Ⅲの出力仕様書に該当するものがなく、外部記述印刷装置ファイルに関しては、RPG Ⅲでは実践編で登場するのに対し、ILE RPGでは基礎編の段階で登場する。
そうした違いはあるにしても、基礎編ではレポートの基礎および画面照会プログラムの基礎を勉強し、実践編ではデータベース保守、サブファイル、組み込みSQLという基本構成は変わらない。
IBM iユーザーでのRPG ⅢとILE RPGの使用率は、ILE RPGのほうが上回っているとの調査結果がある。しかしRPG ⅢとILE RPGで完全に分かれたわけではなく、両方を使っているユーザーが増えた、というのが現状のようだ。
これまで我々も機会あるごとに、RPG ⅢとILE RPGは混在できることを訴えてきたので、それがやっと実を結んだのだろう。喜ばしいことではあるが、新入社員にとっては事情が違う。RPGそのものが初めての経験なのに、そこにRPG ⅢとILE RPGが混在するとなると、どちらが基本なのか、何から勉強すればいいかに戸惑うだろう。
RPG ⅢとILE RPGの両方を知っているのであれば、その違いはさほど大きなものとは感じられないが、知らない人にはその区別を見分けるのは難しい。
筆者自身もRPG Ⅲしか知らない状況でILE RPGの研修を受けた時、その違いに軽い衝撃を受けたものである。とくに関数が使えるだけで、RPG ⅢとILE RPGは別言語のような印象を抱いた。
ここは当社のような研修会社としても、今後のRPG研修を単純にRPG ⅢとILE RPGで分けただけでよいのか、大いに検討する必要があると感じている。
ただし最終的にRPGプログラマーが行き着くのは、フリーフォームRPGである。このことだけは、ぶれないつもりでいる。なぜならデジタルトランスフォーメーション(以下、DX)に向けたRPGは、フリーフォームRPGであることに間違いはないからだ。
オープン系プログラマーはフリーフォームRPGという言語スタイルを受け入れやすい。このこと自体はDXとは直接関係ないが、フリーフォームRPGはSEUでは開発できず、RDiを使用することの意味は大きい。
「IBM i プログラミング入門」の説明でも触れたが、SEUとRDiでは開発効率が天と地ほど違う。SEUでコンパイルエラーが起こると、コンパイルリストを表示し、エラーコードを検索コマンドで検索し、という操作がついて回る。これは、訓練して身に付ける技術と言ってもよい。
しかしRDiでコンパイルすると、コマンドそのものを打たなくても右クリックだけで実行でき、エラーもLPEXエディターの画面に直接表示される(図表8)。エラーを探す技術が必要ないのである。
DXとはデジタルをとではない。5便利に使うことで、訓練して使いこなすこ250画面での開発をRDiに移行すれば、開発効率を高めるうえでも、新しい人材を確保するうえでも、そのメリットは想像以上に大きいだろう。
IBM iでの身近なDXがRDiであることは、再認識する必要がある。
IBM i研修は以上の公開コースのほかにも、e-ラーニング、自習教材を取り揃えているので、先輩社員がサポートしながら自習教材での勉強でも効果が期待できる。自習教材では研修用ライブラリーを当社のWebからダウンロードし、それを受講者が自社のIBM iサーバーにリストアして、プログラムを作成する環境も用意されている。
それぞれの研修スケジュールに合わせて公開コース、自習教材を取り入れてもらえれば幸いである。
[i Magazine 2021 Spring(2021年4月)掲載]