COBOL-to-Java Converter for Unisys MCP and Burroughs COBOL

SoftwareMining's COBOL-to-Java and COBOL-to-C# Converter supports the migration of Unisys MCP and Burroughs COBOL applications to maintainable Java or C# source code. It uses automated conversion and operates within the customer's own infrastructure.

These applications commonly depend on DMS, DMS-II or DMS-2000 databases, DDS definitions and platform-specific data-access APIs. SoftwareMining uses DMS-II definitions from compiler listings to generate relational SQL structures and object-relational data-access components for the converted application.

Generated tables can align with relational databases populated through products such as OpenText DataBridge. Related WFL workflows can be migrated separately to Unix shell scripts or Windows batch files.


View COBOL-to-Java and C# Conversion Process and Features

Handling DMS, DMS-II and DMS-2000 Database Access

Migrating a Unisys COBOL application requires both its database definitions and DMS-II operations to be converted for relational database access.

1. Prepare the DMS-II Database Definitions

Each 01 data-set definition from the compiler-generated DDS listing is placed in a separate copybook containing its fields, data types, sets, indexes and keys.

01 INVOICE-DDS STANDARD DATA SET(#42).

   INVOICE-IDX1 SET(#100,AUTO)
     OF INVOICE-DDS
     KEYS ARE
       INVOICE-NUMB   ASCENDING,
       INVOICE-ACT-NO ASCENDING.

02 INVOICE-NUMB   PIC 9(3).
02 INVOICE-ACT-NO PIC 9(3).
02 INVOICE-DATE                   PIC 9(8).
02 INVOICE-VALUE                  PIC S9(7)V9(5).
02 INVOICE-ADDR                   PIC 9(1).

2. Associate the Program with the Database Definition

The program's database declaration is associated with the corresponding INVOICE-DDS copybook during application analysis.

DATA-BASE SECTION.
DB DB1.
01 INVOICE-DDS.

3. Generate SQL and Data-Access Objects

The prepared definition is used to generate a relational SQL schema, indexes and Java or C# data-access classes. In this example, INVOICE-DDS produces an InvoiceDao used by the converted program.

InvoiceDao invoice = new InvoiceDao();

See equivalent representations of COBOL structures in Java and C# .

4. Convert DMS-II FIND and Status Handling

Data set / DAO Access path / lookup Key fields / parameters Status handling

FIND INVOICE-IDX1
  OF INVOICE-DDS
  AT  INVOICE-NUMB   = WS-NUMB
  AND INVOICE-ACT-NO = WS-ACT-NO
  ON EXCEPTION
    IF DMSTATUS(NOTFOUND)
      MOVE "NOT FOUND" TO WS-ERR-MESS.
InvoiceDao invoice = new InvoiceDao();

try {
    invoice.setCondition(
        "(INVOICE_NUMB = ?) AND (INVOICE_ACT_NO = ?)");

    invoice.addSearchParameter(
        iData.getWsNum());

    invoice.addSearchParameter(
        iData.getWsActNo());

    invoice.find();

} catch (Exception ex) {
    if (this.IsStatus(DMSMonitor.NOTFOUND)) {
        iData.setWsErrMessage("NOT FOUND");
    }
}

5. Convert Additional DMS-II Operations

Supported CREATE, STORE, LOCK, FIND and SELECT operations are converted into generated DAO methods and runtime calls while preserving required DMS status behaviour. This allows the converted application to use a relational database without retaining the Unisys MCP environment solely for DMS-II access.

The same approach supports additional DMS-II navigation operations, including FIND FIRST, FIND LAST, FIND NEXT, FIND PRIOR and database positioning, using generated SQL queries and DAO methods.

LLM-Assisted Migration of Unisys WFL

Unisys Work Flow Language (WFL) coordinates COBOL programs, files, sorting and other batch operations. Because WFL can also contain variables, conditions, loops and error handling, each workflow must be analysed as application logic rather than treated simply as a job sequence.

SoftwareMining provides migration specifications for use with suitable LLM-based development tools. These define how WFL constructs, program parameters, return codes, file operations, SORT processing and generation-data management can be mapped to Unix shell scripts or Windows batch files that coordinate the converted Java or C# programs.

LLM-generated scripts require technical review and execution-based testing against the original WFL processing, including job sequence, conditional behaviour, file handling, restart processing and final results.