2009-12-01 68 views
0

我不知道如何通過RPG和C#.NET來回傳遞XML。最初,我打算在QTEMP中使用臨時物理文件,但似乎應該有更好的方法。臨時文件在文件的一個記錄中包含一行文檔。對我來說,這似乎增加了許多真正不需要的額外工作。我正在尋找雙向溝通。通過RPG和.NET來回傳遞XML

一個想法是來回傳遞32000個char參數,但這真的是個好主意嗎?如果文檔碰巧比這更大,會發生什麼?我不認爲我會達到這個限制,所以也許我會好起來的?

怎麼樣創建一個臨時IFS文件?這看起來好像還需要更多的工作。

你的想法是什麼?

很明顯,RPG和C#程序都會讀取和處理XML文檔。

回答

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一起工作很好