Cumulative Changes from
Net Express to Micro
Focus Visual COBOL for
Visual Studio 8.0
Micro Focus
The Lawn
22-30 Old Bath Road
Newbury, Berkshire RG14 1QN
UK
http://www.microfocus.com
©
Copyright 2022 Micro Focus or one of its affiliates.
MICRO FOCUS, the Micro Focus logo and Visual COBOL are trademarks or registered
trademarks of Micro Focus or one of its affiliates.
All other marks are the property of their respective owners.
2022-07-19
ii
Contents
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
............................................................................................................................. 5
About this Guide ..................................................................................................................5
Changes to Compiler Directives, Run-Time Tunables, Library Routines and Environment Variables
............................................................................................................................................ 5
Changes in Alphabetical Order ................................................................................ 5
Changes in Order of Release .................................................................................10
What was New .................................................................................................................. 15
What was New in Visual COBOL 8.0 ..................................................................... 15
What was New in Visual COBOL 7.0 ..................................................................... 19
What was New in Visual COBOL 6.0 ..................................................................... 26
Features Added in Visual COBOL 5.0 ....................................................................32
What was New in Visual COBOL 4.0 ..................................................................... 38
What was New in Visual COBOL 3.0 ..................................................................... 44
What was New in Visual COBOL 2.3 Update 2 ......................................................50
What was New in Visual COBOL 2.3 Update 1 ......................................................51
What was New in Visual COBOL 2.3 ..................................................................... 55
What was New in Visual COBOL 2.2 Update 2 ......................................................62
What was New in Visual COBOL 2.2 Update 1 ......................................................64
What was New in Visual COBOL 2.2 ..................................................................... 68
What was New in Visual COBOL 2.1 Update 1 ......................................................74
What was New in Visual COBOL 2.1 ..................................................................... 75
What was New in Visual COBOL 2.0 ..................................................................... 77
What was New in Visual COBOL 2010 .................................................................. 81
Significant Changes .......................................................................................................... 85
Significant Changes in Visual COBOL 8.0 ............................................................. 85
Significant Changes in Visual COBOL 7.0 ............................................................. 90
Significant Changes in Visual COBOL 6.0 ............................................................. 94
Significant Changes in Visual COBOL 5.0 ............................................................. 98
Significant Changes in Visual COBOL 4.0 ........................................................... 101
Significant Changes in Visual COBOL 3.0 ........................................................... 105
Significant Changes in Visual COBOL 2.3 Update 2 ............................................107
Significant Changes in Visual COBOL 2.3 Update 1 ............................................108
Significant Changes in Visual COBOL 2.3 ........................................................... 110
Significant Changes in Visual COBOL 2.2 Update 2 ............................................112
Significant Changes in Visual COBOL 2.2 Update 1 ............................................113
Significant Changes in Visual COBOL 2.2 ........................................................... 113
Significant Changes in Visual COBOL 2.1 Update 1 ............................................117
Significant Changes in Visual COBOL 2.1 ........................................................... 118
Significant Changes in Visual COBOL 2.0 ........................................................... 119
Unsupported or Deprecated Functionality ...................................................................... 120
Unsupported or Deprecated at Visual COBOL 8.0 .............................................. 120
Unsupported or Deprecated at Visual COBOL 7.0 .............................................. 121
Unsupported or Deprecated at Visual COBOL 6.0 .............................................. 121
Unsupported or Deprecated at Visual COBOL 5.0 .............................................. 121
Unsupported or Deprecated at Visual COBOL 4.0 .............................................. 121
Unsupported or Deprecated at Visual COBOL 3.0 .............................................. 121
Unsupported or Deprecated at Visual COBOL 2.3 Update 2 ...............................122
Unsupported or Deprecated at Visual COBOL 2.3 Update 1 ...............................122
Unsupported or Deprecated at Visual COBOL 2010 ........................................... 122
Known Errors and Restrictions ........................................................................................123
Contents | 3
Upgrading from Net Express to Visual COBOL .............................................................. 124
An introduction to the process of upgrading your COBOL applications ............... 124
Compile at the Command Line Using Existing Build Scripts ................................125
Debugging Without a Project ................................................................................127
Create a project and import source ......................................................................127
Using Visual COBOL for Visual Studio .................................................................129
Change the Defaults to Replicate Your Existing Project Structure ....................... 131
Best Practice in Visual COBOL Development ......................................................132
Modernize Your Applications and Processes ....................................................... 133
Procedural COBOL Compared with .NET COBOL ......................................................... 134
4 | Contents
Cumulative Changes from Net Express to
Visual COBOL for Visual Studio
Welcome to Visual COBOL for Visual Studio. This document combines information on Visual COBOL for
Visual Studio releases from the first release, Visual COBOL 2010 R1, to the most recent release. This
information is taken from the various releases' Release Notes and other sources, and brought together
here for your convenience.
You can use this document:
If your Visual COBOL installation is up to date, to see the changes made in the latest release.
If you already use Visual COBOL but your installation is not entirely up to date, to see the changes
made over several updates, together in one place.
If you are migrating from Net Express, to see everything that has changed in the life of Visual COBOL
for Visual Studio.
About this Guide
We recommend that you read all the sections of this publication, looking for information on the release that
is most relevant to your needs. The main sections are as follows:
What was New
This section describes new functionality that was introduced in each
successive release.
Significant Changes
This section describes, for each successive release, the changes in
behavior or usage that could affect the behavior of existing applications or
impact the way the tools are used.
Unsupported or Deprecated
Functionality
This section describes any functionality that was discontinued or
deprecated at a given release.
Known Errors and
Restrictions
This section describes known errors affecting the latest release, and
restrictions in its use.
Upgrading from Net Express
to Visual COBOL
This section gives guidance on upgrading from earlier Micro Focus
products.
Within each section, we recommend reading in the reverse chronological order in which it is presented
here - that is, reading about the most recent release first, and then going back through the development of
the products. That way, you can more easily see if anything was added in an earlier release and
subsequently removed.
Changes to Compiler Directives, Run-Time Tunables,
Library Routines and Environment Variables
This section provides an index of items added, deprecated and changes since the first version of Visual
COBOL. The changes are presented in a number of tables according to the type of feature involved. The
first set of tables lists changes in alphabetical order. A second section lists changes in order of release.
Changes in Alphabetical Order
The changes are presented in the following tables:
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 5
Compiler Directives
Run-Time Tunables
Library Routines
Environment Variables
For each change, the table lists:
The name of feature that changed,
The type of change,
The version of Visual COBOL in which the change was introduced,
A link to more information.
Table 1: Changes to Compiler Directives
Name
Change At Product
Version
See
01SHUFFLE
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
64KPARA
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
64KSPECT
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
ACU-UNDERSCORE
New 2.2 What was new in 2.2
ANIM
Changed
default
5.0 Significant changes in 5.0
AUXOPT
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
CHANGE-MESSAGE
Changed
scope
2.2 What was new in 2.2
CHECKDIV
New
parameter
4.0 What was new in 4.0
CHECKREFMOD
New
parameter
6.0 What was new in 6.0
CHIP
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
COMMAND-LINE-LINKAGE
New 2.3 Update 2 What was new at 2.3 Update 2
COMP1
New 2.1 What was new in 2.1
COMP2
New 2.1 What was new in 2.1
CONVERTRET
Deprecated 3.0 Unsupported or Deprecated at 3.0
DIALECT"RM"
Changed
effect
2.2 What was new in 2.2
DISPLAY
New 2.1 What was new in 2.1
DISPLAY-AT
New 6.0 What was new in 6.0
DISPLAY-PICU
New 8.0 What was new in 8.0
DISPSIGN
New 4.0 What was new in 4.0
6 | Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Name Change At Product
Version
See
DATALIT
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
DATAMAP
New
parameter
2.1 What was new in 2.1
DBSPACE
New
parameter
2.3 What was new in 2.3
DPC-IN-DATA
New 6.0 What was new in 6.0
EANIM
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
EBC-COL-SEQ
New 2.3 Update 2 What was new at 2.3 Update 2
EDITOR
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
ENSUITE
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
EOF-1A
New 2.3 What was new in 2.3
EXECSQL-FLAG
New 7.0 What was new in 7.0
EXITPROGRAM
New 2.2 What was new in 2.2
EXPANDDATA
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
FIXING
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
FLAG-CHIP
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
GNTLITLINKSTD
New 4.0 What was new in 4.0
HIDE-MESSAGE
Changed
scope
2.2 What was new in 2.2
HOSTSIGNS
Unsupported 3.0 Unsupported or Deprecated at 3.0
IDXFORMAT8
New option Visual COBOL
Base release
IDXFORMAT12
New option 2.3 Update 1
ILCONDITIONPARAM
New 6.0 What was new in 6.0
ILEXPONENTIATION
New 2.2 What was new in 2.2
IDYSRCPATH
Deprecated 3.0 Unsupported or Deprecated at 3.0
ILCLR"2"
Deprecated 7.0 What was new in 7.0
ILLOADSTRING
New 8.0
ILMAIN
New 2.3 Update 1 What was new in 2.3 Update 1
ILNORMALIZENAMES
New 5.0 What was new in 5.0
ILOBJECTIFY
Deprecated 3.0 Unsupported or Deprecated at 3.0
ILPARAMS
New 2.2 Update 1 What was new in 2.2 Update 1
Cumulative Changes from Net Express to Visual COBOL for Visual Studio | 7
Name Change At Product
Version
See
ILSHOWPERFORMOVERLAP
New 2.2 What was new in 2.2
ILSMARTANNOTATE
New 2.1 What was new in 2.1
ILSMARTRESTRICT
New 2.1 What was new in 2.1
ILSMARTTRIM
New 4.0 What was new in 4.0
INIT-BY-TYPE
New 2.2 Update 1 What was new in 2.2 Update 1
MAINFRAME-FLOATING-POINT
New 4.0 What was new in 4.0
MASM
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
MODEL
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
NATIONAL
New 2.3 Update 2 What was new at 2.3 Update 2
NLS-CURRENCY-LENGTH
New 2.3 What was new in 2.3
NULL-ESCAPE
New 2.3 What was new in 2.3
NUMPROC
New
parameter
4.0 What was new in 4.0
OOCTRL
New 2.3 Update 1 What was new in 2.3 Update 1
OOCTRL
New
parameter
4.0 What was new in 4.0
OPTIMIZECURSORS
New 3.0 Significant changes in 3.0
OPTION
Deprecated 3.0 Unsupported or Deprecated at 3.0
OPTSIZE
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
OPTSPEED
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
PANVALET-INCLUDES-IN-COMMENTS
New 7.0 What's new in 7.0
PARAS
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
PRESERVECASE
Changed
scope
2.2 What was new in 2.2
PROTMODE
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
PROTOTYPE
New
parameter
6.0 What was new in 6.0
REGPARM
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
RESTRICT-GOTO
New 2.1 What was new in 2.1
RM-FILE-ERRORS
New 7.0 What's new in 7.0
SEGCROSS
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
8 | Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Name Change At Product
Version
See
SEGSIZE
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
SIGNCOMPARE
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
SMALLDD
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
SPZERO
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
TABLESEGCROSS
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
TRICKLE
Deprecated 3.0 Unsupported or Deprecated at 3.0
TRICKLECHECK
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
WB2
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
WB3
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
WB
Deprecated Visual COBOL
Base release
Unsupported or Deprecated at
2010
Table 2: Changes to Run-time Tunables
Name
Change At Product
Version
See
command_line_linkage
Deprecated 2.3 Update 2 Unsupported or Deprecated at 2.3
Update 2
default_cancel_mode
New default
value
New parameter
2.3 What was new in 2.3 - Tunables
printer_raw_redirection
New 2.0 What was new in 2.0 - Run-time
Tunables
reduce_java_signals
New 2.2 Update 2 Significant changes in 2.2 Update
2
subsystem_cancel_mode
New 2.0 What was new in 2.0 - Run-time
Tunables
New parameter 2.3 What was new in 2.3 - Tunables
Table 3: Changes to Library Routines
Name
Change At Product
Version
See
CBL_CREATE_CORE
New 5.0 What was new in 5.0
CBL_CODESET_SET_MAPPING
New 2.3 Update 1 What was new in 2.3 Update 1
Cumulative Changes from Net Express to Visual COBOL for Visual Studio | 9
Name Change At Product
Version
See
CBL_GET_DEBUG_START
New 4.0 What was new in 4,0
CBL_GET_DEBUG_STOP
New 4.0 What was new in 4,0
CBL_GET_ERROR_INFO
New 7.0 What's new in 7.0
CBL_GET_EXIT_INFO
Enhanced 6.0 What was new in 6.0
CBL_GET_OS_INFO
New 4.0 What was new in 4,0
CBL_LOCATE_FILE
New parameter 2.3 What was new in 2.3
CBL_MANAGED_SESSION_GET_USERD
ATA
New 2.3 What was new in 2.3
CBL_MANAGED_SESSION_SET_USERDA
TA
New 2.3 What was new in 2.3
CBL_RUNTIME_ERROR
New 2.3 Update 1 What was new in 2.3 Update 1
CBL_SEMAPHORE_ACQUIRE
New parameter 2.0 What was new in 2.0
CBL_CREATE_CORE
New 5.0 What was new in 5.0
MFU_GET_FILE
New 6.0 What was new in 6.0
MFUGETF
New 6.0 What was new in 6.0
PC_PRINTER_SET_FONT
Enhanced 8.0
PC_PRINTER_INFO_DOTNET
New 2.3 Update 1 What was new in 2.3 Update 1
Table 4: Changes to Environment Variables
Name
Change At Product
Version
See
ES_CAT_RETRY_COUNT
New 4.0 Configuring Multiple Catalogs
ES_CAT_RETRY_WAIT
New 4.0 Configuring Multiple Catalogs
ES_RDO_MAX_RESOURCES
New 7.0 What's new in 7.0
FSWRKDIR
New 3.0 What was new in 3.0
FSCHKLFH
New 3.0 What was new in 3.0
HCOBND
Deprecated 3.0 Unsupported or Deprecated at 3.0
MFALLOC_PCFILE
Default value changes 2.2 Update 2 Significant changes in 2.2 Update 2
Changes in Order of Release
The changes are presented in the following tables:
Compiler Directives
Run-Time Tunables
Library Routines
Environment Variables
For each change, the table lists:
The version of Visual COBOL in which the change was introduced, starting with the earliest,
10
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
The name of feature that changed,
The type of change,
A link to more information.
Table 5: Changes to Compiler Directives
At Product
Version
Name Change See
Visual COBOL
Base release
01SHUFFLE
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
64KPARA
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
64KSPECT
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
AUXOPT
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
CHIP
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
DATALIT
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
EANIM
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
EDITOR
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
ENSUITE
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
EXPANDDATA
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
FIXING
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
FLAG-CHIP
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
IDXFORMAT8
New option
Visual COBOL
Base release
MASM
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
MODEL
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
OPTSIZE
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
OPTSPEED
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
PARAS
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
PROTMODE
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
REGPARM
Deprecated Unsupported or Deprecated at
2010
Cumulative Changes from Net Express to Visual COBOL for Visual Studio | 11
At Product
Version
Name Change See
Visual COBOL
Base release
SEGCROSS
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
SEGSIZE
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
SIGNCOMPARE
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
SMALLDD
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
SPZERO
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
TABLESEGCROSS
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
TRICKLECHECK
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
WB2
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
WB3
Deprecated Unsupported or Deprecated at
2010
Visual COBOL
Base release
WB
Deprecated Unsupported or Deprecated at
2010
2.1
COMP1
New What was new in 2.1
2.1
COMP2
New What was new in 2.1
2.1
DISPLAY
New What was new in 2.1
2.1
DATAMAP
New
parameter
What was new in 2.1
2.1
ILSMARTANNOTATE
New What was new in 2.1
2.1
ILSMARTRESTRICT
New What was new in 2.1
2.1
RESTRICT-GOTO
New What was new in 2.1
2.2
ACU-UNDERSCORE
New What was new in 2.2
2.2
CHANGE-MESSAGE
Changed
scope
What was new in 2.2
2.2
DIALECT"RM"
Changed
effect
What was new in 2.2
2.2
EXITPROGRAM
New What was new in 2.2
2.2
HIDE-MESSAGE
Changed
scope
What was new in 2.2
2.2
ILEXPONENTIATION
New What was new in 2.2
2.2
ILSHOWPERFORMOVERLAP
New What was new in 2.2
2.2
PRESERVECASE
Changed
scope
What was new in 2.2
2.2 Update 1
ILPARAMS
New What was new in 2.2 Update 1
2.2 Update 1
INIT-BY-TYPE
New What was new in 2.2 Update 1
2.3
DBSPACE
New
parameter
What was new in 2.3
12 | Cumulative Changes from Net Express to Visual COBOL for Visual Studio
At Product
Version
Name Change See
2.3
EOF-1A
New What was new in 2.3
2.3
NLS-CURRENCY-LENGTH
New What was new in 2.3
2.3
NULL-ESCAPE
New What was new in 2.3
2.3 Update 1
IDXFORMAT12
New option
2.3 Update 1
ILMAIN
New What was new in 2.3 Update 1
2.3 Update 1
OOCTRL
New What was new in 2.3 Update 1
2.3 Update 2
EBC-COL-SEQ
New What was new at 2.3 Update 2
2.3 Update 2
COMMAND-LINE-LINKAGE
New What was new at 2.3 Update 2
2.3 Update 2
NATIONAL
New What was new at 2.3 Update 2
3.0
CONVERTRET
Deprecated Unsupported or Deprecated at 3.0
3.0
HOSTSIGNS
Unsupported Unsupported or Deprecated at 3.0
3.0
IDYSRCPATH
Deprecated Unsupported or Deprecated at 3.0
3.0
ILOBJECTIFY
Deprecated Unsupported or Deprecated at 3.0
3.0
OPTIMIZECURSORS
New Significant changes in 3.0
3.0
OPTION
Deprecated Unsupported or Deprecated at 3.0
3.0
TRICKLE
Deprecated Unsupported or Deprecated at 3.0
4.0
CHECKDIV
New
parameter
What was new in 4.0
4.0
DISPSIGN
New What was new in 4.0
4.0
GNTLITLINKSTD
New What was new in 4.0
4.0
ILSMARTTRIM
New What was new in 4.0
4.0
MAINFRAME-FLOATING-POINT
New What was new in 4.0
4.0
NUMPROC
New
parameter
What was new in 4.0
4.0
OOCTRL
New
parameter
What was new in 4.0
5.0
ILNORMALIZENAMES
New What was new in 5.0
5.0
ANIM
Changed
default
Significant changes in 5.0
6.0
DISPLAY-AT
New What was new in 6.0
6.0
DPC-IN-DATA
New What was new in 6.0
6.0
ILCONDITIONPARAM
New What was new in 6.0
6.0
CHECKREFMOD
New
parameter
What was new in 6.0
6.0
PROTOTYPE
New
parameter
What was new in 6.0
7.0
EXECSQL-FLAG
New What's new in 7.0
7.0
ILCLR"2"
Deprecated What's new in 7.0
7.0
PANVALET-INCLUDES-IN-COMMENTS
New What's new in 7.0
7.0
RM-FILE-ERRORS
New What's new in 7.0
Cumulative Changes from Net Express to Visual COBOL for Visual Studio | 13
At Product
Version
Name Change See
8.0
DISPLAY-PICU
New What was new in 8.0
8.0
ILLOADSTRING
New
Table 6: Changes to Run-time Tunables
At Product
Version
Name Change See
2.0
subsystem_cancel_mode
New What was new in 2.0 - Run-time
Tunables
2.2 Update 2
reduce_java_signals
New Significant changes in 2.2 Update
2
2.3
default_cancel_mode
New default
value
New parameter
What was new in 2.3 - Tunables
2.3
subsystem_cancel_mode
New parameter What was new in 2.3 - Tunables
2.3 Update 2
command_line_linkage
Deprecated Unsupported or Deprecated at 2.3
Update 2
Table 7: Changes to Library Routines
At Product
Version
Name Change See
2.0
CBL_SEMAPHORE_ACQUIRE
New parameter What was new in 2.0
2.3
CBL_LOCATE_FILE
New parameter What was new in 2.3
2.3
CBL_MANAGED_SESSION_GET_USERDA
TA
New What was new in 2.3
2.3
CBL_MANAGED_SESSION_SET_USERDA
TA
New What was new in 2.3
2.3 Update 1
CBL_CODESET_SET_MAPPING
New What was new in 2.3 Update 1
2.3 Update 1
CBL_RUNTIME_ERROR
New What was new in 2.3 Update 1
2.3 Update 1
PC_PRINTER_INFO_DOTNET
New What was new in 2.3 Update 1
4.0
CBL_GET_DEBUG_START
New What was new in 4,0
4.0
CBL_GET_DEBUG_STOP
New What was new in 4,0
4.0
CBL_GET_OS_INFO
New What was new in 4,0
5.0
CBL_CREATE_CORE
New What was new in 5.0
6.0
CBL_GET_EXIT_INFO
Enhanced What was new in 6.0
6.0
MFU_GET_FILE
New What was new in 6.0
6.0
MFUGETF
New What was new in 6.0
7.0
CBL_GET_ERROR_INFO
New What was new in 7.0
8.0
PC_PRINTER_SET_FONT
Enhanced
14 | Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Table 8: Changes to Environment Variables
At Product
Version
Name Change See
2.2 Update 2
MFALLOC_PCFILE
Default value changes Significant changes in 2.2 Update 2
3.0
FSWRKDIR
New What was new in 3.0
3.0
FSCHKLFH
New What was new in 3.0
3.0
HCOBND
Deprecated Unsupported or Deprecated at 3.0
4.0
ES_CAT_RETRY_COUNT
New Configuring Multiple Catalogs
4.0
ES_CAT_RETRY_WAIT
New Configuring Multiple Catalogs
7.0
ES_RDO_MAX_RESOURCES
New What was new in 7.0
What was New
This section describes the new features that were introduced in each successive release of Visual COBOL.
What was New in Visual COBOL 8.0
New Features in Visual COBOL 8.0
Enhancements are available in the following areas:
Micro Focus COBOL Extension for Visual Studio Code
.NET 6 Support
COBOL Language Enhancements
Code Analysis
Compiler Directives
Data File Tools
Debugging
Enterprise Server
Enterprise Server Common Web Administration
Enterprise Server Security
Micro Focus Unit Testing Framework
Open ESQL
Visual Studio Integration
Micro Focus COBOL Extension for Visual Studio Code
Back to Top
The Micro Focus COBOL extension for Visual Studio Code provides the following enhancements:
The use of the Micro Focus COBOL extension with Visual COBOL 8.0 installed on the same machine
enables COBOL Language Server support. This offers a rich COBOL editor experience inside Visual
Studio Code including IntelliSense, Peek Definition, and Rename.
Note:
The Micro Focus COBOL extension is available from the Microsoft Visual Studio Marketplace -
click here.
.NET 6 Support
Back to Top
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 15
This release provides the following enhancement:
You can create, build and run COBOL projects targeting .NET 6 in Visual Studio 2022. In all other
supported environments, you can use the .NET 6 SDK or Visual Studio code to build .NET 6 COBOL
projects.
Support for .NET Core 3.1 has been discontinued.
COBOL Language
Back to Top
The following enhancements have been made to the Micro Focus COBOL language:
Further support for IBM Enterprise COBOL 6.3:
JSON PARSE and JSON GENERATE statements - for JSON GENERATE, anonymous objects can
be generated using the OMITTED key word; the SUPPRESS phrase has been enhanced; the
CONVERTING phrase is supported. For JSON PARSE, anonymous objects can be parsed using the
OMITTED key word; the CONVERTING phrase is supported.
Intrinsic functions - the following list of functions is now supported: COMBINED-DATETIME,
FORMATTED-CURRENT-DATE, FORMATTED-DATE, FORMATTED-DATETIME, FORMATTED-
TIME, INTEGER-OF-FORMATTED-DATE, SECONDS-PAST-MIDNIGHT, SECONDS-FROM-
FORMATTED-DATE, TEST-FORMATTED-DATETIME, and UUID4.
The AMODE Compiler directive has been enhanced to allow COBOL programs full access to the 64-
bit address space (AMODE"64"). This emulates the LP"64" option in Enterprise COBOL.
The DYNAMIC LENGTH clause, introduced in the last product release, is now supported in .NET
COBOL (as well native COBOL).
.NET COBOL enhancements:
When no explicit type is declared for a variable, but the value is a non-integer numeric (for example
declare var1 = 1.23), it is assumed to be of type float-long.
The NAME OF expression has been introduced. It returns the unqualified name of the type or
member specified.
Code Analysis
Back to Top
The Application Analysis Server enables you to access either Micro Focus Enterprise Analyzer or COBOL
Analyzer from the IDE. This release includes the following enhancements to this feature:
A generate code search report and a single code search reports are available.
An improved Get Direct References report.
Enhancements to the Analysis Services include:
An enhanced Program Flow Graph
Support for displaying the Data Flow analysis as a Graph.
Enhancements in the Rule-Based analysis include:
The Micro Focus Code Analysis project's properties page, and the Micro Focus Code Analysis
Manager dialog box now support subfolders in the rulesets.
Compiler Directives
Back to Top
The following Compiler directive is new in this release:
DISPLAY-PICU - defines the way PIC U data items are displayed: either as ANSI or UTF-8.
16
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
The following Compiler directive has been enhanced in this release:
AMODE - a new parameter "64" stores pointers in 64-bit format - see COBOL Language Enhancements
for more details.
Data File Tools
Back to Top
The following enhancement has been made to the Data File Tools:
The Data File Editor now supports opening and editing KSDS VSAM files stored in an MFDBFH
datastore.
Debugging Applications
Back to Top
This release includes the following enhancement:
Locals window support for native COBOL - during debugging, the Locals window now displays the
names of the variables available on the current statement.
Enterprise Server
Back to Top
This release provides enhancements in the following areas:
EZ Sockets now supports up to 4096 sockets on Linux, up from 1024, and enhanced tracing.
EZ Sockets applications, including ones that use the CICS listener CSKL (EZACIC02), can have
more simultaneous connections.
EZ Sockets tracing now has options for logging the recent history only when any error or one of a set
of particular errors occurs. This makes it easier to use tracing to diagnose EZ Sockets issues.
Enterprise Server dataset management - dataset maximum retention period with the ability to alter and
create reports:
ES_JES_ENFORCE_EXPIRE_DATE - helps determine whether or not to check the expiration date
when deleting a catalogued dataset, and if expired, delete the dataset. If it hasn't expired and the
PURGE option has not been specified, the dataset is not removed. The PURGE keyword is required
to delete non-expired datasets. PURGE removes the underlying physical dataset file unless it is
referenced by another catalog entry. SMS MANAGEMENTCLASS now supports maximum RETAIN
days. See Using SMS MGMT Classes and the %SMS example command in the same topic.
ES_JES_LISTCAT_YMD - helps determine the date format used in the HISTORY report generated
when the IDCAMS LISTCAT command specifies the ALL option.
The EXPDT entry in a DD statement must be a four-digit year (YYYY); otherwise 1900 is the default,
which is in-line with the mainframe processing, and prevents unexpired datasets from being
erroneously removed (as was the case with the previous default of 2000). The ALTER command now
takes the TO and FOR options to enable specification of the retention period for the entry being
altered. The maximum retention period might be limited by the management class. The IDCAMS
LISTCAT command ALL parameter now generates a separate HISTORY report that shows the
creation date time and job, the last changed date time and Job, and the expiration date.
HTTP compression - the Communications Server supports compressing large HTTP responses with
gzip, and handles gzip-compressed HTTP requests. The Common Client supports gzip-compressed
HTTP responses. Some large HTTP responses are compressed automatically if the client supports it.
Large HTTP messages can be compressed, saving network bandwidth and improving performance.
Task-cleanup performance - the performance of post-processing for tasks in MFCS has been improved.
ICETOOL emulation - now supports the COUNT+n and COUNT-n syntax during trailer processing,
where n is a numeric between 0-999. This adds to or subtracts from the COUNT value.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 17
Enterprise Server configuration - you can now change the recording directory of the dump, trace, HSF,
and the console.log files of each region..
Compression on ECI calls via CASBNCCL Client - when using the Micro Focus External Call Interface
(ECI) over TCP/IP, the request and response data flows are now compressed using RLE.
Enterprise Server Common Web Administration (ESCWA)
Back to Top
This release includes the following enhancements:
Oracle Coherence is now available as a PAC Scale-Out repository as an alternative to Redis.
Reduced number of Redis instances required when a PAC incompatible upgrade is performed - it is now
possible to have multiple PSORs in one REDIS instance. This allows for the REDIS instances
provisioned in the PAC to be reused.
Enhanced PAC diagnostics via CTF - a new option on the ES Control page is now available to enable or
disable CTF for a running region without the need to recycle the region.
ESCWA API, version 2 - includes updated versions of some of the existing API, version 1 endpoints,
with improved JSON property names, more sensible URIs. The version 2 API is a single API standard
across API endpoints. It includes a number of usability enhancements, has a better readability and
discoverability, and includes an improved API documentation.
Enterprise Server Configuration Manager
A variety of configuration options are available in ESCWA on the General >Advanced page for a
region.
The property grid in ESCWA shows the full list of configurable properties, categorized by group,
along with help text and some additional meta-information. Properties marked as dynamic in the
property grid can also be updated in a running region.
A number of properties that were previously set with environment variables are now available in the
ESCWA UI. The environment variables are still supported for backward compatibility.
Accessibility enhancements - the ESCWA UI includes a number of improvements in the areas of
usability with screenreaders, color contrast, and text and icon sizing and alignment. This is to give it an
improved compliance with the 508 and WCAG 2.1 standards.
Enterprise Server Security
Back to Top
This release includes the following enhancements:
AWS Secrets Manager - support is available for using an AWS Secrets Manager, mfsecretsaws, as a
remote vault.
Protection for sensitive data - some sensitive data is now protected in the memory. This helps reduce
the risk of exposing sensitive data such as passwords in core dumps and similar scenarios.
An option to update short names - the ESF Update mechanism enables you to change between OS
users ("long names") and ES userids ("short names") in running regions. This requires a non-default
configuration setting.
Caching improvements - ESF caching now caches more types of requests. This helps improve the
Enterprise Server latency and throughput when external security is configured with caching.
Support for Argon2 in password history - when Micro Focus passwords are used with the MLDAP ESM
Module and password history is enabled, use Argon2 password verifiers in the history to avoid the
potential exposure of passwords via weaker verifiers. This helps improve the security of the password-
history mechanism.
The product Help includes a new section, Securing Enterprise Server, which provides guidance on
improving the security of Enterprise Server installations and the applications they host. This includes
information on security and how to reduce security exposure.
18
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Micro Focus Unit Testing Framework
Back to Top
The following enhancement has been made to the Micro Focus Unit Testing Framework in the IDE:
IDE support has been added for self-contained tests.
The following enhancement has been made to the command-line version of the Micro Focus Unit Testing
Framework:
You can now use the Micro Focus Unit Testing Framework to build and run test cases from within
a .NET 6 environment. Install the NuGet package supplied with Visual COBOL to enable the mfunit
extensions to the dotnet command line utility.
OpenESQL
Back to Top
This release includes the following enhancement:
The new SQL Error Mapping feature enables you to customize how error information is returned in
SQLCODE, SQLSTATE, SQLERR and MFSQLMESSAGETEXT.
Visual Studio
Back to Top
Support is now available for Visual Studio 2022.
Syntax coloring for COBOL in the editor had been improved for identification divisions, copybooks
references using COPY... REPLACE statements, and EXEC blocks.
What was New in Visual COBOL 7.0
Features Added in Visual COBOL 7.0
Enhancements are available in the following areas:
Micro Focus COBOL Extension for Visual Studio Code on page 19
.NET Core Support
COBOL Language Enhancements
Code Analysis
Code Set Support
Compiler Directives
Containers Support
Database Access - OpenESQL
Data File Tools
Enterprise Server
Enterprise Server Common Web Administration
Enterprise Server Security
Library Routines
Licensing Technologies
Micro Focus Unit Testing Framework
Visual Studio Integration
Micro Focus COBOL Extension for Visual Studio Code
Back to Top
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 19
The new Micro Focus COBOL extension for Visual Studio Code is available on the Microsoft Visual Studio
Marketplace. This provides edit, compile and debug support for Visual COBOL and Enterprise Developer
users in Visual Studio Code.
Note: The new Micro Focus COBOL extension is not included with the Visual COBOL installer.
.NET Core Support
Back to Top
Support has been added for creating, building and running .NET Core projects using the dotnet
command. This new support is in addition to the ability to work with .NET Core projects in the IDE.
COBOL Language
Back to Top
The following enhancements have been made to the Micro Focus COBOL language:
.NET COBOL data type to hold strings of utf-8 characters - support is now available in .NET
COBOL for the PIC U data type. This was already available for native COBOL, to support its
introduction by IBM in Enterprise COBOL version 6.3.
The DYNAMIC LENGTH clause, which enables a data item to vary in length at run time, is supported for
native COBOL code. Again, this is in response to its introduction by IBM in Enterprise COBOL version
6.3.
The following date-format-checking intrinsic functions have been added: TEST-DATE-YYYYMMDD and
TEST-DAY-YYYYDDD.
Code Analysis
Back to Top
This release includes the following enhancements:
Get Direct References command - you can use this command to see if changing a file will affect the
other files in your project as well as the files in the whole application. In Visual Studio, you can access
this command from the context menu for COBOL files in Solution Explorer or from the Analysis Server
window.
The Data Flow Analysis is now available in both a tree and a graph view.
The Code Analysis functionality is now available for the Procedural Multi-Output Project (.NET
Framework) type.
Code Set Support
Back to Top
The following enhancements have been made to the integrated code set translation support:
Arabic support for Enterprise Server applications is available.
If you are building Arabic support into Enterprise Server applications, your terminal emulator must
support the Arabic EBCDIC 420 code page.
Support is added by building your applications and configuring your enterprise server regions with the
MFCODESET variable set to the supported country code (0420). Your product's in-built code set
translation utility performs translations between the ASCII 1256 Arabic code page on your enterprise
server region, and a terminal emulator that supports the Arabic EBCDIC 420 code page (for example,
IBM's Personal Communications emulator).
There are some considerations when working with a bi-directional language such as Arabic; these are
discussed in Arabic support considerations.
20
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Compiler Directives
Back to Top
The following Compiler directives are new in this release:
PANVALET-INCLUDES-IN-COMMENTS - This directive controls whether ++INCLUDE statements in
comments are actioned or not.
EXECSQL-FLAG - This directive defines whether syntax reporting should emulate that of the DB2
preprocessor, the DB2 coprocessor, or to allow all syntax variations of both.
RM-FILE-ERRORS - This directive generates run-time system errors for certain file conditions, even
when a FILE STATUS clause is present; this is to emulate RM/COBOL behavior.
The following Compiler directive option has been deprecated:
ILCLR(2) - this is as a result of deprecating support for versions 3.0 and 3.5 of the .NET Framework.
Applications that have this option set will produce an E level message when compiled in this release of
Visual COBOL.
Containers Support
Back to Top
Support for containers in Visual Studio has the following enhancements:
You can now add a Dockerfile to native Micro Focus Unit Testing projects in Visual Studio and run the
tests in a container.
Projects with Docker support now include an additional Containers property page. From it you can:
Specify any build, debug and run arguments for the image that will override the arguments specified
in the project's dockerfile.
See all command-line arguments that will be applied when you build the image.
See the arguments that will apply when you run the container, or debug an application running in a
container.
The Add COBOL Docker Support dialog box now shows all available images, and supports images
provided with a Patch Update release of this product suite.
The versions of the Runtime Image and the Built Tools Image must match therefore the dialog box
only shows the Built Tools Image that match the one for the runtime. For example, if you use a Patch
Update 1 Build Tools image, the dialog box only shows the relevant Patch Update 1 Runtime image.
The dialog box shows only the images that match the major release version (or a Patch Update of it) of
your installed product. They must target the same platform (x64 or x86) as well. If you want to specify
images from different major product versions, you need to edit the Dockerfile manually.
Database Access - OpenESQL
Back to Top
This release provides the following enhancement:
New OpenESQL TRACELEVEL=5 option - native OpenESQL applications can now trace ODBC calls to
the database vendor’s ODBC driver, recording the start and stop times of each call’s execution.
OpenESQL tracing can now provide more detail on where an SQL application is spending execution
time, in the OpenESQL layer or the underlying ODBC driver layer.
Data File Tools
Back to Top
This release includes the following enhancements in the Data File Editor:
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 21
New Data Explorer for working with data sets - a new Data Explorer enables you to connect to either
an ESCWA service or directly to an enterprise server region to access a catalog when working with
data sets in the editor.
Multiple record selection- you can select multiple records and, where appropriate, can perform certain
actions on more than one record at once.
Cut, copy, and paste functionality - traditional cut, copy, and paste functionality (including the
standard Ctrl+X, Ctrl+C, and Ctrl+V shortcuts) is now available throughout the editor.
New filter creation - a new process for creating filters has been introduced. A filter consists of one or
more sets of conditions, and the resulting filter can include or exclude those records selected. The
previous filter process is still available, but has been marked as deprecated.
Remote filtering - functionality has gone into Fileshare Server which allows filtering to occur server
side when opening data sets on remote enterprise server regions. The filter process results in only
those filtered records being downloaded to the data file editor client.
Find/replace functionality - you can search records in a data file to identify specific strings, and then if
required, replace them.
Enterprise Server
Back to Top
This release includes the following enhancements:
Multiple Network Interface support - there is improved support for multiple network interfaces in some
components, including better awareness of network interfaces and control over networking. This is a
partial implementation and will be enhanced in future releases.
Extended IPv6 support - support is available in Micro Focus Directory Server (MFDS) and in the Micro
Focus Communications Server (MFCS) listener for multiple IPv6 addresses.
In release 6.0, you could only configure MFDS and MFCS listeners to listen on a single IPv6 address. In
release 7.0, by default, MFDS and MFCS now listen on all configured IPv4 and IPv6 addresses, and
can also be configured to listen on a combination of specific addresses.
HTTP improvements:
Additional security measures for HTTP, such as security-related headers.
Chunking support for large HTTP messages makes it possible to retrieve very large files from
Enterprise Server regions.
Application Diagnostic Reporting for Enterprise Server - Application diagnostic reporting collects and
packages a number of reports, trace, and log files into a single report file. See Application Diagnostic
Reporting for Enterprise Server for more information.
Enterprise Server now supports automatic reconnection to the standby Queue manager in an Multi-
Instance Queue Manager. See Reconnecting to an MQ Server in a Multi-instance Queue Manager and
Enterprise Server XA Reconnect for more information.
The casmgr process has been optimized to improve the use of initiators when dispatching jobs across a
PAC. In addition, improvements have been made to the way it manages the queue of jobs waiting to be
dispatched.
Information has been added describing the best practice and the recommended approach you should
adopt when performing a Patch Update to your PAC environment. See Performing a Product Upgrade to
a PAC Environment for more information.
New operating modes , upgrade and quiesce, have been introduced for Performance and Availability
Clusters (PACs). These operating modes can be used to facilitate the installation of product updates
that introduce incompatibilities between PSOR data structures. You can check for incompatibilities using
the new caspac utility option CheckCompat. An upgrade mode can be set when starting the first
enterprise server region in a new PAC using the new casstart utility start-type option u. This upgrade
mode will prevent participating enterprise server regions from processing batch workloads as part of its
normal operation, and any EXEC CICS START requests will be rejected. See casstart and caspac in
your product Help for more information.
22
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
When enough enterprise server regions have been switched over to the new PAC, the old PAC can be
set to operate in the quiesce mode. This prevents further batch workload and EXEC CICS START from
being processed.
The new PAC can now be switched to running mode so that batch workload and EXEC CICS START
are enabled for processing again.
Note: Before setting the new PAC mode to running, you must switch enough enterprise server
regions to the new PAC to enable it to service the expected workload.
Enterprise Server Common Web Administration (ESCWA)
Back to Top
This release offers the following improvements:
MFDS User Interface functionality replacement - ESCWA now replaces the MFDS inside the IDE as the
engine that provides access to and management of regions. ESCWA provides all the functionality that
was previously available from MFDS. This release includes the following enhancements:
Delete all regions.
Session list.
Renew listening addresses.
ESMAC User Interface functionality replacement - the following ESMAC features have been
implemented in ESCWA:
Resource Filtering. See CICS Resources for more information.
Millisecond support. See Threshold, Monitor, and Active PCT for more information.
Control the scope for all changes to timeouts, trace flags, and memory strategy when applied to
regions in a PAC. See ES Control for more information.
Enable Application Diagnostic reporting. See ES Control and Application Diagnostic Reporting for
Enterprise Server for more information.
Submission of local jobs from the JES Control page when CASRDO44_NEWSUB=OFF has been
specified. See JES Control for more information.
View and reply to pending ACCEPT FROM CONSOLE statements. See Pending Replies for more
information.
The messages after a JCL job has been submitted are now correctly JSON formatted. This page
now works in ESCWA when MFJUXIT is enabled.
Import, export, and copy regions - you can now use the UI to export and import regions in various
formats, including use JSON. You can:
Copy regions between Directory Servers
Import and export regions in JSON, XML or in the .dat legacy format. The legacy format can be
converted to a modern format.
Mainframe Access (MFA) administration - ESCWA provides a modern Web UI and does not require you
to use a separate terminal application. Features include:
Log in or off from MFA.
Change your MFA password.
View MFA server tasks.
Retrieve the XDBOUT log (Web UI).
Retrieve the JES spool files by DD Name (API).
Set the MFA and JES tracing level.
View the active MFA users.
Invalidate active user sessions.
View mainframe/MFA statistics.
See Mainframe in the Enterprise Server Common Web Administration chapter for more information.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 23
The MFA API library has been exposed to enable you to test and use the requests that are provided.
See MFA Interactive API Library for more information.
Scale-Out and PAC administration - you can now:
Monitor Redis Sentinel and Cluster instances when used for Scale-Out Repositories.
Specify that all changes to timeouts, trace flags, and memory strategy can be applied to one of three
options:
Only the local region.
All members of a PAC except the regions where local changes have been made.
All members of a PAC.
You can configure this in ESCWA with the Apply Scope field on the ES CONTROL page.
Alternatively, you can use the casutl utility with the /w option. See casutl for more information.
Multi-Network Interface Card support - ESCWA now enables you to configure Communications Servers
and Listeners to listen on multiple IPv4 and IPv6 addresses. Previously, they were limited to listen on
either all IPv4 addresses, or a single IPv4 or IPv6 address. Now a combination of any of the following
can be used:
One or more specific IPv4 addresses.
One or more specific IPv6 addresses.
All IPv4 addresses.
All IPv6 addresses.
A new filter field resFilter has been added to the following ESCWA and ESMAC resource listing
modules:
Every resource in By Type
Every resource in By Start L
Resource lists under Groups
Every active resource type except Locks
This parameter will filter the list of resources displayed by ESCWA and ESMAC. In addition, a new
environment variable ES_RDO_MAX_RESOURCES has been added that enables you to specify a limit
to the number of records displayed. For JSON requests, the list being truncated is indicated by the
addition of the JSON property "truncated": true.
Enterprise Server Security
Back to Top
This release includes the following enhancements:
MLDAP ESM caching - the MLDAP ESM Module now implements LDAP search-result caching. This is
controlled by the existing Security Manager cache settings, so that many installations will have this
activated automatically. See the product Help for details.
Vault Hashicorp support - support is available for using a Hashicorp KV2 vault server as a local or
remote vault.
Library Routines
Back to Top
The following library routines are new:
CBL_GET_ERROR_INFO - enables error processing routines to establish the location of the error that
occurred to cause the error processing routine to execute. This is available on a restricted range of
platforms.
24
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Licensing
Back to Top
AutoPass licensing technology
In this release, Micro Focus brings in the power of the in-house Micro Focus AutoPass licensing technology
alongside Sentinel RMS. AutoPass has the following additional benefits compared to Sentinel RMS:
Usage logging which enables you to monitor the product usage. You need to install the AutoPass
License Server in order to do this.
Ongoing support for all platforms that this product is available for.
Features include:
Installing this release installs both the AutoPass Daemon and the Sentinel RMS License Manager. Both
of them are available in the Micro Focus License Administration tool.
You can have both AutoPass and Sentinel RMS licenses installed on the same machine. Optionally, you
can switch off the licensing technology you do not use.
If you are an existing user of a Visual COBOL or an Enterprise Developer product, you only need an
AutoPass license if you want to utilize usage logging or if you want to use your product on a platform on
which Sentinel RMS is not supported.
If you are a new user of the Micro Focus COBOL products, you will normally be issued an AutoPass
license.
Micro Focus will continue to provide Sentinel RMS in future releases of this product.
AutoPass licenses should be installed into the existing Micro Focus License Administration tool, and not
in the AutoPass License Server.
Installing licenses at the command line
On Windows, Micro Focus License Administration is now also available as a command-line utility.
For more about AutoPass and usage logging, and about Micro Focus License Administration, see
Managing Licenses.
The Micro Focus Unit Testing Framework
Back to Top
The following enhancements have been made to the Micro Focus Unit Testing Framework:
The MFUPP preprocessor has been introduced to provide a seam between your program and a unit
test. This seam lets you access the internals of a program under test, allowing you to create granular
unit tests from paragraphs or sections. The MFUPP preprocessor also provides the ability to mock
programs or stub programs out to create a unit test.
Visual Studio Integration
Back to Top
This release includes enhancements in the following areas:
Editor:
Code cleanup - Visual Studio now supports a variety of code cleanup options for COBOL which you
can apply during formatting. These enable you to update any existing code, or enforce rules for new
code for specific keywords or operators.
EditorConfig file support - you can now create .editorconfig files with the code style settings in
the IDE, and share the file within your organization to ensure consistency of the code.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 25
What was New in Visual COBOL 6.0
Features Added in Visual COBOL 6.0
Enhancements are available in the following areas:
.NET Core
COBOL Application Console Size
COBOL Language Enhancements
Code Analysis
Code Analyzer Refactoring
Compiler Directives
Containers
Database Access - DB2 ECM
Database Access - OpenESQL
Database Access - XA Switch Modules
Data File Tools
Debugging
Enterprise Server
Enterprise Server Security
Enterprise Server Common Web Administration
File Handling
Interface Mapping Toolkit
Library Routines
Micro Focus Unit Testing Framework
Microsoft Build Tools and Windows SDK Configuration Utility
Multi-Threaded Applications
Visual Studio Integration
.NET Core
Back to Top
Support has been added for .NET Core 3.1, and a number of new .NET Core project templates have been
added.
Note:
Because Visual COBOL requires .NET version 6 and .NET version 6 is not supported by Visual
Studio 2017 and Visual Studio 2019, you must be using Visual Studio 2022 or later to be able to use
Visual COBOL to create COBOL applications to be deployed for use with .NET.
COBOL Application Console Size
Back to Top
The maximum console size of a COBOL application has increased. It can now be 255 lines by 255
columns, configurable using the screen_lines and screen_cols run-time tunables.
COBOL Language Enhancements
Back to Top
The following enhancements are available:
Enterprise COBOL 6.2 Update - new syntax, library routines, and the respective analysis tooling are
available for compatibility with IBM's Enterprise COBOL 6.2 Update:
26
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
New intrinsic functions are supported: BIT-OF, BIT-TO-CHAR, BYTE-LENGTH, HEX-OF, HEX-TO-
CHAR, NUMVAL-F, TEST-NUMVAL, TEST-NUMVAL-C, TEST-NUMVAL-F, and TRIM
A number of intrinsic functions now support national data (especially surrogate pairs): REVERSE,
ULENGTH, UPOS, USUBSTR, USUPPLEMENTARY, UVALID, and UWIDTH.
A LOC phrase has been added to the ALLOCATE statement to define whether memory is allocated
above or below the 16MB line.
CONSTANT qualifier - it is now possible to define data items as constants. This improves the code
readability and usability, and helps detect programming errors. The ability to create constant items is
already in .NET COBOL and JVM COBOL, and many other languages.
Local variable declarations in native COBOL - it is now possible to declare data items inline in the
code and not only in a separate DATA DIVISION. This provides better locality of data, making the
source code easier to reason about.
Native data type to hold strings of utf-8 characters - in native COBOL, support is now available for
the PIC U data type as introduced by IBM in Enterprise COBOL version 6.3. Direct support is available
for utf-8 data.
Performance improvements - this release provides various performance improvements, most
significantly on 32-bit Intel x86 platforms. When using the highest optimization level, opt(4), the
performance of native code generated by the COBOL Compiler has improved. A number of cases are
affected, most particularly those where it is beneficial to locate PERFORM ranges inline.
Code Analysis
Back to Top
Support is provided in Visual COBOL for accessing the Application Analysis Server which is part of the
Micro Focus Enterprise Analyzer and Micro Focus COBOL Analyzer products.
If you have one of these products installed, you can connect to the Application Analysis Server from Server
Explorer and access the Enterprise Analyzer web client. Enterprise Analyzer web client provides quick
searches for repository objects, detailed code searches, diagrams, reports, and data item impact analysis
and other features such as viewing and editing of business rules (separate license required).
Code Analyzer Refactoring
Back to Top
Support is now available for extracting program logic from COBOL code and moving it to a new program.
The following commands are available from the editor context menu:
Create program from Section
Create program from Computation
Create program from Condition
Compiler Directives
Back to Top
The following Compiler directives are new in this release:
DISPLAY-AT - specifies a default foreground and background color for DISPLAY AT and ACCEPT AT
statements that do not specify any color attributes.
DPC-IN-DATA - controls whether the DECIMAL-POINT IS COMMA clause (if specified) is applied to the
output from the XML GENERATE and JSON GENERATE statements.
ILCONDITIONPARAM - switched on by default. Enables the support for conditional expressions as
method parameters.
Important:
Applications that use the old COBOL syntax for specifying named parameters as
custom-attributes will not compile with the ILCONDITIONPARAM specified. This can result in any
Cumulative Changes from Net Express to Visual COBOL for Visual Studio | 27
older applications failing to compile in the current version of the product. See
ILCONDITIONPARAM in your product Help for details about how to work around this issue.
The following Compiler directives have new options:
CHECKREFMOD - now takes an additional parameter (NOZEROLENGTH), which acts as
CHECKREFMOD, but does not permit reference modifier lengths of zero.
PROTOTYPE - now supports options that specify whether prototypes are required, and the severity of
error messages issued for prototype mismatches.
Containers
Back to Top
Support has been added to enable you to work with containers from the IDE. In particular you can now
create a Dockerfile for a COBOL project, and build, debug and run a COBOL project in a container, all from
the IDE.
Database Access - DB2 ECM
Back to Top
Support for the following has been added to this release:
Multi-row fetch (MRF) and insert (MRI) statements with or without the FOR ROWS clause
Array update and delete statements
Notes:
These new features are supported for DB2 LUW version 11.1 Mod 4 Fix Pack or newer. Currently,
IBM does not support either of these features with DB2 LUW 11.5.
For coding examples, see the IBM DB2 LUW documentation: Embedded SQL/COBOL Support for
MRI and MRF.
Database Access - OpenESQL
Back to Top
Support for the following has been added to this release:
.NET Core 3.1 with the COBOL .NET Core project templates "Console Application" and "Class Library"
using OpenESQL directive DBMAN=ADO.
Database Access - XA Switch Modules
Back to Top
Restriction:
This feature applies only when the Enterprise Server feature is enabled.
Support for the following has been added to this release:
XA switch modules have been enhanced to enable storage of sensitive information in the Micro Focus
Vault Facility. This new functionality includes a customizable program, ESXAEXTCFG.CBL, you can use
to obfuscate xa-open strings by storing them as secrets.
Data File Tools
Back to Top
The following enhancements have been made to the Data File Editor:
Double-byte character sets are now supported within the editor.
28
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Insert mode is now available when editing a formatted record, except for numeric fields.
When editing DBCS data in EBCDIC files, the required Shift-out and Shift-in characters are
automatically added when editing a formatted record and you are editing in Insert mode.
You can now load and unload structure files for an open data file.
A ruler at the top of the editing pane can be toggled on/off.
Debugging
Back to Top
The following enhancements are available:
Debug profiles - COBOL projects now support debug profiles, a feature of Visual Studio, where a debug
profile stores a set of properties which specify how to start debugging the application. You can create
and manage multiple debug profiles available on the Debug tab in the project's properties.
Expressions - you can now specify complex expressions in the Watch window. The supported
expressions are: normal numeric arithmetic expression with intrinsic functions and the single use of
alphanumeric intrinsic functions. See Watch Window for details.
Enterprise Server
Back to Top
The following enhancements are available:
IPv6 support (EAP) - This feature is in Early Adopter Program (EAP) release status. Some Enterprise
Server components and features now support Internet Protocol version 6 (IPv6) network addressing
and connectivity. Due to limitations with IPv4, IPv6 is becoming more common within corporate
networks and on the public Internet. In some cases, the use of IPv6 can improve interoperability and
simplify network configuration.
Administrative Commands - the add command in cascertreg now contains new options (-cwi
setting, -dcas setting, -issuer, and -subject).
Enterprise Server Security
Back to Top
This release provides the following enhancements:
Micro Focus Secrets file storage permissions
The Micro Focus Secrets feature (also known as the Vault feature) provides centralized storage for
sensitive information such as passwords, with some protection against accidental disclosure or
discovery by unauthorized users. Prior to this release, the only supported storage mechanism was a
conventional file containing encrypted data. In this release, the permissions on the storage file and on
the Secrets configuration file are set more restrictively to help protect the secrets.
Certificate wildcard support
The X.509 digital certificates used to identify servers when making TLS (SSL) connections permit the
use of fully-qualified domain names with wildcards for some parts of the name. This enables
administrators to use a single certificate issued to, for example, *.mycorp.com for any number of servers
with fully-qualified names like www.mycorp.com, server1.mycorp.com, and so on. These wildcard-
bearing certificates are now supported by client programs using Micro Focus communication technology
when validating a server's certificate.
Improved ACL wildcard support
In the Access Control Lists used for resource access control with LDAP-based security in Enterprise
Server, the ".**" wildcard sequence now behaves more similarly to mainframe RACF. A number of
additional options for wildcard processing are also available.
PKIX compliance for TLS certificate validation
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 29
The standard for using X.509 digital certificates to authenticate servers when making TLS (SSL)
connections is known as PKIX, for Public Key Infrastructure (X.509). It is defined by a series of IETF
RFC documents, currently RFC 5280 and others. In previous releases, the certificate validation
performed by this product did not conform to PKIX in a number of ways, most notably in using DNS
address-to-name resolution in an attempt to match a certificate to a host. With this release, clients using
Micro Focus Common Client technology, such as COBOL web service proxy programs, CAS utility
programs, and customer applications that use the CICS Web Services Interface feature, will by default,
use stricter procedures for validating certificates which more closely conform to PKIX. This improves
TLS security and interoperability.
Security improvements for XML parsing
In this release the third-party components used for parsing XML data have been updated, or have had
bug fixes integrated into the version used by Micro Focus, to address published security vulnerabilities.
Also, XML external-entity support has been disabled except where it is required by a particular product
feature; this prevents XML External Entity (XXE) attacks on customer systems by attackers who can
trick a customer application into parsing a malicious XML document.
Enterprise Server Common Web Administration (ESCWA)
Back to Top
This release offers the following new features and improvements:
MFDS User Interface functionality replacement - ESCWA can now communicate with remote MFDS
instances, and displays the equivalent pages of MFDS. Configuring regions, and their IMS, PL/I, MQ,
and XA options, and security, is now available.
ESMAC User Interface functionality replacement - ESCWA can communicate with remote ESMAC
instances, and can replicate functionality and display all the information provided by ESMAC.
Configurable User Interface access - you can now configure the ESCWA security manager to control
user and group access to certain aspects of the user interface, such as, native, and security menu
items.
Usability improvements
Starting and stopping regions from the navigation tree.
The native menu items are not displayed if the region features are not configured correctly.
Configuration of the display colors for MFDS hosts and regions to distinguish them with ease.
Scale-Out support - ESCWA has improved the way it displays a Scale-Out Repositories (SORs)
association with its PAC and member regions.
Redis support - Redis is supported as a SOR when running this product in a PAC. Features include:
Redis cluster support
A Mfredis configuration file - enables you to configure reconnection when any network errors occurs.
You can also use the file to configure Lua scripts tracing on servers.
Authentication support for the standalone Redis server.
File Handling
Back to Top
Fileshare password files can now be stored in the Vault Facility, ensuring that sensitive user credentials are
encrypted. Firstly, create the password file in the usual way, and then upload it, with a path of
microfocus/fh, using the mfsecretsadmin utility.
To ensure the Fileshare server uses the file stored in the vault, start the server with the /uv option.
Interface Mapping Toolkit
Back to Top
Improvements are available in the following areas:
30
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Resource-based REST APIs - the following enhancements enable the creation of resource-based
REST APIs:
Operations in JSON RESTful Web services can now have a customizable URI path that identifies a
resource. Operation paths have support for dynamic templating.
API resources can now be automatically identified from COBOL groups in a COBOL program, and a
set of operations can be generated for each API resource.
It is now possible to specify the location of interface fields in the service request or response. An
interface field can either be a parameter in the URI path, a query parameter, or be in the JSON
message body.
Summary support for OpenAPI - the IMTK now supports the OpenAPI Specification (originally called
Swagger) which is the most widely-accepted format for REST API specifications. Features include:
Consumption of OpenAPI 3.0 and Swagger 2.0 files for purposes of client and service generation.
Generation of OpenAPI 3.0 files to describe the APIs of a JSON RESTful Web service.
REST service output filtering and field selection - Enterprise Server JSON RESTful Web services
now include the following features:
Automatic filtering of the JSON response body of a Web service by path and query parameters
received in the request URI.
A special query parameter "$fields" that can be used to indicate that the JSON response body is to
contain only certain specified fields, and to exclude all other fields.
REST API discovery - Enterprise Server API discovery is now supported. For a JSON RESTful Web
service, a list of all its available operations, and their URI paths, can be retrieved. This enables a client
to efficiently navigate an Enterprise Server REST Web service without having information about the
service’s operations ahead of time.
Library Routines
Back to Top
The following library routines are new:
MFU_GET_FILE and MFUGETF - both these routines are used with data-driven tests in the Micro
Focus Unit Testing Framework. If the .csv file under test references external data in one of its cells
(using the @file-name notation), use either of these routines to load that external file into memory
before such tests are run.
The following library routine contains new functionality:
CBL_GET_EXIT_INFO - this library routine has been enhanced to better detect the circumstances in
which an exit procedure has been invoked.
The Micro Focus Unit Testing Framework
Back to Top
The following enhancements have been made to the Micro Focus Unit Testing Framework:
You can now run unit tests against an executable file from the command line. Before you run such tests
from the command line, you must initially rebuild the executable in order to link it into the testing
framework.
You can now produce a report file that can be opened and viewed in Microsoft Visual Studio. Use the -
report:trx command line option to generate a .trx file.
The .csv source files used in data-driven tests can now reference external data: use the @file-name
notation in a cell to use the contents of file-name in the tests. The external source files must be
loaded into memory, using the MFU_GET_FILE or MFUGETF library routines, before the tests are run.
Two new elements are available for data-driven tests: a data-driven setup and a data-driven teardown.
Conventional setup and teardown entry points would run multiple times during a data-driven test; these
two entry points run only once per test run.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 31
The Microsoft Build Tools and Windows SDK Configuration Utility
Back to Top
On Windows, the Visual COBOL setup file now installs the Microsoft Build Tools and the Windows SDK
packages, as these are dependencies for a number of features and operations of the product.
You can use the Microsoft Build Tools and Windows SDK configuration utility to view the package versions
in use in your COBOL environment. You can also use this utility to set the environment to use other
versions of these packages that you have installed.
Multi-Threaded Applications
Back to Top
This release includes the following improvements:
Thread local storage optimizations - the thread termination in applications with many threads has been
optimized.
Visual Studio Integration
Back to Top
The following enhancements are available:
Support for the Visual Studio CodeLens feature (Visual Studio 2019 and later only) - CodeLens is a
clickable visual adornment ( , ) above entry points or number of references above class, section, or
paragraph names.
In Run Units, CodeLens provides the number of entry points, and also enables you to run and debug
directly from the editor.
New formatting options - you can now specify different indents for the parent and child items in group
item data in Tools > Options > Text Editor > Micro Focus COBOL > Formatting > Data Division.
Tooltips for END delimiters - tooltips are available for END delimiters such as end-if, end-perform, or
end-of-statement period. The tooltips show the opening statements.
Code style preferences - a new category of preferences, Tools> Options > Text editor > Micro Focus
COBOL > Code Style, combines all Visual Studio preferences for the format and style of your COBOL
code.
Lightbulbs - quick actions are available for inserting an end-of-scope terminator (such as END-IF), and
for extracting sections to new programs.
Snippets - a new snippet for indexers is available.
Editor navigation bar - now shows the project that includes the file opened in the editor:
Uppercase mode in the COBOL editor - to toggle uppercase mode, click
(Force upper case in the
editor) in the COBOL toolbar, or enable it from Tools > Options > Text Editor > Micro Focus COBOL
> Text Casing). With this option enabled, code you insert or paste in the editor, including snippets, is
forced to upper case. This functionality must not be used with .NET COBOL.
QuickInfo - information in the QuickInfo details is now colorized.
Copybook properties - the Properties window now displays the full path for copybooks that are stored
outside of the project.
Features Added in Visual COBOL 5.0
Visual COBOL 5.0 provided enhancements in the following areas:
32
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
COBOL Formatting
Code Analysis
Enterprise Server Common Web Administration
COBOL Language Enhancements
Compiler Directives
Consolidated Trace Facility
Data File Tools
Database Access
Database Connectors
Debugging
Enterprise Server Security
Micro Focus Unit Testing Framework
Platform Support
Product Documentation
Visual Studio Integration
COBOL Formatting
Back to Top
You can now reformat your COBOL code in the editor according to your preference and standards.
Formatting sets the indentation based on the configuration options which you can set in Tools > Options >
Text Editor > Micro Focus COBOL > Formatting > Indentation (for Visual Studio).
You can find the COBOL formatting features on the Edit > Advanced menu (for Visual Studio) menu.
Code Analysis
Back to Top
You can now create the following views for your code:
Program Flow Graph - enables you to view the overall structure of the COBOL program with nodes
representing sections and paragraphs. PERFORM statements between them which affect the program
flow are represented by links joining the nodes. External calls to other programs are shown but cannot
be expanded in the Program Flow Graph view. Hovering over the nodes shows a tooltip containing the
code representing the respective sections or paragraph. Clicking a node or a link joining said nodes
positions the code editor to that point in the source, allowing quick and easy navigation of the program.
Data Flow Analysis Tree - enables you to select a data item and then either statically trace what might
change its value or what other data items it might affect.
Enterprise Server Common Web Administration
Back to Top
Note:
This feature is in Early Adopter Program (EAP) release status.
Visual COBOL now includes a new Enterprise Server Common Web Administration interface (ESCWA).
ESCWA is a web user interface and server for modern administration, monitoring and control of Enterprise
Server. It offers improved usability that consolidates the different Enterprise Server user interfaces so that
native and managed regions, and security stores can be managed in one place. Features include:
Administering directory servers across multiple hosts.
Monitoring and control of Enterprise Server instances.
Configuring and administering a security store, defined in an LDAP-compatible security manager such
as Microsoft Active Directory or OpenLDAP.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 33
Administering the Scale-Out features - enable you to specify logical groups of Enterprise Server
instances, and configure and run Performance Availability Clusters (PACs) and their related Scale-Out
Repositories (SORs).
Administering, monitoring and control of Enterprise Server for .NET regions and listeners.
The use of current web frameworks that have a greater focus on security.
(Included with 5.0 Patch Update 2 ) - support for Enterprise Server XA, MQ and PL/I configuration and
monitoring. This includes support for XA resources, configuring MQ, Listeners and Writers, PL/I, MFCS
console, Region Trace options, displaying the current ESMs on logon page and Local/loopback
connections warning changes.
COBOL Language Enhancements
Back to Top
The following enhancements have been made to the COBOL syntax:
ISO2002 conditional compilation - an additional mechanism for conditional compilation, the ISO2002
Conditional Compilation method, is now available. This has been implemented as part of the support for
Enterprise COBOL 6.2.
The following compiler directing statements are supported:
>>DEFINE
>>IF/>>ELSE/>>END-IF
>>EVALUATE/>>WHEN/>>WHEN OTHER/>>END-EVALUATE
The JSON PARSE statement enables you to convert JSON text into COBOL data formats. This has
been implemented as part of the support for Enterprise COBOL 6.2.
Async and await syntax (.NET COBOL only) - support is available for asynchronous programming
in .NET COBOL using the async and await syntax.
INSPECT statement - the performance of INSPECT... CONVERTING has been improved, particularly
for cases where source-alphabet is long.
Support has been added for the portable syntax for SET - set[string].
Compiler Directives
Back to Top
The following Compiler directives are new in this release:
ILNORMALIZENAMES
Determines the program elements that are normalized when a program is
compiled to .NET or JVM COBOL. Normalization in this context results in
replacing all $ and - (hyphen) characters with _ (underscore) characters in the
name of the generated class file.
Consolidated Trace Facility (CTF)
Back to Top
This release provides the following enhancements:
Dynamic CTF - it is now possible to configure the CTF dynamically from outside the process being
traced.
Using a new command line utility - cblctd - you can alter the tracing events of running applications
that already have CTF tracing enabled. You can alter trace levels, add or remove components to or from
the trace, and also configure the emitters in effect.
Additionally, there is also a new component that you can trace - mf.mfdbfh enables you to trace activity
of the Micro Focus Native Database File Handler.
34
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Data File Tools
Back to Top
This release provides the following enhancements:
The Data File Editor now includes a Compare Files tool that enables you to compare the contents of
two data files side-by-side.
Structure files, and the layouts within them, can now be created within the Data File Editor; you no
longer need to use the Classic Data File Tools utility to manage your layouts.
When connecting to a VSAM dataset stored in an enterprise server region, you can store any
passwords required for access, for the duration of your current session.
You can view archived JES spool jobs that have been merged into one spool file using the merging
archived spool files process.
You can now quickly duplicate records in non-indexed files, using the Duplicate Record option.
Database Access
Back to Top
Enhancements are available in the following areas:
OpenESQL ADO.NET Connection Editor Toolbar
A new "i" (information) button is available that provides all the details of any installed .NET provider.
Provides additional information mitigating resource definition and use within the ADO.NET Connection
editor
Static XA switch modules "Reconnect" - At the beginning of a global transaction, the XA switch will
attempt to reconnect temporarily broken connections to the database. If there is a temporary disconnect
to the database, there is no need to manually re-enable the XA switch to run transactions.
Database Connectors
Back to Top
You can now create an identity column in your database by using a new XFD directive -
IDENTITY_COLUMN. This must be specified on a numeric field.
Debugging
Back to Top
This release includes the following enhancements:
COBOL Visualizer - a new window in Visual Studio enables you to view and edit a data item during
debugging in either text or HEX forms. You invoke the window from the DataTip for the data item.
Conditional watchpoints - you can now specify conditions and hit counts for COBOL watchpoints. A
condition can be in the form of an expression or it can be a hit count (for the number of times memory
associated with a data item has been updated). The condition is evaluated each time the data item
being watched changes. If the condition evaluates to true, then program execution stops. This enables
more fine-tuning of the current watchpoint support and is useful when debugging large, complex
programs.
Dynamic core dumps - you can now invoke a core dump programmatically and continue execution of
your program. A new library routine, CBL_CREATE_CORE, enables you to produce a core file for the
current process or a process owned by the same user that owns the current process.
Improved visibility of the PERFORM stack - the PERFORM stack and PERFORM range names are
visible in system debuggers such as gdb in many cases on 32-bit Linux with Intel architecture and
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 35
Solaris with Intel architecture. This was already the case on AIX, 64-bit Solaris-Intel, and all other Linux
platforms (including 64-bit Linux-Intel).
In order to include source line numbers in run-time error messages, which makes the diagnosis of
issues in your program easier, the COBOL compiler now produces .idy files by default when building
from the command line, unless the NOANIM directive is specified. You can safely remove .idy files
after compilation if you do not need them; they do not need to be distributed with your application unless
you want to debug your code. However, unless you specify the ANIM directive, generated executables
such as .dll and .gnt will not be debuggable, which is consistent with prior behavior.
Note: Behavior has not changed if you are using an IDE or build scripts generated by an IDE.
Enterprise Server Security
Back to Top
This release includes the following enhancements:
Security - security features can now be employed when developers and administrators install new
COBOL services (web services and EJBs) into an enterprise server instance over the network. There
are a number of authentication and authorization options that can be enabled. See Deployment
Listeners and The .mfdeploy File.
Vault Facility - a new security feature has been added that enables some Enterprise Server components
to keep certain sensitive information in a form of storage defined as a vault, accessible via a
configurable vault provider. The default vault provider stores data in encrypted format on disk.
OpenSSL 1.1.1 - the OpenSSL security provider has been updated to OpenSSL version 1.1.1.
This is the stable Long Term Support version of OpenSSL.
Added support for the ratified TLS protocol version 1.3. TLS 1.3 benefits include:
Much shorter initial connection negotiation sequence. This reduces the time taken to establish a
link before starting to transmit data.
Using only the most secure ciphers and hash methods.
TLS 1.3 will be negotiated in preference to the older TLS protocols.
Added support for new Ciphers and Key Exchange groups in line with TLS 1.3 requirements.
The default security level for previously configured endpoints has been moved from Security Level 0
to Security Level 1. This removes the ability to accidentally make use of known-weak elements such
as SSL3 and MD5. Similar changes to the default Security Level have recently happened to Java,
Chrome, Firefox, and other systems providing secure connections.
Fileshare Security - the Fileshare Secure TCP/IP transport provider now supports the trusted use of
X509 certificates bearing the name of the Fileshare service as the Common Name element of the
certificate.
In previous releases, a secure connection to a Fileshare server was made using a certificate that
represented the network location upon which the Fileshare service was located. This method is still
supported, but does not distinguish between the exact Fileshare server that is being connected to when
more than one service can exist on a single host system. With this change, individual Fileshare services
can identify themselves by using a unique certificate. While running on the same host and registered
with the same network endpoint.
Support for Active Directory user groups and group name mapping - the Enterprise Server External
Security Facility's MLDAP ESM Module can now use Active Directory user group objects for Enterprise
Server user groups. Also, the module can now map long group names to the 8-character-maximum
names required for mainframe emulation.
Selective auditing - administrators can audit only security activity of particular interest, reducing audit
overhead and the volume of events. The Enterprise Server External Security Facility's MLDAP ESM
Module can now enable ESF Audit events only for particular users, groups, and resources.
36
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Improved interaction with LDAP client libraries resulting in fewer LDAP-related issues and easier
diagnostics - the Enterprise Server External Security Facility's MLDAP ESM Module has improved
interoperation with LDAP client libraries:
The client library vendor and version information is logged after the library is loaded
The module has better heuristics for loading the correct library supplied by the OS vendor, so the
"provider" configuration option can generally be omitted
For OpenLDAP, the module sets its proprietary "connect timeout" option
SNI support (requires 5.0 Patch Update 1 or later) - support has been added in Patch Update 1 for the
Server Name Identification (SNI) extension to TLS. This helps to avoid connectivity issues related to a
growing number of Web services being hosted on SNI servers.
Enterprise Server for .NET
Back to Top
This release includes the following enhancements:
Improved CICS compatibility - CICS EIBRCODE handling in Enterprise Server for .NET now matches
the mainframe specification. CICS BMS support in Enterprise Server for .NET now matches the
behavior on the mainframe and in native Enterprise Server more closely.
MMC administration UI support for ESF security - the MMC snap-in for Enterprise Server for .NET
administration now supports the External Security Facility. This means you can use LDAP-based or
custom security solutions to provide administrator authentication and access control.
TLS (SSL) support - the seelistener utility now supports TLS (also known as SSL) for its TCP
communications channels. These include all channel types except MQ. The Enterprise Server for .NET
client classes also have been enabled for TLS. For example, the seeout utility can now be used with a
TLS-enabled MFBINP channel.
Performance improvements - this release comes with an improved performance in WCF, system
database operations, and VSAM database operations.
Micro Focus Unit Testing Framework
Back to Top
This release provides support for the following functionality:
Data-driven unit tests - a new type of test suited to testing data where values read from a source are
passed through the same tests.
Test output colorization - test output can now include basic colorization for supported terminal
emulations. This feature must be run from the command line.
Platform Support
Back to Top
Support is now available for the following additional or updated operating systems:
SUSE (Power) 11 SP3, 12
Red Hat (Power) 7.2, 7.3
Windows Server 2019
For a full list of supported platforms, check HTTPS://SUPPORTLINE.MICROFOCUS.COM/
PRODAVAIL.ASPX.
Product Documentation
Back to Top
The following is new in this release:
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 37
Online context help in Visual Studio - online context Help is now the default setting for Visual COBOL
and opens the documentation available on Micro Focus SupportLine.
Visual COBOL local help is still supported and can be installed manually, if required. See After Installing
for details.
The Comparison of COBOL with Other Managed Languages document has been updated to reflect the
recent enhancements in the .NET and JVM COBOL support.
Visual Studio Integration
Back to Top
This release includes enhancements in the following areas:
COBOL editor:
Code snippets - new snippets are available for $if and $region statements, and for specifying
*cblformat off which indicates the area of code that is unaffected by formatting.
Collapsible regions - outlining is now available for IF, EVALUATE and PERFORM statements.
Peek Definition context menu command - this invokes a pop-up window, embedded in the editor,
showing the data item definition. You can use the feature both while editing and while debugging.
IntelliSense suggestions - IntelliSense suggestions for the COPY statement now include directories to
add.
(Introduced in 5.0 Patch Update 1) Choosing a separator for qualified field names - you can configure
IntelliSense to either use OF or IN as a separator in qualified field names - e.g. A-COUNT OF A-
WORK-1 or A-COUNT IN A-WORK-1. You can specify this in Tools > Options > Text Editor > Micro
Focus COBOL > IntelliSense, and on the Completion Lists page.
Find All References - the Find All References output window for COBOL has been enhanced, so you
can now filter results, group results, order results and search results.
Quick actions - the editor now displays light bulbs for creating a missing section or a paragraph, for
adding and sorting $ILUSING statements, and for removing or commenting out dead code.
Visual Studio tool windows:
The Error List window now includes a column for the Sequence Number.
You can use Visual Studio's Find All References tool window to search for references in your COBOL
projects.
New settings in the project property pages:
The Debug project properties page for managed projects now includes settings for either generating a
portable symbol file (.PDB) or for embedding the portable symbol information directly in the assembly.
The Smart Linkage section in the properties of managed projects now offers two new settings for
enabling the ILSMARTTRIM and ILSMARTANNOTATE Compiler directives.
New project template categories:
The COBOL project templates are organized in a new set of categories that better represent the tasks
and workloads used in modern development. Some of the categories, such as Azure or .NET Core, only
show if you have installed the support for these features in Visual Studio. For more information, see To
install missing features from the IDE.
What was New in Visual COBOL 4.0
This release provides enhancements in the following areas:
Integration with Visual Studio
Application Server JCA Support for Enterprise Server
Build Tools for Windows
38
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Code Coverage
Codeset support
Compiler directives
Data File Tools
Database Connectors
Debugging
Docker
Documentation on working with large applications
Enterprise Server
File Handler
Library routines
Micro Focus Unit Test Framework
OpenESQL
Platform support
Integration with Visual Studio
Back to Top
This release includes the following editor improvements:
Inline rename refactoring - overwriting a variable name directly in the editor now invokes rename
refactoring so you no longer need to select Refactor from the editor context menu.
Extract to section - a new quick action (Visual Studio 2015 and later only) is available in the editor. It
enables you to refactor your code by adding more sections in the code. This can help you create more
entry points that you can use during unit testing.
Automatic insertion of END-EXEC, END-TRY and END-PERFORM statements - the closing statements
are now automatically inserted after you have typed the opening statements.
IntelliSense filters (Visual Studio 2017 and later only) - when IntelliSense displays a list of suggestions,
a number of icons at the bottom of the IntelliSense window now enable you to filter the suggestions.
Working with files:
Copybook graphs - a context menu command, Show Copybook Graph, in Solution Explorer enables
you to display the graphical representation of the copybook dependencies of COBOL programs.
Open Folder mode (Visual Studio 2017 only) - support is now available for editing, compiling and
debugging files opened in Solution Explorer in Open Folder mode without having to create projects.
The file property pages now display a list of all Compiler directives that apply to the file.
New IDE configuration option:
You can use the Limit IntelliSense Search Scope setting in Tools > Options > Text Editor > Micro
Focus COBOL > Advanced that helps improve the editor performance.
Relinking existing applications:
You can now configure Visual COBOL to check whether applications created with older releases must
be relinked. If the application uses an older version of the C run-time, Visual COBOL can automatically
relink the existing executable or .dll to the new version of the C run-time without the need to recompile
the application first.
If a project needs relinking, Visual Studio displays a message in the status bar (Visual Studio 2015 and
2017) or a dialog box (Visual Studio 2013) providing an option for you to choose and relink the project.
For more information see Related Information at the end of this topic.
Application Server JCA Support for Enterprise Server
Back to Top
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 39
This release includes the following enhancements:
COBOL Resource Adapters now support WebSphere 9.0 and WebLogic 12.2.1.
Tomcat 7.0 support for servlet generation with J2SEBeans.
NullSearch utility - for COBOL resource adapters, this new utility provides assistance in locating NULL
fields in mappings passed to Enterprise Server. When a large number of arguments is provided in the
parameters passed to Enterprise Server, it is difficult to locate NULL fields, which are not allowed. The
NullSearch utility isolates NULL fields, so the Java application can be corrected.
For more information see Related Information at the end of this topic.
Build Tools for Windows
Back to Top
This release includes Visual COBOL Build Tools for Windows, a separately-installable component of Visual
COBOL that has been designed to be used in environments where you want to work with your COBOL
projects but you don't want the overheads associated with the Visual Studio IDE.
Build Tools provide a lightweight, easy-to-install development environment that is well-suited for use in
Docker containers and continuous integration or continuous delivery systems.
For more information see Related Information at the end of this topic.
Code coverage
Back to Top
This release provides the following enhancements:
In Visual Studio, the Micro Focus Code Coverage window now offers a File View in addition to the
existing Program View.
For more information see Related Information at the end of this topic.
Codeset support
Back to Top
Support has been added to enable codeset mapping to additionally be configured to use IBM's Conversion
Tables directly instead of the Micro Focus supplied tables. You need to download IBM's conversion tables
from IBM's Web site. Then you can use the MFCODESET environment variable to convert between IBM's
CCSIDs.
For more information see Related Information at the end of this topic.
Compiler directives
Back to Top
The following Compiler directives are new in this release:
DISPSIGN - determines the display output of numeric fields with included signs, under an IBM
mainframe dialect only.
GNTLITLINKSTD - stops the suppression of call-convention 8 when both call-convention 2 and call-
convention 8 are in effect for a .gnt file in an Intel x86 32-bit environment.
ILSMARTANNOTATE - adds attributes to the items generated by ILSMARTLINKAGE, based on their
data type, which can be used to identify the size or range of the item in COBOL.
ILSMARTTRIM - trims any trailing spaces from a string item returned by the get property associated
with an alphanumeric item processed by ILSMARTLINKAGE.
MAINFRAME-FLOATING-POINT - specifies the format of a program's floating point data items: either
IBM hexadecimal format or IEEE format. This directive is supported in managed code only.
40
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
The following Compiler directives contain new parameters in this release:
CHECKDIV - a new parameter 'ACOS' now emulates a divide by zero operation on an ACOS
mainframe system: the quotient and the remainder are set to the value of the dividend.
OOCTRL - a new parameter, L, specifies whether to include directory location comments in .cls
and .ins inheritance files.
NUMPROC - a new parameter 'ACOS' provides partial compatibility with the behavior of NEC ACOS
COBOL processing of invalid data in USAGE DISPLAY data items and invalid sign information in
USAGE COMP-3 data items.
For more information see Related Information at the end of this topic.
Data File Tools
Back to Top
It is now possible to export any filtered results. When filtering a data file, you can use the results to create a
new data file - click Search > Export Results when a filter is applied to save the filtered records to a new
file. You can:
Save the filtered records to a new file.
Save the records that match the specified filter (such as customer information or orders).
Download a subset of the data from a remote file.
Save a small portion of the data for testing purposes.
For more information see Related Information at the end of this topic.
Database Connectors
Back to Top
Database Connectors for Microsoft SQL Server
The following enhancements have been made to Database Connectors for Microsoft SQL Server:
Database Connectors for MSSQL is now available on Linux/UNIX platforms where MSSQL server is
supported; see the Microsoft SQL Server support web pages for an up-to-date list of specific supported
platforms.
With Database Connectors for Microsoft SQL Server, you can connect to both an instance running on a
Linux machine, or an instance running on a Windows machine. You can also use it to connect to an
instance of SQL Server running on Linux from a Windows client. (Note that setting up SQL Server on a
Linux machine is beyond the scope of our documentation.)
See To install Database Connectors for Microsoft SQL Server for more information.
Database Connectors for MSSQL now supports connecting to a Microsoft SQL Server running a multi-
subnet failover cluster. To use this feature requires changes to the connection string sent to the server,
which is accomplished by using the following 4 new configuration variables:
A_MSSQL_MULTI_SUBNET_FAILOVER - set to TRUE to enable a connection that supports
multisubnet failover support. If set to FALSE (the default) support is not enabled, and the other
configuration variables have no effect.
A_MSSQL_FAILOVER_PARTNER - the name of the failover partner used. Refer to your SQL Server
documentation for valid values.
A_MSSQL_FAILOVER_PARTNER_SPN - the name of the failover partner SPN used. Refer to your
SQL Server documentation for valid values.
A_MSSQL_SERVER_SPN - the name of the Server SPN. Refer to your SQL Server documentation
for valid values.
Database Connectors for MSSQL now supports columns of type GUID for existing SQL tables. A new
configuration variable, A_MSSQL_IGNORE_GUID_COLUMNS, determines the behavior when handling
existing tables that contain a column of this type.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 41
Note: Database Connectors for MSSQL cannot create a new column of this type.
Database Connectors for ODBC
Database Connectors for ODBC is now available, allowing you to use ODBC connectivity to access
supported databases from your COBOL programs. See Database Connectors for ODBC for more
information.
For more information see Related Information at the end of this topic.
Debugging
Back to Top
This release includes the following enhancements:
Enhanced .NET debugging in Visual Studio 2017 - a number of advanced debug features are now
available when debugging .NET COBOL code. Features include support for performance tips,
backwards debugging, an expression evaluator, integration with the Diagnostic Tools window, remote
debugging of .NET COBOL applications, as well as support for IntelliSense in the debug windows (such
as the Immediate, Watch, and QuickWatch windows).
For more information see Related Information at the end of this topic.
Docker
Back to Top
This release provides support to enable you to run your COBOL applications in Docker containers, taking
advantage of the many benefits offered by the Docker platform such as portability, performance, agility,
isolation, and scalability.
For more information see Related Information at the end of this topic.
Documentation on working with large applications
Back to Top
The product help now includes a new section, Working with a Large Code Base, that includes
recommendations and best practices for working with large applications inside the IDE. It includes tips on
how to structure your projects, how to optimize the performance of the IDEs, and step-by-step workflow
showing how to move an existing legacy application into Visual COBOL.
For more information see Related Information at the end of this topic.
Enterprise Server
Back to Top
The following enhancements have been made to Enterprise Server:
Conversation filtering - the Enterprise Server Communications Process (MFCS) can now restrict access
to listeners by client address. You can specify any permitted or forbidden addresses either by IP
address, network mask, or domain name, and use wildcards. Filters can be applied to individual
listeners, communications processes, or to entire regions. More specific filter rules override any general
ones.
The Enterprise Server Security Facility now starts throttling Verify requests when it receives more than
100 requests per second.
This can be used to limit the effectiveness of denial-of-service and brute force attacks. You can
configure the value where throttling occurs. See Verify Request Throttling for more information.
42
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
(Technology Preview only) Support for adding, deleting, and modifying XA resources in a live Enterprise
Server region.
It is now possible to add, edit, or delete XA resources while an enterprise server instance is running.
Any changes made come into effect after any in-flight transactions have completed. The ability to make
these changes in a live environment comes under the control of the existing enterprise server
permissions.
XA-compliant Resources (XARs) - this release provides enhanced CTF tracing that allows more flexible
reporting of warnings and errors on the RM switch module level.
A new Communications Server resource class - enables you to control the access to the Enterprise
Server Console Log and Communications Server Log when external security is in effect for an
enterprise server region; see Resource Classes for Communications Server for more information.
Improved catalog availability - there is now an improved resilience to temporary communication issues
with the catalog and error reporting enabling a region to stay active if a region has multiple catalogs
defined and one of the catalogs is not available.
Enhanced SSL/TLS certificate support - for communications with TLS (formerly SSL), additional
certificate and key file formats are supported. Servers may now be configured with both an RSA and an
ECC key and certificate.
Enhanced SSL/TLS cipher configuration - for communications with TLS (formerly SSL), the permitted
cipher suites and their preferred order can now be configured. The minimum size of Diffie-Hellman
groups for DH key exchange can also be configured. The defaults have been made more secure.
The Historical Statistics Facility (HSF) now enables you to write user-defined data to the records
produced within a .csv file. Use the ES_WRITE_CUSTOM_HSF or ESCSTHSF library routines within
your COBOL programs to define the custom data, and use the ES_HSF_CFG environment variable to
configure up to five custom fields in the generated record.
You can also use the ES_HSF_CFG environment variable to configure the number of CICSF, TSQ, and
TDQ fields that are written to the record.
For more information see Related Information at the end of this topic.
File Handler
Back to Top
This release provides the following enhancements:
The DFSORT and SYNCSORT emulations now support the NULLOFL parameter of the OUTFIL
statement.
The ASCIISOSI configuration option is now available. It adds the required SOSI characters to the
relevant EBCDIC DBCS character strings in order for them to be displayed or written out correctly.
For more information see Related Information at the end of this topic.
Library routines
Back to Top
The following library routines contain new functionality:
CBL_GET_OS_INFO - this library routine can now detect if the program is running within a Docker
container: cblte-osi-rts-capabilities parameter, bit 7.
For more information see Related Information at the end of this topic.
Micro Focus Unit Test Framework
Back to Top
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 43
This release provides support for the following functionality:
Generation of unit test stubs for selected entry points within your program.
Support has been added to Visual Studio for unit testing of managed procedural projects.
For more information see Related Information at the end of this topic.
OpenESQL
Back to Top
This release provides the following new features:
Support for SQL Server 2017.
The SQL(TRANSACTION) compiler directive has been enhanced to clearly define transaction
boundaries.
A new SQL(NOWHERECURRENT) compiler directive that allows you to define updateable cursors that
do not do positioned updates or deletes with PostgreSQL or MySQL.
Larger communication area (PID) that accommodates longer plan and program names.
SQL(OPTIMIZECURSORS) has been enhanced for consistent and better cursor performance across all
OpenESQL backends.
For more information see Related Information at the end of this topic.
Platform support
Back to Top
Note the following changes in platform support for this release:
Windows 8 and Windows Server 2012 are no longer supported for developing applications. They are
still supported for deployment.
For more information see Related Information at the end of this topic.
What was New in Visual COBOL 3.0
Visual COBOL 3.0 provided enhancements in the following areas:
Integration with Visual Studio
Application Server JCA support for Enterprise Server
Azure support
Building applications
COBOL language enhancements
Code analysis
Code coverage
Compiler control
Data File Tools
Database access - DB2
Database access - MySQL
Database access - OpenESQL
Documentation
Enterprise Server
Interface Mapping Toolkit
Micro Focus Unit Testing Framework
XML processing
44
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Integration with Visual Studio
Visual COBOL 3.0 provided enhancements in the following areas:
Integration with Microsoft's Visual Studio 2017, the most recent version of the world’s most popular
integrated development environment (IDE) for the Windows platform, offering significant benefits for
developers and businesses developing software for Windows.
COBOL Editor:
Brace completion - a closing quote mark or bracket is automatically inserted when you type the
opening quote mark or bracket at the end of a line.
Brace matching for IF and EVALUATE statements - clicking on any of the clauses of these
statements highlights the opening and closing statements and all clauses. Use CTRL + ] to move the
cursor to the next clause in the statement.
Collapse to definitions - closes all sections, entry points and methods in an open file. Use the
Outlining > Collapse to Definitions editor context menu command.
Colorization is now available for QuickInfo, completion tooltips and signature help.
Completion of statements - IF and EVALUATE statements are now automatically aligned and
completed.
Indentation - smart indentation is now available to control how lines indent within IF and PERFORM
statements and after continuation statements.
Locate definition,
, on the COBOL toolbar enables you to search for data items and identifiers by
specifying any string of characters that might be part of their name. This command replaces Edit >
Go To Location.
Outlining - outlining is now available for 01 level group items (for expanding and collapsing the entire
group)
Quick actions - Visual COBOL now supports Visual Studio's quick actions for rename refactoring,
and finding or creating missing copybooks.
Tooltips are now available for managed COBOL members.
COBOL toolbar - the commands on the COBOL toolbar have been updated in order to optimize your
editing experience. A number of commands (renumber and unnumber) have been removed from the
context menu in the editor and are now only available from the toolbar.
Directives determination - there is now a preview dialog box when the IDE scans your sources for
Compiler directives. This enables you to review and approve the directives before they are set.
Error reporting - you can now sort the errors and warnings in the Error List window by their COBOL
error code.
Import, export and synchronization of the IDE options - you can now export a number of the COBOL
global options as a Visual Studio .settings file. You can import the file into other instances of Visual
COBOL.
Visual COBOL for Visual Studio 2015 and later now supports the automatic synchronization of a
number of COBOL settings across the copies of Visual Studio installed on different machines. The
settings are synchronized through your MSDN account. See the MSDN for more details and for
information on any restrictions to the functionality.
Project Details window - provides a number of enhancements, including performance improvement. It
is now possible to filter on project or solution, perform a search, and sync with Solution Explorer.
Tooltips are available in the Overrides column to show the override directives.
Net Express import wizard - provides a new option for including copybooks in a project.
Rename refactoring - this release introduces rename refactoring for COBOL code that can help to
improve the readability of COBOL elements or make their purpose clearer. You can rename elements
such as variables and identifiers, section and paragraph names, classes, and methods across a
program or a solution.
Support for standalone files - various improvements have been made to how you work with files that are
not part of a project:
When you first open a standalone file, the editor displays an alert bar with options to browse for a
symbols (.idy) file to use to compile the standalone file or to configure the Compiler directives.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 45
You can now use the file's properties window to edit the Compiler directives and to specify options
for debugging.
In previous versions of Visual COBOL, standalone files were known as "single files". References to
"single files" in the IDE and the product help have been changed to "standalone files".
Application Server JCA support for Enterprise Server
Restriction: This feature applies only when the Enterprise Server feature is enabled.
In Visual COBOL 3.0, EJBGEN has been updated to generate an EAR file as a part of the COBOL
deployment process, which enables you to deploy EJBs to Java Application Server.
Azure support
Visual COBOL now supports the following versions of Microsoft Azure SDK - version 2.9.6 with Visual
Studio 2013 and version 3.0 with Visual Studio 2015 and later.
Building applications
Visual COBOL 3.0 provided the following improvements:
Support for faster, parallel building on multi-CPU machines - support has been added for multi-
processor compilation of the sources in native COBOL projects on multi-CPU machines.
You can specify the maximum number of concurrent compilations from the IDE preferences - Tools >
Options > Micro Focus > Projects. In Visual Studio, multi-processor compilation must also be enabled
in the project's properties.
COBOL language enhancements
Visual COBOL 3.0 includes the following enhancements to the COBOL syntax:
The DISPLAY-OF and NATIONAL-OF intrinsic functions are now able to process conversions using any
IBM CCSID value. See To install a CCSID Table for details on installing the required CCSID table.
The following enhancements are available in managed COBOL:
To avoid an exception being thrown if an explicit conversion fails, use the AS IF syntax, which results in
the target object being set to null and no exception thrown. See cast expressions in the Expressions
topic for more information.
Code analysis
Visual COBOL 3.0 provided the following improvements:
A new group of predefined rule sets for 64-bit readiness is now included in Visual COBOL.
Support for importing code analysis reports produced with one of Micro Focus's advanced tools for code
analysis, Enterprise Analyzer or COBOL Analyzer.
Code coverage
The following improvements are available within the IDE:
Information about unexecuted programs - the code coverage reports in the Code Coverage window
now show the unexecuted programs.
Code coverage support for standalone COBOL files - you can import existing code coverage reports in
the Code Coverage window and use it to supply code coverage information for standalone files.
If you are using Test Coverage from the command line, you can now use the following features:
46
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
A new Compiler directive, COLLECTION - the directive enables test coverage to gather information
about unexecuted programs. In the IDE, this directive is automatically set on a project when you enable
code coverage for it.
A new command line utility, tcutil - the utility enables you to convert the test coverage binary results file
into XML format.
It is now possible to integrate test coverage in a Continuous Integration (CI) system. You can use tcutil
and an XSLT processor to transform test coverage data into a format suitable for including in a CI.
Compiler control
The following Compiler directives are new in this release:
COLLECTION - provides a mechanism for code coverage to identify unexecuted programs.
ILSTDLIB - helps you to ensure that your .NET COBOL code compiles with the correct version of
the .NET Framework Microsoft Common Object assembly mscorlib.dll. When building from Visual
Studio or using MSBuild to compile a COBOL project, the NOILSTDLIB directive is set, and an ILREF is
generated pointing at the version of mscorlib appropriate for the target framework selected in the
project's properties.
The following Compiler directives have been updated:
ALIGN - this directive has new parameters (FIXED and OPT) that can be used in conjunction with the
integer taken, which can aid performance. The default is ALIGN"8 OPT"; see the Comments section of
the ALIGN Compiler directive topic for details of its affect on memory boundaries.
ARITH - this directive emulates the IBM mainframe option of the same name. Defines the maximum
number of digits for numeric data items.
FASTINIT - this directive is now on by default when setting the MF dialect; it remains not set by default
for other dialects.
SSRANGE - this directive now has an additional option (3), which permits zero-length reference
modified items at run time when bounds checking.
XMLPARSE - includes a change in the way entities are processed when XMLPARSE"COMPAT" is set
Data File Tools
The Data File Tools editor previously provided (from Visual COBOL 2.3) as a Technology Preview item was
supported at GA level from Visual COBOL 3.0.
Visual COBOL 3.0 provided the following enhancements to Data File Tools:
Opening files in shared mode - it is now possible to switch between read-only shared and edit modes.
While a file is open in shared mode, others users can only open it in shared mode to ensure data
consistency between users.
Enterprise Server-level of security when accessing files - there is an improved level of security when
exchanging data between Data File Tools and the targeted enterprise server instance. Users must now
provide a user ID, group and a password when they try to access and view datasets in enterprise server
instances. These are used for authentication and authorization checks to provide the same access level
as Enterprise Server.
Opening datasets using SSL - communication to a region is now possible using SSL. To enable the SSL
communication, you need to provide a Java trust store which contains either a CA root certificate or a
self-signed certificate of the region that it is communicating to. Java and the targeted region SSL
configurations need to meet each other's standards in order for the communication to succeed.
This feature enables you to secure the information exchange between Data File Tools and the targeted
enterprise server.
Auditing of access and updates on datasets - Audit Manager now audits the access and updates on
datasets via Data File Tools.
Support for existing .pro files - enables you to use your existing editor profiles.
Support for existing .str files - enables you to use your existing COBOL structure files.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 47
Automatic timeout - if no internal operations or external actions (such as a mouse click) have been
detected for 30 minutes, Data File Tools now displays a countdown message. If the user does not take
any decision within the specified period, Data File Tools closes all opened files.
Database access - DB2
Visual COBOL 3.0 provided a new DB2"QUALIFY-CALL" Compiler directive that enables stored procedure
invocations to include a schema name.
Database access - MySQL
Visual COBOL 3.0 provided support for MySQL with ODBC.
Database access - OpenESQL
Visual COBOL 3.0 provided the following new features:
Statement prefixes for the SQL"CHECK" Compiler directive that enable the creation of temporary tables
and other SQL objects at compile time, ensuring full SQL syntax checking during compilation.
SQL"OPTIMIZECURSORS" Compiler directive that enhances processing for traditional embedded SQL
cursors that use WITH HOLD and FOR UPDATE clauses.
SQL"CLOSE_ON_COMMIT" Compiler directive to leave cursors open for further result set processing
after a commit.
SQL"GEN-SQLCA" Compiler directive that generates an SQLCA similar to the z/OS DB2 directive
STDSQL"YES".
Documentation
The following new section have been added to the product help:
Where do I start? - located on the launch page of the product help, this section provides the information
you need in order to get started depending on which aspects of the product you need to get to grips
with first.
Enterprise Server
Improvements are available in the following areas:
Integration with Visual Studio
Exporting an enterprise server definition from the IDE in XML format.
Importing an enterprise server into the IDE using its definition file.
In Visual Studio, it is now possible to configure an enterprise server to produce a core dump file directly
from the IDE, from the server properties.
iFileshare
iFileshare is no longer considered an Early Adopter Program, and contains the following enhancements in
this release:
An improved failover and recovery process. iFileshare now supports full recovery of nodes in the group.
For high availability (HA-VSAM) groups, servers can now rejoin the group without the entire group
having to be restarted. In addition:
A primary failover now results in a takeover from the most suitable node.
If configured, external clients will automatically reconnect to the new primary and will issue a
notification if the transaction has been lost.
A failed node, when restarted, will rejoin the group, recover its files and request a log update from
the current primary. Once this task has completed it will be considered an active hot-standby and will
continue to process replication requests as normal.
48
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Users will experience a higher level of uptime/availability with their Fileshare configuration and will be
able to recover from errors more easily.
A new exit procedure, ifsexitproc.cbl, can be configured to automate some aspects of iFileshare
behavior.
The iFileshare Control page in ESMAC contains details of the current iFileshare high availability group.
The following new iFileshare-specific environment variables are available:
FSWRKDIR - enables you to specify the Fileshare working directory, overriding the default, which is
the system directory of the region.
FSCHKLFH - determines if a check is performed when a high availability group is started, to test the
consistency of the data files within the group.
The database reference file (dbase.ref) now supports wildcard matching for filenames, allowing you
to perform operations on multiple files at once; for example: fs /d dbase.ref /f data\* adds
the entire contents of the data directory to the database reference file.
Long user IDs and passwords:
Enterprise Server now supports user IDs and passwords of up to 100 characters. It is possible to map
IDs from long to short (or vice versa) to enable compatibility with programs that do not support long
names.
SHA-256 support in DemoCA:
By default, the Demonstration Certificate Authority (CA) now signs certificates with SHA-256. This
ensures that the demonstration or evaluation certificates will be accepted by modern browsers and
other software that has enhanced security requirements.
Syslog auditing:
Enterprise Server now supports auditing using syslog events, which can be consumed by a wide range
of Security Information and Event Management (SIEM) products. This replaces the Audit Manager
auditing solution. Syslog auditing provides a much more efficient auditing mechanism, with significantly
less impact on overall speed.
Interface Mapping Toolkit
The Interface Mapping Toolkit (IMTK) contains the following enhancements in Visual COBOL 3.0:
Cross Origin Resource Sharing (CORS) support for REST Web services, enabling Web service access
from a CORS-supported Web browser.
The Micro Focus Unit Testing Framework
The Micro Focus Unit Testing Framework is now available from within the IDE. It includes much of the
architecture you would expect of an xUnit framework to create, compile, run and debug unit tests, including
the following features:
A unit test project template.
A test creation wizard that enables you to generate tests from your source code.
Code snippets for each element of a test case.
Support for running tests with Code Coverage enabled.
The Micro Focus Unit Testing window, where you can manage your test runs and view test output.
There has been a number of enhancements to the command line version of the Micro Focus Unit Testing
Framework. Support has been added for:
Generating NUnit-style reports.
Running test fixture files using Apache Ant.
Applying traits to your test cases, then performing a test run based on those traits.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 49
Applying a high, medium, or low priority to test cases, which affects the order in which they are run.
Adding coded command line options directly into your test code.
Using a test run-specific configuration file, in which you can set environment variables.
XML processing
XML PARSE now works in a purely managed COBOL environment. It is now supported in JVM COBOL
and, in both .NET and JVM COBOL, it has a fully managed implementation. XML PARSE working without
calling out to native code ensures it can be used in restricted rights environments.
What was New in Visual COBOL 2.3 Update 2
Visual COBOL 2.3 Update 2 provided enhancements in the following areas:
Integration with the Visual Studio IDE
Building applications
COBOL language enhancements
Classic Data File Tools
Compiler directives
Debugging applications
Dialog System GUI
File handling
Library routines
Integration with the Visual Studio IDE
Visual COBOL 2.3 update 2 provided the following enhancements in the integration of Micro Focus COBOL
with the Visual Studio IDE:
A new menu command SQL Option for DB2 on the Tools menu enables you to access all the SQL
Option for DB2 utilities.
It is now possible to specify options for compiling native resource files (.rc) by accessing the file's
properties from within the IDE.
Editor improvements:
Colorization of the code in the ToolTips for collapsed regions in the COBOL editor has been added.
The Time and Date Warp options are now available on the Run-Time Configuration tab when
editing an application configuration file for native COBOL projects.
Go To Next Method and Go To Previous Method editor context menu commands are now
available for native Object-Oriented and for managed COBOL code.
Building applications
It is now possible to use the 64-bit version of MSBuild to build COBOL projects.
COBOL language enhancements
Numeric, edited and external floating point items can now specify USAGE NATIONAL when the
NATIONAL"2" Compiler directive is in effect. Signed numeric items must be specified with the SIGN IS
SEPARATE clause.
Classic Data File Tools
A new command line utility is available which enables you to initiate the following actions: open data files,
create or open record layout files, create or open segment layout files, and open IMS databases using a
DBD or PSB file. Note that although you can initiate these actions from the command line, you must
complete them from within the IDE.
50
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Compiler directives
The following Compiler directives are new in this release:
COMMAND-LINE-LINKAGE - enables you to call a program and pass the command line to the main
program as a parameter to be accessed via the Linkage Section. This offers equivalent functionality to
the command_line_linkage tunable, which has now been deprecated.
EBC-COL-SEQ - controls the behavior of an EBCDIC collating sequence, specified in a
NATIVE"EBCDIC" program. EBC-COL-SEQ"1" (the default) maintains use of the long-standing fixed
(platform-independent) EBCDIC collating sequence. EBC-COL-SEQ"2" prompts use of the latest
CODESET table, which varies according to platform and user-controlled MFCODESET environment
variable setting.
NATIONAL - enables you to specify numeric, edited and external floating point items as USAGE
NATIONAL.
Debugging applications
You can configure the debug tooltip for subscripted OCCURS items to either display the elements of
arrays or to display the value of the current expression. To do this, right-click in the editor, click COBOL
Debug Tooltip Style and either enable or disable Show COBOL OCCURS or reference modification
value.
For more information see Related Information at the end of this topic.
Dialog System GUI
Installing the version of the Compatibility AddPack for Visual COBOL provided with this release adds a new
menu item, Micro Focus Dialog System, to the Tools menu of Visual Studio for starting the Dialog
System GUI from within the IDE.
For more information see Related Information at the end of this topic.
File handling
MFJSORT ICETOOL now supports the USING parameter in the SELECT operator.
For more information see Related Information at the end of this topic.
Library routines
The following library routine contains new functionality:
CBL_GET_PROGRAM_INFO - a new function (function 10) has been added for native COBOL which
returns the path and program name, or the program name only of a particular program.
For more information see Related Information at the end of this topic.
What was New in Visual COBOL 2.3 Update 1
Visual COBOL 2.3 Update 1 provided enhancements in the following areas:
Integration with the Visual Studio IDE
Code Analysis
Code Coverage
Compiler directives
Database Access - OpenESQL
Data File Tools
Debugging applications
Dialog System Applications
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 51
Editor writing assistance
Enterprise COBOL 5.2
File Handling
Library routines
Managed COBOL Syntax
Native COBOL Syntax
RM/COBOL compatibility
Rosetta Stone for COBOL, .NET and Java Developers
Windows Azure
Integration with the Visual Studio IDE
Visual COBOL 2.3 Update 1 provides the following enhancements in the integration of Micro Focus
COBOL with the Visual Studio IDE:
The Go To location and Go To Procedure Division commands are now available from the Edit menu.
In addition, the Go To Procedure Division has a shortcut key - Ctrl+K, Ctrl+J.
Object Browser - now provides support for .NET COBOL code. You can view the members of objects in
your project and the definition of classes and methods as specified by the XML documentation
comments in your code. The window also provides support for the Go To Definition command.
A new search option, Current COBOL Program, has been added to the Find in Files dialog box. This
enables you to search in the COBOL program currently opened in the editor and in any copybooks
referenced by that program.
Solution Explorer - a new context menu command, Add Folder to Copybook Paths, is now available
for the subfolders of your projects. This enables you to add the subfolders to the copybook path of the
project.
Editor improvements:
Line numbers - a new option for configuring the increment for the COBOL and the standard line
numbers when you use Renumber and Unnumber has been added. You can specify the increment from
Tools > Options > Text Editor > Micro Focus COBOL > Line Numbering.
Outlining - a new IDE option enables you to switch outlining in the COBOL editor on or off. See the
Enable Outlining option available on the Advanced page in Tools > Options > Text Editor > Micro
Focus COBOL.
Program breakpoints - a new context menu command, Add COBOL Program Breakpoint, enables you
to set program breakpoints directly from the editor.
Code Analysis
This release provides support for performing code analysis at the command line using Microsoft's MSBuild
utility which enables the integration of code analysis in CI frameworks.
Support is available for various MSBuild parameters. You can use MSBuild with the /p switch and with the
following Micro Focus-specific command line options:
RunMicroFocusCodeAnalysisAfterBuild - controls whether code analysis is performed with
MSBuild or not regardless of what code analysis options are specified the project's properties.
ActiveRulesets - specifies which rule sets should be used when running code analysis from the
command line.
Code coverage
The code coverage reports are now integrated with the IDE and with the editor. Features include:
A new Code Coverage window showing the statistics of what percentage of the code has executed.
Navigation from the Code Coverage window to the missed and covered blocks in the editor.
52
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Colorization in the editor of blocks that were executed (covered blocks) or not (missed blocks).
Compiler directives
The following Compiler directives are new in this release:
ILMAIN - you now specify the main entry point for the executable program, which can be specified either
as class-name::method-name, or just as method-name. For example, ILMAIN"classA::methodB" or
ILMAIN"methodB". The first format can be used to distinguish between multiple methods with the same
name in different classes.
OOCTRL - a new parameter, +/-A, as been added. Set this parameter to -A to allow ActiveX controls in
your COBOL application to use classes and methods in the OLE class library. The default is +A, which
does not allow it
Database Access - OpenESQL
This release provides the following new features:
Demonstrations for using OpenESQL in .NET applications. To view these demos, see the SQL
demonstrations in the Visual COBOL Samples browser.
Support for the Oracle fully managed ODP.NET driver.
Data File Tools
This release provided improved security and increased support for more file types. Features include:
Certain aspects of Enterprise Server security are honored when you attempt to access data sets. If the
Enterprise Server region has security enabled, logon details must be authenticated before you can
access the data set. If the details are unable to be authenticated, access is denied.
When using a record layout, certain data is now validated at field level (to ensure the contents is
compatible with its picture string ) and record level (to ensure the record length matches the layout
size).
Full editing support has been added for variable block sequential files and relative files. Full editing is
also available for line sequential files, as long as they do not contain any binary data
Debugging applications
You can configure the debug tooltip for subscripted OCCURS items to either display the elements of
arrays or to display the value of the current expression. To do this, right-click in the editor, click COBOL
Debug Tooltip Style and either enable or disable Show COBOL OCCURS or reference modification
value.
Dialog System Applications
The version of the Compatibility AddPack for Visual COBOL released with Visual COBOL 2.3 Update 1
enables you to give your Dialog System applications a refreshed user interface. Features include:
Support for a modern look and feel for Dialog System applications.
Dialog System now supports Microsoft's visual styles for controls and fonts to give your existing Dialog
System applications a modern look that is native to the Windows version the applications are running
on.
You use a new environment variable, MFVSSW, to switch the visual styles on. Alternatively, for
applications that compile to an executable, to switch the new styles, you can add an application manifest
file to the applications' project files.
See the section Modernizing Dialog System Applications in your product help for details on how to
enable the visual styles, and for information about any possible changes in behavior or appearance of
the common controls.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 53
A modern look and feel of the Dialog System painter.
There are new configuration options in the Dialog System painter for applying the visual styles and fonts
to the painter.
Visual Studio project templates for creating Dialog System applications with a modern look out-of-the
box.
The Compatibility AddPack for Visual COBOL now installs the following new project templates:
Dialog System Application (Modern) for creating Dialog System applications that use Microsoft's
visual styles by default.
Dialog System Application (Classic) for creating Dialog System applications that use the classic
fonts and look.
Additional samples:
All of the Dialog System samples previously available with Net Express are now included with the
Compatibility AddPack for Visual COBOL. The samples have been converted to Visual Studio solutions.
Editor writing assistance
Visual COBOL 2.3 Update 1 provides the following enhancements in the editor in Eclipse:
Colorization of conditional compilation regions - by default, inactive code is now colored the same as
Compiler directive elements. Inactive code is defined as code within conditional blocks that do not
evaluate with the applied Compiler settings.
$REGION statement - support is provided for the $REGION Compiler-control statement. You can use
$REGION - $END-REGION to surround blocks of code that you want to fold or expand in the editor.
AutoCorrect - you can configure the editor to automatically fix the most frequently misspelled words. You
use the IDE preferences to specify a list of words that you sometimes mistype, and the correct spellings
for them. Whenever you misspell that word, the editor automatically replaces it with correct version. This
feature is enabled by default and can be configured from a new preference page in Window >
Preferences > Micro Focus > COBOL > Editor > AutoCorrect.
Enterprise COBOL 5.2
With the introduction of Enterprise COBOL 5.2, the following features were supported:
The VOLATILE keyword is supported within the data entry description; although, this is treated as
documentary. It has also become a reserved word when under the ENTCOBOL dialect.
Format 2 of the SORT statement no longer treats the COLLATING SEQUENCE clause as
documentary-only.
The SUPPRESS clause of the XML GENERATE statement has been enhanced.
The IBM z/OS JSON parser API, as documented for the IBM z/OS client web enablement toolkit.
File Handling
A new indexed file format, IDXFORMAT12, has been introduced to improve file maintenance and
recovery procedures when using the rebuild utility. This file format is similar in structure and use to
IDXFORMAT8. Where the two formats differ is that an IDXFORMAT12 file has an accompanying side
file (.idx file) containing the indexed key information.
You can use this type of file with the new rebuild /q option. This rebuild process is considerably
quicker than other rebuild processes such as a data scrape or rebuild /p.
Faster SORT operations for fixed block records - when using the DFSORT emulation, the performance
when sorting fixed block records has greatly improved.
Library routines
The following library routine were new at this release:
54
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
CBL_CODESET_SET_MAPPING - enables you to change the codeset in effect.
CBL_RUNTIME_ERROR - forces an application to terminate with a run-time error condition.
PC_PRINTER_INFO_DOTNET (.NET COBOL only) - enables the access to the native Hdc for a printer.
Managed COBOL syntax
The following enhancements have been made to the managed COBOL syntax:
You can now create generic iterators.
You can now use the Profiler utility to obtain detailed statistics on the run-time performance of managed
COBOL applications.
Native COBOL Syntax
The following items are new features of the native COBOL syntax:
Class condition tests
New and updated class condition tests are available for DBCS, KANJI, and
JAPANESE.
RM/COBOL compatibility
The RM/Panels syntax is now supported in Micro Focus COBOL applications.
Rosetta Stone for COBOL, .NET and Java Developers
The product Help now includes a quick and easy to use syntax guide for developers who need to learn OO
COBOL syntax when modernizing COBOL applications for the Java or .NET platforms. The guide includes
side-by-side equivalent syntax for COBOL, C#, VB and Java.
Windows Azure
Visual COBOL support on Microsoft Azure has been updated to version 2.8 of the Microsoft Azure SDK.
Important:
Starting with this release, versions of the Microsoft Azure SDK earlier than version 2.8 are no
longer supported.
Support for the Microsoft Azure SDK is no longer provided in Visual COBOL for Visual Studio
2012. If you have COBOL Azure projects created with earlier versions of Visual COBOL for Visual
Studio 2012, to maintain them, use Visual COBOL for Visual Studio 2013 or 2015.
What was New in Visual COBOL 2.3
Visual COBOL 2.3 provided enhancements in the following areas:
General IDE enhancements
Building applications in Visual Studio
COBOL editor in Visual Studio
Code analysis
Code coverage
Command Line Compilation and Linkage
Compiler directives
Converting additional directives to project's properties
Data File Structure command line utility
Data File Tools (Technology Preview)
Database access
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 55
File handling
Library routines
Managed COBOL syntax
Micro Focus Unit Testing Framework
Microsoft Azure
Preprocessors
Profiler
REST service interfaces
RM/COBOL Compatibility
Single file support
Tunables
Updated run-time system
General IDE enhancements
In Visual Studio:
Menu items - the following Micro Focus utilities were previously available under the Tools > Micro
Focus menu and have been moved as follows:
ADO.NET Connection Editor - now accessed from View > Micro Focus SQL Tools.
OpenESQL Assistant - now accessed from View > Micro Focus SQL Tools.
OpenESQL Configuration Utility - now accessed from View > Micro Focus SQL Tools.
Web Service Client - now accessed by creating a new project of type "Web Service Client
Application from JSON/REST" - click File > New > Project > COBOL > Native > Web Service
Client Application from JSON/REST.
Managed COBOL project properties - a new setting, Expose group linkage items to managed code,
is now available on the COBOL tab in the properties of managed COBOL projects. Checking this sets
the ILSMARTLINKAGE directive that specifies that group linkage items in your code are to be exposed
as properties of a class. A related button, Options, enables you to also specify whether to remove
specific prefixes from the names of COBOL data items, whether to make the new classes serializable,
expose Linkage Section items as nested classes of the program class or to limit the property generation
to non-redefining elementary items.
Resetting the file properties - a new button, Use Project Defaults, on the file property pages of COBOL
files in native projects now enables you to reset the file properties of COBOL files in native COBOL
projects.
Building applications
Visual COBOL now supports Visual Studio's parallel builds for COBOL projects. Parallel building enables
you to build multiple projects faster on multi-CPU machines. Following this change, in order for your multi-
project solutions to build in parallel successfully, ensure that the project dependencies and build order are
set correctly for your solution using Project > Project Dependencies. For more information about parallel
building, see Tips on Building COBOL in your product help and your product Release Notes.
Note:
Parallel builds are not supported with Personal Edition licensing.
COBOL editor
The COBOL editor includes the following enhancements and new features:
Improved Intellisense writing assistance for COBOL in both native and managed COBOL:
Context sensitive suggestions - IntelliSense only shows suggestions that are relevant for the position
of the cursor in the code or for the type of project.
Enhanced completion lists - lists include any relevant COBOL verbs, clauses and words, copybooks,
code templates, data items and section and paragraph names.
56
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Intelligent assistance with completing statements - when you have entered a COBOL verb,
IntelliSense shows suggestions for the relevant clauses and identifiers that you can use to complete
the statement.
Automatic completion for single items - IntelliSense automatically inserts single suggestions in the
code.
Qualifying non-unique names - IntelliSense qualifies data items whose names are not unique.
Configuration preferences for IntelliSense - enable you to configure what suggestions appear in the
completion lists, whether suggestions are added in insert or overwrite mode, and the case of the
inserted words.
Snippets - code snippets are now included in the IntelliSense suggestions.
$IF-$ELSE-$END statement colorization - parts of a $IF Compiler-control statement that are not
executed are now colored in grey.
$REGION statement - support is provided for the $REGION Compiler-control statement. You can use
$REGION - $END-REGION to surround blocks of code that you want to folded or expand in the editor.
Copybook glyphs ( ) in the left-hand margin on a copy line - indicate that a copybook can be expanded
inline.
Creating copybooks from a selection of code - a new context menu command, Extract to Copybook in
the editor enables you to move a selection of COBOL code into a new copybook file. The file is added to
the project and the code in the original program is replaced with a COPY statement that refers to the
new copybook.
Expanded copybook view - provides indicators for read-only copybooks
Outlining - outlining is now available on comment blocks, paragraphs and on $REGION and $IF
statements.
Task List comments - the COBOL editor now provides support for Visual Studio-style Task List
comments in COBOL. Typing TODO, HACK or UNDONE in the code immediately after the declaration
of the COBOL comment (*>, *>> or * in column 7) creates a task that appears in the Task List window.
Code analysis
Visual COBOL now offers more advanced code analysis features and enables you to run various analysis
queries (rules and groups of rules called rule sets) against your code to ensure adherence to standards
such as standards for coding or performance.
You can run analysis rules against programs in a project in the IDE at user request or you can run analysis
rules at the end of a project's build.
Code coverage
Visual COBOL now provides support for code coverage of native COBOL applications directly from within
the IDE where code coverage uses the Test Coverage functionality. You can produce code coverage
reports for applications running in the COBOL run-time and for applications that run in Enterprise Server.
To produce reports, you need to enable code coverage in a project's properties, compile your application
and then run your application with code coverage to produce the relevant reports. For applications that
require an Enterprise Server instance, you start the enterprise server with code coverage.
Command Line Compilation and Linkage
When using the cbllink command to compile and link, there is a new -y option. Use this option to create
an executable that includes support to be able to run on Windows XP and Windows Server 2003.
Compiler directives
The following Compiler directives are new in this release:
EOF-1A
Treats a 0x1a character in the source file as the end of file.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio | 57
NLS-CURRENCY-
LENGTH
Specifies the number of bytes to allocate for the currency symbol in a PIC field.
NULL-ESCAPE
Treats a 0x00 character in the source file as an escape character for other non-
printable characters in the source code.
The following Compiler directives contain new parameters in this release:
DBSPACE
The new parameter "MIXED" extends the DBSPACE directive to be able to evaluate data
items in programs that contain a mix of single-byte and double-byte strings.
Converting additional directives to project's properties
The Update Project Properties utility allows you to convert additional directives in your project to project
properties. This option is presented on opening a project. You can select to not show this dialog again by
unchecking Check Additional Directives for project properties in Tools > Options > Micro Focus >
General.
Data File Structure command line utility
The Data File Structure Command Line (DFSTRCL) utility is a DOS-based command line utility that
enables you to create record layout (.str) files from COBOL debug information (.idy) files. You can use
the utility to process a single .idy file or batch process up to 100 .idy files.
Data File Tools (Technology Preview)
Note:
This is a technology preview feature only. It is being made available to allow you to test and
provide feedback on this new capability; however, this feature is not intended for production use and it
is not supported as such. Furthermore, Micro Focus does not guarantee that this feature will be
delivered at a GA level and if it is, then the functionality provided might differ considerably from this
technology preview.
The Data File Tools (Technology Preview) is a new standalone text editor in which you can create and edit
data files. By nature of it being a 'technology preview' product, it does not currently include all the
functionality that was available in the previous version of Data File Tools - now referred to as Classic Data
File Tools. If you require any of the functionality not provided in this version, you can still use the classic
version by accessing it in the usual way.
To run Data File Tools (Technology Preview), type mfdatatools2 from Visual COBOL's command prompt
or a terminal.
To use the new editor directly from the Visual Studio IDE, clear the Use classic data file tools check box,
available from Tools > Options > Micro Focus > Data File Tools. When cleared, the Data File Tools
(Technology Preview) version is used, when possible. When this editor does not support the action you are
attempting to complete, Classic Data File Tools is used instead. This check box is selected by default.
Database Access
Visual COBOL version 2.3 provides the following enhancements to database access:
COBSQL
Visual COBOL version 2.3 provides:
Selection and configuration of the Oracle Pro*COBOL preprocessor for compiling
COBSQL applications in project properties on the SQL tab.
Support for COBOL directives SOURCEFORMAT=TERMINAL and
SOURCEFORMAT=VARIABLE for Pro*COBOL applications.
HCO for
DB2 LUW
Visual COBOL version 2.3 provides:
58 | Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Support for MFHCO mode across all platforms by default via the new HCO "NOHCO"
DB2 compiler directive option. See the HCO DB2 compiler directive option topic for
details.
A new DB2 compiler directive option, OPTPER "NOOPTPER", that enhances
performance for CHARSET EBCDIC processing. See the OPTPER DB2 compiler
directive option topic for details.
A new DB2 directive option, BINDDIR, which specifies an alternative directory in which
to write the DBRM file created during compilation. See the BINDDIR DB2 compiler
directive option topic for details.
OpenESQL
ADO.NET
Connection
Editor
In this release:
The ADO.NET Connection Editor has been redesigned using a
series of Wizards that guide you through the processes of adding,
copying, and removing connections.
Context Help is now provided for the main window, and each
Wizard page and dialog box.
Date/Time
Processing
This release provides streamlined datetime processing for ODBC and
ADO.NET.
Performance
This release includes a new SQL compiler directive option, OPTPER
"NOOPTPER", that enhances performance for CHARSET EBCDIC
processing. See the OPTPER SQL compiler directive option topic for
details.
PL/I
This version provides 64-bit support for PL/I on appropriate platforms.
See Additional Software Requirements for details.
PostgreSQL
In this release, PostgreSQL 9.4 has been tested with OpenESQL and
OpenESQL Assistant with the following PostgreSQL software:
Server software
PostgreSQL EnterpriseDB version 9.4.1-3
Client software
psqlODBC driver version 09.03.04.00
Npgsql ADO.NET 4.0 driver version 2.2.5
PostgreSQL 9.4 has been tested with OpenESQL and OpenESQL
Assistant on the following Windows platforms:
Windows 32-bit
Windows 64-bit
Note: Micro Focus provides compatibility for PostgreSQL but
does not directly contribute to or support the PostgreSQL
open source project. Any issues relating to PostgreSQL
functionality should be addressed through an open source
support vendor.
SQL Server
Visual COBOL version 2.3 provides support for the SQL Server
OUTPUT clause.
XA Switch
Modules
In this release, the XA interface has been redesigned to provide:
Consistent look and feel for SQL Server, DB2, and Oracle user personalization
Consistent look and feel for both RM dynamic and static registration (SQL Server, DB2,
Oracle, generic one-phase commit)
Cumulative Changes from Net Express to Visual COBOL for Visual Studio | 59
Additional support for two instances of the same switch module using Web Services
applications via the new XAID compiler directive
Using a specified XA resource only with batch applications executing under Enterprise
Server
File handling
This release contains the following new configuration options:
ACUFH
Enables or disables the use of the ACU file handler (ACUFH), which is required to handle
Vision and RM/COBOL indexed files.
ESACUFH
Enables or disables the use of the ACU file handler (ACUFH) for file handling operations
running under Enterprise Server. ACUFH must also be enabled for this option to take effect.
Library routines
The following library routines are new in this release:
CBL_MANAGED_SESSION_GET_USERDATA
Retrieves user data saved in the current RunUnit.
CBL_MANAGED_SESSION_SET_USERDATA
Sets user data in the current RunUnit.
The following library routines contain new parameters in this release:
CBL_LOCATE_FILE
You can now specify a file name that is a null-terminating string, which has resulted
in three new values available for the user-mode parameter.
Managed COBOL syntax
The following enhancements have been made to the managed COBOL syntax:
The TYPE OF type-name[ANY...] syntax enables you to obtain the System.Type (.NET) or
java.lang.Class (JVM) object for a generic class, interface, or delegate.
The self:: or super:: syntax is no longer required to access inherited data within a subclass.
The ATTRIBUTE-ID syntax enables you to define new attribute types, which can be used in various
contexts.
Micro Focus Unit Testing Framework
Note:
This is a technology preview feature only. It is being made available to allow you to test and
provide feedback on this new capability, but it is not intended for production use and is not supported
as such. Furthermore, Micro Focus does not guarantee that this feature will be delivered at a GA level
and if it is, then the functionality provided might differ considerably from this technology preview.
During the preview, you are encouraged to share your feedback and experiences via the Micro Focus
community forum - https://community.microfocus.com/t5/Enterprise-Developer-User/bd-p/forumid-9).
The Micro Focus Unit Testing Framework is an xUnit style testing framework, available from the command
line, for procedural COBOL applications.
It includes much of the architecture you would expect in an xUnit framework. The test runner is a 32- or 64-
bit executable that you run from a Visual COBOL command prompt. A test fixture or suite is a COBOL
program compiled to .dll that can include the setup, the test case code, and the teardown associated
with the test case.
Test results are available in a number of formats. By default, results are displayed to screen and to a .txt
file, but you can use additional parameters on the command line to produce reports in JUnit format.
60
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Microsoft Azure support
Visual COBOL support for Microsoft Azure has been updated to version 2.6 of the Microsoft Azure SDK.
Support has been added to the product for making any future versions of the Microsoft Azure SDK
available before the next major release of Visual COBOL. Micro Focus will deliver support for these only
upon customers' requests.
Note:
2.3 HotFix 1 update: This HotFix provides support for version 2.7 of the Microsoft Azure SDK in
Visual COBOL for Visual Studio 2013 and 2015.
Preprocessors
Support has been added in the IDE for enabling and using multiple preprocessors with your projects.
A new page, Preprocessors, has been added to the project's and the files' properties of native COBOL
applications to enable you to choose one or more preprocessors to use when building your application and
to specify their order of execution.
New reporting capability is now available for user preprocessors: resp-main code 18 indicates that a buffer
contains a data name to be marked as modified by the immediately preceding preprocessed line. The data
name may be qualified and resp-more contains the column information for the reference.
Profiler
Visual COBOL now provides support for Profiler for native COBOL applications directly from within the IDE.
To produce reports, you need to:
1.
Enable Profiler in the COBOL property page for a project.
2.
Compile your application to apply the changes.
3.
Run your application with Profiler to produce the relevant reports.
REST service interfaces
RESTful service interfaces utilizing JSON as the media type in request and response messages are now
supported using the Interface Mapping Toolkit. This enables you to extend COBOL applications using
modern transport payloads and protocols.
RM/COBOL Compatibility
This release includes improved support for RM dialect applications. Please consult with Micro Focus before
considering a transition from RM/COBOL to Visual COBOL.
Single file support
The recommended way to work with files within Visual COBOL is to include them in a project. For
situations where you might want to quickly open edit a single file, Visual COBOL now provides support for
native COBOL files in the IDE when the file is not opened as part of a project. There is limited support for
the IDE editing, compiling and debugging features as full support requires a project file.
To enable full IDE support for single files, Visual COBOL provides a path for creating projects from them -
right-click such files in the editor, and click Create COBOL Project.
Tunables
Visual COBOL version 2.3 contains the following updates to tunables:
default_cancel_mode
A new parameter, and default, has been introduced for this tunable; see
default_cancel_mode for more information.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio | 61
subsystem_cancel_mode
A new parameter has been introduced for this tunable; see
subsystem_cancel_mode for more information.
Updated run-time system
COBOL Server has been updated to provide an execution environment capable of running applications that
were each built using different development products. A consequence of this is that If your application has
a main COBOL executable (.exe) that was built with a previous version of Visual COBOL, you should
ensure that the executable is rebuilt and packaged with the new run-time system. You can rebuild from the
IDE or the command line.
Other COBOL subprograms built with previous versions of Visual COBOL are not required to be rebuilt.
What was New in Visual COBOL 2.2 Update 2
Visual COBOL 2.2 Update 2 provided enhancements in the following areas:
Visual Studio
Character Set Enhancements
Code Analysis
Database Access
Micro Focus COBOL enhancements
External Security Facility (ESF)
Enterprise Server MQ-IMS Bridge
Tunables
Visual Studio
Visual COBOL 2.2 Update 2 provides enhancements in the following areas:
Call Hierarchy - support for the Call Hierarchy window has been enhanced and it now shows types and
members across the entire solution.
Debugging enhancements - includes enhanced support for the Autos windows for native and managed
COBOL, support for querying EBCDIC data in managed code, and support for the standard visualizers
for data items and groups in native COBOL.
Find All References - you can now configure the scope of the Find All References command. The
default behavior is to search for references in the current COBOL project and now, you can enable Find
All References to search for matches in all managed COBOL projects that are part of your solution.
Net Express Project Import wizard - now includes a number of usability enhancements.
Run-time configuration - you can now use the application configuration file, Application.config, in
native COBOL projects to set all run-time tunables.
Character Set Enhancements
The following character sets, available using the MFCODESET environment variable, have been enhanced
or added in this release:
Thai Extended (0066) - new
Korean (0082)
Simplified Chinese (0086)
Traditional Chinese (0886)
There are also a number of double-byte character sets that are now capable of mixed single-byte and
double-byte character conversion; see the definition of MFCODESET in Environment Variables in
Alphabetical Order for more information.
62
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Code Analysis
Visual COBOL for Visual Studio can produce the following COBOL reports:
Dead Code - finds unreferenced items or any piece of code that can't be reached during execution.
Unreferenced Data - finds any data items that are not explicitly referenced in the Procedure Division of a
program.
Undeclared Procedures - finds any procedures that are referred to but not defined.
Copybook Structure - displays the hierarchy of any copybooks defined in a program.
Program Statistics - provides general information, such as number of source code lines, number of data
items, and size of data items.
Unexecuted Procedures - finds any procedures that are defined but not referred to.
Database Access
The following new features are available in database access support:
COBSQL
In Visual Studio:
Pro*COBOL support - you can now select and configure the Pro*COBOL COBSQL
preprocessor for compiling COBSQL applications on the SQL tab in the project's
properties.
KEEPCOMP - the new KEEPCOMP directive resolves COMP/COMP-5 issues with
Oracle applications on little-endian platforms.
HCO for DB2
LUW
Visual COBOL version 2.2 Update 2 introduces GEN-HV-FROM-GROUP - a new DB2
ECM compiler directive option, that generates host variables for all elementary data items
when a multiple-level group variable is used in a FETCH or singleton SELECT DB2
statement.
OpenESQL
This version provides the following new OpenESQL features:
Support for SQL Server 2014.
New SQL Compiler directive options:
DETECTDATE=SERVER - resolves host variables alignment with column data
types in an SQL table.
GEN-HV-FROM-GROUP - generates host variables for all elementary data items
when a multiple-level group variable is used in a FETCH or singleton SELECT SQL
statement.
Sample applications - the following native COBOL SQL sample applications are new
with this version:
Get Diagnostics - demonstrates how to use GET DIAGNOSTICS EXEC SQL calls
to get diagnostic information from various DBMSs.
LOB Data Types - Demonstrates how to INSERT and SELECT LOB data in a native
application using various DBMSs.
XA switch
modules
Restriction: This feature applies only when the Enterprise Server feature is
enabled.
The following XA switch module updates are available in this version:
Oracle switch module:
Supports User Impersonation when statically registered.
Enables you to specify which XA resource definitions use User Impersonation.
Now compiled with one source file, rather than two.
SQL Server switch module:
Cumulative Changes from Net Express to Visual COBOL for Visual Studio | 63
Enables you to specify which XA resource definitions use User Impersonation.
Now compiled with one source file, rather than two.
Micro Focus COBOL enhancements
The following enhancements have been made to Micro Focus COBOL:
The following phrases have been added to the XML GENERATE statement:
NAME
TYPE
SUPPRESS
The following intrinsic functions have been added:
ULENGTH
UPOS
USUBSTR
USUPPLEMENTARY
UVALID
UWIDTH
External Security Facility (ESF)
The Enterprise Server External Security Facility (ESF) now supports caching the results of some security
queries. This can improve the performance of enterprise server instances and of the MFDS when they are
configured to use external security.
To enable caching, you need to set non-zero values for the Cache limit (maximum size of the cache) and
Cache TTL (Time To Live, or how long before a cached result expires) settings on the MFDS Security tab,
the Default ES Security tab, or on the Security tab for an individual enterprise server. (Currently, the
cache settings for Security Managers have no effect; you need to set cache parameters on one of the three
Security pages mentioned earlier.)
For more information, see http://supportline.microfocus.com/examplesandutilities/doxygen/caching.html.
Enterprise Server MQ-IMS Bridge
At Visual COBOL 2.2 Update 2 the Enterprise Server MQ-IMS Bridge was supported at GA level. It had
previously (from Visual COBOL 2.2 Update 1) been available as a Technology Preview item only.
Tunables
Visual COBOL 2.2 Update 2 includes the following new tunable:
reduce_java_signals - specifies the options that are passed to a JVM when mixing Java and COBOL.
What was New in Visual COBOL 2.2 Update 1
Visual COBOL 2.2 Update 1 provided enhancements in the following areas:
Visual Studio IDE
Micro Focus Heartbleed Update
ACUCOBOL-GT Compatibility
COBOL Source Information
Compare and Synchronization Monitor
Compiler Directives
Database Access
64
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Enterprise Server Integration in the IDE
Enterprise Server MQ-IMS Bridge (Technology Preview)
Environment Variables
Fileshare Recovery
Line Numbering for COBOL Programs
Managed COBOL Syntax
Rumba Integration with Visual Studio
Run-time Launch Configuration Files
Visual Studio IDE
Visual COBOL 2.2 Update 1 provided the following enhancements to COBOL support in the IDE:
Find All
References
The Find All References functionality now works for managed OO COBOL code.
Navigation You can now use Alt+Shift+Up Arrow (or Down Arrow) to navigate the variables in the
editor.
You can use the drop-down types and members to navigate to the different sections
(Linkage section, File section etc.) in your source files.
Project Details
Window
The Project Details Window now includes columns showing the COBOL dialect of
the files and the SQL properties set on them.
Run-Time
Configuration
You can now use the application configuration file (application.config) in
native COBOL projects to specify some additional settings such as the search
order for called programs, command line handling, or file handling. You can do this
from the new Run-Time Configuration tab.
When an executable is built using the IDE, the application configuration file is
automatically copied to the output folder and is renamed as <executable-base-
name>.exe.mfgcf.
Samples
Visual COBOL 2.2 Update 1 includes the following new samples:
Airport Demo (managed) - shows how to create a COBOL WCF REST service and
then use a client application to consume it.
Airport Demo (native) - a basic lookup program that reads the information about
airports from a .dat file and outputs the distance between two airports.
The Sandcastle sample has been updated and now uses Sandcastle Help File Builder
v1.9.8.0.
Micro Focus Heartbleed Update
The OpenSSL library used in this product was updated to version 1.0.1g to fix the "Heartbleed"
vulnerability with TLS heartbeat requests.
ACUCOBOL-GT Compatibility
The following ACUCOBOL-GT support has been added in this release:
-Di compiler option
The -Di compiler option, which initializes Working-Storage data items based in their
type, is now supported.
COBOL Source Information
The Quick Browse option is now available as a context menu command in the editor.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 65
Compare and Synchronization Monitor
With the release of Visual COBOL 2.2 Update 1, the Compare and Synchronization Monitor has been
updated to version 2.
Version 2 is greatly improved in terms of performance, especially during initial checkout of partitioned data
sets or when synchronizing a large number of members. Also, the user interface has been improved, and
some of the functions available in the old version have now changed or become obsolete.
Compiler Directives
The following Compiler directives have been added in this release:
ILPARAMS
Determines the way in which you call a method that contains an array as its last receiving
parameter.
INIT-BY-
TYPE
Initializes Working-Storage Section data items to a default value, according to their type.
Alphabetic, alphanumeric, alphanumeric edited, and numeric edited items are initialized to
spaces.
Note: For an OSVS dialect, numeric edited items are initialized to zeroes.
Numeric items are initialized to zero.
Pointer items are initialized to null.
Index items are initialized to the value 1.
Database Access
The following new features have been added as part of database access support:
DB2 ECM
Support added for DB2 LUW version 10.5.
Enhanced RETURN-CODE processing.
OpenESQL
Enhanced internationalization support for UNICODE, DBCS and MBCS.
Enhanced GET DIAGNOSTICS statement support.
Enhanced LOB support for CLOB, BLOB and DBCLOB data types.
ADO.NET connection editor now provides context help.
Enhanced IDE support for OPTION directives.
Now provides support for the creation of save points and rolling back to save points.
XA Switch
Modules
Restriction: This feature applies only when the Enterprise Server feature is
enabled.
New two-phase commit module for SQL Server based on Microsoft's XA switch. This
provides support for xa_recover.
Support for DB2 LUW version 10.5.
Support for Oracle version 12.1.
Enterprise Server Integration in the IDE
You can now use the context menu for the servers in Server Explorer to enable the display of the
Enterprise Server log information in the Output window.
66
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Enterprise Server MQ-IMS Bridge (Technology Preview)
Note: At Visual COBOL 2.2 Update 1 this was provided as a technology preview feature only. It was
made available to allow you to test and provide feedback on this new capability; however, this feature
was not intended for production use and was not supported as such.
Visual COBOL version 2.2 Update 1 provided support that enables WebSphere MQ applications to
communicate with IMS applications in an Enterprise Server region.
Environment Variables
The following environment variable has been added in this release:
strictvsam
strictvsam enables strict mainframe emulation when processing VSAM files.
When set to ON and running under mainframe emulation, file status 37 is returned for an
existing VSAM file when opened for OUTPUT if the file has data or previously had data
written to it, or if the file is of a different format to the file on disk. When set to OFF, file status
0 is returned and a new file is created when an existing VSAM file is opened for OUTPUT.
This variable is set to OFF by default.
Fileshare Recovery
Recovery of Fileshare data files has been enhanced.
Rollback recovery is a faster process that aims to fix the files from their failed state.
This process cannot be used in all scenarios, but a new user exit has also been introduced that allows you
to programmatically control which files you wish to recover with this process.
Hot backups are also a new introduction, which allow you to perform a backup without having to shut down
Fileshare.
Line Numbering for COBOL Programs
Visual COBOL version 2.2 Update 1 provided options for auto-inserting or removing line numbers in source
files open the editor. Features include:
COBOL numbering - line numbers are inserted in the sequence area of the code (columns 1 - 6),
starting by default at 000100 at the first line, incrementing by 100 by default.
Micro Focus recommends that you use COBOL numbering only if your files are in fixed or variable
source format.
Standard numbering - line numbers are inserted immediately to the right of area B, in columns 73 - 80,
starting by default at 00000100 at the first line, incrementing by 100 by default.
Micro Focus recommends that you use Standard numbering only if your files are in fixed format.
The Renumber and Unnumber commands available from the context menu in the editor.
Managed COBOL Syntax
Visual COBOL version 2.2 Update 1 includes the following enhancements to the managed COBOL syntax:
Specifying parameters in
the method signature
You can now specify passing parameters and returning items in the method
signature, instead of using a Procedure Division header. This applies to
methods, indexers, iterators, constructors and delegates.
CONSTANT keyword
Use the CONSTANT keyword on a field to protect it from being altered.
Operations on string
fields
You can now use the STRING, UNSTRING and INSPECT statements on
fields of type string.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio | 67
Rumba Integration with Visual Studio
Visual Studio now offers context menu commands for launching the Rumba mainframe display (Desktop or
embedded) from Solution Explorer or from Server Explorer. The embedded Rumba display now provides
keyboard mapping and color settings.
You can use the display of choice both in debugging and when running applications.
Run-time Launch Configuration Files
Use a run-time launch configuration file to ensure an application can be launched when it is deployed in a
separate location to the run-time system (in the case of dynamically bound applications), or when the
licensing daemon is not already running.
What was New in Visual COBOL 2.2
Visual COBOL 2.2 provided enhancements in the following areas:
Enhancements for Visual COBOL 2.2 for Visual Studio 2012
ACUCOBOL-GT Compatibility
RM/COBOL Compatibility
Application Configuration
COBOL Source Information (CSI)
Compiler Directives
Consolidated Tracing Facility
Converting Net Express Projects
Enhanced Accept and Display Statements
Debugging
Grouping Files in Virtual Folders in Solution Explorer
File Handling
Interface Mapping Toolkit
Managed COBOL
Searching in Copybooks
COBOL Editor Enhancements
Upgrading from Net Express to Visual COBOL
WCF REST Service Application projects
Microsoft Windows Azure
XML Extensions
Enhancements for Visual COBOL 2.2 for Visual Studio 2012
The following enhancements are applicable to Visual COBOL for Visual Studio 2012:
Copybook Dependencies - Solution Explorer shows a tree view of the dependencies of the COBOL
programs and copybooks on copybooks in a project to help you navigate easily around the source code.
Expanded Copybook View: Technical Preview - The COBOL editor supports showing the contents of
copybooks inline at the place where they are referenced in a program or a copybook. Features include:
Support for copybooks referenced using any of the following statements - COPY, -INC, ++INCLUDE,
EXEC SQL INCLUDE.
Support for editing copybooks in the expanded copybook view (except for copybooks shown with
replaced values or such for which the user does not have write access).
For copybooks referenced using a COPY... REPLACING statement, you can show either the original
contents of the copybook file or show its contents with replaced values. The expanded copybook
view with replaced values is read-only which is indicated by a yellow background color.
68
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Note: You can configure the background color of the read-only view from Tools > Options >
Environment > Fonts and Colors, and changing the background color for the COBOL Read-
Only Background item.
Go To Definition, Find All References, navigation using the drop-down types and members, and
navigating to an error from the Error List window all find results or locate information in the
expanded copybook view.
Support for Intellisense and code snippets when editing copybooks in the expanded copybook view.
Support for the Visual Studio outlining feature (collapsing and expanding regions of code) within the
expanded copybook view and for regions that include expanded copybooks.
Note: The following limitations apply to the expanded copybook view:
The expanded copybook view displays bookmarks in copybooks and commands for bookmarks
such as enable or disable are supported. However, using Next/Previous and the Bookmark
window will open the standalone copybook file rather than inline view.
It is not possible to edit copybooks referenced through a COPY... REPLACING statement in
expanded copybook view when the view shows the replaced values. In this case, the expanded
copybook view is read-only.
The read-only status of expanded copybooks is not preserved when you close the project. Next
time you open the project, the copybook is shown in the Expanded Copybook view but not as
read-only.
If you used the OF or IN phrases with a COPY statement, it is not possible to show the
corresponding copybook in the Expanded Copybook view or open it using the Open
"CopybookName" in New Window command if the copybook is stored in a library file (where
you have used the COPYLBR Compiler directive).
Navigating to items in the expanded copybook view is not supported from the Class View or
using the Navigate To command.
References to file locations in the output windows such as pointing to the build output, or in the
results received by Find in Files, do not point to items in the expanded copybook view.
Selecting the currently selected statement in the call stack in an expanded copybook may show
the actual copybook. You can use the Show Next Statement command of the debugger to
return the actual expanded copybook position.
The Breakpoints window always shows the line number of a breakpoint within the file containing
it, not the line number within expanded copybook view.
The Call Stack, Threads and IntelliTrace windows all display line numbers corresponding to
the file containing the statement, not the line number within expanded copybook view.
If you move the caret to an invalid position in the expanded copybook view, the Set Next
Statement command will display an ‘Unable to set the next statement to this location’ error
message and the copybook will be opened as a separate document.
When stepping through .NET COBOL code, if the next statement to step onto is within the
same class or program, and on the same line number, but in a different source file, the
debugger steps over that statement. For example, if you try to step from line 10 of
Program1.cbl to line 10 of Copybook1.cpy, the debugger steps over the statement in the
copybook.
ACUCOBOL-GT Compatibility
The following enhancements are applicable to Visual COBOL:
Accessing data files through AcuServer - You can now access your ACUCOBOL-GT data files, both
sequential and Vision files, through AcuServer.
Standard library routines - Support for the following library routines has been added:
C$GETPID
C$JUSTIFY
C$LIST-DIRECTORY
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 69
C$LOCKPID
C$REGEXP
C$RUN
C$SLEEP
C$SYSTEM
C$TOLOWER
C$TOUPPER
I$IO
Using Vision files with Micro Focus Data File Tools - You can now use some of the Data File Tools
functionality with Vision files. You can:
Convert Vision files to Micro Focus format using the Data File Converter and the DFCONV command
line utility.
Edit Vision files using the Data File Editor.
Note: For more information about the Data File Tools utility, see Data Tools.
RM/COBOL Compatibility
The following support has been added to Visual COBOL in this release:
Subprograms - Support for the following subprograms (referred to as library routines in Visual COBOL)
has been added:
C$OSLockInfo
C$SecureHash
recover1 - The recover1 utility, RM/COBOL's indexed file recovery utility, is now distributed with Visual
COBOL. Refer to the RM/COBOL File Handling section of RM/COBOL Compatibility for details of its
use.
Application Configuration
You can now set environment variables for when you run native projects from within the IDE from the
project's properties - click Environment on the Application tab in the project properties.
COBOL Source Information (CSI)
COBOL Source Information (CSI) provides a quick and easy way of providing you with information about
your program when you are working on it. You enter a query in the CSI query control and CSI returns the
results of the query in the Micro Focus Code Analysis window.
Compiler Directives
The following Compiler directives are new:
ACU-UNDERSCORE
This directive treats underscores in COBOL words as hyphens.
ILSHOWPERFORMOVERLAP
This managed COBOL-only directive generates a warning when an
overlapping PERFORM range is detected in the program.
ILEXPONENTIATION
This managed COBOL-only directive enables you to optimize exponential
arithmetic operations by specifying the calculation method used.
EXITPROGRAM
This directive determines how the EXIT PROGRAM statement is
executed.
The following Compiler directives have changed
70
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
CHANGE-MESSAGE
The scope of this directive has been widened to allow you to change the severity
of different types of error messages, not just syntax checking messages.
DIALECT"RM"
DIALECT"RM" now sets PERFORM-TYPE"RM". If you recompile an application
that uses DIALECT"RM", the behavior may change for nested PERFORM
statements. If that is the case, explicitly set PERFORM-TYPE"MF" after
DIALECT"RM" to continue with the previous behavior.
HIDE-MESSAGE
The scope of this directive has been widened to allow you to hide different types of
error messages, not just syntax checking messages.
PRESERVECASE
This directive now defaults to PRESERVECASE when compiling native COBOL;
managed COBOL compilation already defaults to PRESERVECASE. This results
in externally visible identifiers preserving their case instead of being converted to
uppercase.
Consolidated Tracing Facility
The following changes have been made to the Consolidated Tracing Facility (CTF):
New properties
and variables for
existing emitters
The following support has been added to existing emitters.
Properties
The following property has been added to the BINFILE emitter:
Property Description
RunUnitID Controls whether the RunUnit information is
included in the trace.
Variables
Four new pseudo-variables for the FILE property have been added to the BINFILE
and TEXTFILE emitters:
pseudo-variable Description
$(PLATFORM) A platform specific constant, useful when two
run-time systems are in the same process,
and you require separate trace files
$(RUNUNIT) A unique number that represents the
managed RunUnit ID
$(RUNUNIT_SESSIONNAME) The session name passed to the managed
RunUnit
$(RUNUNIT_GUID) The globally unique identifier associated with
the managed RunUnit
Converting Net Express Projects
Conversion of Net Express projects has been enhanced. You now use the Visual Studio conversion wizard
to import and convert Net Express projects (.app files) to Visual Studio solutions.
Enhanced Accept and Display Statements
Two of the existing Enhanced ACCEPT and DISPLAY settings available through Adis have additional
values, which are aimed at RM/COBOL users migrating their source code to Visual COBOL. The new
values are:
Emulation of RM/COBOL-85 style data entry for numeric data entry on ACCEPT statements.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 71
Emulation of an RM/COBOL backspace in free format fields when in replacement editing mode, in that
deleted characters are removed and characters to the right are shifted left, the same as when in
insertion editing mode.
For more information on how to set these values, refer to Configuring Enhanced ACCEPT and DISPLAY.
Debugging
Displaying debug
information for
managed
applications
You can set the DEBUG constant for managed COBOL projects on the COBOL
tab in the project properties. This enables you to use the
System.Diagnostics.Debug class in your applications to ensure they write
diagnostic information in the Output window for projects compiled for Debug but
not for projects compiled for Release.
Changing the
display format for
individual items in
the Watch window
It is now possible to change the display format for individual items in the Watch
window in COBOL. To do this, click a row, press F2, and type: Variable,h or
Variable,x to always display the values in hexadecimal format; Variable,d to
always display the values of variables in decimal format, and of strings - as text.
Grouping Files in Virtual Folders in Solution Explorer
Visual COBOL now provides a Virtual View of a project within Solution Explorer. In the Virtual View you use
virtual folders to improve navigation by logically grouping the files that make up the project. You can also
create your own virtual folders to group files of your choice (a file can only belong to one virtual folder). The
files can be of different file types.
File Handling
New features include:
Converting and editing Vision and RM/COBOL indexed data files using the Data File tools is now
supported.
Access to data files (either sequential or indexed) through AcuServer is now supported.
Access to Vision and RM/COBOL indexed data files through Enterprise Server is now supported.
Interface Mapping Toolkit
Visual COBOL now supports the creation and deployment of COBOL program-based services using the
Interface Mapping Toolkit (IMTK).
Managed COBOL
Documentation
A guide that provides a basic introduction to Object-Oriented Programming (OOP) for
COBOL developers, An Introduction to Object-Oriented Programming for COBOL
Developers, with examples is now available from the Product Documentation section on
the Micro Focus Customer Support Documentation Web site.
Procedural
Multi-Output
Project type
A new .NET managed project template, Procedural Multi-Output Project, is now
available. The project compiles procedural programs to individual managed assemblies
or executables as opposed to the standard managed project templates that produce a
single assembly. This project type is useful when you are moving existing procedural
applications that consist of multiple programs to Visual COBOL and to managed code.
When calling a subprogram, the COBOL run-time system can locate the assembly using
the name of the called program which will match the assembly file name. In this case, the
assembly does not have to be preloaded. See Types of COBOL Project Templates for
more details and for a list of the limitations of this project type.
72 | Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Named and
optional
parameters
Two new types of parameter have been introduced for use during method invocation:
Named
parameters
As part of the invocation expression, you can define a value for a
parameter named in the method definition. The named argument
must be specified after any positional arguments, and must not
correspond to any of those preceding arguments.
Optional
parameters
Optional parameters are parameters defined with a default value in
the procedure division header of the invoked method. If none of the
arguments passed in during invocation correspond to this parameter,
the default value is used in the method; if an argument does
correspond, the value that was passed in is used.
Delegates
and events
A number of new features have been added that relate to delegates and events:
Note: Some of these features were also available in previous versions of Visual
COBOL.
The ATTACH and
DETACH statements
Use these statements to attach or detach a delegate, method
group or an anonymous method to or from an event.
The RUN statement
Use this statement to invoke a delegate once it has been
created.
Combining
delegates
Use the '+' operator to add a method group, anonymous method
or another delegate to a delegate, and use the '-' operator to
remove a method or another delegate from a delegate.
Method groups
conversions
Use the METHOD keyword to specify a compatible method from
a method group, and convert it to a delegate.
Searching in Copybooks
The search in copybook files has been enhanced. Visual Studio's Find in Files now enables you to
perform a search in all copybooks - the ones that are part of the project, and in the ones that are found in
the paths defined on the Dependency Paths tab in the project's properties. To do so, set the search scope
in the Find and Replace dialog to COBOL Project Copybook Paths.
COBOL Editor Enhancements
Navigating in the editor is now more similar to the editor navigation in Net Express. You can configure
things like word wrap and indentation, the movement of the cursor using the Home and End keys, the style
of the ruler and the colors of the text and the margins:
Smart editing
mode
The default mode in the editor is now Smart edit mode. It controls the word wrapping
and the indentation in the different COBOL areas. You can configure the Smart edit
mode from the Tools > Options > Text Editor > Micro Focus COBOL > Margins
page. To toggle the mode, click in the COBOL toolbar.
Home and End
keys navigation
You can configure how the Home and End keys move the cursor in the editor on the
Tools > Options > Text Editor > Micro Focus COBOL > Margins page. To toggle
the mode, click in the COBOL toolbar.
Configuring the
ruler
You can specify whether to display the horizontal ruler in the editor and also choose
its style, a default style or a mainframe style for which the ruler indicates COBOL
area A/B, from Tools > Options > Text Editor > Micro Focus COBOL > Margins
and check Show ruler.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio | 73
Support for SOA
Restriction: This topic applies only when the Enterprise Server feature is enabled.
Visual COBOL now includes support for creating Web service and Enterprise Java Bean applications using
the Interface Mapping Toolkit (IMTK) in conjunction with Enterprise Server. If you are upgrading to this
release from an earlier version of Visual COBOL, you may need to apply for a new authorization code in
order to access the functionality - please contact Micro Focus Customer Care to receive an updated
authorization code. Note that the Visual COBOL Personal Edition license does not support the IMTK
functionality.
Upgrading from Net Express to Visual COBOL
A new section in the product help, Upgrading from Net Express to Visual COBOL for Visual Studio 2017,
provides guidance on how to move existing applications either developed or debugged in the Net Express
IDE into the Visual Studio IDE.
WCF REST Service Application projects
Visual COBOL now provides a project template for creating COBOL WCF REST Application services. The
requirements are - Visual Studio Professional, Premium, or Ultimate (Visual Studio Shell does not support
WCF applications), and versions of the .NET Framework 4.0 and later. For more information about WCF
and REST, check Microsoft's MSDN.
Microsoft Windows Azure
Visual COBOL for Visual Studio now enables you to create, build, debug, run, and package COBOL
applications for use with Windows Azure. It provides:
Project template for a COBOL cloud service. This creates a solution containing a project for the cloud
service and projects for the web and worker roles you specify.
Demonstration projects, showing a web and worker role in COBOL, with the business logic remaining in
unchanged COBOL programs.
Help. This includes a tutorial that shows how to create a simple cloud service for COBOL and how to
deploy and run the service as an off-premises Microsoft Azure instance.
This functionality was previously available as an AddPack but is now integrated into Visual COBOL.
XML Extensions
You can now use XML Extensions in your managed COBOL projects.
Use XML Extensions to import and export XML documents to and from COBOL working storage.
Specifically, XML Extensions allows data to be imported from an XML document by converting data
elements (as necessary) and storing the results into a matching COBOL data structure. Similarly, data is
exported from a COBOL data structure by converting the COBOL data elements (as necessary) and
storing the results in an XML document.
While importing or exporting data to or from XML documents, you can apply XSLT transforms to the data
by using XSLT stylesheets.
For more information, refer to the XML Extensions User's Guide.
What was New in Visual COBOL 2.1 Update 1
Visual COBOL 2.1 Update 1 provided enhancements in the following areas:
Compiler Directives
DB2 ECM
74
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Copybooks Enhancements
Enterprise Server
Debugging Enhancements
Compiler Directives
You can now set SQL Compiler directives and their values more easily, using a table of tick boxes in a
project’s Properties dialog box.
DB2 ECM
Support for 64-bit DB2 ECM
Support for 64-bit compile and runtime
Support for DB2 10.1
New DB2 SQL compiler directive option, BGP, to enable background parsing
Copybooks Enhancements
For variables in a copybook that are modified by COPY… REPLACING statements in your code, the Autos
window displays all values defined in the source code. When there are multiple COBOL programs in your
project that perform a COPY… REPLACING in a copybook, the Autos window only uses the replacing
values found in the first COBOL program. In addition, a new command, Open copybook with replaced
values, is now available from the editor for the copybooks that the COPY... REPLACING statements
modify.
Enterprise Server
The following new features and enhancements are available:
Clustering
COBOL Server Clustering allows the scaling-out of work units, so that an
increased number of operating system images can share the workload, resulting
in high-performance, multi-system data sharing across all platforms.
Historical Statistics
Facility
The Historical Statistics Facility has been extended to include the generation of
JCL file records, increasing the amount of information customers have available
to assist them in monitoring and tuning their COBOL Server installations.
Recovery of in-doubt
XA transactions
Some events in XA environments can result in ‘in-doubt’ transactions, where all
parts of a composite transaction are not committed through all participating
resource managers. The recovery of such in-doubt transactions is now
supported.
SSL Support for the
CICS Web Interface
COBOL Server now allows clients and servers to identify themselves through X.
509 certificates and participate in SSL-enabled conversations.
Debugging Enhancements
For variables in a copybook that are modified by COPY… REPLACING statements in your code, the Autos
window displays all values defined in the source code. When there are multiple COBOL programs in your
project that perform a COPY… REPLACING in a copybook, the Autos window only uses the replacing
values found in the first COBOL program. In addition, a new command, Open copybook with replaced
values, is now available from the editor for the copybooks that the COPY... REPLACING statements
modify.
What was New in Visual COBOL 2.1
Visual COBOL 2.1 provided enhancements in the following areas:
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 75
ACUCOBOL-GT Data Types in Managed Code
ACUCOBOL-GT Library Routines in Managed Code
Associating file extensions with the COBOL language
Compiler Directives
.int, .gnt and .lbr File Types Support
Managed code enhancements
OpenESQL
ACUCOBOL-GT Data Types in Managed Code
ACUCOBOL-GT data types and sign() variants that were previously only available in native code are now
supported in managed code. Use the Compiler directives COMP1 and COMP2 to set ACUCOBOL-GT
behavior for those particular data types.
ACUCOBOL-GT Library Routines in Managed Code
ACUCOBOL-GT library routines that were previously only available in native code are now supported in
managed code.
Associating file extensions with the COBOL language
This release includes enhancements to the way you associate file extensions and extensionless files with
the COBOL language.
If you are importing existing COBOL applications into Visual Studio, it is recommended that you create
associations with COBOL within the IDE for any extensions that are not traditionally used in COBOL.
Compiler Directives
The following new Compiler directives are now available:
DISPLAY
Defines the default behavior of standard DISPLAY statements.
COMP1
Specifies the behavior of a COMP-1 data item.
COMP2
Specifies the behavior of a COMP-2 data item.
RESTRICT-GOTO
Generates a syntax error for GO TO statements that transfer control to outside of
the current section.
ILSMARTRESTRICT
Limits the generation of properties in ILSMARTLINKAGE classes to non-redefining
elementary items.
The following Compiler directive has changed:
DATAMAP - Two new parameters allow you to display either the address or offset values for data items
in your program.
.int, .gnt and .lbr File Types Support
Support has been added within the IDE for compiling native COBOL applications to the Micro Focus legacy
formats .int and .gnt, and to package these files as a Micro Focus library file (.lbr). Improvements
include:
An option to compile all native COBOL projects to .int and .gnt code. You can set this on the
Application page in your project's properties.
A new native COBOL project template, Micro Focus INT/GNT.
An option to package the .int and .gnt files produced by the project as a Micro Focus .lbr library
files.
Improvements to the Net Express Project Import wizard that enable you to convert existing Net Express
projects to Visual COBOL projects that compile to .int and .gnt code.
76
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Managed code enhancements
Delegates
and Events
This release provides support for combining delegates, using the METHOD keyword to
specify method groups, and implicit conversion from a method group or an anonymous
method to the suitable delegate type.
Handling
Invalid
Numeric
Data
The handling of invalid numeric data is controlled by a number of Compiler directives:
HOSTNUMMOVE, HOSTNUMCOMPARE and SIGNFIXUP. These directives were
previously only available in native code but are now supported in managed code.
Resolving
Types
In this release, the Compiler attempts to resolve types to those defined in the current
compilation unit wherever possible. The Compiler will attempt to resolve such types to an
external name only if no suitable type exists in the current compilation unit. For example:
$set ilusing"System"
class-id MyNamespace.EventHandler.
01 o type EventHandler.
end class.
In this release, 01 o type EventHandler. resolves to
MyNamespace.EventHandler and not to System.EventHandler.
Specifying
Properties
In previous versions of the products, properties declared using the PROPERTY keyword
on a data item were generated as final properties. Starting with this release, they are
generated as virtual properties by default. In order to make the properties final, you need
to specify the word FINAL following PROPERTY. This change may affect the generation of
Proxy classes, for example, if you are using WCF.
OpenESQL
ODBC
Added support for a generic one-phase commit for ODBC XA switch module.
SQL Compiler
Directive
Options
OpenESQL has been enhanced to support the following new SQL compiler directive
options:
DATE
Controls the reformatting of date values in output parameters and in
input parameter character host variables when DETECTDATE is also
specified.
TIME
Controls the reformatting of date values in output parameters and in
input parameter character host variables when DETECTDATE is also
used.
DATEDELIM
Specifies a single character as the delimiter between the year,
month, and day components to override the default delimiter
determined by the HCOSS DIALECT or DATE directive specification.
TIMEDELIM
Specifies a single character as the delimiter between the hour,
minute, and second components to override the default delimiter
determined by the HCOSS DIALECT or TIME directive specification.
TSTAMPSEP
Specifies a single character as the separator between the date and
time parts of timestamp and date/time data.
OpenESQL
Assistant
OESQL Assistant now supports updateable cursors.
SQL Server
We now support Microsoft SQL Server 2012.
What was New in Visual COBOL 2.0
Visual COBOL 2.0 provided enhancements in the following areas:
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 77
Building Projects to Multiple Output Files
Compiler Directives
Debugging Enhancements
Library Routines
Managed COBOL Language Features
Data Access
Run-Time Tunables
Samples
Vision Data File Searching
XML Support
Building Projects to Multiple Output Files
You can now build your native Link Library projects to multiple output files. To configure this, you need to go
in the project properties and set Output To to Multiple Libraries.
Compiler Directives
The following new directives are now available:
COPYSEARCH - enables you to specify how copybooks are located. You can choose between usual
Micro Focus COBOL behavior or usual RM/COBOL behavior.
ILSMARTNEST - enables you to nest ILSMARTLINKAGE classes inside the program class in which
they are defined. This makes it possible to have multiple programs in a single compilation unit that
include linkage records with the same name.
The following directives have been changed:
DIALECT(RM) - now accepts a new parameter, RM, which enables the RM-compatible functionality that
the RM directive used to enable.
ILUSING - when set on a single file using the SET statement, $set ilusing, the directive only affects
that file.
Debugging Enhancements
Visual COBOL 2.0 provides the following enhancements to debugging:
Core dump
files
On Windows, the core dump files created by this product are Microsoft minidump files. If
you have a mixed-language application, you can use the minidump file to debug the
other languages involved.
Debugging
native COBOL
Link Library
projects
You can now debug native COBOL link library projects that get built to a single .dll file.
Program
Breakpoints
Note: Program breakpoints are supported in native COBOL only, and are not
supported with nested programs.
Use the Program Breakpoints (Native COBOL) window to add program breakpoints to
your applications. When a program breakpoint is set the application breaks whenever the
program or one of its entry points is called.
In the Program Breakpoints (Native COBOL) window, click New and type the name of
the source file, without the extension. For multi-program source files, to set a break for a
sub-program, use its program-id.
To display the Program Breakpoints (Native COBOL) window, click Debug > Windows
> Program Breakpoints (Native COBOL).
78 | Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Step out of
OSVS perform
statements
You can now step out of a perform statement when PERFORM-TYPE(OSVS) or
DIALECT(OSVS) is set.
Support for
debug
attaching to
programs
launched by
services
Visual COBOL now supports debugging of native CGI applications by waiting for
attachment on a directory.
Wait for
debuggable
attachment
option for
native COBOL
Wait for debuggable attachment on the Debug page in the properties of native
properties has been enhanced. You can now specify one the following options for it -
Wait for any program, Wait for directory, and Wait for ID.
Library Routines
The following routine has been enhanced:
The CBL_SEMAPHORE_ACQUIRE routine now accepts a timeout parameter.
Managed COBOL Language Features
The following new syntax elements are now available in managed COBOL:
Local
Variables
In managed COBOL, Data items can now be declared in the procedure division, using
the DECLARE statement. In addition, they can be declared inline as the iterator in a
PERFORM statement, or as an exception message in a TRY … CATCH … FINALLY
statement block.
Collections
There are two new collection types in managed COBOL: LIST and DICTIONARY. For a
LIST, you can add elements to a list, retrieve the nth element of the list, replace the nth
element, iterate through the list and clear the list. For a DICTIONARY, you can add key
value pairs, retrieve a value corresponding to a key, to replace the value corresponding
to a key, iterate through the dictionary and clear the dictionary.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio | 79
Properties
In managed COBOL, a property can now be defined using PROPERTY-ID and GETTER
and SETTER phrases to access to the property. The previous technique of specifying
the keyword PROPERTY on a data declaration is still available.
Indexers
In managed COBOL, an indexer can now be defined using INDEXER-ID and GETTER
and SETTER phrases to access the indexer value. Indexers are similar to properties,
except that their accessors take parameters. Indexers allow instances of a class or
valuetype to be indexed just like arrays.
Zero-based
Indexing
The managed COBOL syntax for arrays now uses zero-base indexing to access arrays
when square brackets are specified. For backward compatibility, one-base indexing is
used when round parentheses are specified.
Data Access
Visual COBOL version 2.0 provides the following enhancements:
Improved IDE integration with SQL directives - now supports handling of deprecated and removed
directives. Also supports filtering of the choices offered to the user by product type, project type, and
platform.
OpenESQL has been enhanced and it now:
defaults to optimal performance
supports 64bit ODBC across all platforms
The OpenESQL ADO.NET managed run-time has been redesigned so it now works faster. It also
supports multiple result sets with stored procedures.
Run-Time Tunables
Visual COBOL 2.0 provides the following new tunables:
printer_raw_redirection - use this to redirect WRITE statements through the Windows print spooler as
RAW data types.
subsystem_cancel_mode - use this to override the default cancel mode when you use the
CBL_SUBSYSTEM library routine to cancel a subsystem.
Samples
The following new samples are now available:
CGI demonstrations:
Complex CGI application - demonstrates how to use native COBOL to create CGI programs which
accept data from a form on a Web page and then redisplay that data in another Web page
Simple CGI application - demonstrates how to use native COBOL to create CGI programs which
accept data from a form on a Web page and then redisplay that data in another Web page
The following samples have been added to the COBOL for .NET section:
Collections - demonstrates the new LIST and DICTIONARY collection types
Local Variables - shows how to declare data items in the procedure division in the DECLARE,
PERFORM and TRY statements
The code in the Properties sample in the COBOL for .NET section of Samples Browser has been
enhanced to use the new PROPERTY-ID syntax. The sample also includes a sample program for
Indexers which illustrates the new INDEXER-ID syntax.
Vision Data File Searching
Visual COBOL 2.0 provides the following new ACUCOBOL-GT compatible environment variables to help
search for Vision data files at run time:
80
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
APPLY_FILE_PATH
FILE_CASE
FILE_PREFIX
FILE_SUFFIX
XML Support
The IBM-style XML GENERATE syntax is now supported in .NET managed COBOL.
What was New in Visual COBOL 2010
Visual COBOL 2010 provided enhancements as part of the following releases:
New Features in Enterprise Developer 2010 R4 Update 2
New Features in Enterprise Developer 2010 R4
Features Added in Visual COBOL 2010 R4 Update 2
Documentation for the Dialog System AddPack
Documentation for the Dialog System AddPack is now available and is integrated with the Visual COBOL
documentation.
This documentation describes the AddPack, which enables you to modernize Dialog System applications
within Visual COBOL. You migrate an application to Visual COBOL and from there you can run the
application without change, or modernize it over time.
The documentation describes some modernization techniques such as:
A Windows Forms form replacing a Dialog System dialog, where the form can contain .NET controls.
See the Customer + .NET WinForm sample CustomerWinForm.sln.
A Windows Forms control wrapped as an ActiveX control and used on a Dialog System dialog. See the
Customer + .NET GridView User Control sample custgrid.sln.
A WPF user control hosted by a Windows Forms user control, which is then exposed as ActiveX ready
for use by Dialog System. See the Customer + .NET WPF GridView User Control sample
CustGridWPF.sln
A .NET code application interacting with Dialog System as native COBOL .dll. See the .NET COBOL
Customer sample ManagedCustomer.sln.
Native OO COBOL Class Library Reference
Help for the following native OO COBOL class libraries is available:
Base class library
GUI class library
OLE class library
OLE Automation class library
The Help is available in the file nxrclr.chm, which is installed in the Help folder of your installation. The
default location is%ProgramFiles(x86)%\Micro Focus\Visual COBOL\Help.
To open the help, double-click nxrclr.chm in File Explorer.
Net Express Project Import Wizard
Visual COBOL for Visual Studio includes a Net Express Project Import Wizard that converts NetExpress
projects into Visual Studio solutions. The wizard analyzes the Net Express project file and its configuration
settings, creates one or more Visual Studio native projects based on this information, imports the existing
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 81
source code into them and sets the appropriate directives. When the process is complete, it can optionally
display a detailed conversion report.
Features Added in Visual COBOL 2010 R4
ACUCOBOL-GT Compatibility
The Compiler and run-time continue to provide support for ACUCOBOL-GT. The directive ACU is the main
switch for turning on ACUCOBOL-GT compatibility. The ACU directive enables various ACUCOBOL-GT
syntax extensions and other language elements. Additional ACUCOBOL-GT compatibility features include
the following:
When using a CALL statement, the USING and GIVING/RETURNING phrases can now appear in either
order.
The following ACUCOBOL-GT standard library routines can now be used with Visual COBOL in native
code:
C$CALLEDBY
C$CALLERR
C$CHDIR
C$MAKEDIR
C$MEMCPY
C$MYFILE
C$PARAMSIZE
C$RERR
M$ALLOC
M$FREE
M$COPY
M$FILL
M$GET
M$PUT
WIN$VERSION
The following ACUCOBOL-GT 'ccbl' compiler options can now be used with Visual COBOL:
-E, -V
-Cv
-Da, -Db, -Dd31, -DL1/2/4/8, -Dq, -FpRounding
-La, -Li, -Lc, -Lf, -Ll, -Lo, -Ls, -Lw
Note: The output that these list options provide differs in Visual COBOL.
-Qm
-Rc, -Rn, -Rw
-Sa, -St, -Sd, -Sp, -S1...-S9
-noTRUNC, -truncANSI, -Dz
-Td, -Te
-Vc
-Za, -Zc, -Zl, -Zn, -Zs, -Zi, -Zr1, -Zy, -arithmeticVSC2
Full ACUCOBOL-GT compatibility is documented under the Programming section in the product help.
ADO.NET Runtime Improvements
The OpenESQL ADO.NET runtime has been re-engineered, offering several advantages over previous
versions, providing:
Better performance - the new runtime is much faster and can as much as double your performance,
depending on the specifics of your application.
82
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Support for multiple run unit processing.
Support for both client applications and SQL CLR stored procedures.
For stored procedure applications:
Support for input/output parameters defined as COBOL data types, in addition to the previously
supported .NET data types
Support that enables stored procedures to return more than one result set.
Static SQL Support for the DIALECT=MAINFRAME Compiler directive.
For client-based applications:
Support for dynamic SQL that uses an SQLDA structure to pass parameter and result host variables,
specifically including the following embedded SQL statements:
PREPARE - For example, the following statement passes a prepared statement into the SQLDA
from a host variable:
EXEC SQL
PREPARE stmt1 INTO :sqlda FROM :stmt-buf
END-EXEC
EXECUTE - For example, the following statement executes a prepared statement using a
previously constructed SQLDA structure:
EXEC SQL
EXECUTE stmt1 USING DESCRIPTOR :sqlda-structure
END-EXEC
OPEN - For example, the following statement opens a cursor using a previously constructed
SQLDA structure:
EXEC SQL
OPEN c1 USING DESCRIPTOR :sqlda-structure
END-EXEC
For complete information on using these statements, see the PREPARE, EXECUTE, and OPEN
topics.
Additional support for result set processing that allows you to receive more than one result set back
from a stored procedure.
Support for applications built to target .NET Framework versions 2.0, 3.0 and 3.5, in addition to .NET
Framework version 4.0.
Important:
To take advantage of these improvements you must recompile your applications with the
DBMAN=ADO Compiler directive. However, if you want to continue using the functionality available in
previous releases, we now provide the DBMAN=OADO directive to use in place of the DBMAN=ADO
directive. DBMAN=OADO provides the same functionality as was available with previous versions of
the DBMAN=ADO Compiler directive, and has 100% backward compatibility with applications
designed and developed with Visual COBOL R3.
Debugging Enhancements
The ability to load core dump files in Visual Studio has been added. This feature works with native COBOL
only.
Embedded HTML
We now support the use of Embedded HTML (EHTML) in COBOL CGI programs, which enables you to
output HTML directly from your applications.
Language Improvements
The following improvements have been made to managed COBOL:
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 83
Extension methods
and extending
operators
Managed COBOL now supports extension methods. This feature enables you to
add methods to existing types without the need to edit or recompile the code. You
can also extend operators.
The SYNC modifier
for methods
The SYNC modifier locks the values of the arguments sent to the method, so that
they do not change while the method is processing.
Nested classes
In managed COBOL, a nested class can now be defined so that it can access the
instance fields, properties and methods in its containing class. To allow this, you
add the optional SHARING PARENT phrase to the nested class definition.
RM/COBOL Compatibility
The Compiler and run-time continue to provide support for RM/COBOL. Additional RM/COBOL
compatibility features include the following:
The following RM/COBOL standard library routines can now be used with Visual COBOL in native code:
C$Century
C$ConvertAnsiToOem
C$ConvertOemToAnsi
C$DARG
C$Delay
C$GetEnv
C$GetNativeCharset
C$LogicalAnd
C$LogicalComplement
C$LogicalOr
C$LogicalShiftLeft
C$LogicalShiftRight
C$LogicalXor
C$NARG
C$SetEnv
C$RERR
DELETE
RENAME
The RM/COBOL file handler can now be used with Visual COBOL, enabled by using the
CALLFH"ACUFH" Compiler directive, and then configuring an add-on to the Vision file handler.
Full RM/COBOL compatibility is documented under the Programming section in the product help.
XML Extensions
Note:
This functionality is supported in native COBOL only.
You can now use XML Extensions, the system that enables your COBOL applications to interact with XML
documents, with Visual COBOL.
XML Extensions has many capabilities. The major features support the ability to import and export XML
documents to and from COBOL working storage. Specifically, XML Extensions allows data to be imported
from an XML document by converting data elements (as necessary) and storing the results into a matching
COBOL data structure. Similarly, data is exported from a COBOL data structure by converting the COBOL
data elements (as necessary) and storing the results in an XML document.
For more information about XML Extensions, refer to the XML Extensions User's Guide, available from the
RM/COBOL product documentation set, in the Customer Care section of the Micro Focus Web site.
84
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Significant Changes
This section describes significant changes in behavior or usage in each successive release. These
changes could potentially affect the behavior of existing applications or impact the way the tools are used.
Significant Changes in Visual COBOL 8.0
This section describes significant changes in behavior or usage. These changes could potentially affect the
behavior of existing applications or impact the way the tools are used.
The numbers that follow each issue are the Support Case Number followed by the Defect number (in
parentheses).
Code Analysis
Common Communications Interface
Compiler
Containers
Enterprise Server
Machine Administration
File Handling
Micro Focus Directory Server
Run-time System
SQL: OpenESQL
Code Analysis
Back to the list
Rules in nested folders are now correctly processed, as well as rules with the same name.
(207020)
Common Communications Interface
Back to the list
For improved security, SSL/TLS connections are now restricted to TLS versions 1.2 and 1.3 by default.
This is an industry best practice. If you need to use older, less-secure protocol versions with legacy
clients or servers you should consult the product online help for instructions on configuring TLS protocol
versions.
PSEC:103001 (87188)
Compiler
Back to the list
When a RELEASE or RETURN statement is executed in an input or output procedure of a sort
statement, if the SORT-RETURN special register is found to contain a value of 16, then the sort should
be aborted, even in a case where the RELEASE or RETURN statement is at a lower perform level than
the input or output procedure itself. Previously, this was not happening for programs compiled to JVM
or .NET COBOL, but this erroneous behavior is now fixed.
01723392 (104114)
When a variable is defined in a DECLARE statement with no explicit type, but a value that is a non-
integer numeric literal, the type is assumed to be float-long (i.e. a 64 bit floating point).
(148103)
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 85
Containers
Back to the list
The containers image build tool now supports custom Java run-times which helps to keep the size of
Java-based applications smaller.
(182004)
Enterprise Server
Back to the list
The Security Manager passwords no longer appear in the commonwebadmin.json configuration file.
(203052)
The X-XSS-Protection header will now be set on all requests instead of only on API requests.
01938835 (138176)
In ESCWA, the colors and contrast have been adjusted to improve visual accessibility.
01995403 (158071)
ESCWA now displays an improved message if there is an issue with loading the application, especially
in the case where there is a browser incompatibility.
(241013)
ESCWA now handles enterprise server regions that use character encodings other than windows-1252.
00370773 (11742)
In ESCWA, the Console Log page now enables you to easily traverse and navigate the log. The new
paging feature uses an API call from the Communications Server group documented in the Enterprise
Server Administration Server API, typically located at http://localhost:10086/docs/#/
Communications_Server on the machine where you have the product installed.
02085456 (191017)
ESCWA now supports multiple PACs in a single Redis store.
(248003)
ESCWA now handles enterprise server regions that use character encodings other than windows-1252.
(91001)
In ESCWA, on the Communications Process page you can now specify a Requested Status for the
communications process.
00669779 OCTCR50A69378 (69378)
In ESCWA, the Catalog DCB page now displays the file size in bytes.
01909652 (138002)
ESCWA now supports Circular Logging. On the Tracing and Logging Settings page you can now
specify the Log Max File Size and the Log File Count fields. By default, these fields are set to 1024kB
and 5 respectively. See Tracing and Logging Settings in your product Help for more information.
02083633 (191019)
In ESCWA, a new optional Logon security resource has been added. This can be used to control
users' ability to log on. See Security Resources to Control ESCWA and API Access in your product Help
for more information.
01886579 (124022)
You can now define and install shared SOR Models. In the SOR Model dialog box, check Shared to
enable the SOR Model to be shared between PACs.
(244088)
86
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
For LDAP-based security in Enterprise Server, the processing of password changes has been modified
to address security issues, inconsistencies among configurations, and other issues. See Understanding
passwords with LDAP-based security in your product Help for more information.
(118088)
Enterprise Server with LDAP-based security now denies a sign-on attempt by default if it includes a
password-change request (a new password is supplied), and the password change fails. This was the
existing behavior in some configurations but not in others. It is now consistent and configurable. See
MLDAP ESM Module Custom Configuration Information in your product Help for more information.
(108046)
A change has been made to the way that TS queues and TD queues are stored in a PAC. This was to
ensure that deleting a 0TSQ did not also delete all queues that had a 0TSQ_ name prefix.
Note: After the update is applied you must cold start your PAC.
(183044)
In a PAC, the SIT setting is now honored when a TS or TD is to be applied to the enterprise server
region if the TS or TD is not under a SOR, MFDBFH, or Fileshare. This means that if a SIT has to cold
start for TS or TD and the files are either in the workarea or on disk then the SIT settings will be applied,
otherwise the PAC-wide settings will be applied.
02149316 (204020)
EZASOKET traffic will now be assigned to Communications Process instance #1. You might need to
consider this if you use load balancing.
02060014 (201009)
When a PAC is cold started, the configuration file specified by MFDBFH_CONFIG will be uploaded to
the PSOR and a temporary file created in the enterprise server region’s workarea. This temporary file
will be used by all the processes for that enterprise server region. Subsequent enterprise server regions
joining the PAC will then create a temporary file in its workarea for the MFDBFH_CONFIG from the
PSOR store. If an enterprise server region in the PAC is killed or is terminated abruptly than the restart
of the enterprise server region will try to recover the previous UUID left in the PAC and DEQ all
remaining ENQs in MFDBFH that were created from the previous run. New messages will be created in
the console.log identifying if the recovery was initiated and successful, if the enterprise server region
could not be recovered automatically, the region will stop. A log file will be created in the workarea with
the following file naming convention:
Caspac_Recover_UUID_xxxxxxxxxxxx.log
For example: CASCD4012W Region was not stopped properly, recovering previous region UUID
14BAAA87B4C010BFBDE278A5F65B350C 18:15:17CASCD4014I UUID recovery file log C:\Users
\mag.CORPDOM\Documents\Micro Focus User\Enterprise Developer\WORKAREA
\RAS1\Caspac_Recover_UUID_14BAAA87B4C010BFBDE278A5F65B350C.log 18:15:18. Using
the caspac utility with the -aStatus parameter will display if the enterprise server region in a PAC has
lost its connection to the PSOR. If you determine that the region is no longer in the PAC, then you can
run the caspac utility with the -aRecoverUUID parameter to recover the enterprise server region. If
the -aRecoverUUID parameter is used, then a file will be created in the current directory with the
following file naming convention:
02081952 02123645 (182093)
Caspac_Recover_UUID_xxxxxxxxxxxx.log.
See caspac in your product Help for more information.
Functions have been added to file_utilities which check a given file name against either a default
blacklist containing operating system reserved file names, or a passed blacklist. Read, write, and delete
in AES and MSCPD use this function to disallow secret names which are inappropriate names.
OCTCR50A7844 (112022)
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 87
Fileshare is no longer used to locate the Resource Definition and CNV file.
00468648 (69010)
MQ updates did not rollback on step failure. This has been fixed.
01976727 02161235 (155010)
PSOR stores are now prefixed by the PAC NAME and a version number enabling you to run multiple
PACs in the same PSOR, simplifying the incompatible upgrade process. The caspac utility enables you
to add the PAC Name as part of the command line parameters using -pPACName or if not specified
using the ES_PAC environment variable. See caspac in your product Help for more information.
(202162)
The XA reconnect mechanism now attempts to reconnect to all XA entries marked as "enabled" at the
start up of the enterprise server region. To prevent the reconnect attempts, do one of the following:
Remove the XA manager from the enterprise server region definition.
Set the XA manager as disabled before starting the enterprise server region.
01991481 02003277 (151008)
A new MLDAP ESM custom configuration section has been added. The [Prefix Search] option
enables the Prefix Search wildcard optimization for limiting the scope of wildcard resource entities
checked under a resource class. See MLDAP ESM Module Custom Configuration Information in your
product Help for more information.
00726158 (73180)
For LDAP-based security in Enterprise Server, the processing of password changes has been modified
to address security issues, inconsistencies among configurations, and other issues. See Understanding
passwords with LDAP-based security in your product Help for more information.
(118088)
Enterprise Server with LDAP-based security will now by default deny a signon attempt if it includes a
password-change request (a new password is supplied), and the password change fails. This was the
existing behavior in some configurations but not in others. It is now consistent and configurable. See
MLDAP ESM Module Custom Configuration Information in your product Help for more information.
(108046)
File Handling
Back to the list
The dbfhadmin utility has been enhanced to allow the integrity of a datastore to be verified, and
optionally, fixed up: use the dbfhadmin -verify -list|-recover options. See The dbfhadmin
Command Line Utility in your product Help for more information.
00778044 (90143)
The dbfhadmin command-line utility has been enhanced to provide the capability for verifying and
optionally repairing (cross-)region databases.
02123645 (193071)
The cross-region database heartbeat interval can now be configured using the dbfhconfig -add|-
update -heartbeat interval-in-seconds command. The default heartbeat interval remains as
5 seconds. A warning message is now output to the Enterprise Server console during region database
start-up if the heartbeat interval is configured to be >15 seconds. The larger the heartbeat interval, the
longer the time that is required to be able to recover (cross-)region database resources. Recovery can
only take place for a process if its associated heartbeat record has not heartbeat within the last
"heartbeat-interval + 5" seconds.
02155269 (202149)
The performance of PostgreSQL optimized I/O has been improved. If you use the psqlodbc device
driver, you will need to ensure that you are running with version 12.02.0000 or later. This change has
88
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
been tested with version 13.01.0000. To take advantage of the performance benefits of this change,
specify BatchSize=100 for each of your ODBC DSNs. Using a version of the driver earlier than
12.02.0000 could result in a performance degradation when deploying large files to datastores.
(125032)
Table record locking and database record locking are incompatible and may lead to data corruption if
used together by separate processes when processing the same file. MFDBFH has been enhanced to
ensure that if a file is already opened in a process with table locking, all other processes attempting to
open the same file, even if requesting database locking, will also use table locking. However, if a
process has a file opened using database locking, other processes attempting to open the file will only
be allowed to do so if they are transactional files (i.e. database record locking can only be used for
transactional files). An attempt to open the file as non-transactional will fail. Refer to the Record Locking
Strategies documentation for more information.
(102011)
MFDBFH now enforces the existing requirement that a region database used by a PAC, or a region
database used by an ES region configured to use ES_LOCK_DB, is not used by any other PAC or
ES_LOCK_DB regions. This is necessary to avoid problems such as jobs with the same name
submitted to two separate regions, but erroneously using the same region database, from being blocked
by waiting on SYSZJOBD and/or SYSZJOBN ENQs. A check is now performed during region start-up to
ensure that the region database is not already being used by another region, If it is, the region start up
will fail, with error messages indicating the cause of the failure output to the ES console. Existing ES
PACs/regions will need to be stopped and restarted for these new region database state checks to take
effect. The dbfhadmin -region -status [-reset] command has been introduced to allow a
region database's state to be displayed and, optionally, reset. See Resource Locking in your product
Help for more information..
(121030)
Machine Administration
Back to the list
A problem with using the .NET 3.5 framework has been fixed.
(204144)
A problem with CPU conversion has been corrected.
(199042)
Micro Focus Directory Server
Back to the list
The mfds /s option supports the specification of the optional Enterprise Server user id and
password parameters using a configured Micro Focus Vault Facility location rather than using literal
strings for credentials. For example:
mfds /s 1 mfsecret:user/user_001/id mfsecret:user/user_001/pwdwhere user/
user_001/id and user/user_001/pwd
Are secrets stored in the default-configured vault. These values can be populated and administered
using the mfsecretsadmin utility. See Vault Facility in your product Help for more information.The
mfds /x and /g command-line options also support credentials stored in the vault.
02131532 (193088)
If MFDS is configured to store sensitive values in the vault (for example, XA openstring or autostart
credentials), these values were not being included in legacy data format or XML export of Enterprise
Server configuration information. Subsequently, these values could not be reimported. These sensitive
values are now included in the exported data. Micro Focus recommends that you protect the exported
files with appropriate access control.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 89
(202272)
Run-time System
Back to the list
The native COBOL multi-threaded demo is now available for Windows development products.
(3765)
Basic support for xterm-256color has been implemented.
(57591)
SQL: OpenESQL
Back to the list
A performance problem in a SQL program using fixed-length character arrays when compiling a COBOL
program and using array fetch has been resolved.
02152406 (203060)
A new feature to assist migration between databases has been added. SQL error codes and messages
may be mapped to different values or supressed to match those expected by the application.
(193003)
Significant Changes in Visual COBOL 7.0
This section describes significant changes in behavior or usage. These changes could potentially affect the
behavior of existing applications or impact the way the tools are used.
The numbers that follow each issue are the Support Case Number followed by the Defect number (in
parentheses).
Common Communications Interface
Compiler
Data Tools
Enterprise Server
File Handling
Header-to-COPY Utility
Interface Mapping Toolkit
Run-time System
SQL: OpenESQL
Common Communications Interface
Back to the list
The default TLS Security Level has been increased from 0 to 1. This change will not affect you if you
have specified your own security options.If you rely upon the default TLS security options you might find
that some old clients that are restricted to the use of weak ciphers will no longer be able to connect.
See Security Levels and Specifying a Server Protocol and Cipher Suite Preference in your product Help
for more information on the change to Security Level 1.
(8453)
Compiler
Back to the list
90
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Programs with file records greater than the documented limit of 62KB will now generate an error that
they previously did not (COBCH0649) - although being an E level message, the program can still be
executed and will work if it did so previously.
3227892 (12447)
Two of the available Ant parameters for compiling COBOL programs have been renamed as follows
(functionality remains the same):
forceCompile becomes mf.forceCompile
threadCount becomes mf.buildThreadCount
3230709 (12665)
Data Tools
Back to the list
The editor now automatically selects the first record in comparison when first loaded. The Editor will
automatically select first record in comparison when first loaded
3212848 (11362)
Data File Tools now provides the Data Explorer, which is a catalog view that can connect to either
ESMAC or ESCWA. When connecting to ESCWA, it enables you to open multiple data sets.
(70242)
The scrolling speed for formatted records has been increased.
00366018 (11378)
Enterprise Server
Back to the list
Previously, there was no security check performed when an ESMAC user tries to access the console,
traces, or dumps. This is no longer the case. If you use LDAP-based security you can now add the new
DIAGS resource under OPERCMDS class and provide access to ESMAC users accordingly.
3231918 (12556)
The "Requested Licenses" field has been removed from the ESCWA General Properties page as it is
not used.
(3956)
Added the option to delete the associated package when the service has an associated package and
that service is the only one with that associated package.
00370971 (22264)
When a new region is created in ESCWA, the Web listener's conversation type is now correctly set to
"Web" instead of "SOAP and J2EE (legacy)".
3244594 (21270)
The Group can now be specified when starting or stopping a region using ESCWA.
00371543 (12436)
For Enterprise Developer 6.0 and later, the installer on Windows has automatically started the
Enterprise Server Common Web Administration (ESCWA) service as part of the installation process.
When using the Japanese system locale on the Windows operating system, the ESCWA service does
not start automatically. During the installation process you might be required to press Retry to complete
a successful product install. Even after a successful product install, ESCWA does not start until you
have installed a valid license.
00368527 (12747)
In ESCWA, the Security Manager properties could be set too long, causing a crash. This has now been
fixed.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 91
(61192)
This fixes an issue with the change to the behavior introduced with the passtoken changes in previous
patch updates. An issue might occur in a stacked environment with OS ESM and MLDAP_ESM. Job
dispatch would issue a deny when cassub was used.
3229601 (11524)
An issue when using a secured MFDS, with an LDAP ESM as first in the stack, and a PAM ESM as
second in the stack, and with federation enabled, has been resolved.Previously, if the security was
reinitialized through any means (such as clicking the apply button, or reordering the ESMs and
changing them back), the MLDAP ESM would not be able to correctly determine that the PAM ESM
user user1 in group1 matched the LDAP resource rule which described group1 within the resource rule.
This should have worked because the group information is shared when federation is enabled.With this
fix, the resource rule in LDAP correctly identifies that the group1 rule applies to the PAM ESM user
user1, on both initialization and reinitialization.Behaviour Change:When SAFMGR was reinitialized,
PAM ESM was pointing to the old shared groups table, so MLDAP ESM and PAM ESM ended up
pointing to different shared groups tables. It should have been the same table as federation was
enabled.PAM ESM groups table is now cleared on initialization, so that the ESMs will now point to the
same groups table.
3221760 (11697)
ESMAC now includes cross-site request forgery protection. A 403 Forbidden page is now returned
whenever a user attempts to bypass the protection. If you want to access more than one region in
ESMAC at the same time, it can no longer be done in the same browser session. You can access the
regions in separate private browsing sessions.
3216052 (13208)
A new resource class, DCBINFO, enables you to control who can access the DCB information for
cataloged datasets in ESMAC for a LDAP secured region. DCBINFO must be created for existing users
to be able to access the DCB information in ESMAC.
3231918 (13300)
MQ commands did not work because Windows installations of MQ are client, not server. This has been
ccorrected.
(46022)
MFDS now correctly uses the specified region user in the ESCWA Directory Server Scripts page or
Directory Server user in the ESCWA Directory Server Configuration page. Otherwise, it defaults to the
current user.
(8727)
If MFDS is set to "Restricted Access" and the MFDS "Anonymous access" option is off (the default),
then valid authorized credentials will be required to access information stored in the Directory Server
either via the legacy UI, ESCWA, or utilities such as mdump.
(62100)
When MFDS is TLS enabled and a client connects on the non-TLS port, it will now send a HTTP 302
Found response to the client to redirect it from the non-TLS port to the TLS-enabled port. This is
seamless to the Web browser.
(46024)
File Handling
Back to the list
Within MFDBFH, enhancements have been made to optimized I/O to further improve
performance.Enterprise Developer 6.0 and Enterprise Developer 7.0 only: The dbfhconfig utility has
been enhanced with the addition of the -optiokeyreads and -optioseqreads command-line options.
These options are used to override the default number of records read ahead by MFDBFH when
optimized I/O is enabled.
92
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
00726932 (83019)
The SFF (Signed Free Form numeric) input field is now supported in the TRAILER3 operand.
3217597 (12477)
A File Handler limit on the maximum record size (62KB) has resulted in the documented limits for data-
driven unit tests to be revised. See Restrictions in the Micro Focus Unit Testing Framework.
(25064)
Header-to-COPY Utility
Back to the list
When h2cpy is used to convert C header files to COBOL copy files, function prototypes with const *,
which produce BY REFERENCE parameters in the ENTRY statement for the COBOL call prototype, will
now include the CONSTANT reserved word. In this context, it means the variable is read-only in the
callee, just like in C.
(10214)
Interface Mapping Toolkit
Back to the list
Headers are no longer mapped in the output of WS2LS.
3235120 (12606)
Top-down CWS generation from WSDL now properly marks hexBinary fields in the generated WSBIND.
3236069 (11690)
WS2LS now assigns usage COMP-3 to items mapped from decimal and integer types in the
WSDL.Behaviour Change:WS2LS will now assign usage COMP-3 to items mapped from decimal and
integer types in the WSDL. This will affect the generated copybooks and WSBIND. Previously-
generated files will still work, and users should be using the WSBIND and copybooks from a single
execution of WS2LS in their environment anyway, since changing one results in (or reflects) changes to
the other.
3235120 (13494)
In copybooks generated by WS2LS, several data types now have mappings that are closer to those
generated by IBM's DFHWS2LS.Behaviour Change:In copybooks generated by ws2ls, several data
types will now have mappings closer to those generated by IBM's DFHWS2LS.
00365433 (11693)
Run-time System
Back to the list
When defining the file name for CBL_CREATE_STACKDUMP, %f now expands to basename of the
program correctly when used cross-process.
(60049)
When CTF trace level is set to info (for post-offset values only) or debug (for pre-offset, offset and post-
offset values) and component rts#process is set to true, the API will now dump the captured metrics to
the output CTF file.
(27040)
SQL: OpenESQL
Back to the list
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 93
An issue with compiling native programs that use SQL TYPE IS XML AS CLOB has been resolved.
3240037 (12679)
Significant Changes in Visual COBOL 6.0
The numbers that follow each issue are the Support Incident Numbers followed by the Reported Problem
Incident (RPI) number (in parentheses).
Adis
Call prototyping in library routines
Common Communications Interface
Compiler
Database Access - OpenESQL
Data Tools
DB2
Documentation
Early warning of compatibility issues with current operating systems
Enterprise Server
Enterprise Server Common Web Administration
Enterprise Server Security
File Handling
Handling of Anonymous Root Field in JSON
HCO for DB2 LUW
IDE
Micro Focus Directory Server
National data items in .NET COBOL code
Run-Time System
SQL Option for DB2
VALUE clause not permitted to follow items that use the OCCURS DEPENDING ON clause when
ODOSLIDE in effect
Adis
Back to the list
In RM/COBOL, the ACCEPT of a screen with an input field beyond the end of the screen would operate
as if the field was at the last character of the screen. Previously, ADIS would ignore any fields past the
end of the screen. Now, with Dialect"RM" set and the appropriate ADISCTRL settings, behavior will now
match RM/COBOL in this case.
3138718 (1112690)
Call prototyping in library routines
Back to the list
The copybooks cbltypes.cpy and cblproto.cpy, provided by this system for call prototyping in library
routines, include features of the latest syntax, specifically the CONSTANT keyword. If these files are used
in conjunction with the MF directive, it should be set to the current level, 21; otherwise, you should remove
the directive, or do not use these copybooks.
Common Communications Interface
Back to the list
The default TLS Security Level has been increased from 0 to 1. This change will not affect any user that
has specified their own security options. Users relying upon the default TLS security options might find
94
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
that some old clients that are restricted to the use of weak ciphers will no longer be able to connect.
See "Security Levels" and "Specifying a Server Protocol and Cipher Suite Preference" in your product
Help for more information on the change to Security Level 1.
Compiler
Back to the list
"file not found" error messages now provide more information about the key the user needs to press.
The new format of the messages is as follows: "File name.cpy not found - Press [S]top/[R]etry/
[C]ontinue/[A]lter-path".
External data and files declared in an instance context (such that is not within STATIC/END STATIC and
without the STATIC qualifier) can no longer be accessed from a static method. The STATIC qualifier is
now allowed in combination with EXTERNAL.
3216822 (1119228)
Data Tools
Back to the list
You are no longer able to modify data in a structured record that is identified as comp-2 floating point -
an alert is displayed if attempted. This is in order to prevent the data becoming corrupted.
3213037 (1118867)
Data File Tools now utilizes the configurable codesets facility to use a variety of character sets - see
'Working with Different Character Sets' in the documentation for more information.
3161243 (1114482)
Database Access - OpenESQL
Back to the list
Just like other DBMS SQL COBOL precompilers, OpenESQL now follows embedded SQL standards and
disallows the use of group host variables in WHERE <column> = :hostvar clauses. In the past, this was not
flagged at compile-time, and would lead to unpredictable results when executed.
DB2
Back to the list
There is no longer a problem using an XML CLOB host variable in COBOL and PL/I program SQL
statements when compiling with the DB2 ECM Compiler directive.
3204413 (1118115)
Documentation
Back to the list
The information about the -flag and warn compiler options has been updated.
3190928 (1120000)
Early warning of compatibility issues with current operating systems
Back to the list
In order to better support modern operating systems, we are aligning closely with their operability
guidelines. We now detect previously-undefined behavior when interacting with OS level functions.
Error RTS096 alerts you to any calls to the operating system's fork() API, in a process that has directly or
indirectly called COBOL functionality, in your code.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 95
The error gives you an early diagnosis of a situation which, if left unchecked on modern operating systems,
could lead to deadlocks, crashes or other failures at run time. These problems would often occur
intermittently and be very challenging to track down.
See the KB article https://community.microfocus.com/t5/Visual-COBOL-Knowledge-Base/fork-rts64-
Error-96-encountered-in-child-process/ta-p/1771191 for more details.
Enterprise Server
Back to the list
IF an XA open string uses the BATCHONLY option, CRCN will not monitor the XA connection to the
resource manager. If the BATCH SEP encounters a severe XA error, the batch SEP will be recycled
until the connection is recovered. This emulates the previous version of the XA reconnect feature when
ES_XA_????_NB_RETRIES=-1 was set. Consequently, if an open string contains BATCHONLY, only a
batch SEP will be able to access the resource manager and, as CRCN is a CICS transaction, it will not
monitor this entry.
3213379 (1118913)
The initPac option for the caspac command line utility has a change in behavior. Prior to PU5, if the
command detected that there were active regions in the PAC, the command would return an error and
not initialize the PAC. This only occurred when: 1. There are active regions in the PAC. 2. There are no
active regions in the PAC, but a region has shutdown without notifying the PAC SOR (PSOR), for
example, if the region was killed. In this case, it was not possible to cold start a PAC without manually
correcting the appropriate value in the PSOR. The initPac option will now prompt for confirmation on
whether you really wants to initialize the PAC, giving you the option to cancel. CAUTION: Only use this
option for scenario 2, ensuring that no cas* or mfcs processes remain for regions within the PAC. If it is
used when there are active regions in the PAC, the regions will no longer function correctly.
(642125)
Enterprise Server now supports Redis Cluster as a SOR. See "Prerequisites" in the "Scale-Out
Performance and Availability Clusters" chapter in your product Help for more information.
When compiled with the XAID Compiler directive, JCL batch SQL applications now work correctly when
MFDBFH is enabled.
3223257 (1119804)
Enterprise Server Common Web Administration
Back to the list
By default, ESCWA now runs on port 10086.
When using the Vault Facility, the ESM passwords are now accessed by the ESM’s Universal Unique
Identifier (UUID) which makes the key for the vault. If this UUID cannot be found it uses the old name
based mechanism as the key for the vault. Note: All new ESMs have a UUID that conforms to 4122
RFC. The earlier ESM UID standard is still supported.
PAC names are now limited to eight characters or fewer in ESCWA.
The default ESCWA configuration file now sets ESCWA to run in loopback-only mode.
Enterprise Server Security
Back to the list
The MLDAP ESM Module for Enterprise Server now interprets the ".**" wildcard sequence in a manner
closer to that of mainframe RACF. This behavior is configurable. See "Wildcards for Resource, User,
and Group Names" and "MLDAP ESM Module Custom Configuration Information" in your product Help
for more information.
3206992 (1118359)
96
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
File Handling
Back to the list
The supervisor password is no longer displayed when cobfsclose is executed from the command line.
3195772 (1117571)
Usernames in the Fileshare password file are no longer obfuscated; they are shown in plain text.
3120656 (641976)
Fileshare can now read a password file stored in the Vault Facility. Use the /uv option when starting
Fileshare to read the specified password file from the vault. Note: You must have uploaded the
password file to the vault before starting Fileshare.
File and folder names that are deployed to PostgreSQL datastores are now case-insensitive. This
ensures consistency of behavior with DB2 and SQL Server datastores.
Handling of anonymous root field in JSON
Back to the list
For JSON (RESTful) service interfaces, the IMTK no longer forces the outermost (root) structure of a JSON
message body to always be a JSON object, but now also supports a root JSON array or primitive. Though
the root is obligatorily nameless in the JSON message, in the Interface Mapper the anonymous root must
now be defined in the operation's interface fields as the top-level body field. Consequently, since there
cannot be more than one input top-level body interface field nor more than one output top-level body
interface field in an operation, all interface fields that appear in the body of a message must now be
children of the top-level body field. Any non-conforming pre-6.0 JSON service interface is still supported
as-is, but conformance would be required upon any modification in the Interface Mapper.
IDE
Back to the list
In fixed format COBOL code, lines in custom code snippets will now be automatically wrapped if they
reach the end of area A/B.
3201628 (1117874)
Server Explorer in Eclipse and in Visual Studio now requires you to specify user names and passwords
if security is enabled to connect to the nodes. The default credentials are no longer automatically
applied.
Micro Focus Directory Server
Back to the list
UNC paths are no longer supported when importing or exporting to MFDS by default. To re-enable
them, set the environment variable MFDS_ALLOW_UNC to 'Y'.
National data items in .NET COBOL code
Back to the list
.NET COBOL code that uses IS NUMERIC tests on NATIONAL or NATIONAL NUMERIC data items, or
uses NATIONAL NUMERIC data items in programs compiled with the CHECKNUM Compiler directive
must be recompiled in this release. Compiled code from earlier products that uses such constructs will
generate a MissingMethodException error when run under this release.
Run-Time System
Back to the list
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 97
Previously, the value of the fill character and the option to use it were ignored in the RM window control
block. With this fix, the character will be used if Dialect"RM" is set and an appropriate ADISCTRL
configuration is used.
3138692 (1112552)
SQL Option for DB2
Back to the list
The XDB Service name has been shortened.
3195822 (1119897)
VALUE clause not permitted to follow items that use the OCCURS DEPENDING ON clause when
ODOSLIDE in effect
Back to the list
If your Working Storage contains a data item with the OCCURS DEPENDING ON phrase, and ODOSLIDE
is in effect, any subsequent data items at the same or higher level must not contain a VALUE clause. If they
do, an error (COBCH1962) is now generated.
If you cannot remove the VALUE clauses from your source code or remove ODOSLIDE, contact
SupportLine.
Significant Changes in Visual COBOL 5.0
Where present, the numbers that follow each issue are the Support Incident Numbers followed by the
Reported Problem Incident (RPI) number (in parentheses).
Common Communications Interface
Data Tools
Documentation
Enterprise Server
Enterprise Server Auditing
File Handling
Interface Mapping Toolkit
Micro Focus Directory Server
MFCRYPTLIB
Request Packet Interface API
Common Communications Interface
Back to the list
Certificate subject names are now correctly checked against the name the client is attempting to
connect to. Certificates registered to "localhost" should now work as expected.
The default Cipher Suites List now includes @SECLEVEL=0. This indicates that backwards
compatibility with old certificates such as MD5 is to be retained. As a result of this change, you need to
review your use of the Cipher Suites List and of any old certificates.
If using Micro Focus Common Client(MFCC) or Micro Focus Communications Server(MFCS) to connect
to a non-existent remote host, it was possible to create a connection to a server listening on the same
port on the local system. This is no longer possible and a bad address error is reported in the error logs.
By default, in this and previous releases an SSL/TLS CCI client can trust a server which resides on an
IP address that is not an intended connection target. You can now specify the ssl_only_verify_literally
option in your CCI.INI file to restrict the certificate check to improve security. See “CCITCP Security
Options in the CCI.INI File” in your product Help for more information. When connecting to a non-CCI
protocol server, all clients perform strict certificate checking as the new default behavior
98
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Data Tools
Back to the list
Accessing a dataset through the Data File Editor now obtains a shared lock on Enterprise Server when
you open the file in shared mode.
3170479 (1115346)
Documentation
Back to the list
The ANIM Compiler directive has changed its default when compiling from the command line on
Windows platforms. The default is now ANIM. (Compiling from the IDE still defaults to ANIM.)
The validation of server certificates for TLS (also known as SSL) connections has been corrected. This
is likely to cause connection failures in cases where previously connections were incorrectly allowed.
For example, if Fileshare is secured with TLS, client applications must be configured to use the
hostname of the Fileshare server as it appears in the server's certificate. If the Micro Focus Directory
Server is secured with TLS, then MFDS clients, such as the casstart command-line utility, will need to
connect to it using a hostname that appears in the certificate MFDS is using. (Note that a certificate can
contain multiple hostnames.) Consult your Certification Authority administrator for more information.
3192497 (1117068)
Enterprise Server
Back to the list
A number of audit events now contain some additional information.
3140310 (1112666)
Previously, the /x option of the CASRDTEX utility had been duplicated to drive XML output. This
prevented the export of transactions which was the original meaning of /x. To generate an XML export,
you must now specify the option /xm.
3180233 (1116108)
casfhsf could hang when processing HSF files that contain records from tasks that ran in different
months.
3177385 (1115884)
A new system transaction, CRCN, is now available to monitor the state of XA connections for each
resource manager (RM) entry defined in the system. CRCN is a replacement for the former XA
Reconnect facility that recycled SEPs on connection loss. The XA Reconnect facility was configured by
setting the ES_XA_RECONNECT environment variable. CRCN also uses this environment variable,
although its usage differs slightly. For more information see your product Help.
3174272 (1115727)
On Windows, any casout and cassub messages are displayed on cassub and casout API invocation if
the environment variable ES_CAS_API is not set to "ON".
3160400 (1114458)
Enterprise Server Auditing
Back to the list
Auditing on big-endian platforms now correctly interprets numeric audit data.
File Handling
Back to the list
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 99
RELFORMAT=MF|RM is now enabled for FOLDER and other filename tags.
3164916 (1114803)
The SORT-CONTROL special register is now supported during a SORT statement.
3159740 (1114389)
To direct the handling of relative files to a particular file handler (either MF COBOL or RM/COBOL), use
the RELFORMAT=MF or RELFORMAT=RM configuration options within the [REL-DEFAULT] tag of the
EXTFH.CFG file. (The default is RELFORMAT=MF.)
3157247 (1114149)
Interface Mapping Toolkit
Back to the list
If you try to deploy a stateful EJB SVI from the Visual Studio IDE after unchecking the “Reuse container
after application termination” check box (in the Deployment Characteristics tab of the Runtime
Environment Configuration dialog box), you receive a warning message informing you that the “Reuse
container after application termination” setting will be set to true for the deployment in order to prevent
the crash. In the Eclipse IDE, the unchecking of this option will just be ignored, and the option re-
selected. A warning to not uncheck the option for stateful EJB SVIs is also displayed on the prior page
(to the dialog box).
2663812 (1090987)
WSDL and JSON Schema files generated for bottom-up CICS Web services now include a
"maxLength" parameter for all string fields.
3175039 (1116241)
Micro Focus Directory Server
Back to the list
The event codes for several MFDS audit points have changed.
On Windows, by default, the Enterprise Server Administration Web interface can only be contacted
using the loopback address (localhost or 127.0.0.1). You can enable remote access to the Web
interface by turning off the loopback mode. See "Using the Loopback Address" in your product Help for
more information.
MFCRYPTLIB
Back to the list
Passing an incorrect keyfile passphrase no longer results in receiving an RTS115 error in MFDS.
3181743 (1116186)
Request Packet Interface API
Back to the list
The default behaviour for TLS certificate Common Name (CN) matching has changed for release 5.0. It
now requires a strict match on the CN value or any Subject Alternate Name (SAN). For example,
127.0.0.1 and localhost are no longer implicitly equivalent, nor are hostname and its IP address or fully-
qualified domain name (FQDN) variants. When starting a region from the Enterprise Server
Administration Web interface, a resolved IP address is used for the casstart -m parameter value. A
resolved IP address is also used even if a hostname is specified on a command line startup.
To change this behavior and use a resolved hostname value (as determined by the machine TCP
configuration, for example, hosts file entries.) set the environment variable MFDS_DNS_RESOLVE=Y.
100
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
To use an unresolved string literal hostname, for example, a value explicitly passed in via the casstart –
m command line parameter, set MFDS_DNS_RESOLVE=N.
3194613 (1117203)
Significant Changes in Visual COBOL 4.0
This section describes significant changes in behavior or usage in Visual COBOL 4.0. These changes
could potentially affect the behavior of existing applications or impact the way the tools are used.
Where present, the numbers that follow each issue are the Support Incident Numbers followed by the
Reported Problem Incident (RPI) number (in parentheses).
Code Coverage
Codeset Support
Common Communications Interface
Communications Server
Compiler
Data Tools
Documentation
Enterprise Server
Enterprise Server Auditing
Executables require relinking
File Handling
MF Server Administrator (GUI)
Micro Focus Directory Server
Run-Time System
Code Coverage
Back to the list
Schema changes that affect the test coverage results generated from the tcutil utility mean that if
you propagate the results to a third-party application (for example, an XSLT processor), and rely on the
<copyFileCoverage> element, you need to alter your transformations to focus on
<sourceFileCoverage> instead. The element was renamed to more appropriately reflect its
contents, as tcutil now gives global coverage for all source files (not just copybooks).
Codeset Support
Back to the list
Code-set mappings between ASCII and EBCDIC have been updated when Simplified Chinese is the
language in effect. ASCII table 5210 now maps to EBCDIC CCSID 836 for SBCS conversions. This
replaces the previously conversion (where ASCII table 1042 was used), which would convert the “\”
character to “$”.
3124321 (1111464)
New single-byte character set tables for MFCODESET have been added in order to improve support for
DB2 LUW - both for off-mainframe databases and for access to z/OS DB2. A number of existing
MFCODESET mappings have also been updated. See 'Supported Country Codes' for a full listing of
ASCII/ANSI <-> EBCDIC mappings.
3111843 (1109984)
Common Communications Interface
Back to the list
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 101
You can now configure the Micro Focus Directory Server and enterprise server region’s listeners to only
use the server's configured SSL and TLS protocols and define a priority ordered cipher suite collection.
This forces connecting clients to use the server’s preferred ordered list of cipher suites when using the
specified protocols.
2866265 (1105526)
In some circumstances it was possible for a connection to incorrectly accept the identity of an SSL/TLS
peer and allow a connection to complete when the connection should have been denied. This occurred
due to a failure to check the peer's entire identity certificate chain. This has now been fixed. NOTE: You
might need to correct your system’s configured certificate chains that fail verification checks at secure
connection creation time.
In some circumstances it was possible to crash the CCITCP module when it was attempting to obtain
detailed error information about a closed connection. This has been fixed.
Communications Server
Back to the list
TN3270 conversations to Enterprise Server now correctly handle the receive (idle) timeout setting
configured for the listener. There are also two new settings for configuring TN3270 timeouts, "Printers
time out" and "Output resets timeout". See the online product documentation for more information.
3144133 (1113024)
MFCS listeners can now be SSL-enabled without the need to have DemoCA installed.
2868627 (1105777)
MFCS no longer initializes the Security Facility if there are no External Security Managers defined for
the region.
Compiler
Back to the list
Programs containing EVALUATE statements of the form: EVALUATE true | false WHEN conditional-
expression where conditional-expression included inline method invokes would give an RTS 114 error
when run as .int code, and an "Illegal .int code" error when generated. This has been fixed. Also, short
circuit evaluation is now correctly observed, such that when evaluating condition-1 AND condition-2, if
condition-2 contains an inline method invoke and condition-1 is false, then the inline method invoke is
not executed. Previously, despite being correctly evaluated, the inline method invoke in condition-2 was
being executed. Similar behavior relating to OR evaluations has also been corrected.
3138510 (1112492)
During compilation, characters within literals that are unknown in the current locale are now less likely to
cause spurious errors. However, the correct (and safest) solution is to ensure that the locale has been
set correctly, to match the source encoding of these characters. On UNIX, this means setting LANG,
LC_CTYPE, or LC_ALL appropriately; each of these variables takes precedence over the former. On
Windows, this means setting the system locale in the 'Region and Language' section of Control Panel.
3123935 (1111148)
The Compiler now produces an E level message - COBCH1888 Typedef is defined differently in another
external program - if different external programs have conflicting definitions of the same typedef name.
(To restore the previous behavior, where the earlier definition was ignored, use the directive
HIDEMESSAGE"1888".)
An issue with the Compiler has been fixed so that in the RECORD VARYING clause, if the minimum
and maximum lengths are specified, the maximum length must be greater than the minimum length.
Data Tools
Back to the list
102
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Records with an invalid value for a conditional field will no longer result in a match for that conditional
layout.
2853226 (1103406)
Documentation
Back to the list
You can use 'byte' or 'BYTE' as a synonym for the binary-char unsigned data type. As a result, 'byte'
and 'BYTE' are now reserved words in Managed COBOL. Use the REMOVE"BYTE" Compiler directive
to prevent an error being produced for existing programs that use the reserved word as a user-defined
word.
3147576 (1113323)
As of version 3.0, references to types within an assembly other than mscorlib need to be explicitly
referenced. You can achieve this by using the ILREF Compiler directive. (Previously, in certain
circumstances, the Compiler would allow access to types within the System.dll assembly without the
need for an ILREF"System" directive.
3121002 (1111373)
Enterprise Server
Back to the list
The External Security Facility (ESF) can now be configured to throttle large volumes of incoming Verify
(user authentication / signon) requests to improve resilience to denial-of-service and brute force attacks.
See "Verify Request Throttling" for more information.
3113639 (1110160)
The LDIF files used to create the sample configuration for Enterprise Server LDAP-based security no
longer create an empty "PHYSFILE" resource class. Changes in the JCL engine as of ES 3.0 caused
most jobs to fail when submitted to a security-enabled region using such a configuration. See the
product help for more information.
The MLDAP ESM Module, part of the Enterprise Server External Security Facility, now supports the
Argon2 hash algorithm for creating password verifiers. See MLDAP ESM Module Custom Configuration
Information in the product help for more information. NOTE: The Argon2 hash is optional and not
enabled by default.
The MQ pages in ESMAC are now controlled by a new security resource, MQL. This enables you to
either restrict or grant users access. 'MQL*' is a new resource that needs to be added under MFESMAC
similar to existing resources such as 'PCT*' or 'XAT*'. The following is a sample export of the LDAP
repository:
******************************
# Sample security definitions for ESMAC MQ Listeners/Writers pages
#######################
###### MQL* ##
#######################
dn: CN=MQL*,CN=MFESMAC,CN=Enterprise Server Resources,CN=Micro
Focus,CN=Program Data,DC=X
changetype: add
cn: MQL*
objectClass: microfocus-MFDS-Resource
microfocus-MFDS-Resource-Class: MFESMAC
microfocus-MFDS-Resource-ACE: allow:SYSADM group:alter
microfocus-MFDS-Resource-ACE: deny:*:execute
microfocus-MFDS-UID: mfuid
#description: Allow full access any ESMAC MQ Listeners/Writers Screen
******************************
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 103
3143258 (1112990)
You can now use the ECIResponse.getReturnCode() method to obtain the return code for any errors
from Enterprise Server.
3142092 (1113248)
Communication with the console daemon has been improved. Messages are displayed more quickly
and requests are being processed more efficiently and, as a result, times for initialization and shutdown
might be reduced.
3136867 (1112483)
Administrators can now add, delete or modify XA resources in the Enterprise Server Administration
Web UI while a region is running.
2589624 (1085625)
Enterprise Server Auditing
Back to the list
The maxRetryTime value in the audit configuration file now treats 0 as a no timeout time, and any
negative number as an infinite timeout.
3150566 (1113592)
Any extra information that was added to the syslog messages will now correctly appear in the structured
data items.
Executables require relinking or recompiling
Due to an internal change in version 4.0 of your product, you must at least relink any executable
programs compiled prior to this version, to make them compatible with the latest run-time system.
However, a full recompilation of your source code is the recommended action, to allow your executables
to benefit from the product's latest programming and performance enhancements.
Relinking an executable without recompiling means using the original object code with the cbllink
utility. Original object code is typically the binary file output (usually containing the .obj extension)
produced during the original compilation process. An application can contain one or more binary files.
File Handling
Back to the list
In some cases the ESF LDAP Security Administration Web Interface inadvertently removed users from
groups when changing their password. This has been fixed.
3124294 (1111259)
The ESF LDAP Security Administration Web Interface can now filter by Class and Resource name,
description, and ACL. Previously, you could only filter on Class name.
2871549 (1106119)
For .NET applications, set XFHLOG=DEFAULT to create the XFHLOG file in the current directory;
otherwise it is created in C:\ProgramData\Micro Focus\[ED/VS]\[Release]. From release 4.0 onwards,
this variable also has an effect for native applications.
3115116 (1110323)
Setting the configuration option ASCIISOSI=ON will adds the required SOSI characters to the relevant
EBCDIC DBCS character strings, in order for them to be displayed or written out correctly.
3113802 (1110183)
The OPEN mode of SYSOUT files now honors the DISP specified in the JCL.
3109432 (1109745)
104
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
OPEN I-O of a virgin ESDS file now correctly returns a file status of 35, as it does on the mainframe.
2887724 (1108443)
MF Server Administrator (GUI)
Back to the list
The total number of active sessions or clients in MFDS is now limited to 2000.
Micro Focus Directory Server
Back to the list
The mfds -g options D, O, and S have been added to the product Help.
2848627 (1102864)
MFDS now disables and limits the scope of Web listeners on add. It also emits a warning if any
insecure Web listeners are displayed in the validate and listener tables.
Run-Time System
Back to the list
The run-time system now produces a more precise error message if a shared object of the wrong bitism
is loaded.
scan64 is no longer available. This has been superseded by the COBOL Analysis functionality in the
IDE.
Significant Changes in Visual COBOL 3.0
Visual COBOL version 3.0 includes significant changes in the following areas:
Compatibility AddPack
Compiler
Documentation
Enterprise Server
File Handling
IDE
Micro Focus Directory Server
OpenESQL
Reserved words
SQL Option for DB2
Compatibility AddPack for Visual COBOL
Compatibility AddPack for Visual COBOL is now deprecated and will not be available with release 3.0 and
later.
The Dialog System GUI and run-time components and Dialog System Character Mode (on Windows and
UNIX) which were part of the AddPack are now installed as part of Visual COBOL for Visual Studio. The
run-time components are installed as part of COBOL Server. These are only included for backward
compatibility and Micro Focus does not recommend that you use them for new development.
The other components which were part of the AddPack, the Character-Based Data File Editor, CSBIND
and Screens, will be available upon request from Micro Focus SupportLine.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 105
Compiler
Replacing a partial token no longer causes the second part of the token to appear on a new line. This
could happen if the new text was larger than the text being replaced.
2869185 (1105763)
Documentation
There have been a number of new reserved words added to the language in this release; these are all
in effect under MFLEVEL"19", which is the default level when running under the MF dialect. Any of the
following words are now not allowed under default conditions, and you will need to remove/rename
them, or specifically configure your environment to allow them: ALLOCATE FREE JSON END-JSON
Enterprise Server
WEB CONVERSE now supports a value of 0 for the USERLEN and PASSWORDLEN options which
matches the behavior on the mainframe. There is no change to the behavior of WEB SEND (client)
which is to return LENGERR 139/140 when USERLEN or PASSWORDLEN are 0.
2989188 (1108602)
IDE
Disabling CICS support from the properties of a file in your project within the IDE now correctly sets the
NOCICSECM Compiler directive on that file.
File Handling
A problem that generated a 39 error when attempting to access a VSAM file via an alternate index
PATH element has been fixed.
2874622 (1106562)
Micro Focus Directory Server
In the Enterprise Server Administration HTML GUI, the "Scripts" page functionality is only available if
administration access is restricted and the logged on user has sufficient authority.
3101625 (1109025)
Some additional CSRF security measures have been added to the Enterprise Server Administration
HTML GUI.
3101205 (1108916)
OpenESQL
The new OpenESQL OPTIMIZECURSORS SQL compiler directive option is turned on by default for both
ADO.NET (DBMAN=ADO) and ODBC (DBMAN=ODBC). For ADO.NET, this reduces cursor memory
consumption thereby providing optimal performance. This also ensures that, for ODBC, embedded SQL
cursors that use WITH HOLD and FOR UPDATE clauses have the same data integrity across all
databases.
If your applications require the OpenESQL preprocessor to use the behavior provided in an earlier release,
compile them using OPTIMIZECURSORS=NO.
Reserved words
There have been a number of new reserved words added to the COBOL language; these are all in
effect under MFLEVEL"19", which is the default level when running under the MF dialect. Any of the
following words are now not allowed under default conditions, and you will need to remove/rename
them, or specifically configure your environment to allow them:
106
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
ALLOCATE
FREE
JSON
END-JSON
SQL Option for DB2
Help buttons previously available on the XDB Server Configuration Utility, XDB Service Controller,
Options Dialog, Bind Utility, and Linker Config (Link Profile) UIs have been removed with the exception
of error messages in the SQLWizard, Migrate, and Declaration Generator.
Significant Changes in Visual COBOL 2.3 Update 2
Visual COBOL version 2.3 update 2 includes significant changes in the following areas:
Compiler
Enterprise Server
MF Directory Server
Monitoring and Management
Run-Time System
Compiler
The ILPINVOKE directive is now allowed only in an initial $SET. This is in line with similar directives like
ILREF and ILTARGET. Previously, the ILPINVOKE directive was allowed in other positions in the source
code, but could later result in 'Insufficient memory' errors.
2860347 (1104422)
Replacing a partial token no longer causes the second part of the token to appear on a new line. This
could happen if the new text was larger than the text being replaced.
2869185 (1105763)
There is no longer a problem opening an RM/COBOL indexed file when the program has a RECORD
CONTAINS n CHARACTERS clause and there are record descriptions with lengths less than n. This
situation previously caused a 39 error on the OPEN (other than OPEN OUTPUT) because there was a
mismatch in the minimum record length.
Enterprise Server
Previously, it was possible to install groups that should not have been installed. If a group name, as
defined in the Startup List, did not exist in the list of Groups then the next Group in the alphabetical
order would be loaded instead. Now, if a Group is not defined in the list of Groups, a warning that the
Group could not be loaded is issued.
2869848 (619107)
MF Directory Server
The "-n" option for the mfds command now supports hostnames as the network addresses in addition to
IPv4 addresses.
2816871 (1099564)
Monitoring and Management
Messages that are written to the console log by applications that perform "display upon console" now
contain a standard message ID (CASMG0001I).
2854207 (1103659)
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 107
Run-Time System
The command_line_linkage tunable has been deprecated; equivalent functionality can be achieved by
using the COMMAND-LINE-LINKAGE Compiler directive instead.
2838118 (1101539)
Significant Changes in Visual COBOL 2.3 Update 1
Visual COBOL version 2.3 update 1 includes significant changes in the following areas:
Data Tools
Dialog System
Editor Writing Assistance
Run-Time System
SQL: OpenESQL
SQL Option for DB2
Data Tools
When filtering a data file, if there is no valid temporary directory set, you are prompted to set one using
the option in the Preferences dialog box.
The editor no longer allows you to open a file if the file size (without header size) is not a multiple of the
record size on disk; an error is produced instead.
The editor no longer allows you to open a file if the file size without header size is not a multiple of the
record size on disk; an error is produced instead.
The level numbers displayed in a record layout correspond to the levels used in the .idy file that was
used when the structure file was created.
Dialog System
Versions of the Micro Focus Compatibility AddPack released with version 2.3 of Enterprise Developer or
Visual COBOL 2.3 or with earlier versions supported the use of the "MFOLECL_NO_THREAD_INIT"
environment variable. Using this variable, you could disable the default OLE Class Library COM
threading initialization. This helped avoid issues that could manifest as hangs and crashes, especially
on Microsoft's Windows 8.x or 10 and with applications that are a hybrid between Dialog System, OLE
class library and .NET elements - see http://community.microfocus.com/microfocus/cobol/
visual_cobol/w/knowledge_base/20715.exception-occurs-when-native-dialog-system-program-calls-
managed-winform.aspx.
In the version of the Micro Focus Compatibility AddPack released with Enterprise Developer 2.3.1 or
Visual COBOL 2.3.1, this environment variable is now enabled by default and no longer needs to be set
exclusively. To restore the previous behavior, use a new environment variable,
MFOLECL_THREAD_INIT, and set it to Yes.
2848875 (1102920)
Editor Writing Assistance
IntelliSense (Visual Studio) or Content Assist (Eclipse) suggestions are no longer offered if you start
typing numbers and automatic triggering of suggestions is enabled.
Pressing TAB in the Visual Studio editor now always inserts the highlighted item in the IntelliSense list
of suggestions.
Run-Time System
The Audit Manager contains a new TIMEOUT option. When a client sends an audit event using the
‘CBL_AUDIT_EVENT’ API, the event gets placed in the next available slot in a shared memory block. If
shared memory is full (i.e. no slots are available), the event is re-tried until a slot becomes available.
108
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
If no Audit Manager is running, no events are removed from shared memory, and no slots will ever
become available. Therefore, use the new TIMEOUT option so that a client will only retry sending until
the TIMEOUT duration is reached; after which, it will stop sending audit events. If Audit Manager is
recycled, events will start to be sent again.
To set the TIMEOUT for all Audit Manager clients, specify the following line in the Audit Manager
configuration file:
mfaudit.timeout = n
Where n is the timeout value in milliseconds.
To set the TIMEOUT for an individual Audit Manager client, use the
‘CBL_AUDIT_CONFIG_PROPERTY_SET’ API. It takes an integer property-value, which should be the
timeout value in milliseconds.
If TIMEOUT is set using both methods, the client property TIMEOUT takes precedence, unless this
property is set to zero; in such cases, the TIMEOUT in the configuration file is used. If you use the
‘CBL_AUDIT_CONFIG_PROPERTY_GET’ API on the ‘TIMEOUT’ property, it only returns the
TIMEOUT value for the client property; it does not return the value set in the configuration file.
2838689 (1101685)
Several changes have been made to the implementation of IS DBCS, IS KANJI and IS JAPANESE
class condition tests:
IS [NOT] DBCS
When CHARSET"EBCDIC" is in effect, the IS DBCS test returns true when each character in the
string is deemed to be a valid DBCS character. A valid character has its first byte in the range 0x41
through 0xFE, and the second byte in the range 0x41 through 0xFE, or the character is an EBCDIC
space (0x4040). When CHARSET"ASCII" is in effect, the DBCS test uses an OS call to determine if
the string contains only valid double-byte character, and returns true if valid.
IS [NOT] KANJI
When CHARSET"EBCDIC" is in effect, the IS KANJI test returns true when each character in the
string is deemed to be a valid Kanji character. A valid character has its first byte in the range 0x41
through 0x7F, and the second byte in the range 0x41 through 0xFE, or the character is an EBCDIC
space (0x4040). When CHARSET"ASCII" is in effect, the IS KANJI test uses an OS call to determine
if the string contains only valid Kanji character, and returns true if valid.
IS [NOT] JAPANESE
When CHARSET"EBCDIC" is in effect, the IS JAPANESE test is not supported, and will generate a
COBCH1806 Feature not supported in selected charset message on compilation.
When CHARSET"ASCII" is in effect, the IS JAPANESE test returns true when the string contains
only double-byte Japanese characters or single-byte Japanese Katakana characters, and returns
true if valid. When NSYMBOL"NATIONAL" is in effect, these class tests are not supported, and will
generate a COBCH0303 Operand has wrong data-type message on compilation.
2812895 (1098401)
SQL: OpenESQL
The DB2 CONCAT function and operator now convert to SQL Server using the HCOSS-supplied
dbo.CONCAT for character, numeric and datetime data. If you are using BINARY or VARBINARY data,
you must apply the HCOSS-supplied dbo.CONCAT_BINARY function. HCOSS applications deployed
with earlier versions of Visual COBOL are affected, if they use string or binary concatenation. The
mainframe dialect DB2 || operator and CONCAT function now call a new SQL Server scalar function
dbo.CONCAT(). All existing programs with dialect=mainframe that use DB2 concatenation syntax should
be recompiled. All existing SQL Server databases that are accessed by these programs must have
dbo.CONCAT installed. To create the new function in your application’s SQL Server database, you can
either:
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 109
Run a DSN bind against the customer database. Or:
Execute the %ALLUSERSPROFILE%\Micro Focus\Enterprise Developer\hcoss
\InstallDigitsFunction.sql script.
This is a one-time only change to the database.
2843818 (1102248)
SQL Option for DB2
Spurious errors were sometimes returned while querying using an ALIAS.
2830383 (1100609)
Significant Changes in Visual COBOL 2.3
Visual COBOL version 2.3 includes significant changes in the following areas:
Building
Converting Additional Directives to Projects' Properties
CAS Security
CAS XA Switch modules
Compiler
Data Tools
File Handling - External File Handler
IDE
J2EE Connector
MF Server Administrator (GUI)
Updated Run-Time System
Building
Visual COBOL now supports Visual Studio parallel builds for COBOL projects. Parallel builds enable
you to build multiple projects faster on multi-CPU machines.
If, after upgrading to this version of Visual COBOL, you start receiving unexpected build errors when
compiling an existing multi-project solution, this may be a result of enabling support for parallel project
builds. These are a couple of examples of issues that might be causing these errors:
Using file references to project outputs in the same solution. You need to use project-to-project
references instead.
Use Project > Project Dependencies to manage the project dependencies and build order within
your solution.
A customized build process such as one that is using pre- or post- build events.
If resolving any of these issues does not help resolve the build errors, consider disabling the parallel
build support - click Tools > Options > Projects and Solutions > Build and Run and set maximum
number of parallel project builds to 1.
Note:
Parallel builds are not supported with Personal Edition licensing
Converting Additional Directives to projects' properties
Starting with this release, an Update Project Properties dialog box might start to appear when you are
opening existing COBOL solutions. The dialog box recommends converting some of the directives
specified in Additional directives to project's properties. This is to address an issue where you might try
to set file properties that differ from the project directives and the directives specified in Additional
110
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
directives that have a property equivalent take precedence over the file properties. As a result of this you
might receive unexpected build issues when building your applications.
This dialog box helps eliminate the issue by converting the directives specified in Additional directives to
project properties.
If you do not want the IDE to perform this check, click Tools > Options > Micro Focus > General and
uncheck Check Additional Directives for project properties.
CAS Security
The Enterprise Server External Security Facility now includes MLDAP ESM Module 2.0, with a new
algorithm for identifying the best-matching resource-access rule and ACE for resource-access security
checks. This algorithm is faster and matches most customers' expectations. The new algorithm also
provides an optional "username substitution" feature. It can be enabled by setting "rule substitutions" to
"yes" in the [Operation] section in the Security Manager configuration text area. When this is enabled,
the string "${user}" in a resource-rule name will be replaced with the name of the user that makes the
request. For example, a DATASET rule named "USERS.${user}.**" would apply to datasets with the
requesting user's name as the second qualifier. In rare cases, customers with complex, ambiguous
resource-access security rules might see experience changes in behavior as a result of the new
algorithm. The old algorithm is still supported and can be enabled by setting "version 1 authentication"
to "yes" in the [Operation] section of the Security Manager configuration.
2807531 (1097783)
CAS XA Switch modules
The XA switch modules now support dynamic registration.
2682101 (1092325)
The XA switch modules now support batch-only operations when multiple XA Resource Managers have
been defined.
2664675 (1091082)
In Visual COBOL 2.2 update 2, Micro Focus identified undefined run-time behavior when the following
combination of directives was specified: SIGN"EBCDIC", CHARSET"ASCII", and one of the following:
HOST-NUMMOVE, HOST-NUMCOMPARE or SIGN-FIXUP. Previously (Visual COBOL 2.2 update 1 and
earlier), if this combination was specified, the SIGN”EBCDIC” directive should have been ignored, to
avoid a mixture of ASCII and EBCDIC characters; however, SIGN”EBCDIC” was still being honored,
resulting in undefined run-time behavior. Therefore, this combination of directives is now invalid for
Visual COBOL 2.2 update 2 or later, and if specified, will be rejected at compile time.
2786397 (1095265)
Compiler
For native COBOL, the size limit of the Data Division now stands at 2GB -1.
2796076 (1096384)
COBDATA has no effect on compilation. The output of the Compiler is the same location regardless of
whether COBDATA is set.
Previously, it was not possible to specify sign(EBCDIC) with sign-fixup, host-num-move or with host-
num-compare. This combination is now supported in native COBOL but remains invalid for managed
COBOL code. This is applicable to version 2.2 U2 HotFix 10 onwards.
2824577 (1100823)
Data Tools
DFCONV now returns the correct return-code; previously, it would always return 0.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 111
File Handling - External File Handler
Custom file handlers (using DYNREDIR) are now called for each part of a concatenated file.
2795077 (1096322)
IDE
The default warning level for new COBOL projects in Visual COBOL for Visual Studio is now "Include
recoverable errors (Level E)". This also includes "Severe errors only (Level S)" and unrecoverable (Level
U) errors. Micro Focus recommends you set the warning level on the COBOL page in a project's
properties to "Include warnings (Level W)" where appropriate to help avoid potential coding problems.
J2EE Connector
Visual COBOL version 2.3 provided a new command-line argument to Java, mf.ssl.algorithm, which can
be set to an appropriate algorithm.
2799213 (1096684)
MF Server Administrator (GUI)
Passwords that entered through either the MFDS or the ESMAC interface now use the same encoding.
2792382 (1096011)
Updated Run-Time System
COBOL Server now provides an execution environment capable of running applications that were each
built using different development products. A consequence of this is that if your application has a main
COBOL executable (.exe) that was built with a version of Visual COBOL prior to version 2.3, you should
ensure that the executable is rebuilt and packaged with the new run-time system. You can rebuild from
the IDE or the command line.
Other COBOL subprograms built with previous versions of Visual COBOL are not required to be rebuilt.
Significant Changes in Visual COBOL 2.2 Update 2
Visual COBOL version 2.2 update 2 includes significant changes in the following areas:
Compiler
Compiler Front-end
Documentation
J2EE Connector
Compiler
When using the HOSTRW directive with the mainframe dialect, Report Writer will now produce the full
range of ASA control characters and will emulate mainframe print files.
2697615 (1094527)
Compiler Front-end
Fixed Binary (p<=7) is now an 8-bit, signed, 2's complement binary integer by default.
Documentation
The default setting for the MFALLOC_PCFILE environment variable has changed; the default is now set
to Y, which means that when cataloguing a file that has a DCB attribute of DSORG=PS, a physical file is
112
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
created for it if one does not exist. Previously, the default was set to N, which meant that a file was not
created.
2697571 (1094370)
J2EE Connector
The listSystem.properties file in package com.ibm.ctg.client was missing documentation for some
sections.
(606556)
Significant Changes in Visual COBOL 2.2 Update 1
Visual COBOL version 2.2 update 1 includes significant changes in the following areas:
.NET Compiler
SQL: COBSQL
.NET Compiler
In member reference in managed COBOL syntax, you may now only use parentheses when referencing
methods. You can no longer specify parentheses when referencing fields or properties, as this will
produce a syntax error. For example:
set intLength to testString::Length()
must change to:
set intLength to testString::Length
SQL: COBSQL
COBSQL now displays appropriate COBOL syntax errors after encountering EXEC SQL statement
errors.
2673619 (1093197)
Significant Changes in Visual COBOL 2.2
Visual COBOL version 2.2 included significant changes in the following areas:
.NET Compiler
CCI Session Layer Code
Compiler
Interface Mapping Toolkit
MF Directory Server
MF Server Administrator (GUI)
Request Handler
Samples Browser
Visual Studio IDE
.NET Compiler
The use of ILSMARTLINKAGE in sub-programs is now working correctly. In previous versions, if it was
specified in a sub-program, a dynamic call of that program from another program could cause execution
failure.
2608825 (1087435)
In managed code, the statement DISPLAY UPON SYSERR now behaves as expected. Previously, it
was behaving the same as DISPLAY UPON CONSOLE.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 113
2589053 (1085576)
When the PROPERTY keyword is used on a numeric edited field, the SET method now works correctly
when the program specifies DECIMAL POINT IS COMMA.
2588508 (1085560)
CCI Session Layer Code
A new option, use_global_namespace, is available for the cci.ini file in the Windows %SystemRoot%
folder. If use_global_namespace is set, all the ccishared memory objects are created in a system-wide
address space, and the applications hosted by different users, including system services, can
communicate. To use this facility, edit the cci.ini file and ensure use_global_namespace is set to "yes".
[ccismem-base] # Allow interaction between users on a # single system. Using this option reduces
security as # all users will have access to the same name space. use_global_namespace=yes If the
value of this option is anything other than "yes", or if the option is missing, no change is made to the
existing behavior.
2195519 (1062800)
Compiler
The default for the NSYMBOL directive under DIALECT(ENTCOBOL) has been changed to
NSYMBOL(NATIONAL) to emulate the equivalent IBM default.
2657471 (1090355)
To improve RM/COBOL and ACUCOBOL compatibility, the SIGN clause at a group level is no longer
applied to non-DISPLAY usage signed numeric data items within the group, just as it is not applied to
unsigned numeric data items and non-numeric data items within the group.
2549904 (1082171)
Previously, even though no code was generated, the Compiler allowed the ON EXCEPTION and NOT
ON EXCEPTION phrases in the DISPLAY statement in formats that do not allow these phrases. As a
result, if the DISPLAY statement was in the ON EXCEPTION phrase of another statement, the NOT ON
EXCEPTION phrase would bind incorrectly with the DISPLAY statement instead of with the intended
containing statement - for example, ACCEPT or CALL.
Interface Mapping Toolkit
For program-based Service Interfaces, if the program-id name in the COBOL source is in lowercase and
is not surrounded by quotes, its corresponding entry-point name is now forced to uppercase when used
in a Service Interface Operation. Previously, the case was preserved. As a result of this change, existing
Service Interfaces will become invalidated if you refresh their program's annotations because of the new
spelling of the entry-point name. To avoid this, you need to surround the program-id name in the
COBOL source with quotes before you refresh the annotations.
MF Directory Server
The mfds command line option for exporting registered Enterprise Server definitions to an XML file now
supports the "*" option. This exports all registered servers rather than a specified server. Multiple server
definitions are now exported into the target directory and saved into a file with the default name
ALLSERVERS.xml. The import option now also supports the import of multiple server definitions from a
single XML file.
2641890 (1088838)
mdump now supports a new option, -e, to help you query the Security Manager configuration details.
The possible values of the option are: "1" - shows security configuration that applies to any returned
enterprise servers; "2" - shows security configuration for MFDS and the default Enterprise Server
security configuration. This requires MFDS version 1.15.00 or higher; "3" - returns the properties of all
configured external Security Managers.
114
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
2487164 (1081693)
MF Server Administrator (GUI)
When adding a user to an external security manager, you can now include a password expiry time in
the Advanced Configuration section of the Add New User wizard in Enterprise Server Administration.
The field value is specified using generalized time format (YYYYMMDDHHMMSS.0Z), and can be used
by the MLDAP ESM for calculating whether a user's password has expired and requires updating. This
value may only be specified using this page when adding a user. You need to use an external directory
services configuration tool to edit it.
2562118 (1083203)
Request Handler
A problem that caused BIS to create log files in a directory named C:\ProgramData\AcuCorp\BIS
\LogFiles was fixed. BIS no longer creates log files unless specified and the BIS logging service is now
disabled by default. To enable it, you need to use the following global environment variable:
BIS_LOG=[ OFF | ON | <directory> ] Where the values are:
OFF - disables logging (the same as if BIS_LOG is not specified or is left blank)
ON - enables logging and directs the log files into the default location, which must not be read-only.
<directory> - enables logging and directs the log files into the specified directory. The user must
ensure that the BIS request handler has write rights for this directory. The directory must be an
absolute path or network path. If the specified directory does not exist, BIS will attempt to create it.
The containing directory must exist.
The BIS_LOG variable is only examined when the BIS application pool is started or recycled. After
setting or changing BIS_LOG, IIS must be restarted in order for the variable to take effect.
Samples Browser
If you have installed the version of this product for both Visual Studio 2010 and Visual Studio 2012, the
Samples Browser now provides links for you to open the samples in either one of them.
Visual Studio IDE
Performance when loading and building COBOL projects that consist of a large number of files has
been improved.
2657121 (1090316)
When building a project outside of the IDE, adding a new file to a project no longer results in a full
rebuild of the project.
2617003 (1089623)
You can now change the display format of values on individual rows in the Watch window using
modifiers after the names of variables and expressions. To do this, click a row, press F2, and type a
modifier after the name of the variable or the expression as follows - type VariableName,h or
VariableName,x to always display the variable or the expression in hexadecimal format; type
VariableName,d to always display numeric variables in decimal format and strings - as text.
2614182 (1087959)
When you perform a search in the IDE for copybooks that your programs depend upon, the COPYEXT
directive you set from the Additional directives field on the COBOL tab in your project's properties is
now used in preference to the list of copybook extensions specified in Tools > Options > Text Editor >
Micro Focus COBOL > Advanced, and in Copybook extensions. This change does not affect the project
build and background parsing that already use COPYEXT.
2612053 (1087773)
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 115
Attempting to restart an enterprise server failed if the process took longer than fifteen seconds.
2607051 (1087259)
When you debug native code and query a data item which contains null bytes, the value displayed in the
Watch window is no longer truncated at the first null byte.
2604749 (1087235)
A new setting, "Define DEBUG constant", is now available on the COBOL page in the project properties
of managed projects for the Debug configuration. You can select it to add "constant"DEBUG(1)"" to the
build directives.
2600567 (1086629)
The Output window now displays a notification when the compilation of the IMS files has been
successful.
2600137 (1086667)
A problem with the value of "Link with objs" setting being duplicated after you reload the COBOL Link
properties page has been resolved.
2595408 (1086091)
IntelliSense now displays data names longer than 32 characters correctly.
2594901 (1086053)
Previously, when you upgraded COBOL projects with signed assemblies from Visual Studio 2003 format
to Visual Studio 2010 format, the signed assembly property was lost.
2585458 (1085258)
There is an improvement in the performance of the cursor in the text editor when working with larger
files and projects.
2585450 (1085255)
Using linked files in projects has been improved as follows:
Folders that only contain linked files no longer disappear from the project when you reload it.
The location of linked files is preserved in the project structure when you reload the project.
Moving a linked file within a project no longer moves the actual file on the disk but only moves the
link inside the project structure.
It is no longer possible to copy a linked file into the same project where, previously, this created a
copy of the actual file on the disk.
2574102 (1084208)
When you convert Net Express projects that compile to .int or .gnt files to Visual COBOL for Visual
Studio, the application environment variables are now imported successfully.
2569777 (1083953)
It is now possible to convert Net Express projects that do not contain any COBOL source files to Visual
Studio projects.
2568638 (1083900)
You can now set environment variables used by the native COBOL Run-Time system during
initialization from the project properties - click Environment on the Application tab.
2539447 (1081251)
Pressing Enter to create a new line now preserves the indent in the COBOL editor in Smart edit mode.
2496411 (1077769)
Pressing End inside the writing area of the COBOL editor now positions the cursor on the first non-
blank character, if columns 12-72 contain any text. If the line is blank, the cursor is positioned on column
73.
2496351 (1077767)
116
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
The COBOL editor now supports a "Smart edit mode" (see Tools > Options > Text Editor > Micro Focus
COBOL > Margins) which is enabled by default. In Smart edit mode, when you press ENTER in the
code (A/B) area the comments move to the next line and stay in the right-hand area.
2496350 (1077768)
You now receive a suitable error message when you try to use "Start Without Debugging" with
Mainframe Subsystem Application projects.
2495298 (1078343)
You can now use Solution folders to group projects in your solution.
2259310 (1065760)
If, when you start debugging, the debug target does not exist you now receive an error message that
correctly states the missing filename.
Any leading or trailing spaces you added to the name specified in the "Output name" field on the
Application tab in the properties of a native project are now ignored.
Class view no longer contains outdated information from previous background syntax checking after
classes have been renamed.
Class view no longer contains outdated information from previous background syntax checking when
the files defining types have been removed.
A problem with navigating to member definitions from the Class View has been resolved.
A problem with navigating to member definitions from the Class View has been resolved.
An issue where canceling some of the dialogs in Tools > Options resulted in the changes being saved
anyway, or the pages not reverting when next loaded, has been resolved.
You can now start and stop servers from the Server Explorer when using the local machine's IP address
or DNS name.
It is now possible to debug a project that has its "Compile for debugging" setting enabled in the project
properties for the Release configuration.
Selecting a project in Class View now triggers background syntax checking, if it has not been performed
for that project yet.
If you have .NET Framework v. 4.5 installed, creating a COBOL Web application with Visual Studio 2010
Shell was failing with a Signal 114 error and was causing the IDE to crash. This issue has been
resolved for the IDE. To work around the issue when you compile COBOL Web Applications from the
command line, you need to manually set the environment variable VisualStudioVersion to 10.0 before
compiling.
Using the tab character in comments no longer causes issues with the colorization of the code.
The Visual Studio IDE no longer crashes if you try to close it while directives scan is in progress.
Adding files to a project when directives scan is disabled was taking a long time to complete.
Friend assemblies (as identified by the InternalsVisibleToAttribute) are now correctly handled during
syntax checking, and types are correctly found within friend assemblies when they are present.
An issue with adding new platforms or configurations to a project or solution when the project contains
pre- or post-build events has been resolved.
A problem with navigating to member definitions from the Class View, when the definitions occurred
within copybooks used within partial classes, has been resolved.
A problem where trying to navigate to the source of an item from the Class View positioned you on the
wrong line, has been resolved.
An issue where the Implements smart tag was present for interfaces that were fully implemented (when
some of the methods from that interface were implemented explicitly; and in addition to another
interface which was not fully implemented) has been fixed.
An issue where method signatures were rendered incorrectly if the member had a 78 level item in its
local storage has been resolved.
Significant Changes in Visual COBOL 2.1 Update 1
Visual COBOL version 2.1 update 1 includes significant changes in the following areas:
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 117
Documentation
Documentation
To ensure no loss of functionality when accessing Vision and RM/COBOL data files, you should use the
appropriate IDXFORMAT Compiler directive setting or file handling option, and not use the
CALLFH(ACUFH) Compiler directive. See 'Configuring Access to Vision Files' and 'Configuring Access
to RM/COBOL Data Files' for more information.
Significant Changes in Visual COBOL 2.1
Visual COBOL version 2.1 includes significant changes in the following areas:
Compiler
IDE
Run-Time System
Vision File System
Compiler
The use of extended ACCEPT or DISPLAY statements in Windows applications (ilsubsystem"2") now
produces error COBCH1634: Extended ACCEPT/DISPLAY not allowed with a Windows GUI executable
(ILSUBSYSTEM"2"). Remove the syntax or change the output type of your application to 'Console
Application'.
2575702 (1084365)
IDE
A problem with the item templates in the Add New Items dialog box not available for PL/I projects has
been resolved.
2581187 (1084876)
There is now a build summary report for projects that compile to multiple output files.
2578006 (1084506)
Previously, Visual Studio used to always rebuild the entire project after you changed the project
properties or added files when there were build error. This has been changed so that during subsequent
builds Visual Studio only rebuilds the files that are out-of-date.
2576400 (1084393)
A new setting has been added to the COBOL tab in the project properties, "Generate listing option",
which produces an .lst file in a Listing subfolder in the project directory. The "Generate directives file"
setting now generates the directive file in the project output directory.
2494484 (1077662)
Command line arguments are now passed to the program when started via the 'Start without
Debugging' option in the Visual Studio IDE.
Previously, if you started debugging using CBL_DEUGBREAK and there was a COBOL source file open
in the editor, when you stopped debugging its dictionary file (.idy) was not being released. This resulted
in any subsequent builds and rebuilds failing. This problem has been resolved.
The native COBOL projects in Visual Studio have been enhanced so that you can now build them to
multiple executables - each COBOL program in the project producing a separate executable.
You no longer receive an error message when adding an event handler to an object in a COBOL WPF
project if the .xaml code behind file includes a class that does not have methods in it.
The IDE no longer ignores certain Run-Time System errors from the Compiler which previously caused
the build to fail without an explanation.
Compile extensionless COBOL files with the IDE no longer fails.
118
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Using the UI to add COBOL switches or environment variables to a COBOL Web Application (right-click
the configuration file in Solution Explorer and select Edit) no longer causes a configuration error when
you run the application.
2558133 (1082871)
Run-Time System
When running a full-screen application inside a terminal emulator on Linux, the actual size of the
terminal is read at startup and reread when the terminal is resized. This behaviour is also supported on
AIX, HP/UX, and Solaris. The Micro Focus vt220 terminfo entry now correctly describes a 24-line
display. A vt220-25 terminfo entry is included for compatibility with the previous behaviour.
2579335 (1084817)
Vision File System
When you configure your application to return RM/COBOL file status codes, by setting
COBFSTATCONV=rmstat, the codes returned are ANSI'85 codes.
2553438 (1082469)
Significant Changes in Visual COBOL 2.0
Visual COBOL version 2.0 includes significant changes in the following areas:
Compiler
DB2
File Handling
IDE
OpenESQL
Run-Time System
Compiler
An attempt to serialize a class containing COBOL data such as PIC X or group items could lead to a
serialization exception.
2555177 (1082730)
Dependent assemblies (ones that are required by other assemblies) that fail to load now issue a
COBCH1581 warning "Could not load dependent assembly AssemblyName". Previously, they
generated a COBCH0942 error. If an assembly generates both COBCH0942 and COBCH1581 errors,
the error report lists only the COBCH0942 error.
2507380 (1078845)
The scope of the ILUSING Compiler directive when used in a $set command has changed. The scope
of the directive is now limited only to the source file it is set in, and not globally. This new behavior may
mean that your source files no longer compile. To resolve this, add the required ILUSING statements to
the required individual source files, or add the ILUSING directive on the command line. Alternatively,
use the IDE to achieve the required behavior: in Visual Studio, use the Namespaces tab; in Eclipse, set
the directive in the Additional Directives field.
DB2
The DB2 ECM has been updated to resolve run-time errors returned when compiling against mainframe
databases in 64-bit mode.
2549058 (1082441)
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 119
File Handling
When reading a file cataloged as DISP=SHR the file handler now buffers the read for better
performance.
2518330 (1079491)
IDE
Using File > New > Solution From Net Express Project to convert a Net Express project to a Visual
COBOL solution on a machine with a language locale other than English or Japanese produced an
empty solution.
2548551 (1082073)
The COBOL tab in the project properties of a new WPF Application sometimes was not showing any
settings.
2535705 (1080950)
In some menus and dialogs in the IDE copybooks were referred to as copy files. They are now
consistently referred to as copybooks.
The project properties have been enhanced. The SQL directives are no longer shown in Build Settings
on the COBOL page where they sometimes appeared as out-of-date. The SQL directives now appear
only on the SQL page.
Adding a watch on an item of the form buffer(1:size) caused the IDE to hang when "size" was not
initialized.
ActiveX components in the Windows Forms of a managed project could cause the programs to crash at
run-time. Previously, to work around this problem, you had to check the ActiveX references in the
project and set their CopyLocal reference property to True. This is now done automatically when the
references are added.
2536071 (1080978)
Adding an existing Windows Form to another project as a linked file did not function correctly. When you
reopened the project, the designer and the resx files were missing from all Windows Forms in the
project.
2524313 (1079984)
OpenESQL
OpenESQL did not always return a consistent error message or it returned an incorrect error message
when a data conversion exception occurred within the ADO.NET run-time system.
Run-Time System
On Windows 7, building 64-bit native COBOL applications always rebuilt the entire project. This was
caused by the Microsoft FileTracker tool, used by the COBOL projects to track dependencies, not
working because of Windows 7 security updates. This product now includes a fix to work around this
issue.
Unsupported or Deprecated Functionality
The following topics describe functionality that was removed or deprecated at each product release.
Unsupported or Deprecated at Visual COBOL 8.0
Data File Editor - The method used to filter data files has been deprecated and replaced with new
functionality.
120
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Unsupported or Deprecated at Visual COBOL 7.0
The following Compiler directive option has been deprecated:
ILCLR(2) - this is as a result of deprecating support for versions 3.0 and 3.5 of the .NET Framework.
Applications that have this option set will produce an E level message when compiled in this release of
Visual COBOL.
Unsupported or Deprecated at Visual COBOL 6.0
No additional features were unsupported or deprecated at version 6.0.
Unsupported or Deprecated at Visual COBOL 5.0
No additional features were unsupported or deprecated at version 5.0.
Unsupported or Deprecated at Visual COBOL 4.0
There are no features or functionality unsupported or deprecated at version 4.0.
Unsupported or Deprecated at Visual COBOL 3.0
The following features or functionality are no longer supported or are deprecated at version 3.0:
The HOSTSIGNS Compiler directive is no longer supported. Micro Focus recommends that you use the
following Compiler directives instead: SIGN-FIXUP, HOST-NUMMOVE, and HOST-NUMCOMPARE.
Compatibility AddPack for Visual COBOL - this is now deprecated and will not be available with release
3.0 and later.
The Dialog System GUI and run-time components and Dialog System Character Mode (on Windows
and UNIX) which were part of the AddPack are now installed as part of Visual COBOL for Visual Studio.
The run-time components are installed as part of COBOL Server. These are only included for backward
compatibility and Micro Focus does not recommend that you use them for new development.
The other components which were part of the AddPack, the Character-Based Data File Editor, CSBIND
and Screens, will be available upon request from Micro Focus SupportLine.
Audit Manager is deprecated and provided for backward compatibility only. We recommend that you use
syslog events instead. See Enterprise Server Auditing for more information.
The following DB2 environment variables are deprecated at version 3.0, and provided for backward
compatibility only.
HCOBND - Micro Focus recommend you use either the BIND or the BINDDIR compiler directive
option.
The following compiler directives are deprecated at version 3.0, and provided for backward compatibility
only.
CONVERTRET
IDYSRCPATH
ILOBJECTIFY
OPTION
SPZERO
TRICKLE
The following file handling options are deprecated at version 3.0, and provided for backward
compatibility only. Micro Focus recommend you use IDXFORMAT"8" instead:
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 121
STRIPING
MAXSTRIPEDIGITS
MAXSTRIPEFILES
MAXSTRIPESIZE
STRIPE-X
STRIPENAMETYPE
Unsupported or Deprecated at Visual COBOL 2.3
Update 2
The following features or functionality are no longer supported or are deprecated at version 2.3 Update 2:
The command_line_linkage tunable has been deprecated; equivalent functionality can be achieved by
using the COMMAND-LINE-LINKAGE Compiler directive instead.
Unsupported or Deprecated at Visual COBOL 2.3
Update 1
The following features or functionality are no longer supported or are deprecated at version 2.3 update 1:
Windows Azure versions
Starting with Visual COBOL 2.3 Update 1, versions of the Microsoft Azure SDK earlier than version 2.8
are no longer supported.
Support for the Microsoft Azure SDK is no longer provided in Visual COBOL for Visual Studio 2012. If
you have COBOL Azure projects created with earlier versions of Visual COBOL for Visual Studio 2012,
to maintain them, use Visual COBOL for Visual Studio 2013 or 2015.
Unsupported or Deprecated at Visual COBOL 2010
The following Net Express features or functionality were not supported or were deprecated from the first
version of Visual COBOL:
These Net Express compiler directives are not supported by Visual COBOL :
01SHUFFLE
64KPARA
64KSECT
AUXOPT
CHIP
DATALIT
EANIM
EDITOR
ENSUITE
EXPANDDATA
FIXING
FLAG-CHIP
MASM
MODEL
OPTSIZE
OPTSPEED
PARAS
PROTMODE
REGPARM
SEGCROSS
SEGSIZE
SIGNCOMPARE
SMALLDD
TABLESEGCROSS
TRICKLECHECK
WB2
WB3
WB
Note: The directive SPZERO was already deprecated from Net Express 5.0 onwards, and is provided
for backward compatibility only. You should instead use SIGN-FIXUP.
and the pseudovariables of the following Net Express environment variables are obsolete and cannot
be used:
BASENAME
FILENAME
122 | Cumulative Changes from Net Express to Visual COBOL for Visual Studio
PATH
TARGETDIR
Known Errors and Restrictions
Refer also to the Known Issues and Restrictions topic in the Product Information section of your product
Help.
The following errors and restrictions are known to apply to Visual COBOL version 8.0:
Compatibility with older releases
In Visual COBOL 4.0 and 5.0 in an extremely small and limited set of cases, an issue could occur with
running .NET executables and .dll files, or JVM .class files, created with an earlier version of the
product. This issue only occurred if:
1.
The application performs an IS NUMERIC condition test on a variable declared with USAGE
NATIONAL.
2.
The application has been created with Visual COBOL 3.0 or earlier, then executed in Visual COBOL
4.0 or 5.0.
In these rare cases, the IS NUMERIC test could provide the wrong answer.
In order to resolve this issue, in Visual COBOL 6.0 and later, the .NET COBOL and JVM COBOL run-
times reject any program using IS NUMERIC on a NATIONAL item which was compiled with a version
5.0 or earlier of the product. You receive a "missing method" exception. To resolve the issue, you need
to recompile any programs that use this construct in the newer versions of Visual COBOL.
Program that do not use NATIONAL data, or those that have been recompiled in Visual COBOL 6.0 or
later are not affected.
Installation
It is not possible to upgrade from a 7.0 version of the Visual Studio-based product, if you are targeting a
different version of Visual Studio. For example, it is not possible to upgrade from Visual COBOL 7.0 for
Visual Studio 2017 to Visual COBOL 8.0 for Visual Studio 2019.
It is not possible to install the 8.0 version of the Visual COBOL Build Tools as an upgrade of an existing
7.0 installation. You must first uninstall the 7.0 product.
The Server Core form of Windows Server 2019 is not supported.
Visual Studio
Problems with Microsoft's Visual Studio 2022, release 17.2, might cause the following issues with Visual
COBOL or Enterprise Developer for Visual Studio 2022. The issues do not exist in release 17.1. See
the points below for the workarounds to these issues:
An issue with Microsoft's Visual Studio installer might result in the IntelliSense and editor colorization
not working. To repair your installation, execute the following command from a Visual Studio
command prompt:
devenv /updateconfiguration
Mixed-language multi-project builds might fail as a result of the project dependencies not working
correctly. This means that some projects might build in parallel when they should build in a specific
order. As a result, the build might fail due to a dependency not always being available. To work
around this issue, click Tools > Options > Preview Features, and check Load projects faster
(some features may be delayed).
The expanded copybook visualizations are missing. This includes breakpoint, current statement
when debugging, and others. These features might not always function correctly in non-expanded
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 123
source (in the main programs) if that program contains expanded copybooks. To work around this
issue, you can disable inline copybook expansions.
Visual Studio 2022 requires that the global.json file of .NET 6 projects is placed at the directory
level of the solution file in order for the project to successfully open and build. In previous versions of
Visual Studio, the file could be located in subfolders of the solution such as in the project folder.
This can affect existing .NET Core 3.1 COBOL projects that you upgrade from a prior release if the
global.json file is not at the directory level of the solution file. It also affects .NET 6 COBOL projects
that you add to an existing solution.
In these cases, you might receive the following error message if building from the MSBuild command
line, or in the IDE Output window if the project fails to load:
"The SDK 'MicroFocus.Sdk' specified could not be found"
To work around this issue, you need to move the global.json file to the directory level of the solution
file.
New .NET 6 COBOL solutions and projects created with VS2022 create the global.json file in the
required location.
Upgrading from Net Express to Visual COBOL
The following topics show you the process of moving existing Net Express applications into Visual COBOL
for Visual Studio.
An introduction to the process of upgrading your
COBOL applications
The following topics show you the process of moving existing Net Express applications into Visual COBOL
for Visual Studio. This information assumes one of the following starting points:
You currently use Net Express just for debugging, and edit files and compile projects by other means
(START 1)
You currently use Net Express for all your development tasks (START 2)
You currently use Net Express for .NET in Visual Studio 2008 (START 3)
The steps to move to Visual COBOL are illustrated below:
124 | Cumulative Changes from Net Express to Visual COBOL for Visual Studio
After following this process you will be able to use the Visual COBOL for Visual Studio features to improve
development and modernize your applications.
Compile at the Command Line Using Existing Build
Scripts
Application executables that were compiled using earlier Micro Focus products must be recompiled from
the sources using Visual COBOL. If you do not recompile, you may receive an error. The exact error
depends on the operating system you are running.
Most Net Express projects should compile cleanly using your existing build scripts and makefiles without
any changes to your code, as Visual COBOL can use the cobol and cbllink commands to create .int
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 125
and .gnt files. By specifying the ILGEN compiler directive you can also use these commands to
create .NET-compatible .exe files, or use the JVMGEN directive to create JVM-compatible .exe files.
Fixing compilation issues
You might encounter some problems when compiling your Net Express applications in Visual COBOL.
Micro Focus continues to enhance the COBOL language, for example, by expanding the list of reserved
COBOL words and adding new keywords to it as part of new levels of the COBOL language (each Micro
Focus release corresponds to a particular level). Applications created with an older Micro Focus product
might use data names that are now reserved keywords in Visual COBOL, which can result in a COBOL
syntax error COBCH0666 ("Reserved word used as data name or unknown data description qualifier").
See Reserved Words Table for a comprehensive list of reserved words and level at which they are
supported.
Also, these Net Express compiler directives are no longer supported:
01SHUFFLE
64KPARA
64KSECT
AUXOPT
CHIP
DATALIT
EANIM
EDITOR
ENSUITE
EXPANDDATA
FIXING
FLAG-CHIP
MASM
MODEL
OPTSIZE
OPTSPEED
PARAS
PROTMODE
REGPARM
SEGCROSS
SEGSIZE
SIGNCOMPARE
SMALLDD
TABLESEGCROSS
TRICKLECHECK
WB2
WB3
WB
In addition, the pseudovariables of the following Net Express environment variables are obsolete and can't
be used:
BASENAME
FILENAME
PATH
TARGETDIR
You should consider using the following methods to solve these problems:
Rewrite the source to avoid using these keywords in your code and directives files.
Use the REMOVE Compiler directive to remove individual keywords from the reserved words list.
Use the MF or MFLEVEL compiler directive to select an earlier version of Micro Focus COBOL that your
code is compatible with. For example, setting MFLEVEL"12" ensures compatibility with Mainframe
Express 3.0 and 3.1; Net Express 4.0, 5.0, and 5.1; and Server Express 4.0, 5.0, and 5.1. Refer to
Reserved Words Table for the value to use to ensure support for your existing reserved words.
Setting REMOVE and MFLEVEL directives from the command line
To use REMOVE from a Visual COBOL command prompt, type the following:
cobol myprogram.cbl remove(title) ;
The command above removes TITLE as a keyword from the language so you can use it as an identifier in a
COBOL program.
To use the set of reserved words that was used for Net Express v5.1 WrapPack 5, use this command line:
cobol myprogram.cbl mflevel"15" ;
Setting REMOVE and MFLEVEL directives in the source code
126
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
To set either one of the directives in your source code, type the following starting with $ in the indication
area of your COBOL program:
$set remove "ReservedWord"
Or:
$set mflevel"nn"
Single-threaded run-time system
The single-threaded run-time system is not available in Visual COBOL on Windows. Instead, both single-
threaded and multi-threaded applications run using the multi-threaded run-time system. This has no effect
on your existing applications.
Debugging Without a Project
Having compiled your existing code into the required format, it is possible to debug your code using the
debugger in the same way that you did with Net Express, even before you create a Visual COBOL project
in the IDE and import the code into it (although with the lack of a project, elements of the program have no
context and the scope of debugging is limited).
You can cause debugging to be triggered at a specific point in your code by using the CBL_DEBUGBREAK
and CBL_DEBUG_START library routines. You can also use the debug_on_error runtime tunable to enable
the debugger to start when your a running program terminates with a run-time system error.
Run your program. When the routines or tunable trigger debugging, Visual Studio starts, displaying the
source file at the current line of code being executed. You can then make use of the debugging features of
Visual COBOL which include:
Step into the next statement at the current line of code and suspend execution.
Step over the next statement at the currently executing line of code without entering it, and suspend
execution. The method will be executed normally.
Return from a method or paragraph that has been stepped into, and suspend execution. The remainder
of the code inside the method is executed normally.
Resume execution of the program from a suspended line of code.
Display values of all variables contained on the current execution line.
Create a project and import source
Follow these steps to use your source files in a new project in Visual COBOL. These instructions are
correct with Visual Studio 2017:
1. In Visual Studio, click File > New > Project.
2. In the New Project dialog box, expand Installed > COBOL. Click Native.In the Create a new project
dialog box, select COBOL from the Language drop-down list.
This gives you a list of the following project types. The main difference between these types is the
nature of the artefacts they build, and after creating a project, you can easily change its type and output
accordingly.
Windows Application - creates a project that builds a single executable .exe by default, and is
best used for graphical applications.
Console Application - creates a project that builds a single executable .exe, and is best used for
character-based applications that use the console subsystem. You can configure it to build an .exe
file for each source program.
Link Library - creates a project that builds a single .dll file.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 127
INT/GNT - creates a project that, by default, outputs one .int file for each of your source programs.
You can change the build order to .gnt by right-clicking the project in Solution Explorer and choose
Properties, select the COBOL tab, and choose Compile to .gnt.
The other fields in this dialog box specify the folder structure in which your project will be placed:
Project nameName - the name of the project.
Location - the folder in which the project will be created. If you specify a folder that doesn't exist,
Visual Studio will create it.
Solution name - a solution is a container in which you can group logically-related projects. Only one
solution can be open in Visual Studio at a time. At this stage you can either create a new solution
that will use the name specified, or add the project to the solution currently open in Visual Studio.
You can check Place solution and project in the same directoryCreate directory for solution in
order to give the solution a different name to the project name. This is useful when you are likely to
have several projects in the same solution.
3. Right-click your project in Solution Explorer and select Add > Existing Item.
4. Click Add and navigate to the folder containing the files you want to add to the project.
5. Choose the files you want to add and then click Add.
Those files are then added to the project in Solution Explorer. These files are copied, not moved, to the
project folder in the file system. If you click the down arrow on the Add button, you can choose Add as
Link, which adds a reference to the file in the project but neither moves or copies the original. Added
files have the icon
; linked files are indicated by the icon .
Note:
If you right-click your project in Solution Explorer and choose Add Existing COBOL Items,
you choose a folder instead of individual files. All files in that folder with the extensions listed in the
Specify Source Files page of the import wizard are then added to the project in Solution Explorer.
You can only add files as links using this method.
Adding copybooks
You can add copybooks to your projects in the same way as COBOL files, by right-clicking your program,
choosing Add > Existing Item and browsing to a copybook. However, it is not compulsory to add
copybooks to your project. You can set the copybook dependency paths for your project from the Project
Properties > Copybook Paths page. Copybooks are not compiled at build time due to the file's Build
Action property being automatically set to None. (You can also set this property for COBOL source files
too, to keep a file in the project but not include a built version in any output.)
By default, Visual COBOL identifies files as copybooks by their .cpy extension. You can specify other file
extensions as copybooks in the IDE preferences - click Tools > Options > Text Editor > Micro Focus
COBOL > Advanced > Copybook Extensions, and enter the additional values in the text box.
Alternatively, you can add the copybook with unknown extension to your project and then reference the file
from within a COBOL program using the COPY statement. Visual COBOL then recognizes that extension
as a copybook but only across the current solution.
Setting Compiler directives
Some Compiler directives are set on project creation, and differ between the Debug and the Release
configurations. To add directive to your project, right-click on the project in Solution Explorer and choose
Properties. On the COBOL tab, you can see directives that are set by the IDE in the Build Settings text
box. Enter others in the Additional Directives text box as a space-separated list.
If you use a separate text file to manage your directives, you can reference this instead by entering the
USE"directives file" directive. You should enter a path relative to the project directory.
Building the project
Having added all the files and made any necessary configuration changes, you can compile and link the
COBOL source and generate the output. Right-click the project in Solution Explorer and click Build.
128
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
If your source code contains tab stops compilation might fail, as while a COBOL tab is eight characters
long, the IDE's tab is four characters long, and lines of code might be starting in the sequence number and
indicator areas section (columns one to seven) of the program instead of from column eight.
You can fix this problem using the SOURCETABSTOP(n) compiler directive, where n is the number of space
characters by which to expand tab characters during compilation.
Using Visual COBOL for Visual Studio
Understanding the structure of Visual COBOL solutions
On creating a new project, the following files are created in the file system with the following structure:
...
|_Location
|_Solution
| |_Name
| |_bin
| | |_x86
| | | |_Debug
| | | |_Release
| | |
| | |_x64
| | |_Debug
| | |_Release
| |
| |_obj
| | |_x86
| | | |_Debug
| | | |_Release
| | |
| | |_x64
| | |_Debug
| | |_Release
| |
| |_Properties
|
|_Solution.sln
|_Name.cblproj
|_Name.dep
|_Program1.cbl
If you select the Create Directory for Solution option when creating a solution, the structure is slightly
different.
In the Solution folder:
Solution.sln - a description of the solution and what it contains.
Name.cblproj - the project file that is opened in Visual Studio, which holds the description of the project
and all its related configuration and directives information.
COBOL source files - when you create a project, a skeleton COBOL source file Program1.cbl is
added for most of the project templates.
In the Name folder:
..\bin - this is the default location of build artefacts. With this folder are the subfolders x86\Debug
that contains the executables or libraries, and .idy file for each of the project's COBOL source files.
The .idy files contain information required for debugging your application. When you use the Release
build configuration, build output goes to a subfolder x86\Release and no .idy files are created.
Debug and Release are standard build configurations that you launch from the Visual Studio task bar.
They use a different set of compiler directives as well as outputting different files. You can create your
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 129
own build configurations by clicking Build > Configuration Manager and choosing New from the
Active solution configurations drop-down list.
The x86 folder exists because the default output platform is 32-bit. If you change this to be 64-bit, you
will instead find your ouptut in an x64 folder.
..\obj - this also has x86\Debug subfolders, and contains an .obj file for each source file, used in
intermediate build stages. The obj folder also holds supporting information such as logs and file lists.
Note: The project file .cblproj is an msbuild file, much like a makefile but consisting of XML that
you can extend and modify to customise your builds. You can use this directly from command line, as
it uses the same build environment as the IDE, and behavior is identical. This means you can have a
single source of configuration information that makes your build process easier to maintain.
If you open a command prompt and change to the Location folder, you can execute the msbuild
command, without needing to specify the .cblproj file.
Finding your way around the IDE's features
Solutions and projects
A solution is a container holding one or more projects that work together to create an application. The
solution has the extension .sln. A COBOL project has the extension .cblproj and a C# project has
the extension .csproj.
Solution Explorer shows the solution that is open and the projects therein.
You can use the project's properties pages to display a list of the files in your solution with file details
like output file type and location, COBOL dialect, and the number of errors generated by the file. To
display the properties, click Project > Name Properties.
COBOL editor
The COBOL editor provides help such as column cut and paste, and background syntax checking,
which underlines errors with red wavy lines (also known as "squigglies"), which you can then hover over
to display details of the syntax error.
When you are editing, you can insert code snippets and navigate forward and backward quickly, and the
Find All References option enables you to search for references of any COBOL data items, section
and paragraph names in the solution.
You can customize the editor to display line numbers, adjust colorization, tabs, and margins, from the
Text Editor > Micro Focus COBOL > Advanced page in Tools > Options.
When developing code, the editor provides IntelliSense that helps you write syntactically correct code
and, in .NET COBOL code, helps when you need to type more complicated constructs, such as the
code to override the members that a class inherits from a base class or the code for implementing an
interface.
The Light Bulbs feature for implementing an interface helps complete incomplete interface declarations.
A Light Bulbs appears at the beginning of the declaration: click it and choose the missing member(s) of
the inheriting interface.
When you encounter a COPY statement, or data item that is defined in a copybook, if you put your
cursor on that code and press F12 the appropriate copybook opens in the editor at the relevant line. You
can also do this by right-clicking the line and selecting Show copybook name.
Setting Compiler directives
Many Compiler directives are set automatically by certain configuration options in the IDE, but you can
explicitly add directives to your project. Right-click on the project in Solution Explorer and choose
Properties. In the COBOL tab, you can see directives that are set by the IDE in the Build Settings text
box. Enter others in the Additional Directives text box as a space-separated list.
If you use a separate text file to manage your directives, you can reference this instead by entering the
USE"directives file" directive. You should enter a relative path.
130
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Build Tools, the Output Pane and the Error List
Build configurations define how to build a project or solution. There are default configurations of Debug
and Release for each project type, and you can create your own specific configurations.
The Output window shows the results of your build together with errors. You can double-click an error
and navigate directly to the appropriate line in the source code. You can do the same from the Error
List.
Debugging
When you debug the application, you can step through the code, hover over a data item to see its value,
and watch data item values in a variety of ways. You can specify breakpoints on a range of conditions,
such as when an expression is true or changes, or when a line is hit a specified number of times.
In native code, you can set COBOL watchpoints on data items and watch for changes in the area of
memory associated with the watchpoints. When the memory changes or a condition associated with the
watchpoint has been met, the debugger breaks on the line that follows the line on which the data
change occurred.
Also in native code, you can use the Memory window to watch the contents of the memory that is
associated with data items or expressions.
Change the Defaults to Replicate Your Existing Project
Structure
Change the location of source files
To add an existing COBOL source file to your project, right-click the project in Solution Explorer and choose
Add > Existing item. You can then browse to the sources you want to add.
If you click Add, Visual COBOL makes a copy of the file, which it saves in the project folder. Any edits
you make to this file do not get applied to the original.
If you click Add As Link, a reference to the original file, rather than a copy of it, is added to the project
in Solution Explorer. If you then open the file in Visual Studio, any edits are applied to the file in its
original location.
You can also drag files from Windows Explorer and drop them into your project in Solution Explorer. This
also makes a copy of the file and leaves the original in place.
To remove a file from your project, but not delete the file on disk (whether added as a link or not), right-click
the file in Solution Explorer and choose Exclude From Project.
Change the location of built files
By default, built artefacts for the Debug configuration are created in the ..\Location\Solution\Name
\bin\x86\Debug folder.
You might want to change this, so that several developers can save built items in the same folder for
example. To do this, right-click the project in Solution Explorer and choose Properties. In the COBOL tab,
change the value of the Output path field to the preferred folder. (We recommend you always use relative
paths when entering this value.) When the project builds, the output files will be saved in this folder, and the
folder created if it doesn't already exist.
To change the output path for the Release configuration, select Release Configuration in the COBOL
property page and change the value of the output path.
Change the type of built files
The default output and target types when you create a project depend on the project type. You can change
these settings on the project Properties page. Use the following table to show the default output and target
types for each project and the possible changes once the project has been created :
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 131
Project type Output type Target type Possible output
types
Possible target type
Native Console application
.exe
single
.dll, .exe
single, multi
Windows application
.exe
single
.dll, .exe
single, multi
Link library
.dll
single
.dll, .exe
single, multi
Enterprise Server
application
.dll
multi
.dll, .exe
single, multi
INT/GNT application
.int
multi
.int,.gnt
multi
Managed Console application
.exe
single
.dll, .exe
single
Windows application
.exe
single
.dll, .exe
single
Link library
.dll
single
.dll, .exe
single
Procedural multi-
output project
.dll
multi
.dll, .exe
multi
Best Practice in Visual COBOL Development
Break down large projects
Projects with a large number of source files and build artefacts can be hard to navigate and slow to build. If
you find this the case. we recommend that you review the contents of large projects and split them into
separate projects (and possible separate solutions) in which you group items that are logically related.
These projects can still be built in the same output folder if required.
For example:
If you have different versions of a product for different customers, keep common source in one project
and a separate project for each customer. You could also have a master solution into which you add
projects from other solutions by right-clicking a solution and selecting Add > Existing Project.
If you have core code that is rarely changed or recompiled, keep that in one project and have separate
projects for those areas that change regularly.
Referencing common sources
To avoid repetition and reduce maintenance effort, you should consider keeping all your Compiler directive
settings in a directives file and reference this file in each project. Similarly you should keep copybooks in a
single project and add this project as a dependency to your COBOL projects.
If using .NET COBOL code and multiple projects, use project references rather than file references.
Create templates
After creating and configuring a project, you can save the settings as a template that can be reused and
distributed to other users. It can be added to the list of project types available when clicking File > New >
Project and then typing COBOL in the search field of the Create a new project dialog boxexpanding
Installed > COBOL.
To create a template of the open project, click File > Export Template and follow the steps explained in the
Export Template Wizard.
Use relative paths
Keep source relative to a base path and avoid full paths so that code is portable and easy to use with
source control systems. You should also avoid using network shares or drives.
132
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
Modernize Your Applications and Processes
Following industry standard development practices
Many source code control systems and Agile tools can be integrated into the Visual Studio IDE.
You should also consider using continuous integration, which involves the automatic building and testing of
an application after a change occurs to the source code. This method traps errors sooner in the
development life cycle and can greatly improve efficiency and reduce costs.
Interface modernization
Visual COBOL enables you to use Visual Studio's built-in design tools to create more intuitive user
interfaces. By wrapping existing procedural COBOL in an wrapper class you can integrate your code into
Windows Forms (WinForms) and Windows Presentation Foundation (WPF) technology, and WebForms for
ASP.NET browser-based applications.
Multi-user applications
Visual COBOL includes a Run Unit API to enable multiple users to simultaneously use an application
based on COBOL code that was designed originally for a single user.
Developing Web-based applications
You can use Visual COBOL to migrate existing, core applications to a service oriented architecture as Web
services, and deploy them using Micro Focus COBOL Server and Enterprise Server, so that you can
develop COBOL-based software components to be invoked across the Web.
You can do this by creating an Enterprise Server application
Developing .NET applications
Both new and existing COBOL can be compiled as .NET code. This enables you to:
Reuse existing COBOL business logic and data access across the .NET environment
Access .NET Framework classes and features from COBOL applications including Windows Forms and
Web Forms
Create and extend composite applications consisting of COBOL, C#, VB.NET, C++ and ASP.NET
Reuse and extend Open ESQL applications
Both procedural and native OO COBOL are supported within the .NET framework. Native OO COBOL
classes can inherit classes written in other Microsoft .NET languages and vice versa.
The .NET COBOL syntax includes many extensions to the COBOL language to support .NET features; for
example, the TRY ... CATCH syntax to enable exception handling in COBOL.
There are also certain directives that help integrate your .NET COBOL with other languages in the .NET
environment. For example, you can now expose the Linkage section and entry points in your COBOL to
other managed languages by compiling with the ILSMARTLINKAGE directive.
Modernizing Dialog System applications
Visual COBOL provides the following support for Dialog System applications:
Dialog System run-time system and run-time components.
Panels V2.
Dialog System painter.
GUI class library and OLE class library. These libraries are needed if you migrate an existing Dialog
System application that was extended using those libraries.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio
| 133
Projects for building the GUI and OLE class libraries from source are also supplied. Additionally, a
project file for the Base class library was added in Visual COBOL 2.0.
Visual Studio plug-in to associate screensets in Visual Studio with Dialog System. Double-clicking a
screenset in Solution Explorer in Visual COBOL starts the Dialog System painter.
Sample applications demonstrating a range of modernization techniques.
Supporting documentation in this Help explaining the significant elements of the sample code.
You can modernize Dialog System applications within Visual COBOL. You migrate an application to Visual
COBOL and from there you can run the application without change, or modernize it over time.
Modernization techniques include:
A Windows Forms form replacing a Dialog System dialog, where the form can contain .NET controls.
See the Customer + .NET WinForm sample CustomerWinForm.sln.
A Windows Forms control wrapped as an ActiveX control and used on a Dialog System dialog. See the
Customer + .NET GridView User Control sample custgrid.sln.
A WPF user control hosted by a Windows Forms user control, which is then exposed as ActiveX ready
for use by Dialog System. See the Customer + .NET WPF GridView User Control sample
CustGridWPF.sln
A .NET code application interacting with Dialog System as native COBOL .dll. See the .NET COBOL
Customer sample ManagedCustomer.sln.
Data File Tools
Visual COBOL comes with two versions of the Data File Tools utility: Data File Tools and Classic Data File
Tools.
The Classic Data File Tools is the utility that was previously available in Net Express. It includes the Data
File Converter, Data File Editor, and the Record Layout Editor. This utility is only available on Windows.
Data File Tools is a new version of the utility and comprises the Data File Editor and the Structure File
Editor. This utility is available on both Windows and UNIX.
Procedural COBOL Compared with .NET COBOL
Note:
Visual COBOL for Visual Studio 2017 supports .NET COBOL. To develop applications for JVM
COBOL, install our Visual COBOL for Eclipse product.
Procedural COBOL is regular COBOL without any of the new syntax that has been added for .NET and
JVM. Procedural COBOL is still actively supported today and is being enhanced. Since the days of Net
Express, Server Express, and Mainframe Express, it now supports inline local declarations (as in
DECLARE). It also supports new syntax such as XML PARSE, JSON GENERATE, UTF-8, and more.
You can compile to native or (in most cases) .NET COBOL. The core COBOL syntax is supported in .NET
COBOL. However, there are some features that are not supported (for example Panels V2, Dialog System
and ACUCOBOL-GT). This means that you can take most existing COBOL applications and recompile to
create .NET COBOL applications.
.NET COBOL
.NET COBOL is COBOL with extensions to support the .NET Framework. It offers OO syntax support and
syntax to allow access to the available class libraries.
When you compile .NET COBOL, the compiler generates code: .il for the .NET framework.
.NET COBOL and Native COBOL
You can compile your COBOL program to .NET COBOL code using the ilgen compiler directive. From
within the IDE this happens automatically if you are using a .NET COBOL project.
134
| Cumulative Changes from Net Express to Visual COBOL for Visual Studio
The compiler has now created an intermediate language (.il).
COBOL and all other .NET languages (for example C# and VB) compile to this format, which makes mixed
language applications easy to write.
You can also create native code applications. In Visual Studio, there are native COBOL project templates.
The compiler generates .exe/.dlls as the result of a native compilation.
The native COBOL application has to call the appropriate management services available for the operating
system, whereas a managed application can take advantage of the management services provided by the
run time such as exception handling, garbage collection, and thread management.
Run Time
The intermediate language (.il files) can be deployed to a Windows platform running Microsoft's
Common Language Runtime (CLR) for execution.
All programs written for the .NET Framework are executed by the Microsoft's Common Language Runtime
(CLR) which makes mixed language application programming seamless.
The CLR's just-in-time (JIT) compiler compiles the .il into code native to the operating system. The CLR
provides additional services including memory management, exception handling, garbage collection and
thread management.
Developing Native and .NET COBOL Applications
You use the IDE to develop, compile and debug both native and .NET COBOL applications. You can write
new COBOL code or you can recompile existing COBOL applications to native or .NET COBOL code,
potentially without any code changes.
You can deploy and further debug the application under the run-time system provided by COBOL Server.
.NET COBOL applications are deployed to Windows platforms running Microsoft's CLR.
Cumulative Changes from Net Express to Visual COBOL for Visual Studio | 135