Domanda

Sono ad una perdita qui di un best-practice per passare XML avanti e indietro con RPG e C # .NET. Originariamente, stavo per utilizzare un file fisico temporaneo in QTEMP, ma sembra essere il fatto che ci dovrebbe essere un modo migliore. Il file temporaneo ha una linea del documento in un record del file. A me questo sembra aggiungere un sacco di lavoro in più che in realtà non dovrebbe essere necessario. Sto cercando una comunicazione a due vie.

Un pensiero è quello di passare un parametro 32000 char avanti e indietro, ma è davvero una buona idea? Che cosa succede se il documento sembra essere più grande di questo? Non credo che mi ha colpito quel limite così forse mi andrebbe bene?

Che dire la creazione di un file temporanei IFS? Che sembra più lavoro di quanto è necessario pure.

Quali sono i tuoi pensieri?

Ovviamente, entrambi i programmi RPG e C # sarà la lettura e l'elaborazione del documento XML.

È stato utile?

Soluzione

DB2 supporta XML nel database. Forse il tuo RPG può inserire nel database (programma nativo su iSeries). Il vostro programma C # .NET può utilizzare ODBC per recuperare dal database. Se si utilizzano le possibilità XML di DB2 allora non si perderanno i tag e struttura XML. In caso contrario, si può sempre utilizzare le colonne CLOB o BLOB di una tabella DB2.

La creazione del file in QTEMP non funzionerà. Quella biblioteca è unico per ogni posto di lavoro. In altre parole, ogni lavoro ha la sua QTEMP. Potete vedere il QTEMP di posti di lavoro con DSPJOB, ma non è possibile accedere al QTEMP. E sono abbastanza sicuro che il vostro programma C # .NET non viene eseguito lo stesso lavoro iSeries come RPG ...

RPG fare gestire i suoi parametri abbastanza bene. Non so la dimensione massima esatto dalla parte superiore della mia testa, ma è ragionevole grande. Quindi, non si avrà un problema tecnico. Ma penso che si avrà un problema di sviluppo. Ho provato a chiamare programma di debug con molti, e / o valori grandi per i parametri. Mi creda, che non era divertente in iSeries nativi debugger 8 - (

Nel mio attuale lavoro che facciamo usare MQ un sacco per la comunicazione tra i programmi. MQ è disponibile su molte piattaforme e ha interfacce per molte lingue. E 'la messaggistica invece di chiamate dirette (diversa quindi la tua domanda), ma funziona benissimo. È possibile inserire qualsiasi oggetto (piccolo, grande, XML o file binario) nella coda e il programma sul lato opposto (per esempio il vostro programma C #) riceveranno esattamente lo stesso.

Infine, non dimenticate che i iSeries hanno Java a bordo. librerie di classi per XML tra cui Xalan disponibili. Forse è la strada da percorrere. Raccogliere valori in RPG, creare e inviare il codice XML con Java. Java e RPG funziona insieme bene.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top