IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

U0260 abend while passing data from IMS screen into pgm


IBM Mainframe Forums -> IMS DB/DC
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
t5590ag

Active User


Joined: 21 May 2009
Posts: 139
Location: United States

PostPosted: Tue Nov 17, 2009 10:15 pm
Reply with quote

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 icon_sad.gif. Pls let me know if anybody can detect a mismatch.
Back to top
View user's profile Send private message
t5590ag

Active User


Joined: 21 May 2009
Posts: 139
Location: United States

PostPosted: Tue Nov 17, 2009 10:33 pm
Reply with quote

additional information- screen has got 24 rows * 80 columns.
Back to top
View user's profile Send private message
Sandy Zimmer

Active Member


Joined: 13 Jun 2007
Posts: 826
Location: Wilmington, DE

PostPosted: Wed Nov 18, 2009 7:46 pm
Reply with quote

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
View user's profile Send private message
t5590ag

Active User


Joined: 21 May 2009
Posts: 139
Location: United States

PostPosted: Wed Nov 18, 2009 7:50 pm
Reply with quote

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
View user's profile Send private message
Sandy Zimmer

Active Member


Joined: 13 Jun 2007
Posts: 826
Location: Wilmington, DE

PostPosted: Wed Nov 18, 2009 7:53 pm
Reply with quote

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
View user's profile Send private message
t5590ag

Active User


Joined: 21 May 2009
Posts: 139
Location: United States

PostPosted: Wed Nov 18, 2009 7:58 pm
Reply with quote

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
View user's profile Send private message
Sandy Zimmer

Active Member


Joined: 13 Jun 2007
Posts: 826
Location: Wilmington, DE

PostPosted: Wed Nov 18, 2009 8:09 pm
Reply with quote

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
View user's profile Send private message
t5590ag

Active User


Joined: 21 May 2009
Posts: 139
Location: United States

PostPosted: Wed Nov 18, 2009 8:21 pm
Reply with quote

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
View user's profile Send private message
t5590ag

Active User


Joined: 21 May 2009
Posts: 139
Location: United States

PostPosted: Wed Nov 18, 2009 8:36 pm
Reply with quote

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
View user's profile Send private message
Sandy Zimmer

Active Member


Joined: 13 Jun 2007
Posts: 826
Location: Wilmington, DE

PostPosted: Wed Nov 18, 2009 9:08 pm
Reply with quote

Can you post your io-pcb?
Back to top
View user's profile Send private message
t5590ag

Active User


Joined: 21 May 2009
Posts: 139
Location: United States

PostPosted: Wed Nov 18, 2009 9:15 pm
Reply with quote

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
View user's profile Send private message
t5590ag

Active User


Joined: 21 May 2009
Posts: 139
Location: United States

PostPosted: Wed Nov 18, 2009 9:25 pm
Reply with quote

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
View user's profile Send private message
Sandy Zimmer

Active Member


Joined: 13 Jun 2007
Posts: 826
Location: Wilmington, DE

PostPosted: Wed Nov 18, 2009 9:30 pm
Reply with quote

Let's just start by posting the cobol io-pcb definition. Has this program ever worked or is it brand new?
Back to top
View user's profile Send private message
t5590ag

Active User


Joined: 21 May 2009
Posts: 139
Location: United States

PostPosted: Wed Nov 18, 2009 9:33 pm
Reply with quote

its a new one icon_smile.gif
Back to top
View user's profile Send private message
Sandy Zimmer

Active Member


Joined: 13 Jun 2007
Posts: 826
Location: Wilmington, DE

PostPosted: Wed Nov 18, 2009 9:35 pm
Reply with quote

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
View user's profile Send private message
t5590ag

Active User


Joined: 21 May 2009
Posts: 139
Location: United States

PostPosted: Wed Nov 18, 2009 9:38 pm
Reply with quote

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
View user's profile Send private message
Sandy Zimmer

Active Member


Joined: 13 Jun 2007
Posts: 826
Location: Wilmington, DE

PostPosted: Wed Nov 18, 2009 9:43 pm
Reply with quote

Also, can we see your entry statement.
Back to top
View user's profile Send private message
t5590ag

Active User


Joined: 21 May 2009
Posts: 139
Location: United States

PostPosted: Wed Nov 18, 2009 9:48 pm
Reply with quote

Code:
001950     PROCEDURE DIVISION USING I-O-LTERM-PCB         
001960                              ALT-LTERM-PCB-MTO     
001970                              ALT-LTERM-PCB-1       
001980          .                                         
Back to top
View user's profile Send private message
t5590ag

Active User


Joined: 21 May 2009
Posts: 139
Location: United States

PostPosted: Wed Nov 18, 2009 9:50 pm
Reply with quote

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
View user's profile Send private message
Sandy Zimmer

Active Member


Joined: 13 Jun 2007
Posts: 826
Location: Wilmington, DE

PostPosted: Wed Nov 18, 2009 10:05 pm
Reply with quote

I like different input and output messages defined in working storage. Your input message will not have defined attribute bytes.
Back to top
View user's profile Send private message
t5590ag

Active User


Joined: 21 May 2009
Posts: 139
Location: United States

PostPosted: Wed Nov 18, 2009 10:23 pm
Reply with quote

Am sorry Sandy. This point is not very clear to me. I didnt get it.
Back to top
View user's profile Send private message
t5590ag

Active User


Joined: 21 May 2009
Posts: 139
Location: United States

PostPosted: Wed Nov 18, 2009 10:33 pm
Reply with quote

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
View user's profile Send private message
Sandy Zimmer

Active Member


Joined: 13 Jun 2007
Posts: 826
Location: Wilmington, DE

PostPosted: Wed Nov 18, 2009 10:50 pm
Reply with quote

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
View user's profile Send private message
t5590ag

Active User


Joined: 21 May 2009
Posts: 139
Location: United States

PostPosted: Wed Nov 18, 2009 10:58 pm
Reply with quote

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
View user's profile Send private message
Sandy Zimmer

Active Member


Joined: 13 Jun 2007
Posts: 826
Location: Wilmington, DE

PostPosted: Wed Nov 18, 2009 11:26 pm
Reply with quote

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
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> IMS DB/DC Goto page 1, 2, 3  Next

 


Similar Topics
Topic Forum Replies
No new posts db2 vs static data COBOL Programming 1
No new posts Passing containers on START command CICS 4
No new posts External data queue (changes?) CLIST & REXX 0
No new posts Pull data using date difference betwe... DB2 6
No new posts fast data scrambling PL/I & Assembler 10
Search our Forums:

Back to Top