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