Features Added in Visual COBOL 6.0

.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 Core version 3.1 and .NET Core version 3.1 is not supported by Visual Studio 2017, you must be using Visual Studio 2019 to be able to use Visual COBOL to create COBOL applications to be deployed for use with .NET Core.

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:
    • 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 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 - 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.
  • 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

    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:

  • 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.

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:

  • 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 uppercase in the editor (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.