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