Skip to main content

File status 9/004 "Illegal file name" on OPENs after migrating from Net Express to Enterprise Developer for Eclipse

  • April 26, 2016
  • 0 replies
  • 0 views

Problem:

An application ran without error under Net Express v5.1, but after the application was migrated to Enterprise Developer for Eclipse, file OPENs failed with file status 9/004 "Illegal file name".

Resolution:

The application relied on DD_ environment variables for filename mapping.  Under Enterprise Developer, filename mapping was not working even though the DD_ environment variables were set correctly in Eclipse.

To debug the problem, we specified the compiler directive SETTINGS"COL" on both Net Express and Enterprise Developer, and specified that a compiler listing (.lst) should be generated in both cases, then re-compiled a typical COBOL application program on both.   Doing so causes the disposition of all the compiler directives to be revealed in the .lst files.  Then we performed a side-by-side comparison of the .lst files looking for differences in the compiler directives.

We discovered that under Enterprise Developer, ASSIGN"DYNAMIC" was set, whereas under Net Express, ASSIGN"EXTERNAL" had been set.

We added ASSIGN"EXTERNAL" to the Eclipse build settings, then recompiled.  This solved the problem.  To use filename mapping with DD_ environment variables, if neither EXTERNAL nor DYNAMIC appear in the SELECT statement in the source code, the code must be compiled with the compiler directive ASSIGN"EXTERNAL".

The technique of using SETTINGS"COL", producing .lst files, and comparing them side-by-side is useful in discovering other discrepancies in compiler directives when migrating from one version of Micro Focus to another.

(original support incident 2836507).


#MFDS
#EnterpriseDeveloper

0 replies

Be the first to reply!