New Features in Visual COBOL 9.0

Learn Micro Focus™ COBOL Extension for Visual Studio Code and Micro Focus™ COBOL Fundamentals Course

Back to Top

Micro Focus has released a new video-based training course in COBOL, Micro Focus™ COBOL Fundamentals Course. The course teaches the fundamentals of the COBOL language, introduces the Micro Focus™ COBOL syntax, and usage of Micro Focus COBOL tools.

The course is ideal for developers familiar with C, Java, or .NET who want to learn COBOL. It doesn't matter what language you know, as long as you have experience of standard programming concepts, this course is for you.

A new Learn Micro Focus™ COBOL Extension for Visual Studio Code is available. The extension comes with the training materials for the COBOL training course. For information about the COBOL course, and the Learn Micro Focus™ COBOL Extension for Visual Studio Code, visit www.cobol.com.

Note: This extension is not included with the Visual COBOL installer.

Micro Focus™ COBOL Extension for Visual Studio Code

Back to Top

The following features are now available in the Micro Focus™ COBOL Extension for Visual Studio Code when you use it with Visual COBOL 9.0:

  • JVM COBOL debugging
  • COBOL notebooks where you can have text and executable blocks of COBOL code in the same file.
  • Colorization for COBOL directives files, cobol.dir.
  • A new button, , Debug COBOL Program or Run COBOL Program in the top right corner of the editor, present for the current COBOL program.
  • Configuration setting for custom tab stops.
  • A Micro Focus COBOL terminal in the TERMINAL pane.
  • You can now specify the COBOL main file context for copybooks if a copybooks is referenced in more than one program.
Note: This extension is not included with the Visual COBOL installer.

.NET Support

Back to Top

This release provides the following enhancements to .NET support:

  • This release installs several NuGet packages each of which contains the assemblies for a specific Micro Focus functionality. New .NET projects, as well as existing projects you edit or build in 9.0 are linked to a core package, MicroFocus.COBOL.Runtime.Core, that includes the basic functionality for the projects. You need to add any additional packages (such as a specific file handler, COBOL Accept/Display etc.) manually to the projects. The new packages enable better granularity of distributions, and provide more flexibility and control over what is packaged with the application.
  • New SDK version - the Micro Focus SDK version has changed to version 2.1. See Upgrading existing .NET COBOL project files for details on how to upgrade your existing projects.

COBOL Language

Back to Top

This release provides the following new features and enhancements to the COBOL language:

  • Double-colon, ::, qualification is now available as a qualifier for data names and when dereferencing pointers.
  • PERFORM frame local variables - variables that are DECLAREd are now properly scoped. Reentering the SECTION, whether recursively or after leaving, gives a new instance of such variables. This provides better locality of data, and helps with writing of better structured code.
  • Parameterized sections - syntax that allows program sections to accept arguments and return values.
    • PERFORM of a SECTION can now pass arguments to that SECTION.
    • A result can be returned to the code that PERFORMed the SECTION.
    • Sections that return a value can be used as functions, in contexts where an identifier is expected.
  • Compiler can identify platform at compile time - the compile-time constants __unix, __windows, __dotnet, __jvm, and __native have been introduced. These can be tested in $if statements to tailor code to the platform being used.
  • Enhanced CBL_STRING_CONVERT library routine - CBL_STRING_CONVERT can now convert strings to and from Base64.

The following enhancements add further support for the IBM Enterprise COBOL version 6.4:

  • User-defined functions - user-defined functions are now available in an Enterprise COBOL dialect for version 6.4 compatibility. Reference the product Help, General Reference > COBOL Language Reference > Part 3. Additional Topics > Additional Dialect Support > Enterprise COBOL Syntax Support > User-Defined Functions under ENTCOBOL dialect. A new Compiler directive, MANAGED-FNC-PARAM-BY, enables you to specify whether the managed behavior of numeric function parameters should default to BY VALUE or BY REFERENCE.
  • Enhanced mechanism for interoperation between Java and COBOL - The COBOL and Java interoperability has been enhanced to extend the capabilities of your COBOL applications with Java. It removes the need to write object-oriented (OO) COBOL, as your native COBOL and Java programs can now interoperate in the following scenarios:
    • COBOL programs can be marked as JAVA-CALLABLE, meaning that they can be called from Java as though they were Java static methods.
    • COBOL program can call Java static methods using the java.class.method call.
    • COBOL data can be shared with Java programs by marking it as JAVA-SHAREABLE.
  • Comprehensive support for automatic conversion between a wide variety of popular Java data types and their corresponding COBOL types so that parameter passing and returned value handling require no special processing in user code.

Compiler Directives

Back to Top

This release provides the following enhancements.

A new mechanism for setting Compiler directives (Technology Preview):

  • Common directives files - this release introduces common directives files, directives.mf files, that enable you to automatically provide all required directives needed to compile multiple COBOL applications without having to specify the directives individually. This feature is not available for Assembler or IMS.
    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.

New Compiler directives:

  • ALPHA-LIT-CONT - determines whether the right margin or the end-of-line is used to delimit the continuation of a non-numeric literal.
  • DECLARE - defines the behavior of locally declared variables.
  • ILEXPOSEALPHA/ILEXPOSEGROUP - these two directives can expose alphanumeric or group items passed by value to parameterized sections or methods in .NET COBOL programs as byte arrays (the default is to expose as string objects).
  • ILSTRINGLOAD - where .NET COBOL programs with a very large number of distinct alphanumeric literals cause internal limits to be exceeded, use this directive to create these literals in a backing file, which can then be converted to strings at run time.
  • MANAGED-FNC-PARAM-BY - determines whether user-defined function parameters are passed BY VALUE or BY REFERENCE by default when compiled with ILGEN.
  • INITIAL - determines how Working-Storage is initialized for programs marked as IS INITIAL.

A family of new Compiler directives has been introduced to support the new mechanism for interoperation between Java and native COBOL:

  • JAVA-SHAREABLE - use the JAVA-SHAREABLE ON and JAVA-SHAREABLE OFF directives to bracket one or more WORKING-STORAGE data items to indicate that they are to be made read and write accessible from Java applications interoperating with this COBOL program.
  • JAVA-CALLABLE - instructs the Compiler to make the COBOL program automatically callable from Java.
  • JAVA-GEN-PROGS, JAVA-GEN-STRG, JAVA-OUTPUT-PATH, and JAVA-PACKAGE-NAME - control the behavior of COBOL programs that interoperate with Java through the JAVA-CALLABLE or JAVA-SHAREABLE directives or by calling Java static methods using the CALL statement.

Data Modernization Advice

Back to Top

The product Help now includes advice on moving your COBOL data files, such as flat files, VSAM, indexed or sequential files, etc. to a relational database (RDBMS). The documentation lists the solutions included in Visual COBOL that enable you to achieve this, including advice on the best option for your application as well as performance considerations.

Database Connectors for Visual COBOL

Back to Top

This release provides the following enhancements:

  • Better control of permissions granted on newly created tables.

    When creating a table, the SQL Server interface also creates an index, and grants loose permissions to everyone via the A-MSSQL-GRANT-PERMISSIONS and A-MSSQL-GRANT-USERNAME configuration variables with their default values. If database permissions are not set to allow these loose permissions, the GRANT statement fails, causing OPEN OUTPUT to fail.

    See A-MSSQL-GRANT-PERMISSIONS and A-MSSQL-GRANT-USERNAME for details.

  • Increased table and column name sizes for ODBC

    To accommodate the number of characters the ODBC driver allows, this release increases the allowable table name and column name sizes for ODBC via two new ODBC configuration file variables. For details, see A_ODBC_MAX_COLUMNNAME_LEN and A_ODBC_MAX_TABLENAME_LEN.

  • Support for all currently available versions of the MIcrosoft SQL Server ODBC Driver, which have been tested through version 18.

    See the following Configuration Variables topics for details:

    • A_MSSQL_ODBC_DRIVER_NAME
    • A_MSSQL_ENCRYPT_CONNECTION
    • A_MSSQL_TRUST_SERVER_CERTIFICATE
    • A_MSSQL_EXTRA_CONNECTION_INFO
  • The A_MSSQL_IDENTITY_TYPE configuration variable has been added to enable you to configure the identity column to be a larger type, and to store a 64-bit value internally. Set A_MSSQL_IDENTITY_TYPE to a string value that represents a fully qualified data type for your database. The default is:
     A_MSSQL_IDENTITY_TYPE="numeric(9,0)"

Debugging

Back to Top

This release provides the following new feature:

  • In Visual Studio, you can now debug .NET COBOL projects in WSL.

Enterprise Server

Back to Top

This release provides the following enhancements:

  • A new casverify command-line utility is available. This utility enables you to verify the configuration of a specified enterprise server region without attempting to start it, and also enables you to create immediate diagnostics information in JSON or human-readable output. Verification stages are modular, enabling you to specify which validation checks to run.
  • You can now list job steps to enable users to perform advanced restarts. Job steps can be output to JSON by specifying casout /%jnumber or output to a table by specifying casout /%tnumber. See casout for more information.

Enterprise Server Common Web Administration (ESCWA)

Back to Top

Enhancements are available in the following areas:

  • Accessibility improvements - provide improved compliance with 508 and WCAG 2.1 standards.
  • API, version 2 extensions - includes updated versions of some of the existing API version 1 endpoints, and has been extended to contain more endpoints.
  • Merged Archived Spool - you can now configure an enterprise server region to view a merged archived spool in the UI. You can view multiple archived spools from a single region, and view old spool information for multiple jobs that have ran under a previous name
  • Page search facility - you can now search for a page that contains a specified search string. This enhancement is part of the WCAG 2.1 requirements for accessibility.
  • PAC clients - the ESCWA UI lists all TN3270 clients connected to a PAC. This enables you to administer and monitor clients across the entire PAC from a single PAC region.
  • TLS-enabled Redis connections. ESCWA now supports administering and monitoring PACs with a TLS Redis SOR.

Enterprise Server Security

Back to Top

This release provides the following new features and enhancements:

  • Demo CA - the component has been completely redesigned and is now included as part of Visual COBOL. Demo CA supports multiple installations, uses up-to-date cryptographic support, and generates modern version 3 certificates with SANS, PKIDs, AKIDs, etc. signed by an intermediate CA. Demo CA is now easier to use and has improved interoperability with third-party SSL/TLS systems.
    Note: Micro Focus strongly recommends that Demo CA is only used for SSL/TLS development and testing and is not intended for use in a production environment.
  • esfupdate support for the Vault Facility - the esfupdate utility now supports the use of the Vault Facility for credentials it needs to connect to MFDS.
  • OpenSSL 3.0 - OpenSSL has been updated to use the current Long Term Supported OpenSSL cryptographic library.
  • VSAM External Security Manager (EAP) - the VSAM ESM Module is a new option for Enterprise Server security which is simpler and more convenient than using LDAP-based security. The VSAM ESM Module provides a security manager for Enterprise Server which keeps security data in COBOL data (VSAM) files. It provides many of the features of the MLDAP ESM Module but does not require an LDAP server or other third-party solution. Security data can be imported from a YAML file, facilitating the securing of Enterprise Server and the modification of its security data.
    Attention: This feature is in Early Adopter Program (EAP) release status. We intend to provide the finalized feature in a future release. Please contact Micro Focus Customer Care if you require further clarification.

HCO for SQL Server[3]

Back to Top

This release includes support for the following:

  • The Define Lists tool in the HCOSS UI has been enhanced to enable you to select a dependency mode to use when creating a transfer list. The available modes are:
    Default
    Automatically include all parent objects of the selected object.
    Family tree
    Automatically include all parent objects of the selected table.

    Automatically include the child objects of each parent object.

    Repeat until no more parents and children are found.

    No dependency handling
    Include the selected table only (do not include any parent or child objects).
  • The Transfer Data Tool now includes the start and end date and time for each table transfer.

Interface Mapping Toolkit

Back to Top

This release provides the following enhancements:

  • YAML support is now available for COBOL client generation. OpenAPI schemas can now be in YAML, in addition to JSON format.
  • The Interface Mapper user interface for COBOL program-based service interfaces has been updated. The Interface Fields pane available in earlier versions is now represented by two panes — Interface Fields - Input and Interface Fields - Output. The COBOL Entry Points pane is situated between these two new panes. The relationships between COBOL entry points and corresponding interface, COBOL assignment, and reusable fields are depicted visually using arrows. The panes can be repositioned for easier viewing of arrow relationships.

Visual Studio

Back to Top

This release provides the following new features:

  • Converting JSON data to COBOL classes - you can now copy JSON data and use the Paste JSON As Classes command to copy it into a .NET COBOL file. This generates COBOL classes that enable you to deserialize the data in those classes.
  • Document Outline window for COBOL files.
  • Editor support is available for local variables and parameterized sections.
  • Format with code cleanup can now be configured to change any keywords in your code to lowercase or uppercase.