0

ここで、RPG と C#.NET を使用して XML をやり取りするためのベスト プラクティスについて、私は途方に暮れています。本来はQTEMPで一時物理ファイルを使うつもりだったのですが、もっといい方法があるようです。一時ファイルには、ファイルの 1 つのレコードにドキュメントの 1 行が含まれます。私には、これは実際には必要ないはずの多くの余分な作業を追加しているように思えます。双方向通信を探しています。

1 つの考えは、32000 文字のパラメーターを前後に渡すことですが、それは本当に良い考えでしょうか? ドキュメントがたまたまそれよりも大きい場合はどうなりますか? 私はその限界に達するとは思わないので、多分大丈夫でしょうか?

一時 IFS ファイルの作成はどうですか? それも必要以上の仕事のようです。

あなたの考えは何ですか?

明らかに、RPG と C# プログラムの両方が XML ドキュメントを読み取って処理します。

4

1 に答える 1

2

DB2 はデータベースで XML をサポートします。おそらく、RPG はデータベース (iSeries のネイティブ プログラム) に挿入できます。C#.NET プログラムは、ODBC を使用してデータベースから取得できます。DB2 の XML 機能を使用すると、タグと xml 構造が失われることはありません。それ以外の場合は、DB2 テーブルの CLOB または BLOB 列をいつでも使用できます。

QTEMP でのファイルの作成は機能しません。そのライブラリは、すべてのジョブに固有です。つまり、すべてのジョブには独自の QTEMP があります。DSPJOB でジョブの QTEMP を見ることはできますが、QTEMP にアクセスすることはできません。そして、C#.NET プログラムが RPG と同じ iSeries ジョブで実行されないことは確かです...

RPG は彼のパラメーターを非常にうまく処理します。頭の上からの正確な最大サイズはわかりませんが、そこそこ大きいです。したがって、技術的な問題は発生しません。しかし、私はあなたが開発上の問題を抱えていると思います。パラメータに多くの値や大きな値を指定してプログラム呼び出しをデバッグしようとしました。信じてください、それはネイティブの iSeries デバッガーでは面白くありませんでした 8-(

私の現在の仕事では、プログラム間の通信に MQ をよく使用します。MQ は多くのプラットフォームで使用でき、多くの言語用のインターフェースを備えています。直接電話の代わりにメッセージを送信していますが(質問とは異なります)、うまく機能します。任意のオブジェクト (小さいファイル、大きいファイル、XML ファイル、またはバイナリ ファイル) をキューに入れることができ、反対側のプログラム (たとえば、C# プログラム) はそれをまったく同じように受け取ります。

最後に、iSeries には Java が搭載されていることを忘れないでください。Xalan を含む XML 用のクラス ライブラリが利用可能です。多分それが行く方法です。RPG で値を収集し、Java で XML を作成して送信します。Java と RPG はうまく連携します。

于 2009-12-01T21:22:55.270 に答える