วิธีอินพุต - เอาท์พุต

โปรแกรมแบตช์ใด ๆ ที่ดำเนินการผ่าน JCL จำเป็นต้องมีการป้อนข้อมูลซึ่งได้รับการประมวลผลและสร้างเอาต์พุต มีวิธีการป้อนข้อมูลเข้าสู่โปรแกรมและการเขียนเอาต์พุตที่ได้รับจาก JCL หลายวิธี ในโหมดแบตช์ไม่จำเป็นต้องมีการโต้ตอบกับผู้ใช้ แต่อุปกรณ์อินพุตและเอาต์พุตและองค์กรที่จำเป็นจะถูกกำหนดไว้ใน JCL และส่ง

การป้อนข้อมูลใน JCL

มีหลายวิธีในการป้อนข้อมูลไปยังโปรแกรมโดยใช้ JCL และวิธีการเหล่านี้ได้อธิบายไว้ด้านล่าง:

ติดตั้งข้อมูล

ข้อมูลในสตรีมไปยังโปรแกรมสามารถระบุได้โดยใช้คำสั่ง SYSIN DD

//CONCATEX JOB CLASS=6,NOTIFY=&SYSUID
//* Example 1:
//STEP10 EXEC PGM=MYPROG
//IN1    DD DSN=SAMPLE.INPUT1,DISP=SHR
//OUT1   DD DSN=SAMPLE.OUTPUT1,DISP=(,CATLG,DELETE),
//       LRECL=50,RECFM=FB
//SYSIN  DD *
//CUST1  1000
//CUST2  1001
/*
//*
//* Example 2:
//STEP20 EXEC PGM=MYPROG
//OUT1   DD DSN=SAMPLE.OUTPUT2,DISP=(,CATLG,DELETE),
//       LRECL=50,RECFM=FB
//SYSIN  DD DSN=SAMPLE.SYSIN.DATA,DISP=SHR
//*

ในตัวอย่างที่ 1 อินพุตไปยัง MYPROG จะถูกส่งผ่าน SYSIN ข้อมูลมีให้ภายใน JCL บันทึกข้อมูลสองรายการจะถูกส่งไปยังโปรแกรม โปรดทราบว่า / * เป็นจุดสิ้นสุดของข้อมูล SYSIN ในสตรีม

"CUST1 1000" คือ record1 และ "CUST2 1001" คือ record2 สิ้นสุดเงื่อนไขข้อมูลเมื่อพบสัญลักษณ์ / * ขณะอ่านข้อมูล

ในตัวอย่างที่ 2 ข้อมูล SYSIN จะถูกเก็บไว้ภายในชุดข้อมูลโดยที่ SAMPLE.SYSIN.DATA เป็นไฟล์ PS ซึ่งสามารถเก็บบันทึกข้อมูลได้ตั้งแต่หนึ่งรายการขึ้นไป

การป้อนข้อมูลผ่านไฟล์

ดังที่ได้กล่าวไว้ในตัวอย่างส่วนใหญ่ในบทก่อนหน้าการป้อนข้อมูลไปยังโปรแกรมสามารถจัดเตรียมผ่านไฟล์ PS, VSAM หรือ GDG พร้อมชื่อ DSN ที่เกี่ยวข้องและพารามิเตอร์ DISP พร้อมกับคำสั่ง DD

ในตัวอย่างที่ 1 SAMPLE.INPUT1 คือไฟล์อินพุตที่ข้อมูลถูกส่งผ่านไปยัง MYPROG เรียกว่า IN1 ภายในโปรแกรม

เอาต์พุตข้อมูลใน JCL

เอาต์พุตใน JCL สามารถแค็ตตาล็อกลงในชุดข้อมูลหรือส่งผ่านไปยัง SYSOUT ดังที่กล่าวไว้ในบทคำสั่ง DDSYSOUT=* เปลี่ยนเส้นทางเอาต์พุตไปยังคลาสเดียวกันกับที่กล่าวถึงในพารามิเตอร์ MSGCLASS ของคำสั่ง JOB

การบันทึกบันทึกงาน

การระบุ MSGCLASS=Yบันทึกบันทึกงานใน JMR (Joblog Management and Retrieval) บันทึก JOB ทั้งหมดสามารถเปลี่ยนทิศทางไปยัง SPOOL และสามารถบันทึกไปยังชุดข้อมูลได้โดยให้คำสั่ง XDC เทียบกับชื่องานใน SPOOL เมื่อกำหนดคำสั่ง XDC ใน SPOOL หน้าจอการสร้างชุดข้อมูลจะเปิดขึ้น จากนั้นสามารถบันทึกบันทึกงานได้โดยให้คำจำกัดความ PS หรือ PDS ที่เหมาะสม

นอกจากนี้ยังสามารถบันทึกบันทึกงานลงในชุดข้อมูลได้โดยกล่าวถึงชุดข้อมูลที่สร้างไว้แล้วสำหรับ SYSOUT และ SYSPRINT แต่ไม่สามารถบันทึกบันทึกงานทั้งหมดด้วยวิธีนี้ (กล่าวคือ JESMSG จะไม่ถูกจัดทำรายการ) เหมือนที่ทำใน JMR หรือ XDC

//SAMPINST JOB 1,CLASS=6,MSGCLASS=Y,NOTIFY=&SYSUID
//*
//STEP1    EXEC PGM=MYPROG
//IN1      DD DSN=MYDATA.URMI.INPUT,DISP=SHR
//OUT1     DD SYSOUT=*
//SYSOUT   DD DSN=MYDATA.URMI.SYSOUT,DISP=SHR
//SYSPRINT DD DSN=MYDATA.URMI.SYSPRINT,DISP=SHR
//SYSIN    DD MYDATA.BASE.LIB1(DATA1),DISP=SHR
//*
//STEP2    EXEC PGM=SORT

ในตัวอย่างข้างต้น SYSOUT ถูกแค็ตตาล็อกใน MYDATA.URMI.SYSOUT และ SYSPRINT ใน MYDATA.URMI.SYSPRINT