問題タブ [control-language]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ibm-midrange - CL コマンドはどのようにして正確なパラメーター・リストを作成しますか?
RPGLE プログラムを駆動する CMD コマンド オブジェクトがあります。コマンドはいくつかの異なるパラメーターを使用して呼び出される可能性があり、そのうちのいくつかは相互に排他的であるため、RPGLE のデータ構造を使用して渡されたパラメーターを解析し、さまざまな位置でパラメーターを渡すさまざまなシナリオを処理できるようにします。
たとえば、CMD ファイルには次の内容があります。
ユーザーは、注文番号、日付、日付範囲など、さまざまな基準で印刷できます。これら 3 つの方法のうち 1 つだけを選択できます。ユーザーの選択に応じて、パラメーターは呼び出された RPGLE プログラムに異なる方法で配信されます。
ご覧のとおり、TRANSTYPE
シフト位置などの後のパラメーターの位置は、前のパラメーターのどれが選択されたかに応じて異なります。 OrdInvCM
22 からDteInvCM
始まり、14 からRgeInvCM
始まり、30 から始まります。これは問題ではありません。このデータ構造とそれを使用するコードは、呼び出している不思議な小さな属性に基づいて、読み取る正しい位置を選択できるからですParmType
。私が知る限り、この属性は、インターネット上の CL マニュアルや SEU エディターに含まれるヘルプ (PASSATR
オンライン マニュアルにない情報がある) のどこにも記載されていません。pass 属性に関連する の動作を少しまとめましたParmType
。使用するには十分ですが、完全に理解するには不十分です。
解析を容易にするためのいくつかの定数PASSATR
(すべての可能性ではありません):
私はそれを発見しました:
つまり、ParmType
パラメータが日付または日付範囲の場合、 の 16 進値は '00' になります。パラメータが「オーダー番号」のParmType
パックされた *DEC (6P 0) の場合、16 進値は「02」になります。
ParmType
さまざまなパラメーターの組み合わせを受け入れることができるプログラムを確実に作成できるように、この値がどのように特定の数値に設定されるかを理解したいと思います。また、データ範囲フィールドが単一の日付のように 4 ではなく 14 から始まる特定の理由もわかりません。この事実を利用して必要な区別をすることができましたが、コマンド システムが意図的にこれを行ったかどうかはわかりません。同じデータ型の可能性が 2 つあることがわかったからです。または、これが単なるラッキー ブレークであり、発生が保証されていない場合です。請求書番号など、追加のパックされたパラメータを選択肢として追加したい場合、同様の質問が発生します。'A1' の 'PASSATR' 16 進値は、それが梱包されていることを示しますが、どのタイプ (注文番号または請求書番号) かはわかりません。コマンドシステムが日付範囲で行ったのと同様に位置をシフトする可能性がありますが、私はその特定の実験を実行していません.
要するに、これらのフィールドに何が含まれ、どこに配置されるかを予測できるように、コマンドがパラメーターリストを作成する方法に関するドキュメントまたは少なくとも推定アルゴリズムはありますか?
ibm-midrange - CLP の CPYTOPCD コマンドは DB2 ファイル (XML を含む) を正常にコピーしますが、ファイルは QDLS サブフォルダーに表示されません。
CLP を呼び出し、CPYTOPCD コマンドを使用して XML データを含む DB2 ファイルをコピーするバッチ ジョブがあります。CLP のジョブ ログでは、ファイルが正常にコピーされたと表示されますが、QDLS サブフォルダーを確認すると ... QDLS/XXXXXX/XXXXX/ERR/ 、ファイルがそこに表示されません。Iseries Navigator とコマンド WRKFLR の両方を試しましたが、すべて無駄でした。CPYTOPCD コマンドを手動で実行すると、ファイルがフォルダーにコピーされます。これは、クライアントの UAT ボックスで発生しています。
ただし、開発のボックスでバッチ ジョブを実行すると、ファイルが正常にコピーされます。
これが開発者側の問題なのか、システム管理者側の問題なのかわかりませんか?
ibm-midrange - クライアントがどのオペレーティング システムから接続されているかを知る方法はありますか?
コマンドを呼び出しSTRPCCMD
て、いくつかのパラメーターを渡しています。
このコマンドは、Linux および Windows ボックスで動作する必要があります。
適切なコマンドを作成するために、ユーザーが接続しているマシンを特定する方法はありますか?
現在、私は両方を発行し、エラーを無視しています。
ibm-midrange - CL プログラミングで、物理ファイルメンバーの最後のレコードを読み取る方法
物理ファイル・メンバーの最後のレコードを読み取りたいです。