JCL - Tuyên bố EXEC
Mỗi JCL có thể được thực hiện bằng nhiều bước công việc. Mỗi bước công việc có thể thực hiện một chương trình trực tiếp hoặc có thể gọi một thủ tục, lần lượt thực hiện một hoặc nhiều chương trình (bước công việc). Câu lệnh, chứa thông tin chương trình / thủ tục bước công việc làEXEC statement.
Mục đích của câu lệnh EXEC là cung cấp thông tin cần thiết cho chương trình / thủ tục được thực hiện trong bước công việc. Các tham số được mã hóa trong câu lệnh này có thể truyền dữ liệu cho chương trình đang thực thi, có thể ghi đè các tham số nhất định của câu lệnh JOB và có thể truyền tham số cho thủ tục nếu câu lệnh EXEC gọi một thủ tục thay vì trực tiếp thực thi một chương trình.
Cú pháp
Sau đây là cú pháp cơ bản của câu lệnh JCL EXEC:
//Step-name EXEC Positional-param, Keyword-param
Sự miêu tả
Hãy để chúng tôi xem mô tả của các thuật ngữ được sử dụng trong cú pháp câu lệnh EXEC ở trên.
BƯỚC-TÊN
Điều này xác định bước công việc trong JCL. Nó có thể có độ dài từ 1 đến 8 với các ký tự chữ và số.
THỰC HIỆN
Đây là từ khóa để xác định nó là một tuyên bố EXEC.
VỊ TRÍ-PARAM
Đây là các tham số vị trí, có thể có hai loại:
Tham số vị trí | Sự miêu tả |
---|---|
PGM | Điều này đề cập đến tên chương trình sẽ được thực thi trong bước công việc. |
PROC | Điều này đề cập đến tên thủ tục được thực hiện trong bước công việc. Chúng ta sẽ thảo luận về nó một chương riêng biệt. |
KEYWORD-PARAM
Sau đây là các tham số từ khóa khác nhau cho câu lệnh EXEC. Bạn có thể sử dụng một hoặc nhiều tham số dựa trên các yêu cầu và chúng được phân tách bằng dấu phẩy:
Tham số từ khóa | Sự miêu tả |
---|---|
PARM | Được sử dụng để cung cấp dữ liệu tham số hóa cho chương trình đang được thực hiện trong bước công việc. Đây là trường phụ thuộc vào chương trình và không có quy tắc xác định, ngoại trừ giá trị PARM phải được đưa vào trong dấu ngoặc kép trong trường hợp có các ký tự đặc biệt. Ví dụ được đưa ra bên dưới, giá trị "CUST1000" được chuyển dưới dạng giá trị chữ và số cho chương trình. Nếu chương trình ở trạng thái COBOL, giá trị được truyền qua tham số PARM trong JCL sẽ được nhận trong PHẦN LIÊN KẾT của chương trình. |
ADDRSPC | Điều này được sử dụng để chỉ định xem bước công việc yêu cầu bộ nhớ ảo hay thực để thực thi. Bộ nhớ ảo có thể phân trang trong khi bộ nhớ thực thì không và được đặt trong bộ nhớ chính để thực thi. Các bước công việc, yêu cầu thực hiện nhanh hơn có thể được đặt trong bộ nhớ thực. Sau đây là cú pháp: ADDRSPC=VIRT | REAL Khi ADDRSPC không được mã hóa, VIRT là mặc định. |
ACCT | Điều này xác định thông tin kế toán của bước công việc. Sau đây là cú pháp: ACCT=(userid) Điều này tương tự với tham số vị trí accounting informationtrong câu lệnh JOB. Nếu nó được mã hóa cả trong câu lệnh JOB và EXEC, thì thông tin kế toán trong câu lệnh JOB áp dụng cho tất cả các bước công việc mà tham số ACCT không được mã hóa. Tham số ACCT trong câu lệnh EXEC sẽ ghi đè tham số có trong câu lệnh JOB chỉ cho bước công việc đó. |
Các tham số từ khóa phổ biến của Tuyên bố EXEC và JOB
Tham số từ khóa | Sự miêu tả |
---|---|
ADDRSPC | ADDRSPC được mã hóa trong câu lệnh JOB sẽ ghi đè ADDRSPC được mã hóa trong câu lệnh EXEC của bất kỳ bước công việc nào. |
TIME | Nếu TIME được mã hóa trong một câu lệnh EXEC, thì nó chỉ áp dụng cho bước công việc đó. Nếu nó được chỉ định trong cả lệnh JOB và EXEC, thì cả hai sẽ có hiệu lực và có thể gây ra lỗi hết thời gian do một trong hai. Không nên sử dụng tham số TIME trong cả câu lệnh JOB và EXEC cùng nhau. |
REGION | Nếu REGION được mã hóa trong một tuyên bố EXEC, thì nó chỉ áp dụng cho bước công việc đó. REGION được mã hóa trong tuyên bố JOB sẽ ghi đè lên vùng được mã hóa trong tuyên bố EXEC của bất kỳ bước công việc nào. |
COND | Được sử dụng để kiểm soát việc thực hiện bước công việc dựa trên mã trả về của bước trước đó. Nếu tham số COND được mã hóa trong một câu lệnh EXEC của một bước công việc, thì tham số COND của câu lệnh JOB (nếu có) sẽ bị bỏ qua. Các thử nghiệm khác nhau có thể được thực hiện bằng tham số COND được giải thích trong Xử lý có điều kiện. |
Thí dụ
Sau đây là một ví dụ đơn giản về tập lệnh JCL cùng với các câu lệnh JOB và 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