COBOL program restrictions
When generating COBOL code using EGL there are some restrictions on what you can do.
If you are generating COBOL code, the following restrictions are in effect:
- COBOL program names have the following restrictions:
- For zSeries®, names are limited to 8 characters.
- For iSeries®, called program names are limited to 8 characters, main program names to 7 characters.
- For services, names are limited to 7 characters.
- Names can contain alphanumeric characters plus @, #, and $ only.
- A CICS® application can
only call a common batch application if the following conditions are
met:
- The batch application does not initiate file I/O;
- The batch application is called using the DYNAMIC and OSLINK linkage option settings;
- The called application must be generated for batch (not CICS®).
- Set-values blocks are supported only for setting property values in part definitions and variable declarations and for initializing field values in variable declarations.
- The validValues property supports only a single range of numbers.
- For both text and print forms:
- Do not include the following field types:
- HEX
- FLOAT
- SMALLFLOAT
- TIME
- TIMESTAMP
- If you are using a field as a date, you specify a date-format
string or constant in the dateFormat field
property, and these restrictions are in effect:
- If you specify the form field as type DATE, NUM(8) or NUM(10)
and intend to present a date in Gregorian format, you must specify
the field length as 10 and may use your own 8 or 10-character format
(either "yy/MM/dd" or "yyyy/MM/dd", with a separator
of your choice and with the years, months, and days in any order);
or any of the following date formats:
- usaDateFormat
- eurDateFormat
- isoDateFormat
- jisDateFormat
- systemGregorianDateFormat
- If you specify the form field as type NUM(8) and intend to present a date in Julian format, you must specify the field length as 8 and can use either the Julian format "yy/ddd" or "yyyy/ddd" (with a separator of your choice) or the date format systemJulianDateFormat
- If you specify the form field as type NUM(6) and intend to present a date in Julian format, you must specify the field length as 6 and can use either the Julian format "yy/ddd" (with a separator of your choice) or the date format systemJulianDateFormat
- If you specify the form field as type CHAR(8), you must specify
the field length as 8 and may use either the Gregorian format "yy/MM/dd"
(with a separator of your choice and with the years, months, and days
in any order) or either of the following date formats:
- systemGregorianDateFormat
- systemJulianDateFormat
- If you specify the form field as type CHAR(10), you must specify
the field length as 10 and may use your own 8 or 10-character format
(either "yy/MM/dd" or "yyyy/MM/dd", with a separator
of your choice and with the years, months, and days in any order);
or any of the following date formats:
- usaDateFormat
- eurDateFormat
- isoDateFormat
- jisDateFormat
- systemGregorianDateFormat
- systemJulianDateFormat
- If you specify the form field as type DATE, NUM(8) or NUM(10)
and intend to present a date in Gregorian format, you must specify
the field length as 10 and may use your own 8 or 10-character format
(either "yy/MM/dd" or "yyyy/MM/dd", with a separator
of your choice and with the years, months, and days in any order);
or any of the following date formats:
- Do not include the following field types:
- The following capabilities are not supported:
- ArrayDictionaries, Dictionaries, Delegates, report processing, and consoleUI
- The sysVar.currentException system variable; you cannot identify which exception was thrown most recently in the run unit, although use of the OnException block is supported
- Multidimensional arrays or the array-specific functions resizeAll and setMaxSizes. However, multidimensional structured field arrays are supported.
- The primitive types CLOB and BLOB (but literals and the substring syntax are supported)
- Conversion of text to SMALLFLOAT or FLOAT (but conversion of FLOAT or SMALLFLOAT to text is permitted)
- The following system functions are not supported:
- Functions in the system libraries consoleLib, javaLib, and lobLib
- The following functions in sysLib:
- callCmd
- errorLog
- getCmdLineArg
- getCmdLineArgCount
- getMessage
- getProperty
- setError
- setErrorForComponentID
- setLocale
- setRemoteUser
- startCmd
- startLog
- The type property in the callLink element of the linkage options part does not support the use of remoteCall on the iSeries® platform
Language Considerations
When you generate
COBOL on a Windows™ machine
running in the Turkish locale, no output is created. You can develop
EGL applications that run in Turkish by following these steps:
- Set your Windows™ locale to English.
- Set file encoding to Turkish by starting the Eclipse IDE with
the following VM arguments:
- VMArgs=-Dfile.encoding=Cp1254
- VMArgs=-Dibm.system.encoding=Cp1254