|
|||||||||
|
SCAN CL コマンドの作成 |
|
ストリング・パターンのスキャン (QCLSCAN) API は、ストリングが指定のパターンを含んでいるかどうか調べる文字ストリングのスキャンに使用されます。この機能は、SEU
でサポートされる、DSPSPLF コマンドの表示に出力されるスキャン機能と類似しています。さらに、QCLSCAN API を使用すると、検索対象ストリング内の任意の文字にマッチングする
1 バイト文字をパターンに指定でき、開始位置を指定して同じストリングを複数回検索することもできます。 QCLSCAN API は CL プログラム内で容易に呼び出すことができますが、必須パラメーターが多いためコードが大きくなります。そこで、作業を簡単にするコマンド・インターフェースを作成しました。また、コマンド・インターフェースは、ヘルプ・テキスト・パネル・グループの形式でオンライン・ドキュメンテーションに対応しているので、コマンドとパラメーターの使用法を容易に調べることができます。 SCAN CL コマンドは、次の 3 つのソースで構成されています。 CBX606 CLP スキャン・ストリング - CPP CBX606H PNLGRP スキャン・ストリング - ヘルプ CBX606X CMD スキャン・ストリング ソースをコンパイルするには、ソース・ヘッダーにある指示のとおりに行うだけです。また、SCAN コマンドの使用法の例をいくつか示す、小さなテスト・プログラムも組み込んであります。 CBX606T CLP スキャン・ストリング - テスト 図 1 に、そのプログラムからの抜粋を示します。 さまざまなパラメーター設定を使用したときの QCLSCAN API の動作については、publib.boulder .ibm.com/infocenter/iseries/v5r4/topic/apiref/apiexscapat.htm にアクセスしてください。QCLSCAN API に関する初期の資料は、「System/38 Environment Programming」マニュアル (publib.boulder.ibm.com/iseries/v5r2/ic2924/books/c4137350.pdf) にあります。また、 『Scan for String Pattern (QCLSCAN) API』(publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/apis/qclscan.htm) も参照してください。 |
| ↑このページのトップへ |
|
借用権限が伝搬されないようにする |
|
借用権限は、ジョブの権限を一時的に強化して、ユーザーがアクセスすることを通常は許可されていないオブジェクトまたはデータへのジョブ・アクセスを可能にする、強力な方式です。借用権限は常にプログラム・オブジェクトとプログラム所有権に基づいており、QSYS.LIB
ファイル・システム内でのみサポートされています。 |
| ↑このページのトップへ |
| 自由形式での /COPY の使用 |
| 自由形式 RPG ブロックで /Copy (または /Include)
を使おうとして、コンパイラー・エラー「RNF0257 Form-Type entry not valid or out of sequence
(Form-Type 項目が無効か順序が間違っています)」が発生したことがあるかもしれません。 自由形式でコーディングしている場合、このエラー・メッセージはたいてい、コンパイラーが自由形式ブロック内で固定形式の構文を検出したことを示しています。/Copy ステートメントをコードの自由形式ブロック内でコーディングしていても、/Copy メンバーは固定形式構文と見なされます。/Copy メンバーに自由形式構文が含まれている場合は、/Copy メンバー内の自由形式コードのみを /Free と /End-free の区切りで囲む必要があります。 1 次ソース・メンバー内では、次のように、/Copy ディレクティブをコーディングする前に /End-free をコーディングする必要はありません。 /Free ... (自由形式コード) /Copy library/srcfile, member ... (さらに別の自由形式コード) /End-free また、/Copy ディレクティブは必要に応じてインデントでき、列 7 から始めなくても構いません。自由形式構文では、列 6 から 7 をブランクにする必要があるので注意してください。筆者は、自由形式では常に /Copy ディレクティブをインデントするようにしています。(自由形式構文なのに特定の列をブランクにする必要があるのはどうかと思いますが、IBM にはこの皮肉が通じないようです。) ちなみに、条件付きコンパイル・ディレクティブ (/Define、/Undefine、/If、/Elseif、/Else、/Endif、および /Eof) も自由形式構文で使用できます。また、IBM の説明とは異なりますが、自由形式構文でもこれらのディレクティブはインデントできます。 |
| ↑このページのトップへ |
| システム日付の代わりにジョブ日付を使用する |
| デフォルトでは、%DATE
組み込み関数は現在のシステム日付を返します。 currDate = %date(); 一方、次のように *DATE を指定すると、ジョブ日付を返すことができます。 currDate = %date( *date ); システム日付の代わりにジョブ日付を使用すると、特定の日付にとても簡単にプログラムを再実行できます。CHGJOB コマンドまたは SBMJOB コマンドのジョブ日付パラメーター (DATE) に、必要な日付を指定するだけです。 |
| ↑このページのトップへ |
| ホスト・サーバーのヒント |
| System
i は、一連のホスト・サーバー・プログラムを使用して、TCP/IP 機能と iSeries Access 機能をサポートします。ホスト・サーバーのいずれかが非アクティブになると、そのサーバーによって提供されていたホスト・リソースがクライアント・システムに提供されなくなります。iSeries
Access をインストールした場合 (していない場合も)、ホスト・サーバーの状況を検査する最も便利な方法は、cwbping コマンドを実行することです。このコマンドにパラメーターはありません。このコマンドは、System
i ホスト・サーバーをすべてリストし、その状況を表示します。 |
| ↑このページのトップへ |
| オブジェクト所有権の変更 |
|
オブジェクトの所有権を変更することは簡単で、CHGOBJOWN
コマンドを実行すれば済みます。ただ、ライブラリー内にあるものすべての所有権を変更したい場合や、オブジェクトを OLD_OWN の所有から
NEW_OWN の所有に変更しながら、OLD_OWN プロファイルは削除したくない場合には、どうすればよいでしょうか。このヒントでは、両方の状況について解決策を示します。 |
| ↑このページのトップへ |
BELLDATA, Inc. Copyright reserved. |