問題タブ [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 - AS/400 IFS 権限の問題
AS/400 IFS オーソリティの管理で頭が痛くなりました。IFS ファイルは、CPYTOIMPF への呼び出しを介して CLE または ILE-COBOL を使用して作成されました。デフォルトでは、IFS でのパーミッション設定は 700 になります。問題は、ファイルを作成したときに使用した ID (A) と、それを使用するユーザーが別の ID (B) になることです。したがって、A と B が同じグループ GP01 に属していても、B はファイルを読み取ることができません。
IFS ルート /RootDir/MyDir を同じグループ、たとえば GP01 に CHGPGP しようとしました。さらに、CHGAUT OBJ('/RootDir/MyDir') USER(*PUBLIC) DTAAUT(*RW) OBJAUT(*NONE) も行いました。ただし、ID B を介してファイルにアクセスすることはまだできません。
助けてください!前もって感謝します。
ibm-midrange - CPYTOPCD は、プログラム内から使用すると情報の一部のみをコピーしますが、コマンド ラインから使用するとすべての情報をコピーします
私は、IBM i (as400) の rpgle シーン全体にかなり慣れていません。
一部の情報を XML 形式にエクスポートするタスクが与えられました。
CPYTOPCD を使用して情報を XML ファイルにコピーしたときに問題が発生しました。
なんらかの理由で、CPYTOPCD をプログラム内から使用する場合、CPYTOPCD はデータの一部しかコピーしません。ただし、as400 コマンド ラインに移動すると、問題なくデータ全体がコピーされます。
これを行ったときにわかる唯一の違いは、コマンドラインでは CPYTOPCD コマンドがすべて 1 つの行に収まるのに対し、プログラムでは「+」を使用して次の行に移動してコマンドを終了する必要があることです。
いろいろなサイトを見ましたが、同様の問題は見つかりませんでした。おそらく、私は問題を正しく表現していません。それが私の最大の問題でした。
状況を十分に説明できていない場合は申し訳ありませんが、わかりやすくするために他にどのような情報を提供できるかお知らせください。
何卒よろしくお願い申し上げます。
編集:これが問題の一部であるかどうかはわかりませんが、念のため追加した方がよいと思いました。出力された XML を確認すると、以前に問題なく記述されたタグの途中で終了し、小さなボックスが配置されます。オンラインで見つけたものから、空白文字だと思いますが、よくわかりません。
edit2: CLP は、異なるファイルに対してこれを複数回実行します。
CLRPFMファイル(SDIXW4)
CALL PGM(SDI812)
CPYTOPCD FROMFILE(SDIXW4) TOFLR('AUDIT') +
TODOC(RELLOC.XML) REPLACE(*YES) + TRNFMT(*NOTEXT)
edit3: Charles の提案を試してみます。うまくいけば、これで CPYTOPCD で発生している問題が回避されます。新しいフォームをテストした後、これを更新します。あなたのご親切に感謝します。
ibm-midrange - ISERIES OS/400 エラー チェック
この PGM のエラーを見つけるのを手伝ってくれませんか。それは私のためにコンパイルされません
ibm-midrange - CL: パス名にヌルが含まれています (CPD018A)
ファイル名パラメーターを取り、COMMIT(*CHG) および DBGVIEW(*SOURCE) を使用してファイル内の SQL を実行する単純な CL プログラムを作成しようとしています。CPD018A: パス名にヌルが埋め込まれています:
原因 。. . . . : パス名 /SQL/TRIGGERS/PCUSTOMERS_INSERT
????????????????????????????????????????? ?????????????????????????????????.
SRCSTMF に指定された SQL に、1 つ以上の組み込みヌル (X'00') が含まれています。パス名にヌルは使用できません。
これが私のプログラムです:
私は次のようにプログラムを呼び出しています: CALL CCSQL PARM('TRIGGERS/PCUSTOMERS_INSERT')
.
SET OPTION
これは、実際の問題に対するひどい回避策かもしれません: トリガーにステートメントを追加したい:
SET OPTION ステートメントを JDBC を通過させる方法を理解できていないので、毎回ステートメントを iSeries ナビゲーターにコピーする必要があります。ストリーム ファイル内の SQL を呼び出す前に、この CL プログラムを呼び出す外部プロシージャでプリコンパイル オプションを処理することで、このワークフローを改善できると考えましたが、プロシージャに送信するパラメータで CL を実行することはできません (またはコマンドラインから呼び出します)CALL MYLIB.CCSQL('TRIGGERS/PCUSTOMER_INSERT');
この時点で、当初の目標からはほど遠い...どんな提案も大歓迎です。知っておくと役立つ場合、私はiSeries 7.2システムでそれを作ろうとしているPHP / SQLのような人です。
読んでくれてありがとう。
ibm-midrange - CLLE から RPGLE を呼び出すときに、パックされた数値フィールドを渡しますか?
CLLE から RPGLE を呼び出す場合、パックされた数値フィールドを渡す必要がありますか? または、それらを文字パスに変換し、RPG で数値に変換します。前者が推奨される場合、これはどのように行われますか?