Mainframe COBOL to Java, C# & Cloud


Run Java translation of AWS Card Demo

AWS Card Demo is a straightforward mainframe application developed by the AWS team to demonstrate various modernization techniques. SoftwareMining utilized their Refactoring Engine to convert the CICS COBOL code into both Java and C# versions. The Java translation is hosted on Amazon AWS Cloud and can be accessed below:


Execute Java/JSP version of AWS Card-Demo



Important Details:

The subsequent section showcases a comparison of a COBOL Paragraph with its translations into Java and C#. The sample is from the program "COBIL00C" and illustrates how the ACCOUNT-RECORD data-structure used in CICS READ operation is refactored to Object-Relational classes. It also presents the transformation of CICS/BMS fields into Java Field-objects, enabling operations like setFocus(), "setProtected", and more. For an in-depth understanding, you can refer to our detailed guide on Clean-up of programs with BMS.

The following is comparison of one COBOL Paragraph with the translated Java and C# from program "COBIL00C" .

The sample code demonstrates refactoring ACCOUNT-RECORD data-structure used in CICS READ to Object-Relational classes, and the refactoring CICS/BMS fields into Java Field-objects which allow operations such as setFocus(), "setProtected", ... .
For more information see Clean-up of programs with BMS.

READ-ACCTDAT-FILE.

 EXEC CICS READ
   DATASET   (WS-ACCTDAT-FILE)
   INTO      (ACCOUNT-RECORD)
   LENGTH    (LENGTH OF ACCOUNT-RECORD)
   RIDFLD    (ACCT-ID)
   KEYLENGTH (LENGTH OF ACCT-ID)
   UPDATE
   RESP      (WS-RESP-CD)
   RESP2     (WS-REAS-CD)
 END-EXEC

 EVALUATE WS-RESP-CD
  WHEN DFHRESP(NORMAL)
      CONTINUE
  WHEN DFHRESP(NOTFND)
   MOVE 'Y'     TO WS-ERR-FLG
   MOVE 'Account ID NOT found...' TO
                   WS-MESSAGE
  MOVE -1       TO ACTIDINL OF COBIL0AI
   PERFORM SEND-BILLPAY-SCREEN
  WHEN OTHER
   DISPLAY 'RESP:' WS-RESP-CD 'REAS:' WS-REAS-CD
   MOVE 'Y'     TO WS-ERR-FLG
   MOVE 'Unable to lookup Account...' TO
                   WS-MESSAGE
   MOVE -1       TO ACTIDINL OF COBIL0AI
   PERFORM SEND-BILLPAY-SCREEN
 END-EVALUATE.
   
private void readAcctdatFile () {
  accountRecord.assignKeyLength(
                      accountRecord.getAcctId().lengthOf());
  accountRecord.assignResponseCodeField(
                      variables.getWsRespCd());
  accountRecord.read();
  variables.setReasCd(accountRecord.getResponse2Code());
  
  
  if (variables.getWsRespCd() == CicsCodes.NORMAL) {
    ;
  } 
  else if (variables.getWsRespCd() == CicsCodes.NOTFND) {
    variables.setErrFlg("Y");
    variables.setMessage("Account ID NOT found...");
    cobil0ai.getActidin(). setFocus();
    sendBillpayScreen ();
  } 
  else {
    DisplayHelper.display(this, "RESP:" 
	+ variables.getWsRespCdAsStr() 
	+ "REAS:" + variables.getReasCdAsStr());
    variables.setErrFlg("Y");
    variables.setMessage("Unable to lookup Account...");
    cobil0ai.getActidin().setFocus();
    sendBillpayScreen ();
  }}
  ...
  
  
   
private void void ReadAcctdatFile (){
  accountRecord.AssignKeyLength(
                 accountRecord.AcctId.LengthOf());
  accountRecord.AssignResponseCodeField(
                 variables.WsRespCd);
  accountRecord.Read();
  variables.ReasCd = accountRecord.GetResponse2Code();
  
  
  if (variables.WsRespCd == CicsCodes.NORMAL))
  {
    ;
  } else if (variables.WsRespCd == CicsCodes.NOTFND)
  {
    variables.ErrFlg = "Y";
    variables.Message = "Account ID NOT found...";
    cobil0ai.Actidin.SetFocus();
    SendBillpayScreen ();
  } else
  {
    DisplayHelper.Display(this, "RESP:" + variables.WsRespCd 
	   + "REAS:" + variables.ReasCd);
    variables.ErrFlg = "Y";
    variables.Message = "Unable to lookup Account...";
    cobil0ai.Actidin.SetFocus();
    SendBillpayScreen ();
  }
}


   


In addition, here are snapshots of the translation of BMS files into JSP/HTML. Note that these are the design-time views rendered as HTML files. The runtime display will be in JSP for Java-translated applications and in HTML for those converted to C#/.NET.

BMS (mapset) File 'Cocrdup.bms' map 'CCRDUPA'

AWS CardDemo Mapset Cocrdup map CCRDUPA

BMS (mapset) File 'Coactup.bms' map 'CACTUPA'

AWS CardDemo Mapset Coactup map CACTUPA

For a hands-on experience, Test drive the Java AWS Card-Demo yourself.






  © 2024 SoftwareMining is a trademark of Software Modernization Technologies Ltd (UK). Registered in England company no: 07300248. Reg Offices: 79 Stevens House, Jerome Place, Kingston Upon Thames, KT1 1HX, United Kingdom.