View previous topic :: View next topic |
Author |
Message |
nbdtrjk1 Beginner
Joined: 12 Apr 2007 Posts: 76 Topics: 41
|
Posted: Wed Apr 25, 2007 1:48 am Post subject: Issues in VB to FB |
|
|
Hi
I written one ezytrieve to read a input file(VB format 32756 bytes) and i am doing some validation, based on some condition i am written into Output file(FB Format 123 bytes).
when i check my output file. i am got lot of junk values(Overlay values). I need know why it's happening.
Even though i used FILE RFMTIPUT VB (32756 0) in the ezytrieve but same issues.
Note: If use as Input file with FB format, i am geeting correct values in output files. |
|
Back to top |
|
 |
vkphani Intermediate

Joined: 05 Sep 2003 Posts: 483 Topics: 48
|
Posted: Wed Apr 25, 2007 9:58 am Post subject: |
|
|
Pls post your input and output file declarations. |
|
Back to top |
|
 |
nbdtrjk1 Beginner
Joined: 12 Apr 2007 Posts: 76 Topics: 41
|
Posted: Wed Apr 25, 2007 11:23 pm Post subject: |
|
|
Code: |
//NBD8BYMK JOB (M952000ZZP,F60,000,CC),'SECONDARY OWNER SBA',CLASS=0,
// MSGCLASS=H,NOTIFY=&SYSUID
//*
//********************************************************************
//*AIF REFORMATTER
//********************************************************************
//*
//UCC11 EXEC UCC11
//JS050 EXEC PGM=EZTPA00,REGION=32M
//RFMTIPUT DD DSN=BOSP.UNTMW1.ARA07,DISP=SHR
//RFMTOPUT DD DSN=BOST.NBD8BYM.UNTEC1.MADHESH,
// DISP=(,CATLG,CATLG),
// SPACE=(CYL,(500,500),RLSE),
// DCB=(RECFM=FB,LRECL=125)
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
FILE RFMTIPUT VB (32756 0)
I-AIF-AIFROOT 1 7 A
I-AIF-COID-N 14 2 B
I-AIF-ACT-ID 19 23 A
I-AIF-HASH 10 13 A
I-AIF-TITTLE 17 80 A
*
FILE RFMTOPUT
O-AIF-ACT-ID 1 23 A
O-AIF-COID-N 25 4 N
O-AIF-TITTLE 30 80 A
O-AIF-HASH 112 13 A
*******************************************
W-TITLE-TEMP W 80 A
W-AIF-COID-N W 4 N
W-AIF-ACT-ID W 23 A
W-SEG5-COUNT W 8 N VALUE 0
W-SEG3-COUNT W 8 N VALUE 0
W-AIF-ROOT-FLAG W 1 A
W-AIF-SEG5-FLAG W 1 A
W-AIF-SEG3-FLAG W 1 A
W-AIF-SEG5-VAL W 7 A
W-AIF-CUST-COID W 4 N
W-AIF-CUST-ID W 9 A
W-AIF-TIE-ID W 4 N
WS-FLAG W 1 A
WS-FLAG-1 W 1 A
WS-SEG3 W 260 A
WS-SEG3-HASH WS-SEG3 13 A OCCURS 20 INDEX WS-INDEX1
WS-SEG5 W 800 A
WS-SEG5-TIT WS-SEG5 40 A OCCURS 20 INDEX WS-INDEX2
WS-SEG5-DATA W 40 A
WS-SEG5-DATA1 WS-SEG5-DATA 1 A OCCURS 40 INDEX WS-INDEX3
WS-SEG5-TIT1 W 800 A
WS-SEG5-TIT2 WS-SEG5-TIT1 40 A OCCURS 20 INDEX WS-INDEX4
*
JOB INPUT NULL
GET RFMTIPUT
MOVE SPACES TO W-TITLE-TEMP
IF EOF RFMTIPUT
IF W-AIF-SEG5-FLAG = 'Y'
W-AIF-SEG5-FLAG = 'N'
WS-INDEX1 = 1
WS-INDEX4 = 1
IF W-SEG5-COUNT > W-SEG3-COUNT
DO UNTIL WS-SEG5-TIT2(WS-INDEX4) SPACES
O-AIF-COID-N = W-AIF-COID-N
O-AIF-ACT-ID = W-AIF-ACT-ID
O-AIF-HASH = WS-SEG3-HASH(WS-INDEX1)
O-AIF-TITTLE = WS-SEG5-TIT2(WS-INDEX4)
WS-INDEX1 = WS-INDEX1 + 1
WS-INDEX4 = WS-INDEX4 + 1
PUT RFMTOPUT
END-DO
END-IF
END-IF
STOP
END-IF
IF I-AIF-AIFROOT = 'AIFROOT'
IF W-AIF-SEG5-FLAG = 'Y'
W-AIF-SEG5-FLAG = 'N'
WS-INDEX1 = 1
WS-INDEX4 = 1
IF W-SEG5-COUNT > W-SEG3-COUNT
DO UNTIL WS-SEG5-TIT2(WS-INDEX4) SPACES
O-AIF-COID-N = W-AIF-COID-N
O-AIF-ACT-ID = W-AIF-ACT-ID
O-AIF-HASH = WS-SEG3-HASH(WS-INDEX1)
O-AIF-TITTLE = WS-SEG5-TIT2(WS-INDEX4)
WS-INDEX1 = WS-INDEX1 + 1
WS-INDEX4 = WS-INDEX4 + 1
PUT RFMTOPUT
END-DO
END-IF
END-IF
MOVE SPACES TO WS-SEG3
MOVE SPACES TO WS-SEG5
WS-INDEX1 = 1
WS-INDEX2 = 1
WS-INDEX3 = 1
WS-INDEX4 = 1
W-AIF-COID-N = I-AIF-COID-N
W-AIF-ACT-ID = I-AIF-ACT-ID
MOVE 'Y' TO W-AIF-ROOT-FLAG
MOVE 'N' TO W-AIF-SEG3-FLAG
MOVE 'N' TO W-AIF-SEG5-FLAG
W-SEG5-COUNT = 0
W-SEG3-COUNT = 0
END-IF
*
IF W-AIF-ROOT-FLAG = 'Y' AND I-AIF-AIFROOT = 'AIFSEG3'
W-SEG3-COUNT = W-SEG3-COUNT + 1
WS-SEG3-HASH(WS-INDEX1) = I-AIF-HASH
WS-INDEX1 = WS-INDEX1 + 1
MOVE 'Y' TO W-AIF-SEG3-FLAG
END-IF
*
IF W-AIF-ROOT-FLAG = 'Y' AND I-AIF-AIFROOT = 'AIFSEG5' AND +
W-AIF-SEG3-FLAG = 'Y'
W-AIF-SEG5-FLAG = 'Y'
W-TITLE-TEMP = I-AIF-TITTLE
WS-SEG5-TIT(WS-INDEX2) = W-TITLE-TEMP
WS-SEG5-DATA = WS-SEG5-TIT(WS-INDEX2)
WS-INDEX3 = 1
DO UNTIL WS-INDEX3 > 41
IF WS-SEG5-DATA1(WS-INDEX3) SPACES OR +
WS-SEG5-DATA1(WS-INDEX3) LOW-VALUES
MOVE 'N' TO WS-FLAG
ELSE
MOVE 'Y' TO WS-FLAG
WS-INDEX3 = 42
END-IF
WS-INDEX3 = WS-INDEX3 + 1
END-DO
IF WS-FLAG = 'Y'
W-SEG5-COUNT = W-SEG5-COUNT + 1
WS-SEG5-TIT2(WS-INDEX4) = WS-SEG5-DATA
WS-INDEX4 = WS-INDEX4 + 1
MOVE 'N' TO WS-FLAG
END-IF
WS-INDEX2 = WS-INDEX2 + 1
END-IF
* |
|
|
Back to top |
|
 |
kolusu Site Admin

Joined: 26 Nov 2002 Posts: 12382 Topics: 75 Location: San Jose
|
Posted: Thu Apr 26, 2007 9:06 am Post subject: |
|
|
nbdtrjk1,
You are just reading your input file once and your logic is too cumbersome. When you say junk values what exactly do they look like ? You have 4 fields in your output. tell us which fields are having the junk values. Just show us a sample of data with hex on those fields.
IMHO I guess there is an easier way to write the pgm
Kolusu _________________ Kolusu
www.linkedin.com/in/kolusu |
|
Back to top |
|
 |
vkphani Intermediate

Joined: 05 Sep 2003 Posts: 483 Topics: 48
|
Posted: Thu Apr 26, 2007 10:00 am Post subject: |
|
|
Initialize all your working storage variables and run the EZT. I think that may solve the problem. |
|
Back to top |
|
 |
|
|