メニューボタン
IBMi海外記事2021.07.14

最新TRでRPGに追加された3つの組み込み関数

Alex Woodie 著

IBM i 7.4および7.3向けのテクノロジー リフレッシュ(TR)の最新バッチは、特別ワクワクするようなものではありませんでした。けれども、半年に1度行われるアップデートであり、今回もいくつかの新機能が追加されています。RPGプログラマー向けのものとしては、3つの新たな組み込み関数が追加されました。その1つは%SPLITと呼ばれる関数です。

HelpSystems 社の最新の「Marketplace Report」によれば、RPGは、依然としてIBM i プラットフォームで最も広く使用されている言語であり続けているようです。シェアは87%で安定しています。これはJavaの約2倍、COBOLの4倍以上のシェアということになります。このプラットフォームのデフォルト言語というものに一番近いのは、これはあくまでも私の意見ですが、古き良きReport Program Generatorではないでしょうか。IBM i 開発とほぼ同義だからです。

IBM がIBM i 7.4 TR4および7.3 TR10で、新たなキーワードとともに提供した新たな3つの組み込み関数は、IBM i 開発者がこの言語でさらに多くのことを行うのに役に立つはずです。そうした新たな関数には、以下のものがあります。

  • %LOWERおよび%UPPER組み込み関数は、文字変数の内容を大文字から小文字または小文字から大文字へ変換します。
  • %SPLIT組み込み関数は、ストリングを配列に分割します。
  • %MAXARRおよび%MINARRは、配列の最大または最小の要素の指標を返します。

オンタリオ州トロントのIBMラボでRPGコンパイラー開発の指揮を執るBarbara Morris氏が、 最近のRPG Caféブログの記事で詳細を説明しています。

Morris氏の記事によれば、%LOWERおよび%UPPER関数は、入力文字を適切なケース(大文字小文字)に変換するのに有用だということです。たとえば、元々、名前が大文字で入力されていた場合に、%LOWER関数はその名前の文字を小文字に変換することができます。また、たとえば名前の頭文字のように、一部の文字を大文字のままにするには、開始および終了オペランドを使用して指定することができるとMorris氏は指摘しています。

新たな%SPLIT関数は、ストリングをサブストリングの集合(配列)に分解するのに使用することもできます。デフォルトでは、%SPLITはブランクでストリングを分割するとMorris氏は記しています。2つ目のseparatorsパラメーターでは、区切りに使用したい文字のリストを指定できると彼女は記します。ユーザーは、コンマ、ダッシュ、ピリオドなど、任意の文字を選択できます。

したがって、「a bcd ef」という値のストリングの場合、%SPLIT関数は、デフォルトで、「a」、「bcd」、「ef」という値の配列を返します。そのため、開発者は、FOR-EACHを使用して、%SPLITの結果を処理することができるとMorris氏は記しています。

今回のTRにおける、もうひとつの機能強化に、キーのより厳密な規則の追加があります。これについては、Morris氏はRPG Caféで取り上げているものの、IBMの発表レターには記載されていません。

「制御キーワードEXPROPTS(*STRICTKEYS)を指定すると、キーのリストまたは%KDSで指定できる検索引数の規則がより厳格になります」とMorris氏は記しています。「デフォルトでは、検索引数のデータ タイプはキーと一致する必要がありますが、長さおよびCCSIDは異なっていても構いません。たとえば、数値の検索引数の長さをキーより長くすることができますが、これは、実行時に数値オーバー フロー エラーを引き起こすことがあります。」

RPG

新たなEXPROPTS(*STRICTKEYS)キーワードでは、検索引数がキーより長くなるのをコンパイラーが許可しないとMorris氏は記しています。

これらの新機能は、IBMのRational Development Studio(RDS)オファリング(5770-WDS)に組み込まれているRPGコンパイラーで提供されます。必要な機能を使用できるようにするには、ユーザーは、IBM i 7.3では、ILE RPGコンパイラーおよびILE RPGランタイムにそれぞれPTF SI76100およびSI76098を適用する必要があります。IBM i 7.4では、コンパイラーおよびランタイムに、それぞれPTF SI76101、SI76109、およびSI76099が必要です。

また、IBMは、IBM i の新たなロゴに合わせて、RPGのロゴを新しくしたようです(上の図が新しいロゴです)。新機能の詳細については、 IBM Supportサイト および RPG Caféを参照してください。

あわせて読みたい記事

PAGE TOP