I really like your train of thought here.

It will work perfectly, the only issue is some of the files I am doing this with contain 10 million records. This may take awhile.

I was hoping to do something where I didn't have to copy the data twice - once to create a journal record, and a second time to do the ETL.

If I could drop the cust record format into the JOESD field using an SQL join to create a Cartesian join of all rows to all other rows. But maybe that is copying data twice too.

I will give this a try - thanks Mark!

-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Mark S Waterbury
Sent: Monday, October 01, 2012 10:38 AM
To: Midrange Systems Technical Discussion
Subject: Re: make cust file look like a journal record - format


Why go to all the trouble of trying to make a file that "looks just like
a journal record"?

Why not just use the real system journal facilities and then you can use
DSPJRN, as you do now?

For example, you could do something like this:

1. create a temporary library:


2. create a temporary journal and journal receiver:



3. create a copy of the file, but with no data, in the temporary library:


4. start journaling the temporary copy of the file:


5. copy all the trecords from the original file to the temporary copy,
to get them journaled:

CPYF FROMFILE(filelib/filename) TOFILE(TEMPLIB/filename) MBROPT(*ADD)

Then you can just issue DSPJRN against TEMPLIB/TEMPJRN and send the
output to an *OUTFILE, as I presume you are doing now ......

When all done, you can issue:


Does that help?

All the best,

Mark S. Waterbury

On 10/1/2012 11:19 AM, Stone, Joel wrote:
I have pgmA which reads cust journal changes and sends them off for an ETL app.

I would also like to be able to send the entire cust file using the same pgmA with no changes.

How can I make the cust record format look just like a journal record (the format that DSPJRN creates).

For example:

Cust file format:

CustName 30
CustAddr 30
CustCity 20
Total 80

I want this to look like a DSPJRN record so I can use the same pgmA to load up all CUST records for an initial load.

Desired format:

Field Field
Text Name Type Length
Length of entry JOENTL S 5 ---------------------|
Sequence number JOSEQN S 10 |
Journal Code JOCODE A 1 |
Entry Type JOENTT A 2 |
Date of entry: Job date f JODATE A 6 |
Time of entry: hour/minut JOTIME S 6 |---------- journal header fields
Name of Job JOJOB A 10 |
Name of User JOUSER A 10 |
Number of Job JONBR S 6 |
Name of Program JOPGM A 10 |
Name of Object JOOBJ A 10 ----------------------|
Entry Specific Data - Var JOESD A 80 <--------------------------------- I want my CUST data here!!

Most of the journal fields can empty - but I want my CUST data to be in JOESD. Can SQL or OPNQRYF do this?

I think I need to take fields JOENTL thru JOOBJ and initialize those. Then take all CUST fields CUST.* and string them together (alpha, packed, zoned) into the one JOESD field.

Is this possible without using an HLL?


This outbound email has been scanned for all viruses by the MessageLabs Skyscan service.
For more information please visit http://www.symanteccloud.com

This thread ...


Return to Archive home page | Return to MIDRANGE.COM home page