|
View previous topic :: View next topic
|
| Author |
Message |
t5590ag
Active User

Joined: 21 May 2009 Posts: 139 Location: United States
|
|
|
|
Hi All, am facing u0260 abend while transferring data from ims screen to my pgm variable. I am providing the MFS layout here and the pgm variable layout as well. I am not able to identify where there is a length mismatch-
| Code: |
P18MYM FMT 00000700
DEV TYPE=(3270,2),FEAT=IGNORE,SYSMSG=MESSAGE,DSCA=X'00A0', X00000800
PFK=(PFKEY, X00000900
'P1800B0T ', PF-01 X00001000
'P1800A0T 02', PF-02 X00001100
'P1800Y0T 03', PF-03 X00001200
'P1800Y0T 04', PF-04 X00001300
'P1800Y0T 05', PF-05 X00001400
'P1800Y0T 06', PF-06 X00001500
'P1800Y0T 07', PF-07 X00001600
'P1800Y0T 08', PF-08 X00001700
'P1800Y0T 09', PF-09 X00001800
'P1800Y0T 10', PF-10 X00001900
'P1800Y0T 11', PF-11 X00002000
'P1800Y0T 12', PF-12 X00002100
'P1800Y0T 13', PF-13 X00002200
'P1800Y0T 14', PF-14 X00002300
'P1800Y0T 15', PF-15 X00002400
'P1800Y0T 16', PF-16 X00002500
'P1800Y0T 17', PF-17 X00002600
'P1800Y0T 18', PF-18 X00002700
'P1800Y0T 19', PF-19 X00002800
'P1800Y0T 20', PF-20 X00002900
'P1800Y0T 21', PF-21 X00003000
'P1800Y0T 22', PF-22 X00003100
'P1800Y0T 23', PF-23 X00003200
'P1800Y0T 24') PF-24 00003300
DIV TYPE=INOUT 00003400
DPAGE CURSOR=((07,29,CURPOS)),FILL=PT 00003500
DFLD 'P1800Y0T',POS=(01,02),ATTR=(PROT,HI,NUM) 00003700
DFLD ' HEADER- TITLE OF SCREEN ', X00003800
POS=(01,25),ATTR=(PROT,HI,NUM) 00003800
DATE2 DFLD POS=(01,52),LTH=08,ATTR=(PROT,HI) 00017300
TIME DFLD POS=(01,62),LTH=08,ATTR=(PROT,HI) 00017300
LTERM DFLD POS=(01,72),LTH=08,ATTR=(PROT,HI) 00017300
COMMAND DFLD POS=(02,07),LTH=09,ATTR=(MOD)
DFLD 'CSA AUDIT REPORT REQUEST', X00003800
POS=(03,26),ATTR=(PROT,HI,NUM) 00003800
MIINFO DFLD POS=(02,55),LTH=20,ATTR=(PROT,NUM,MOD,NODISP)
PATHNO DFLD POS=(02,77),LTH=02,ATTR=(PROT,MOD,NUM,NODISP)
DFLD 'ENTER THE DATE RANGE FOR WHICH STARS REPORT HAS TO BE X00003800
GENERATED : ', X00003800
POS=(05,02),ATTR=(PROT,HI) 00003800
DFLD 'REPORT DATE RANGE ',POS=(07,02),ATTR=(PROT,HI) 00003800
DFLD 'FROM:',POS=(07,23),ATTR=(PROT,HI) 00003800
FRMDTY DFLD POS=(07,29),LTH=04,ATTR=(MOD)
DFLD '/',POS=(07,34),ATTR=(PROT,HI) 00003800
FRMDTM DFLD POS=(07,36),LTH=02,ATTR=(MOD)
DFLD '/',POS=(07,39),ATTR=(PROT,HI) 00003800
FRMDTD DFLD POS=(07,41),LTH=02,ATTR=(MOD)
DFLD 'TO:',POS=(07,45),ATTR=(PROT,HI) 00003800
TODTY DFLD POS=(07,49),LTH=04,ATTR=(MOD)
DFLD '/',POS=(07,54),ATTR=(PROT,HI) 00003800
TODTM DFLD POS=(07,56),LTH=02,ATTR=(MOD)
DFLD '/',POS=(07,59),ATTR=(PROT,HI) 00003800
TODTD DFLD POS=(07,61),LTH=02,ATTR=(MOD)
DFLD '(YYYY)',POS=(08,28),ATTR=(PROT,HI) 00003800
DFLD '(MM) (DD)',POS=(08,35),ATTR=(PROT,HI) 00003800
DFLD '(YYYY)',POS=(08,48),ATTR=(PROT,HI) 00003800
DFLD '(MM) (DD)',POS=(08,55),ATTR=(PROT,HI) 00003800
*
* DFLD ' PRESS PF13 TO START CSA STARS REPORT ', X00003800
* POS=(20,15),ATTR=(PROT,HI,NUM) 00003800
DFLD 'PF01=MGMT MENU PF02=DISP MENU PF03=INITIATE REPORT', X00003800
POS=(22,02),ATTR=(PROT,HI,NUM) 00003800
*
MESSAGE DFLD POS=(24,02),LTH=78,ATTR=(PROT,HI) 00017310
FMTEND 00017500
EJECT 00017600
* 00026200
* MID 00026300
* 00026400
P18MYMI MSG TYPE=INPUT,SOR=(P18MYM,IGNORE),NXT=P18MYMO 00026500
SEG 00026600
MFLD (PFKEY,'P1800Y0T '),LTH=11 00026700
MFLD COMMAND,LTH=10,ATTR=YES
MFLD MIINFO,LTH=20
MFLD PATHNO,LTH=02
MFLD FRMDTY,LTH=06,ATTR=YES
MFLD FRMDTM,LTH=04,ATTR=YES
MFLD FRMDTD,LTH=04,ATTR=YES
MFLD TODTY,LTH=06,ATTR=YES
MFLD TODTM,LTH=04,ATTR=YES
MFLD TODTD,LTH=04,ATTR=YES
MFLD MESSAGE,LTH=78
MFLD '#$#',LTH=3 00034100
MFLD CURPOS,LTH=04 00034000
MSGEND 00034200
EJECT 00026100
* 00017700
* MOD 00017800
* 00017900
P18MYMO MSG TYPE=OUTPUT,SOR=(P18MYM,IGNORE),NXT=P18MYMI,OPT=2 00018000
SEG 00018400
MFLD PFKEY,LTH=11 00018500
MFLD (DATE2,DATE2) 00018700
MFLD (TIME,TIME) 00018800
MFLD (LTERM,LTNAME) 00018900
MFLD COMMAND,LTH=10,ATTR=YES
MFLD MIINFO,LTH=20
MFLD PATHNO,LTH=02
MFLD FRMDTY,LTH=06,ATTR=YES
MFLD FRMDTM,LTH=04,ATTR=YES
MFLD FRMDTD,LTH=04,ATTR=YES
MFLD HIDTY,LTH=06,ATTR=YES
MFLD HIDTM,LTH=04,ATTR=YES
MFLD HIDTD,LTH=04,ATTR=YES
MFLD MESSAGE,LTH=78
MFLD LTH=3
MFLD CURPOS,LTH=04
MSGEND 00026000
END 00034300
|
FOLLOWING IS THE MESSAGE SEGMENT IN PGM-
| Code: |
01 MESSAGE-SEGMENT. CL*74
007900 05 MI-LL PIC S9(4) COMP. CL*74
008000 05 MI-ZZ PIC S9(4) COMP. CL*74
008100 05 MI-TRANSACTION PIC X(09). CL*74
008200 05 MI-PFKEY PIC X(02). CL*74
008300 05 MI-COMMAND-A PIC X(02). CL*74
008400 05 MI-COMMAND PIC X(08). CL*74
008500 05 MI-INFO PIC X(20). CL*74
008600 05 MI-PATHNO PIC X(02). CL*74
008700 CL*74
008800 05 MI-DETAIL-INPUT-DATA . CL*78
008900 10 MI-DATE-FROM. CL*78
009000 15 MI-YEAR-FROM-A PIC X(02). CL*78
009100 15 MI-YEAR-FROM PIC 9(04). CL*78
009200 15 MI-MONTH-FROM-A PIC X(02). CL*78
009300 15 MI-MONTH-FROM PIC 9(02). CL*78
009400 15 MI-DAY-FROM-A PIC X(02). CL*78
009500 15 MI-DAY-FROM PIC 9(02). CL*78
009600 10 MI-DATE-TO. CL*78
009700 15 MI-YEAR-TO-A PIC X(02). CL*78
009800 15 MI-YEAR-TO PIC 9(04). CL*78
009900 15 MI-MONTH-TO-A PIC X(02). CL*78
010000 15 MI-MONTH-TO PIC 9(02). CL*78
010100 15 MI-DAY-TO-A PIC X(02). CL*78
010200 15 MI-DAY-TO PIC 9(02). CL*78
010300 10 MI-MESSAGE PIC X(78). CL*78
010400 05 MI-POUND-DOLLAR-POUND PIC X(03). CL*78
010500 05 MI-CURSOR-POS. CL*78
010600 10 MI-CURSOR-LINE PIC S9(2) COMP. CL*78
010700 10 MI-CURSOR-COLUMN PIC S9(3) COMP. CL*78
010800 05 FILLER PIC X(1700). CL*79 |
Its weird. I have pasted the whole thing . Pls let me know if anybody can detect a mismatch. |
|
| Back to top |
|
 |
t5590ag
Active User

Joined: 21 May 2009 Posts: 139 Location: United States
|
|
|
|
| additional information- screen has got 24 rows * 80 columns. |
|
| Back to top |
|
 |
Sandy Zimmer
Active Member
Joined: 13 Jun 2007 Posts: 826 Location: Wilmington, DE
|
|
|
|
| I haven't gone thru it all yet, but why do you have 1700 bytes of filler at the end of your message? You know that the shorter message you send, the more efficient. Get rid of the 1700 bytes. |
|
| Back to top |
|
 |
t5590ag
Active User

Joined: 21 May 2009 Posts: 139 Location: United States
|
|
|
|
| thanks for putting in your time Sandy. I'll do that, but a doubt is- it is the receiving field, I have kept that just for now to avoid any truncation of data if happening. Let me know further amendments to be done. |
|
| Back to top |
|
 |
Sandy Zimmer
Active Member
Joined: 13 Jun 2007 Posts: 826 Location: Wilmington, DE
|
|
|
|
| Also, what are you with those cursor fields? And, your attribute byte fields should be s9(04) comp. How are you adjusting their values? |
|
| Back to top |
|
 |
t5590ag
Active User

Joined: 21 May 2009 Posts: 139 Location: United States
|
|
|
|
| Cursor fields I gave just to put the stuff in sync with MFS, are they not needed? They are optional I guess. Attribute bytes we have been using as x(2).It works. |
|
| Back to top |
|
 |
Sandy Zimmer
Active Member
Joined: 13 Jun 2007 Posts: 826 Location: Wilmington, DE
|
|
|
|
When you position and flag a field in error what are you sending to the attribute field? For instance, your numeric field is in error. You want to position the cursor at that field - so you move unprotect-num-hi-mod curs (PIC 9(5) comp value 49371) to the output attribute byte field in your output message.
How would you do it? |
|
| Back to top |
|
 |
t5590ag
Active User

Joined: 21 May 2009 Posts: 139 Location: United States
|
|
|
|
| Sandy we are using redefines for the (PIC 9(5) comp value 49371) and putting them in Alphanumeric ones- X(4). We are using these alphanumerics in the code and not the comp values directly. Thats a standard we follow.Is it making sense to you? |
|
| Back to top |
|
 |
t5590ag
Active User

Joined: 21 May 2009 Posts: 139 Location: United States
|
|
|
|
I did above changes. Got U0260 with this-
| Code: |
001075 002230 CALL 'CBLTDLI' USING FUNCTION-GU
001076 002240 I-O-LTERM-PCB
001077 002250 MESSAGE-SEGMENT
001078 002260 .
The COBOL source code for data fields involved in the failure:
Source
Line #
------
000078 000780 01 MESSAGE-SEGMENT.
000873 00001 01 I-O-LTERM-PCB.
Data field values at time of abend:
I-O-LTERM-PCB = C02TC13A.. ............P18MYMO T5590AG
MESSAGE-SEGMENT =
NOTE: Above value truncated after 112 bytes.
|
|
|
| Back to top |
|
 |
Sandy Zimmer
Active Member
Joined: 13 Jun 2007 Posts: 826 Location: Wilmington, DE
|
|
|
|
| Can you post your io-pcb? |
|
| Back to top |
|
 |
t5590ag
Active User

Joined: 21 May 2009 Posts: 139 Location: United States
|
|
|
|
| you mean whatever is in i-o-lterm-pcb or the IO-PCB ? I tried to see that IO-PCB but didnt succeed. Its not accessible or something. Had I got that it would have been possible to compare the stuff with my message-segment. You are talking in that direction ..right ? But I'll again check with the systems ppl if I cud get to it. |
|
| Back to top |
|
 |
t5590ag
Active User

Joined: 21 May 2009 Posts: 139 Location: United States
|
|
|
|
| do you know if there is a way to check that ? I'll try myself or will ask someone from support team.. |
|
| Back to top |
|
 |
Sandy Zimmer
Active Member
Joined: 13 Jun 2007 Posts: 826 Location: Wilmington, DE
|
|
|
|
| Let's just start by posting the cobol io-pcb definition. Has this program ever worked or is it brand new? |
|
| Back to top |
|
 |
t5590ag
Active User

Joined: 21 May 2009 Posts: 139 Location: United States
|
|
|
|
its a new one  |
|
| Back to top |
|
 |
Sandy Zimmer
Active Member
Joined: 13 Jun 2007 Posts: 826 Location: Wilmington, DE
|
|
|
|
| I really do think you should get rid of those 1700 bytes of filler. Your IO-PCB is in your linkage section - right? |
|
| Back to top |
|
 |
t5590ag
Active User

Joined: 21 May 2009 Posts: 139 Location: United States
|
|
|
|
yes its in linkage..and I have removed the following-
| Code: |
05 MI-POUND-DOLLAR-POUND PIC X(03). CL*78
010500 05 MI-CURSOR-POS. CL*78
010600 10 MI-CURSOR-LINE PIC S9(2) COMP. CL*78
010700 10 MI-CURSOR-COLUMN PIC S9(3) COMP. CL*78
010800 05 FILLER PIC X(1700). CL*79
|
after this I got the abend that I posted. |
|
| Back to top |
|
 |
Sandy Zimmer
Active Member
Joined: 13 Jun 2007 Posts: 826 Location: Wilmington, DE
|
|
|
|
| Also, can we see your entry statement. |
|
| Back to top |
|
 |
t5590ag
Active User

Joined: 21 May 2009 Posts: 139 Location: United States
|
|
|
|
| Code: |
001950 PROCEDURE DIVISION USING I-O-LTERM-PCB
001960 ALT-LTERM-PCB-MTO
001970 ALT-LTERM-PCB-1
001980 . |
|
|
| Back to top |
|
 |
t5590ag
Active User

Joined: 21 May 2009 Posts: 139 Location: United States
|
|
|
|
| very simple functionality. Will take start and end dates from the screen as I/P. and in response will throw back a message. |
|
| Back to top |
|
 |
Sandy Zimmer
Active Member
Joined: 13 Jun 2007 Posts: 826 Location: Wilmington, DE
|
|
|
|
| I like different input and output messages defined in working storage. Your input message will not have defined attribute bytes. |
|
| Back to top |
|
 |
t5590ag
Active User

Joined: 21 May 2009 Posts: 139 Location: United States
|
|
|
|
| Am sorry Sandy. This point is not very clear to me. I didnt get it. |
|
| Back to top |
|
 |
t5590ag
Active User

Joined: 21 May 2009 Posts: 139 Location: United States
|
|
|
|
| ok you mean to have separate variables to receive and send the maps to screen from program? that can be done but my first problem is to receive it properly. its failing.Is there a problem with attribute definition? |
|
| Back to top |
|
 |
Sandy Zimmer
Active Member
Joined: 13 Jun 2007 Posts: 826 Location: Wilmington, DE
|
|
|
|
| Please define a input working storage area for your input message - it will not contain any attribute bytes. Your output message will contain the attribute bytes. After you've checked for no-more-messages (QC), or any other awful return status code - then move your input data - field by field - into your output message area - which will contain attribute bytes. Always do full screen editing - when you find an error, then you set the attribute bytes, but keep editing all the fields. |
|
| Back to top |
|
 |
t5590ag
Active User

Joined: 21 May 2009 Posts: 139 Location: United States
|
|
|
|
| Here in my MFS I have a field with length 4 and attribute 2 bytes, hence in MFLD its total 6 bytes, so in my I/P wrkng storage how will I receive it w/o having a 6 byte variable[x(2) + 9(4)] ? or in the MID should I make it a 4 and in MOD keep it as 6 ? and correspondingly define the I/P and O/P wrkng storage ? |
|
| Back to top |
|
 |
Sandy Zimmer
Active Member
Joined: 13 Jun 2007 Posts: 826 Location: Wilmington, DE
|
|
|
|
| A couple of questions - you are using procedure division USING - is this a subroutine of some calling program? If not, why are you using it? I just looked at your MFS - you have attribute bytes assigned in your MID - why? Did you copy that from someone else? |
|
| Back to top |
|
 |
|
|
 |
All times are GMT + 6 Hours |
|