Domanda

C'è un modo per leggere i dati cobol in un programma Java? Più concretamente mi trovo di fronte al seguente caso:

Ho un file con record di dati a lunghezza fissa. La definizione dei dati viene eseguita come quaderni Cobol. Quello che penso è una biblioteca che, tenendo conto dei quaderni, sarebbe in grado di leggere quei documenti.

Idealmente dovrebbe essere possibile generare classi e strutture java di base in base alle informazioni del quaderno. In un secondo momento i datarecords verrebbero analizzati e i dati inseriti in oggetti di quelle classi generate.

Conosci una libreria che offre questo tipo di funzionalità? O altre tecniche per affrontare il problema della lettura dei dati di cobol?


Esistono alcuni strumenti commerciali che forniscono questa funzionalità. Sono, tuttavia, molto costosi. Conosci qualche alternativa open-source o una combinazione di strumenti diversi per fornire l'intera funzionalità? Ad esempio cb2xml legge le strutture del quaderno e le trasforma in XML. Un passo successivo sarebbe quello di generare un lettore di record basato sulle informazioni xml di cb2xml. O per usare un lettore di record che è configurabile. Conosci un lettore di dischi cobol (decoder)?

È stato utile?

Soluzione

Puoi guardare JRecord - http://sourceforge.net/projects/jrecord/ oppure cb2java http://sourceforge.net/projects/cb2java/ ti consentono entrambi di accedere ai file cobol ma nessuno dei due genererà le classi complete.


Aggiornamento gennaio 2011

Dalla risposta originale:

  • JRecord continua a essere sviluppato. Ora è disponibile un generatore di codice JRecord come o un programma autonomo o nel Recordeditor . Questo Code Generator costruirà il codice JRecord JRecord da un quaderno Cobol. Vedi RecordEditor Jrecord CodeGen
  • Lo sviluppo su cb2java si è interrotto
  • cobol2j è stato scritto. Non ci sono stati aggiornamenti per un anno.
  • C'è anche Legstar di nuovo nulla pubblicato per alcuni anni

Aggiornamento ago 2017

RecordEditor ha un'opzione Genera per generare Java / JRecord code da un quaderno Cobol. Vedi Note sulla generazione del codice RecordEditor per i dettagli.

Aggiornamento gennaio 2018

Ci sono alcune informazioni sulla generazione del codice Java ~ JRecord in questa domanda / risposta:

Come si genera il codice java ~ jrecord per un quaderno Cobol

Altri suggerimenti

Sì. L'ho già fatto prima. Ho usato una connessione ODBC ai file COBOL, e poi con jdbc: odbc bridge, ho usato le informazioni sui metadati per generare classi, leggere dati e portarli tutti su Oracle.

Qui è un bel tutorial su come accedere alle informazioni metada con JDBC. Qui ce n'è un altro.

Tieni presente che non è necessario l'approccio JDBC: ODBC bridge. Se riesci a ottenere un driver JDBC nativo per la connessione a Cobol DataSource, sarà meglio. A questo proposito, ho anche usato un driver nativo IBM. Non ricordare il nome però. È stato tanto tempo fa.

Sembra che ci siano alcune soluzioni commerciali per questo. In alternativa puoi usare cb2xml per convertire i quaderni in XML, quindi importare l'XML in Java usando qualsiasi meccanismo tu richiedono.

Ho usato il pacchetto JRecord di Bruce (da sourceforge) per il mio progetto. Ci sono voluti solo un paio di giorni per imparare ad usarlo e mi ha risparmiato mesi di lavoro per implementare una soluzione molto meno generale da solo. Lo consiglio vivamente.

Microfocus fornisce un modo per chiamare OO COBOL da Java.

" Puoi scrivere classi in OO COBOL che possono essere chiamate dai programmi Java come se fossero classi Java. A tale scopo, fornisci una classe wrapper Java, che fornisce una funzione per ciascun metodo nella classe COBOL OO. Le procedure guidate di classe e metodo di Net Express ti facilitano la vita, generando il codice Java contemporaneamente al codice COBOL. & Quot;

Forniscono inoltre uno strumento chiamato Enterprise Server che consente a COBOL di interagire con i servizi Web.

Se si dispone di un programma COBOL A, lo strumento consente di esporre la sezione dell'interfaccia di A come servizio Web.

Naturalmente, poiché A ora ha un servizio Web, qualsiasi altro tipo di programma (riga di comando, applicazione Windows, Java, ASP ecc.) ora può anche chiamarlo e quindi passare i dati COBOL a un programma Java.

BEA aveva un prodotto chiamato JAM che veniva usato per comunicare con i programmi COBOL del mainframe. Comprendeva uno strumento in grado di leggere i quaderni e generare sia le classi POD Java corrispondenti sia il codice di conversione dei dati.

Non so se questo è ancora disponibile, l'ho perso quando ho lasciato BEA.

Rational Application Developer può leggere il codice sorgente COBOL e generare classi Java. Le classi generate hanno metodi per accedere alle varie parti della struttura di dati COBOL. La classe che viene generata è compatibile con J2EE Connector Architecture . Per creare una classe nel progetto, selezionare File, Nuovo, Altro quindi selezionare la procedura guidata di associazione dati Java CICS / IMS in J2C. Fai clic su Avanti. Scegli COBOL su Java per il mapping. Seleziona il tuo file COBOL. Seleziona la struttura per cui desideri generare una classe Java, quindi fai clic su Fine e il gioco è fatto. Ci sono ovviamente una serie di opzioni che puoi selezionare lungo la strada che non ho menzionato. Per ulteriori informazioni, cerca la Guida per J2C.

Dai un'occhiata a Javolution Struct .

È quindi possibile utilizzare una macro per convertire i dati COBOL in Struct .

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