Hi,
we are migrating Cobol-Programs from BS2000 to MF ServerExpress on Solaris.
 The MF Compiler throws this error message:  “COBOL word contains 31 characters.” 
The “BS2000-OFFLOAD”-Dialect is set for the compiler. If this parameter is not set, the error doesn’t occur.
The “BS2000-OFFLOAD”-Dialect includes a lot of other parameters (see below).
Which of these parameters controls the length of the COBOL-words?
 
BS2000-OFFLOAD DIALECT setting
If you set DIALECT"BS2000-OFFLOAD", the following Compiler directives are set:
 
ALIGN"8"
ALPHASTART"1"
ALTER
NOANS85
ARITHMETIC"MF"
ASSIGN"EXTERNAL"
BS2000-OFFLOAD
CALLFH
CALLSORT"EXTSM"
CANCELLBR
CHARSET"ASCII"
CHECKDIV"ANSI"
NOCOMS85
COMP5-BYTE-ORDER"NATIVE"
COPYEXT"cbl,CPY,"
NOCOPYLBR
CURRENT-DATE"MMDDYY"
NODBCHECK
NODBCS
NODBCSSOSI
NODBSPACE
DE-EDIT"2"
DEFAULTBYTE"00"
DPC-IN-SUBSCRIPT
NODG
DYNAM
ECHO
NOENTCOBOL
NOEXTINDEX
NOFDCLEAR
FLAG"BS2000"
FLAGAS"S"
FLAGCD"W"
NOFLAGMIG
NOFLAGSTD
FOLDCALLNAME"UPPER"
FOLDCOPYNAME"UPPER"
NOHOSTNUMCOMPARE
NOHOSTNUMMOVE
NOIBM-MS
INFORETURN"U"
INTLEVEL"4"
IOCONV
ISO2002
NOLIBRARIAN
NOMAPNAME
NOMF
NOMFCOMMENT
NOMS
ODOSLIDE
NOOLDCOPY
NOOLDINDEX
NOOLDNEXTSENTENCE
NOOLDREADINTO
NOOLDSTRSUB
NOOPTIONAL-FILE
NOPC1
PERFORM-TYPE"MF"
NOPROGID-COMMENT
NOPROTECT-LINKAGE
QUAL
QUALPROC
QUOTE
NORDW
RECMODE"F"
REMAINDER"1"
NORESEQ
NORM
RTNCODESIZE"4"
NOSEQCHK
SOURCEFORMAT"FIXED"
NOSPZERO
NOSTICKY-LINKAGE
NOSTICKY-PERFORM
SWITCH-TYPE"2"
SYMBSTART"1"
TRUNC
NOTRUNCCOPY
WARNING"3"
NOXOPEN
ZEROLENGTHFALSE
NOZEROSEQ
NOZWB
 
Regards,
Michel
It is the NOMF directive that is turning off the support for 31 character user defined data names as specified in the documentation:
"If MF"10" or lower is specified, data names are truncated to 30 characters, for compatibility with earlier versions"
If you add MF"10" or higher directive at the end it should solve this issue.
Thanks.
                
     
                                    
             
 Hi,
we are migrating Cobol-Programs from BS2000 to MF ServerExpress on Solaris.
 The MF Compiler throws this error message:  “COBOL word contains 31 characters.” 
The “BS2000-OFFLOAD”-Dialect is set for the compiler. If this parameter is not set, the error doesn’t occur.
The “BS2000-OFFLOAD”-Dialect includes a lot of other parameters (see below).
Which of these parameters controls the length of the COBOL-words?
 
BS2000-OFFLOAD DIALECT setting
If you set DIALECT"BS2000-OFFLOAD", the following Compiler directives are set:
 
ALIGN"8"
ALPHASTART"1"
ALTER
NOANS85
ARITHMETIC"MF"
ASSIGN"EXTERNAL"
BS2000-OFFLOAD
CALLFH
CALLSORT"EXTSM"
CANCELLBR
CHARSET"ASCII"
CHECKDIV"ANSI"
NOCOMS85
COMP5-BYTE-ORDER"NATIVE"
COPYEXT"cbl,CPY,"
NOCOPYLBR
CURRENT-DATE"MMDDYY"
NODBCHECK
NODBCS
NODBCSSOSI
NODBSPACE
DE-EDIT"2"
DEFAULTBYTE"00"
DPC-IN-SUBSCRIPT
NODG
DYNAM
ECHO
NOENTCOBOL
NOEXTINDEX
NOFDCLEAR
FLAG"BS2000"
FLAGAS"S"
FLAGCD"W"
NOFLAGMIG
NOFLAGSTD
FOLDCALLNAME"UPPER"
FOLDCOPYNAME"UPPER"
NOHOSTNUMCOMPARE
NOHOSTNUMMOVE
NOIBM-MS
INFORETURN"U"
INTLEVEL"4"
IOCONV
ISO2002
NOLIBRARIAN
NOMAPNAME
NOMF
NOMFCOMMENT
NOMS
ODOSLIDE
NOOLDCOPY
NOOLDINDEX
NOOLDNEXTSENTENCE
NOOLDREADINTO
NOOLDSTRSUB
NOOPTIONAL-FILE
NOPC1
PERFORM-TYPE"MF"
NOPROGID-COMMENT
NOPROTECT-LINKAGE
QUAL
QUALPROC
QUOTE
NORDW
RECMODE"F"
REMAINDER"1"
NORESEQ
NORM
RTNCODESIZE"4"
NOSEQCHK
SOURCEFORMAT"FIXED"
NOSPZERO
NOSTICKY-LINKAGE
NOSTICKY-PERFORM
SWITCH-TYPE"2"
SYMBSTART"1"
TRUNC
NOTRUNCCOPY
WARNING"3"
NOXOPEN
ZEROLENGTHFALSE
NOZEROSEQ
NOZWB
 
Regards,
Michel
Hi,
this are our cobol.dir parameters:
LIST()
DIALECT"BS2000-OFFLOAD"
DEFAULTBYTE"0"
ODOSLIDE
COMP-5"1"
COMP-6"2"
RTNCODE-SIZE"4"
ALIGN"8"
COBIDY
COPYEXT"cpy"
FOLD-COPY-NAME"LOWER"
NOFOLD-CALL-NAME
DIRECTIVES-IN-COMMENTS
XOPEN
ANS85
MF
SEQUENTIAL"LINE"
HIDE-MESSAGE"634"
COPYLIST
DATAMAP
FORM"56"
REFNO
SETTING"COL3"
XREF
WARNING "2"
I try the following variations of the MF-Parameter, but allways with
no positiv result:
MF"10"
   870       88   R5771-FKT-LESEN-CURSOR-LEVRL-OV     VALUE  14.
*1006-E***********************************************                 (   0)**
**    COBOL word contains more than 30 characters. Word truncated.
MF"11"
   870       88   R5771-FKT-LESEN-CURSOR-LEVRL-OV     VALUE  14.
* 774-S***********************************************                 (   0)**
**    COBOL word contains 31 characters.
MF"12"
   870       88   R5771-FKT-LESEN-CURSOR-LEVRL-OV     VALUE  14.
* 774-S***********************************************                 (   0)**
**    COBOL word contains 31 characters.
No MF-Parameter included (it was implicit set to NOMF in the DIALECT"BS2000-OFFLOAD")
   870       88   R5771-FKT-LESEN-CURSOR-LEVRL-OV     VALUE  14.
*1006-E***********************************************                 (   0)**
**    COBOL word contains more than 30 characters. Word truncated.
NOMF
   870       88   R5771-FKT-LESEN-CURSOR-LEVRL-OV     VALUE  14.
*1006-E***********************************************                 (   0)**
**    COBOL word contains more than 30 characters. Word truncated.
This works fine:
No DIALECT"BS2000-OFFLOAD" and MF in the cobol.dir 
No Message was displayed.
Regards,
Michel
                
     
                                    
             
 Hi,
we are migrating Cobol-Programs from BS2000 to MF ServerExpress on Solaris.
 The MF Compiler throws this error message:  “COBOL word contains 31 characters.” 
The “BS2000-OFFLOAD”-Dialect is set for the compiler. If this parameter is not set, the error doesn’t occur.
The “BS2000-OFFLOAD”-Dialect includes a lot of other parameters (see below).
Which of these parameters controls the length of the COBOL-words?
 
BS2000-OFFLOAD DIALECT setting
If you set DIALECT"BS2000-OFFLOAD", the following Compiler directives are set:
 
ALIGN"8"
ALPHASTART"1"
ALTER
NOANS85
ARITHMETIC"MF"
ASSIGN"EXTERNAL"
BS2000-OFFLOAD
CALLFH
CALLSORT"EXTSM"
CANCELLBR
CHARSET"ASCII"
CHECKDIV"ANSI"
NOCOMS85
COMP5-BYTE-ORDER"NATIVE"
COPYEXT"cbl,CPY,"
NOCOPYLBR
CURRENT-DATE"MMDDYY"
NODBCHECK
NODBCS
NODBCSSOSI
NODBSPACE
DE-EDIT"2"
DEFAULTBYTE"00"
DPC-IN-SUBSCRIPT
NODG
DYNAM
ECHO
NOENTCOBOL
NOEXTINDEX
NOFDCLEAR
FLAG"BS2000"
FLAGAS"S"
FLAGCD"W"
NOFLAGMIG
NOFLAGSTD
FOLDCALLNAME"UPPER"
FOLDCOPYNAME"UPPER"
NOHOSTNUMCOMPARE
NOHOSTNUMMOVE
NOIBM-MS
INFORETURN"U"
INTLEVEL"4"
IOCONV
ISO2002
NOLIBRARIAN
NOMAPNAME
NOMF
NOMFCOMMENT
NOMS
ODOSLIDE
NOOLDCOPY
NOOLDINDEX
NOOLDNEXTSENTENCE
NOOLDREADINTO
NOOLDSTRSUB
NOOPTIONAL-FILE
NOPC1
PERFORM-TYPE"MF"
NOPROGID-COMMENT
NOPROTECT-LINKAGE
QUAL
QUALPROC
QUOTE
NORDW
RECMODE"F"
REMAINDER"1"
NORESEQ
NORM
RTNCODESIZE"4"
NOSEQCHK
SOURCEFORMAT"FIXED"
NOSPZERO
NOSTICKY-LINKAGE
NOSTICKY-PERFORM
SWITCH-TYPE"2"
SYMBSTART"1"
TRUNC
NOTRUNCCOPY
WARNING"3"
NOXOPEN
ZEROLENGTHFALSE
NOZEROSEQ
NOZWB
 
Regards,
Michel
I spoke with Development about this and it seems like 31 character data names are only allowed when the DIALECT"MF" directive is used.
Since you cannot have two DIALECT directives set at once, turning on BS2000-OFFLOAD turns off MF and that is why you are seeing the error.
There is a new directive that can be set for this in the Visual COBOL product called IDENTIFIERLEN(31) but in Net Express and Server Express this is not supported.
I have a question.
Does the actuall compiler on the BS2000 have support > 30 character identifiers?
Thanks.
                
     
                                    
             
 Hi,
we are migrating Cobol-Programs from BS2000 to MF ServerExpress on Solaris.
 The MF Compiler throws this error message:  “COBOL word contains 31 characters.” 
The “BS2000-OFFLOAD”-Dialect is set for the compiler. If this parameter is not set, the error doesn’t occur.
The “BS2000-OFFLOAD”-Dialect includes a lot of other parameters (see below).
Which of these parameters controls the length of the COBOL-words?
 
BS2000-OFFLOAD DIALECT setting
If you set DIALECT"BS2000-OFFLOAD", the following Compiler directives are set:
 
ALIGN"8"
ALPHASTART"1"
ALTER
NOANS85
ARITHMETIC"MF"
ASSIGN"EXTERNAL"
BS2000-OFFLOAD
CALLFH
CALLSORT"EXTSM"
CANCELLBR
CHARSET"ASCII"
CHECKDIV"ANSI"
NOCOMS85
COMP5-BYTE-ORDER"NATIVE"
COPYEXT"cbl,CPY,"
NOCOPYLBR
CURRENT-DATE"MMDDYY"
NODBCHECK
NODBCS
NODBCSSOSI
NODBSPACE
DE-EDIT"2"
DEFAULTBYTE"00"
DPC-IN-SUBSCRIPT
NODG
DYNAM
ECHO
NOENTCOBOL
NOEXTINDEX
NOFDCLEAR
FLAG"BS2000"
FLAGAS"S"
FLAGCD"W"
NOFLAGMIG
NOFLAGSTD
FOLDCALLNAME"UPPER"
FOLDCOPYNAME"UPPER"
NOHOSTNUMCOMPARE
NOHOSTNUMMOVE
NOIBM-MS
INFORETURN"U"
INTLEVEL"4"
IOCONV
ISO2002
NOLIBRARIAN
NOMAPNAME
NOMF
NOMFCOMMENT
NOMS
ODOSLIDE
NOOLDCOPY
NOOLDINDEX
NOOLDNEXTSENTENCE
NOOLDREADINTO
NOOLDSTRSUB
NOOPTIONAL-FILE
NOPC1
PERFORM-TYPE"MF"
NOPROGID-COMMENT
NOPROTECT-LINKAGE
QUAL
QUALPROC
QUOTE
NORDW
RECMODE"F"
REMAINDER"1"
NORESEQ
NORM
RTNCODESIZE"4"
NOSEQCHK
SOURCEFORMAT"FIXED"
NOSPZERO
NOSTICKY-LINKAGE
NOSTICKY-PERFORM
SWITCH-TYPE"2"
SYMBSTART"1"
TRUNC
NOTRUNCCOPY
WARNING"3"
NOXOPEN
ZEROLENGTHFALSE
NOZEROSEQ
NOZWB
 
Regards,
Michel
Yes, the BS2000-compiler supports fieldnames up to 31 characters.
What is the purpose of the - DIALECT"BS2000-OFFLOAD" - parameter? To be able to convert UNIX-COBOL-Programs back to BS2000? 
                
     
                                    
             
 Hi,
we are migrating Cobol-Programs from BS2000 to MF ServerExpress on Solaris.
 The MF Compiler throws this error message:  “COBOL word contains 31 characters.” 
The “BS2000-OFFLOAD”-Dialect is set for the compiler. If this parameter is not set, the error doesn’t occur.
The “BS2000-OFFLOAD”-Dialect includes a lot of other parameters (see below).
Which of these parameters controls the length of the COBOL-words?
 
BS2000-OFFLOAD DIALECT setting
If you set DIALECT"BS2000-OFFLOAD", the following Compiler directives are set:
 
ALIGN"8"
ALPHASTART"1"
ALTER
NOANS85
ARITHMETIC"MF"
ASSIGN"EXTERNAL"
BS2000-OFFLOAD
CALLFH
CALLSORT"EXTSM"
CANCELLBR
CHARSET"ASCII"
CHECKDIV"ANSI"
NOCOMS85
COMP5-BYTE-ORDER"NATIVE"
COPYEXT"cbl,CPY,"
NOCOPYLBR
CURRENT-DATE"MMDDYY"
NODBCHECK
NODBCS
NODBCSSOSI
NODBSPACE
DE-EDIT"2"
DEFAULTBYTE"00"
DPC-IN-SUBSCRIPT
NODG
DYNAM
ECHO
NOENTCOBOL
NOEXTINDEX
NOFDCLEAR
FLAG"BS2000"
FLAGAS"S"
FLAGCD"W"
NOFLAGMIG
NOFLAGSTD
FOLDCALLNAME"UPPER"
FOLDCOPYNAME"UPPER"
NOHOSTNUMCOMPARE
NOHOSTNUMMOVE
NOIBM-MS
INFORETURN"U"
INTLEVEL"4"
IOCONV
ISO2002
NOLIBRARIAN
NOMAPNAME
NOMF
NOMFCOMMENT
NOMS
ODOSLIDE
NOOLDCOPY
NOOLDINDEX
NOOLDNEXTSENTENCE
NOOLDREADINTO
NOOLDSTRSUB
NOOPTIONAL-FILE
NOPC1
PERFORM-TYPE"MF"
NOPROGID-COMMENT
NOPROTECT-LINKAGE
QUAL
QUALPROC
QUOTE
NORDW
RECMODE"F"
REMAINDER"1"
NORESEQ
NORM
RTNCODESIZE"4"
NOSEQCHK
SOURCEFORMAT"FIXED"
NOSPZERO
NOSTICKY-LINKAGE
NOSTICKY-PERFORM
SWITCH-TYPE"2"
SYMBSTART"1"
TRUNC
NOTRUNCCOPY
WARNING"3"
NOXOPEN
ZEROLENGTHFALSE
NOZEROSEQ
NOZWB
 
Regards,
Michel
DIALECT directives would normally be used when your original source program was created for a particular systems compiler and you wish to maintain both source code and behavioral compatibility with that particular compiler when compiling and running on a different system like Windows or Unix.
DIALECT tells the compiler to turn on options that will most closely emulate the featues and behavior of the target system.
DIALECT"BS2000-OFFLOAD would be used if your originating source came from a BS2000 system and you wish to run it with the same behavior under Windows or Unix.
If the DIALECT"BS2000-OFFLOAD" directive is not correctly compiling programs that originated on the BS2000 then you should probably open up a support incident for this so that we can have development take a look at perhaos modifying this behavior.
Thanks.
                
     
                                    
             
 Hi,
we are migrating Cobol-Programs from BS2000 to MF ServerExpress on Solaris.
 The MF Compiler throws this error message:  “COBOL word contains 31 characters.” 
The “BS2000-OFFLOAD”-Dialect is set for the compiler. If this parameter is not set, the error doesn’t occur.
The “BS2000-OFFLOAD”-Dialect includes a lot of other parameters (see below).
Which of these parameters controls the length of the COBOL-words?
 
BS2000-OFFLOAD DIALECT setting
If you set DIALECT"BS2000-OFFLOAD", the following Compiler directives are set:
 
ALIGN"8"
ALPHASTART"1"
ALTER
NOANS85
ARITHMETIC"MF"
ASSIGN"EXTERNAL"
BS2000-OFFLOAD
CALLFH
CALLSORT"EXTSM"
CANCELLBR
CHARSET"ASCII"
CHECKDIV"ANSI"
NOCOMS85
COMP5-BYTE-ORDER"NATIVE"
COPYEXT"cbl,CPY,"
NOCOPYLBR
CURRENT-DATE"MMDDYY"
NODBCHECK
NODBCS
NODBCSSOSI
NODBSPACE
DE-EDIT"2"
DEFAULTBYTE"00"
DPC-IN-SUBSCRIPT
NODG
DYNAM
ECHO
NOENTCOBOL
NOEXTINDEX
NOFDCLEAR
FLAG"BS2000"
FLAGAS"S"
FLAGCD"W"
NOFLAGMIG
NOFLAGSTD
FOLDCALLNAME"UPPER"
FOLDCOPYNAME"UPPER"
NOHOSTNUMCOMPARE
NOHOSTNUMMOVE
NOIBM-MS
INFORETURN"U"
INTLEVEL"4"
IOCONV
ISO2002
NOLIBRARIAN
NOMAPNAME
NOMF
NOMFCOMMENT
NOMS
ODOSLIDE
NOOLDCOPY
NOOLDINDEX
NOOLDNEXTSENTENCE
NOOLDREADINTO
NOOLDSTRSUB
NOOPTIONAL-FILE
NOPC1
PERFORM-TYPE"MF"
NOPROGID-COMMENT
NOPROTECT-LINKAGE
QUAL
QUALPROC
QUOTE
NORDW
RECMODE"F"
REMAINDER"1"
NORESEQ
NORM
RTNCODESIZE"4"
NOSEQCHK
SOURCEFORMAT"FIXED"
NOSPZERO
NOSTICKY-LINKAGE
NOSTICKY-PERFORM
SWITCH-TYPE"2"
SYMBSTART"1"
TRUNC
NOTRUNCCOPY
WARNING"3"
NOXOPEN
ZEROLENGTHFALSE
NOZEROSEQ
NOZWB
 
Regards,
Michel
I created this incident: 2618286 for that.