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

NATURAL trick: Submitting job from within NATURAL


IBM Mainframe Forums -> Java & MQSeries
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
ofer71

Global Moderator


Joined: 27 Dec 2005
Posts: 2358
Location: Israel

PostPosted: Wed Jan 18, 2006 3:13 pm
Reply with quote

Hi all -

We all know the standard way of submitting jobs from within NATURAL (RJE/NATRJE).
However, there are other ways to do this, and here is one of them.

The pseudo code of the following program is as follow:
- Put your JCL cards in an array.
- Allocate work file to SYSOUT, with the special program INTRDR. The allocation of work file to SYSOUT is done by NATURAL user exit 2021 (USR2021), which resides in your SYSEXT library.
- Write the cards (using the array) to that work file.
- Free the SYSOUT.

Here is the code for the main program:
Code:

DEFINE DATA LOCAL                                                       
1 #INLINE         (A80/11)                                             
1 #I              (I2)                                                 
1 #ALLOC-PARMS                                                         
  2 #ALLOC-NUMBER (N1)                                                 
  2 #ALLOC-ACTION (A8)                                                 
  2 #ALLOC-RC     (B2)                                                 
END-DEFINE                                                             
*                                                                       
#INLINE(1)  := '//OFERFFT JOB (),@RXX,MSGCLASS=T,CLASS=A,NOTIFY=&SYSUID'
#INLINE(2)  := '//*                                                    '
#INLINE(3)  := '//REXXEX EXEC PGM=IKJEFT01                             '
#INLINE(4)  := '//SYSPROC  DD DISP=SHR,DSN=OFERF.A.REXX                '
#INLINE(5)  := '//SYSUDUMP DD SYSOUT=*                                 '
#INLINE(6)  := '//SYSPRINT DD SYSOUT=*                                 '
#INLINE(7)  := '//SYSTSPRT DD SYSOUT=*                                 '
#INLINE(8)  := '//SYSOUT   DD SYSOUT=*                                 '
#INLINE(9)  := '//SYSTSIN  DD *                                        '
#INLINE(10) := '  %TEMP                                                '
#INLINE(11) := '/*                                                     '
*                                                                       
#ALLOC-NUMBER := 1                                                     
#ALLOC-ACTION := 'ALLOC   '                                             
CALLNAT 'SYSOUT' #ALLOC-PARMS                                           
*                                                                       
FOR #I = 1 TO 11                                                       
  WRITE WORK FILE 1 #INLINE(#I)                                         
END-FOR                                                                 
*                                                                       
#ALLOC-NUMBER := 1                                                     
#ALLOC-ACTION := 'UNALLOC '                                             
CALLNAT 'SYSOUT' #ALLOC-PARMS                                           
*                                                                       
END                                                                     


And this is the code of the SYSOUT subprogram (which is just an adaptation of USR2021P example in library SYSEXT):
Code:

DEFINE DATA                                                       
PARAMETER                                                         
1 #ALLOC-PARMS                                                     
  2 #ALLOC-NUMBER (N1)                                             
  2 #ALLOC-ACTION (A8)                                             
  2 #ALLOC-RC     (B2)                                             
LOCAL                                                             
01 ALC                          /* DYNAMIC ALLOCATION (MVS ONLY)   
  02 ALC-FUNCTION        (A8)   /* FUNCTION (ALLOC/UNALLOC)       
  02 ALC-ERROR-CODE      (B2)   /* SVC 99 ERROR CODE OR NUMBER     
  02 ALC-INFO-CODE       (B2)   /* SVC 99 INFORMATION CODE         
  02 ALC-ERROR-TEXT      (A60)  /* ERROR TEXT FROM LAST ERROR     
  02 ALC-DDNAME          (A8)   /* LOGICAL DATASET NAME           
  02 ALC-DSNAME          (A44)  /* PHYSICAL DATASET NAME           
  02 ALC-MEMBER          (A8)   /* PDS MEMBER NAME                 
  02 ALC-DUMMY           (A1)   /* Y = DUMMY DATASET               
  02 ALC-TERM            (A1)   /* Y = TSO TERMINAL DATASET       
  02 ALC-DISP1           (A4)   /* DISPOSITION (NEW/OLD/MOD/SHR)   
  02 ALC-DISP2           (A8)   /* (CATLG/UNCATLG/KEEP/DELETE)     
  02 ALC-DISP3           (A8)   /* (CATLG/UNCATLG/KEEP/DELETE)     
  02 ALC-UNALLOC-CLOSE   (A1)   /* Y = UNALLOCATE AT CLOSE         
  02 ALC-SPACE-TYPE      (A8)   /* CYLINDER/TRACKS/BLOCKS         
  02 ALC-SPACE-PRIMARY   (N8)   /* PRIMARY SPACE AMOUNT           
  02 ALC-SPACE-SECONDARY (N8)   /* SECONDARY SPACE AMOUNT         
  02 ALC-SPACE-DIRECTORY (N8)   /* NUMBER OF DIRECTORY BLOCKS     
  02 ALC-SPACE-RELEASE   (A1)   /* Y = RELEASE UNUSED SPACE       
  02 ALC-SPACE-FORMAT    (A6)   /* (CONTIG/ALX/MXIG)               
  02 ALC-SPACE-ROUND     (A1)   /* Y = ROUND UP TO NEXT CYL.       
  02 ALC-VOLUME-SERIAL   (A6)   /* VOLUME NAME                     
  02 ALC-UNIT            (A8)   /* TYPE OF UNIT                   
  02 ALC-UNIT-DEFER      (A1)   /* Y = DEFER MOUNTING             
  02 ALC-LABEL-SEQUENCE  (N4)   /* SEQUENCE NUMBER ON TAPE         
  02 ALC-LABEL-TYPE      (A3)   /* (SL/NL/BLP/AL/AUL/SUL/NSL/LTM   
  02 ALC-LABEL-EXPDT     (N7)   /* EXPIRATION DATE (YYYYDDD)       
  02 ALC-LABEL-RETPD     (N4)   /* RETENTION PERIOD IN DAYS       
  02 ALC-SYSOUT-CLASS    (A1)   /* JES OUTPUT CLASS               
  02 ALC-SYSOUT-PROGRAM  (A8)   /* JES OUTPUT WRITER NAME         
  02 ALC-SYSOUT-FORM     (A4)   /* JES OUTPUT FORM NAME           
  02 ALC-SYSOUT-LIMIT    (N8)   /* JES OUTPUT LIMIT               
  02 ALC-SYSOUT-COPIES   (N3)   /* JES OUTPUT COPIES                   
  02 ALC-SYSOUT-HOLD     (A1)   /* Y = JES OUTPUT HOLD QUEUE           
  02 ALC-SYSOUT-SEGMENT  (N5)   /* JES OUTPUT SEGMENTATION             
  02 ALC-SYSOUT-NODE     (A8)   /* JES OUTPUT REMOTE NODE               
  02 ALC-SYSOUT-USERID   (A8)   /* JES OUTPUT REMOTE NODE USERID       
  02 ALC-SYSOUT-OUTPUT   (A8)   /* REFERENCED OUTPUT STATEMENT         
  02 ALC-DCB-DDNAME      (A8)   /* DCB RETRIEVED FROM DDNAME           
  02 ALC-DCB-DSORG       (A3)   /* DATASET ORG. (PS/PO/DA)             
  02 ALC-DCB-RECFM       (A4)   /* RECORD FORMAT                       
  02 ALC-DCB-BLKSZ       (N5)   /* BLOCK SIZE                           
  02 ALC-DCB-LRECL       (N5)   /* RECORD LENGTH                       
  02 ALC-DCB-BUFNO       (N2)   /* NUMBER OF I/O BUFFERS               
  02 ALC-DCB-DENSITY     (N1)   /* TAPE DENSITY (1/2/3/4)               
  02 ALC-SMS-STORCLAS    (A8)   /* SMS STORAGE CLASS                   
  02 ALC-SMS-MGMTCLAS    (A8)   /* SMS MANAGEMENT CLASS                 
  02 ALC-SMS-DATACLAS    (A8)   /* SMS DATA CLASS                       
  02 ALC-PATH            (A253) /* PATH NAME                           
  02 ALC-PATH-DISP1      (A6)   /* PATH DISP. 1 (DELETE/KEEP)           
  02 ALC-PATH-DISP2      (A6)   /* PATH DISP. 2 (DELETE/KEEP)           
  02 ALC-PATH-OPTS       (B4)   /* PATH OPTIONS                         
  02 ALC-PATH-MODE       (B4)   /* PATH MODE                           
  02 ALC-PATH-FILEDAT    (A6)   /* FILE TYPE (BINARY/TEXT)             
01 WORKA1                (A1)                                           
01 USR2021N                                                             
  02 VERSION             (I01)     INIT <0>                             
01 REDEFINE USR2021N                                                   
  02 EXTENDED-PARMS                                                     
    03 EXTENDED-DATA     (A01/1:1)                                     
END-DEFINE                                                             
SET KEY ALL                                                             
*                                                                       
ALC-FUNCTION       := #ALLOC-ACTION                                     
COMPRESS 'CMWKF0' #ALLOC-NUMBER INTO ALC-DDNAME LEAVING NO             
ALC-SYSOUT-CLASS   := '*'                                               
ALC-SYSOUT-PROGRAM := 'INTRDR  '                                       
*                                                                       
CALLNAT 'USR2021N' ALC USR2021N.EXTENDED-PARMS                         
*                                                                       
IF ALC-ERROR-TEXT EQ ' ' THEN                                           
  #ALLOC-RC := 0                 
ELSE                             
  #ALLOC-RC := ALC-ERROR-CODE     
END-IF                           
*                                 
END                               


Enjoy icon_biggrin.gif

O.
Back to top
View user's profile Send private message
eniyanp

New User


Joined: 05 Jul 2006
Posts: 5

PostPosted: Fri Nov 10, 2006 11:53 pm
Reply with quote

HI,

I am facing the below problem.

I have a map which has three fields (year, month and dealer numbers).
When ever the user enter a year and month, dealers numbers, then if he /she press ENTER, then one job will be submitted to create a report for that dealers. The report generating program will get a input from maps. How i will pass this data from the natural online maps to JCL. I tried the JCL you given, but I am getting some problem. Even i am very new to this natural area. Please suggest any efficient method to achieve this task.
Back to top
View user's profile Send private message
eniyanp

New User


Joined: 05 Jul 2006
Posts: 5

PostPosted: Sat Nov 11, 2006 12:03 am
Reply with quote

THis is the program i was written for my previous request

0010 DEFINE DATA
0020 LOCAL
0030 1 #OFFSET (N2) INIT<0>
0040 1 #INLINE (A80/28)
0050 * 1 #OUTINE (A5/1:26)
0060 1 #TEMP-DEAL-MAP
0070 2 #TEMP-DEAL-MAP1 (A5)
0080 2 #TEMP-DEAL-MAP2 (A5)
0090 2 #TEMP-DEAL-MAP3 (A5)
0100 2 #TEMP-DEAL-MAP4 (A5)
0110 2 #TEMP-DEAL-MAP5 (A5)
0120 2 #TEMP-DEAL-MAP6 (A5)
0130 1 #I (I2)
0140 1 #J (P2)
0150 1 #ALLOC-PARMS
0160 2 #ALLOC-NUMBER (N1)
0170 2 #ALLOC-ACTION (A8)
0180 2 #ALLOC-RC (B2)
0190 1 #CHNLUSID
0200 2 #LOCAL(A5)
0210 2 #DEALER-NUMBER1 (A5/1:13)
0220 2 #DEALER-NUMBER2 (A5/1:13)
0230 2 #DEALER-TOTAL-ALL (A158)
0240 2 #CALENDAR-YEAR (A4)
0250 2 REDEFINE #CALENDAR-YEAR
0260 3 #CALENDAR-CC (A2)
0270 3 #CALENDAR-YY(A2)
0280 2 #CALENDAR-MM (A2)
0290 2 #DATE (A8)
0300 2 REDEFINE #DATE
0310 3 #DATE-DD (A2)
0320 3 #FILLER1 (A1)
0330 3 #DATE-MM (A2)
0340 3 #FILLER2 (A1)
0350 3 #DATE-YY (A2)
0360 1 #INDEX1 (N2)
0370 1 #TOTAL (N2)
0380 1 #EX-IND (N2)
0390 * 1 #OUTPUT-WORK
0400 * 2 #YEAR (A4)
0410 * 2 #MONTH (A2)
0420 * 2 #DEALER-NUMBR (A5)
0430 *
0440 1 DEALER-FILE-VIEW VIEW OF DEALER-FILE
0450 02 DEALER-NUMBER (A5)
0460 1 #ARRAY (A5/1:26)
0470 1 #INDEX (P2)
0480 END-DEFINE
0490 MOVE *DATE TO #DATE
0500 *
0510 RESET #DEALER-NUMBER1(*) #DEALER-NUMBER2(*) #INDEX
0520 SET KEY ALL
0530 INPUT USING MAP 'MAP1'
0540 *
0550 DECIDE ON FIRST VALUE *PF-KEY
0560 VALUE 'PF3'
0570 TERMINATE
0580 VALUE 'ENTR'
0590 PERFORM DATE-VALIDATION
0600 PERFORM SUBMIT-JOB-BATCH
0610 FETCH 'JCL1'
0620 NONE
0630 IGNORE
0640 *
0650 END-DECIDE
0660 *
0670 ********************************************************************
0680 DEFINE SUBROUTINE PROCESS
0690 ********************************************************************
0700 RESET #ARRAY(*) #INDEX #EX-IND
0710 FOR1.
0720 FOR #INDEX1 1 13
0730 IF #DEALER-NUMBER1(#INDEX1) EQ ' '
0740 ESCAPE TOP
0750 END-IF /*(0730)
0760 EXAMINE #ARRAY(*) FOR #DEALER-NUMBER1(#INDEX1) GIVING INDEX
0770 #EX-IND
0780 IF #EX-IND NE 0
0790 REINPUT FULL 'DUPLICATE' MARK *#DEALER-NUMBER1(#INDEX1) ALARM
0800 END-IF /*(0780)
0810 #INDEX := #INDEX + 1
0820 #ARRAY(#INDEX) := #DEALER-NUMBER1(#INDEX1)
0830 END-FOR /*(FOR1.)
0840 *
0850 FOR2.
0860 FOR #INDEX1 1 13
0870 IF #DEALER-NUMBER2(#INDEX1) EQ ' '
0880 ESCAPE TOP
0890 END-IF /*(0870)
0900 EXAMINE #ARRAY(*) FOR #DEALER-NUMBER2(#INDEX1) GIVING INDEX
0910 #EX-IND
0920 IF #EX-IND NE 0
0930 REINPUT FULL 'DUPLICATE' MARK *#DEALER-NUMBER2(#INDEX1) ALARM
0940 ESCAPE TOP
0950 END-IF /*(0780)
0960 #INDEX := #INDEX + 1
0970 #ARRAY(#INDEX) := #DEALER-NUMBER2(#INDEX1)
0980 END-FOR /*(FOR2.)
0990 *
1000 FOR3.

1010 FOR #INDEX1 1 #INDEX
1020 FD1.
1030 FIND DEALER-FILE-VIEW WITH DEALER-NUMBER EQ #ARRAY(#INDEX1)
1040 END-FIND
1050 *
1060 IF *NUMBER(FD1.) EQ 0
1070 EXAMINE #DEALER-NUMBER1(*) FOR #ARRAY(#INDEX1) GIVING INDEX #EX-IND
1080 IF #EX-IND NE 0
1090 REINPUT FULL 'INVALID DEALER NUMBER' MARK *#DEALER-NUMBER1(#EX-IND)
1100 ALARM
1110 END-IF /*(1080)
1120 EXAMINE #DEALER-NUMBER2(*) FOR #ARRAY(#INDEX1) GIVING INDEX #EX-IND
1130 IF #EX-IND NE 0
1140 REINPUT FULL 'INVALID DEALER NUMBER' MARK *#DEALER-NUMBER2(#EX-IND)
1150 ALARM
1160 END-IF /*(1130)
1170 END-IF /*(1060)
1180 END-FOR
1190 *
1200 * WRITE '=' #INDEX
1210 * WRITE '=' #ARRAY(*)
1220 * MOVE #CALENDAR-CC TO WORK01
1230 * MOVE #CALENDAR-YY TO WORK01
1240 * MOVE #CALENDAR-MM TO WORK01
1250 * MOVE #ARRAY-CC TO WORK01
1260 END-SUBROUTINE
1270 ***********************************************************************
1280 * END
1290 ***********************************************************************
1300 DEFINE SUBROUTINE DATE-VALIDATION
1310 ***********************************************************************
1320 IF #CALENDAR-YY < #DATE-YY
1330 PERFORM PROCESS
1340 ELSE
1350 IF #CALENDAR-YY> #DATE-YY
1360 REINPUT FULL 'ENTER A VALID YEAR'
1370 ELSE
1380 IF #CALENDAR-MM < #DATE-MM
1390 PERFORM PROCESS
1400 ELSE
1410 REINPUT FULL 'ENTER A VALID MONTH'
1420 END-IF /*(1320)
1430 END-IF /*(1350)
1440 END-IF /*(1380)
1450 END-SUBROUTINE
1460 *******************************************************************
1470 DEFINE SUBROUTINE SUBMIT-JOB-BATCH
1480 *******************************************************************
1490 * #OUTPUT-WORK.#YEAR := #CALENDAR-YEAR
1500 * #OUTPUT-WORK.#MONTH := #CALENDAR-MM
1510 * FOR #INDEX 1 25
1520 * MOVE #ARRAY(#INDEX) TO #OUTPUT-WORK.#DEALER-NUMBR
1530 * WRITE WORK FILE 4 #OUTPUT-WORK
1540 * END-FOR
1550 * RESET #K
1560 RESET #J
1570 RESET #ALLOC-PARMS
1580 MOVE #ARRAY(1) TO #TEMP-DEAL-MAP5
1590 MOVE #ARRAY(2) TO #TEMP-DEAL-MAP6
1600 #INLINE(1) :="//KCV369UX JOB (C,I),P,CLASS=A,MSGCLASS=X,NOTIFY=KCV369U"
1610 #INLINE(2) :="//PROCLIB JCLLIB ORDER=KCV369U.FINA "
1620 #INLINE(3) :="//SETEM INCLUDE MEMBER=DEVLE "
1630 #INLINE(4) :="// SET DBID=E "
1640 #INLINE(5) :="//INCJLIB INCLUDE MEMBER=JLIBAPP "
1650 #INLINE(6) :="// INCLUDE MEMBER=JLIBAGF "
1660 #INLINE(7) :="//STEP01 EXEC N2TINF&DBID,FLIST='OPRB=(.ALL)' "
1670 #INLINE(8) :="//IBMTBLS DD DSN=KCV369U.IPV.IBM9000.BUS.TAB,DISP=SHR "
1680 #INLINE(9) :="//CMPRINT DD SYSOUT=* "
1690 #INLINE(10) :="//CMWKF01 DD DSN=KCV369U.IBM.SORT.STAT.FILE,DISP=SHR "
1700 #INLINE(11) :="//CMWKF02 DD DSN=KCV369U.IBM.STATIC.TEST1, "
1710 #INLINE(12) :="// DISP=(NEW,CATLG,DELETE), "
1720 #INLINE(13) :="// DCB=(LRECL=200,BLKSIZE=0,RECFM=FB), "
1730 #INLINE(14) :="// SPACE=(CYL,(100,20),RLSE) "
1740 #INLINE(15) :="//CMWKF03 DD DSN=KCV369U.IBMN964.STATIC.TEST2, "
1750 #INLINE(16) :="// DISP=(NEW,CATLG,DELETE), "
1760 #INLINE(17) :="// DCB=(LRECL=80,BLKSIZE=0,RECFM=FB), "
1770 #INLINE(18) :="// SPACE=(TRK,(10,10),RLSE) "
1780 #INLINE(19) :="//CMWKF04 DD * "
1790 #INLINE(20) := #TEMP-DEAL-MAP5
1800 #INLINE(21) := #TEMP-DEAL-MAP6
1810 #INLINE(22) :="//CMWKF05 DD DSN=KCV369U.IBMN964.STATIC.FILE5, "
1820 #INLINE(23) :="// DISP=(NEW,CATLG,DELETE), "
1830 #INLINE(24) :="// DCB=(LRECL=200,BLKSIZE=0,RECFM=FB), "
1840 #INLINE(25) :="// SPACE=(CYL,(100,20),RLSE) "
1850 #INLINE(26) :="//SYSIN DD DSN=KCV369U.MAP.NMC.PARMLIB(IBMN6601), "
1860 #INLINE(27) :="// DISP=SHR "
1870 PRINT #INLINE(01)
1880 PRINT #INLINE(02)
1890 PRINT #INLINE(03)
1900 PRINT #INLINE(04)
1910 PRINT #INLINE(05)
1920 PRINT #INLINE(06)
1930 PRINT #INLINE(07)
1940 PRINT #INLINE(08)
1950 PRINT #INLINE(09)
1960 PRINT #INLINE(10)
1970 PRINT #INLINE(11)
1980 PRINT #INLINE(12)
1990 PRINT #INLINE(13)
2000 PRINT #INLINE(14)
2010 PRINT #INLINE(15)
2020 PRINT #INLINE(16)
2030 PRINT #INLINE(17)
2040 PRINT #INLINE(18)
2050 PRINT #INLINE(19)
2060 PRINT #INLINE(20)
2070 PRINT #INLINE(21)
2080 PRINT #INLINE(22)
2090 PRINT #INLINE(23)
2100 PRINT #INLINE(24)
2110 PRINT #INLINE(25)
2120 PRINT #INLINE(26)
2130 PRINT #INLINE(27)
2140 PRINT #INLINE(28)
2150 * PRINT #INLINE(29)
2160 * PRINT #INLINE(30)
2170 * PRINT #INLINE(31)
2180 *
2190 #ALLOC-NUMBER := 1
2200 #ALLOC-ACTION := 'ALLOC '
2130 PRINT #INLINE(27)
2140 PRINT #INLINE(28)
2150 * PRINT #INLINE(29)
2160 * PRINT #INLINE(30)
2170 * PRINT #INLINE(31)
2180 *
2190 #ALLOC-NUMBER := 1
2200 #ALLOC-ACTION := 'ALLOC '
2210 CALLNAT 'JCL3' #ALLOC-PARMS
2220 *
2230 FOR #J = 1 TO 28
2240 WRITE WORK FILE 1 #INLINE(#J)
2250 END-FOR
2260 *
2270 #ALLOC-NUMBER := 1
2280 #ALLOC-ACTION := 'UNALLOC '
2290 CALLNAT 'JCL3' #ALLOC-PARMS
2300 END-SUBROUTINE
2310 ***********************************************************************
2320 END
Back to top
View user's profile Send private message
ofer71

Global Moderator


Joined: 27 Dec 2005
Posts: 2358
Location: Israel

PostPosted: Sun Nov 12, 2006 11:29 am
Reply with quote

Can you please specify what do you mean by "input to jcl"? Do you want any data item to be put in "PARM="?

Also, when submitting your code in this forum, please use the [code] tags.

O.
Back to top
View user's profile Send private message
eniyanp

New User


Joined: 05 Jul 2006
Posts: 5

PostPosted: Sun Nov 12, 2006 10:40 pm
Reply with quote

HI,

I am passing the dealers number to the jcl through //Sysin card.
The dealer numbers are enterted by the user's in the online screen.
Back to top
View user's profile Send private message
ofer71

Global Moderator


Joined: 27 Dec 2005
Posts: 2358
Location: Israel

PostPosted: Mon Nov 13, 2006 12:02 am
Reply with quote

I understood the first part. You want the dealers numbers to be "passed" to the SYSIN. Currently, your SYSIN is: #INLINE(26) :="//SYSIN DD DSN=KCV369U.MAP.NMC.PARMLIB(IBMN6601), " , so I really (again) don't understand what do you mean by "passing to the jcl"...

O.
Back to top
View user's profile Send private message
eniyanp

New User


Joined: 05 Jul 2006
Posts: 5

PostPosted: Mon Nov 13, 2006 11:58 am
Reply with quote

HI, I am not going to pass any value in #INLINE(26) :="//SYSIN DD DSN=KCV369U.MAP.NMC.PARMLIB(IBMN6601), ", This is the member where the natural program name and the natural library name are mentioned.

I am going to pass the varibale through CMWKF04, see below.
1780 #INLINE(19) :="//CMWKF04 DD * "
1790 #INLINE(20) := #TEMP-DEAL-MAP5
1800 #INLINE(21) := #TEMP-DEAL-MAP6

In this #TEMP-DEAL-MAP1 ... #TEMP-DEAL-MAP5 up to 26 ,are the dealer numbers. I am getting this values from the map and giving a input to the jcl.

Even i passes this varable successfully, even job also submitted properly, but after that it come in to the program and says a error message of
"NAT1520 WORK file 2 not available."
[/img]
Back to top
View user's profile Send private message
ofer71

Global Moderator


Joined: 27 Dec 2005
Posts: 2358
Location: Israel

PostPosted: Mon Nov 13, 2006 12:25 pm
Reply with quote

Error 1520 means that you have a problem with the dataset. It has nothing to do with your program. In your case, check the dataset allocated to CMWKF02.

O.
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 -> Java & MQSeries

 


Similar Topics
Topic Forum Replies
No new posts submitting feedback for manuals All Other Mainframe Topics 3
No new posts IMS DB using Natural Language IMS DB/DC 0
No new posts Negative value - packed field - Natur... Java & MQSeries 0
No new posts Call Natural program with rexx CLIST & REXX 2
No new posts JCL submitting JCL JCL & VSAM 6
Search our Forums:

Back to Top