私は、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 で発生している問題が回避されます。新しいフォームをテストした後、これを更新します。あなたのご親切に感謝します。