IEFC605I: Unidentified operation field
IEFC605I UNIDENTIFIED OPERATION FIELD means the converter couldn't tell what kind of JCL statement a line is, because the word where it expects JOB, EXEC, DD or another operation isn't one it knows. The job isn't run.
Other names for this code
Also written as IEFC605, UNIDENTIFIED OPERATION FIELD, IEFC605I UNIDENTIFIED OPERATION FIELD, JCL unidentified operation field, IEFC605I JCL error.
What it means
Every JCL statement has the same layout. It starts with // in columns 1 and 2. Then comes an optional name, then the operation, then the parameters, each separated by at least one blank. The operation says what the statement is, such as JOB, EXEC, DD, PROC, PEND, SET, JCLLIB, INCLUDE, IF, ELSE or ENDIF. When the word in the operation position isn't one the converter knows, it writes IEFC605I against that statement number and stops the job with IEFC452I JOB NOT RUN - JCL ERROR.
A typing mistake, such as EXCE for EXEC, is the obvious case. The more common one is a continuation line that the converter didn't accept as a continuation. A continuation line has // in columns 1 and 2, a blank in column 3, and its text starting somewhere in columns 4 to 16. If the line before it doesn't end with a comma, or the text starts after column 16, the converter reads the line as a new statement. That statement has no name, so the first word on the line, such as DISP=SHR, lands in the operation position, and IEFC605I follows.
That's why IEFC605I often comes as a pair with IEFC621I EXPECTED CONTINUATION NOT RECEIVED. The first statement ended with a comma and waited for more. The next line started too far to the right, so it didn't count as a continuation, and the converter found no valid operation on it.
Nothing runs when this happens. The converter checks the whole job before any step starts.
Common causes
- The line before ends without a comma, so the next parameter line is read as a new statement.
- A continuation line starts after column 16. IEFC621I usually appears for the statement before it.
- A misspelled operation, such as EXCE, DDD or JOBB.
- Generated JCL with a damaged statement, for example a tool that writes a DD statement with the wrong layout.
- A statement copied from another system or document with the text shifted, so the operation no longer sits where the converter expects it.
How to find the problem
- Open the job in SDSF and look at JESYSMSG. The statement number is to the left of IEFC605I.
- Open JESJCL and find that number. Look at the statement and at the one before it. If the one before has IEFC621I, the problem is the continuation between them.
- Check the columns. In ISPF edit, the COLS line command shows a ruler, so you can see whether the continuation text starts between columns 4 and 16.
- If the statement comes from a cataloged procedure, JESJCL shows it with XX in columns 1 and 2 instead of //. Fix it in the procedure library, not in the job.
How to fix it
- Add the missing comma after the last complete parameter on the previous line.
- Move the continuation text left so it starts in columns 4 to 16. Many shops start every continuation in column 16 to keep parameters lined up.
- Correct the spelling of the operation.
- For JCL generated by a product, check whether the vendor has a fix. IBM has fixed this kind of error in generated jobs with PTFs.
- Resubmit the job. Nothing ran, so there are no data sets to clean up and no restart step to choose.
What it looks like
STMT NO. MESSAGE
5 IEFC621I EXPECTED CONTINUATION NOT RECEIVED
6 IEFC605I UNIDENTIFIED OPERATION FIELDIBM documentation
IBM documentation: IEFC605I. Use the documentation for your installed release.
Related codes
Questions
Why does IEFC605I point at a line that looks fine?
The problem is usually on the line before it. A missing comma or a continuation in the wrong column makes the converter read a correct-looking line as a new statement.
What is the operation field in JCL?
It's the word after the name that says what the statement is, such as JOB, EXEC or DD. It must be separated from the name and from the parameters by at least one blank.
Did any part of the job run?
No. The converter stops the job before the first step, so fix the JCL and resubmit the whole job.