JCL - แถลงการณ์ของ EXEC
JCL แต่ละงานสามารถทำได้หลายขั้นตอน แต่ละขั้นตอนของงานสามารถเรียกใช้โปรแกรมได้โดยตรงหรือสามารถเรียกขั้นตอนซึ่งจะดำเนินการโปรแกรมอย่างน้อยหนึ่งโปรแกรม (ขั้นตอนงาน) คำสั่งที่เก็บข้อมูลโปรแกรมขั้นตอนงาน / ขั้นตอนคือEXEC statement.
วัตถุประสงค์ของคำสั่ง EXEC คือเพื่อให้ข้อมูลที่จำเป็นสำหรับโปรแกรม / ขั้นตอนที่ดำเนินการในขั้นตอนงาน พารามิเตอร์ที่เข้ารหัสในคำสั่งนี้สามารถส่งผ่านข้อมูลไปยังโปรแกรมในการดำเนินการสามารถแทนที่พารามิเตอร์บางอย่างของคำสั่ง JOB และสามารถส่งผ่านพารามิเตอร์ไปยังโพรซีเดอร์ได้หากคำสั่ง EXEC เรียกใช้โพรซีเดอร์แทนที่จะเรียกใช้โปรแกรมโดยตรง
ไวยากรณ์
ต่อไปนี้เป็นไวยากรณ์พื้นฐานของคำสั่ง JCL EXEC:
//Step-name EXEC Positional-param, Keyword-param
คำอธิบาย
ให้เราดูคำอธิบายของคำศัพท์ที่ใช้ในไวยากรณ์คำสั่ง EXEC ข้างต้น
STEP-NAME
สิ่งนี้ระบุขั้นตอนงานภายใน JCL สามารถมีความยาวได้ตั้งแต่ 1 ถึง 8 โดยมีอักขระที่เป็นตัวเลขและตัวอักษร
EXEC
นี่คือคีย์เวิร์ดที่ระบุว่าเป็นคำสั่ง EXEC
POSITIONAL-PARAM
นี่คือพารามิเตอร์ตำแหน่งซึ่งมีได้สองประเภท:
พารามิเตอร์ตำแหน่ง | คำอธิบาย |
---|---|
PGM | นี่หมายถึงชื่อโปรแกรมที่จะดำเนินการในขั้นตอนงาน |
PROC | นี่หมายถึงชื่อโพรซีเดอร์ที่จะดำเนินการในขั้นตอนงาน เราจะพูดถึงบทที่แยกต่างหาก |
คีย์เวิร์ด - PARAM
ต่อไปนี้เป็นพารามิเตอร์คีย์เวิร์ดต่างๆสำหรับคำสั่ง EXEC คุณสามารถใช้พารามิเตอร์อย่างน้อยหนึ่งพารามิเตอร์ตามข้อกำหนดและคั่นด้วยเครื่องหมายจุลภาค:
พารามิเตอร์คำหลัก | คำอธิบาย |
---|---|
PARM | ใช้เพื่อจัดเตรียมข้อมูลพาราเมทริกให้กับโปรแกรมที่กำลังดำเนินการในขั้นตอนงาน นี่เป็นฟิลด์ที่ขึ้นกับโปรแกรมและไม่มีกฎที่แน่นอนยกเว้นว่าต้องรวมค่า PARM ไว้ในใบเสนอราคาในกรณีที่มีอักขระพิเศษ ตัวอย่างเช่นด้านล่างค่า "CUST1000" จะถูกส่งเป็นค่าตัวเลขและตัวอักษรไปยังโปรแกรม หากโปรแกรมอยู่ใน COBOL ค่าที่ส่งผ่านพารามิเตอร์ PARM ใน JCL จะได้รับใน LINKAGE SECTION ของโปรแกรม |
ADDRSPC | ใช้เพื่อระบุว่าขั้นตอนงานต้องการหน่วยเก็บเสมือนหรือจริงสำหรับการดำเนินการ หน่วยเก็บข้อมูลเสมือนสามารถเพจได้ในขณะที่หน่วยเก็บข้อมูลจริงไม่ได้และถูกวางไว้ในหน่วยความจำหลักเพื่อดำเนินการ ขั้นตอนงานซึ่งต้องการการดำเนินการที่เร็วขึ้นสามารถวางไว้ในที่จัดเก็บข้อมูลจริง ต่อไปนี้เป็นไวยากรณ์: ADDRSPC=VIRT | REAL เมื่อไม่มีการเข้ารหัส ADDRSPC VIRT จะเป็นค่าเริ่มต้น |
ACCT | ข้อมูลนี้ระบุข้อมูลการบัญชีของขั้นตอนงาน ต่อไปนี้เป็นไวยากรณ์: ACCT=(userid) ซึ่งคล้ายกับพารามิเตอร์ตำแหน่ง accounting informationในคำสั่ง JOB หากมีการเข้ารหัสทั้งในคำสั่ง JOB และ EXEC ข้อมูลการบัญชีในคำสั่ง JOB จะใช้กับขั้นตอนงานทั้งหมดที่ไม่มีการเข้ารหัสพารามิเตอร์ ACCT พารามิเตอร์ ACCT ในคำสั่ง EXEC จะแทนที่พารามิเตอร์ที่มีอยู่ในคำสั่ง JOB สำหรับขั้นตอนงานนั้นเท่านั้น |
พารามิเตอร์คีย์เวิร์ดทั่วไปของ EXEC และ JOB Statement
พารามิเตอร์คำหลัก | คำอธิบาย |
---|---|
ADDRSPC | ADDRSPC ที่เข้ารหัสในคำสั่ง JOB จะแทนที่ ADDRSPC ที่เข้ารหัสในคำสั่ง EXEC ของขั้นตอนงานใด ๆ |
TIME | หาก TIME ถูกเข้ารหัสในคำสั่ง EXEC จะใช้กับขั้นตอนงานนั้นเท่านั้น หากมีการระบุไว้ในคำสั่ง JOB และ EXEC ทั้งสองอย่างจะมีผลและอาจทำให้เกิดข้อผิดพลาดการหมดเวลาเนื่องจากข้อผิดพลาดอย่างใดอย่างหนึ่ง ไม่แนะนำให้ใช้พารามิเตอร์ TIME ทั้งในคำสั่ง JOB และ EXEC ร่วมกัน |
REGION | หากมีการเข้ารหัส REGION ในคำสั่ง EXEC จะใช้กับขั้นตอนงานนั้นเท่านั้น REGION ที่เข้ารหัสในคำสั่ง JOB จะแทนที่ REGION ที่เข้ารหัสในคำสั่ง EXEC ของขั้นตอนงานใด ๆ |
COND | ใช้เพื่อควบคุมการดำเนินการขั้นตอนงานตามรหัสส่งคืนของขั้นตอนก่อนหน้า ถ้าพารามิเตอร์ COND ถูกเข้ารหัสในคำสั่ง EXEC ของขั้นตอนงานพารามิเตอร์ COND ของคำสั่ง JOB (ถ้ามี) จะถูกละเว้น การทดสอบต่างๆที่สามารถทำได้โดยใช้พารามิเตอร์ COND อธิบายไว้ในการประมวลผลตามเงื่อนไข |
ตัวอย่าง
ต่อไปนี้เป็นตัวอย่างง่ายๆของสคริปต์ JCL พร้อมกับคำสั่ง JOB และ EXEC:
//TTYYSAMP JOB 'TUTO',CLASS=6,MSGCLASS=X,REGION=8K,
// NOTIFY=&SYSUID
//*
//STEP010 EXEC PGM=MYCOBOL,PARAM=CUST1000,
// ACCT=(XXXX),REGION=8K,ADDRSPC=REAL,TIME=1440