/** Finds the error XML file in the specified folder */ private List<BaseError> findErrorXML(LoansXML request, String path) throws ServiceException { List<BaseError> results = new ArrayList<>(); ConfigCredential configCredential = boot.findMount(BayServConstants.rpgService, boot.findMasterEnvironment()); if (configCredential == null) { throw new ServiceException(ErrorCodes.EXA001); } AS400 as400 = AS400IFSUtil.connectToAS400( configCredential.getId(), configCredential.getIdentity(), configCredential.getCredential()); String exportPath = config.findServiceFeature(environmentConfig.getFeatures(), "ExportPath") + "/" + path + "/"; try { String result = StringUtils.leftPad(String.valueOf(request.getLoanID()), 10, '0'); String fileName = result + "err.xml"; fileName = exportPath + "/" + fileName; IFSFile ifsFile = new IFSFile(as400, fileName); if (ifsFile.exists()) { String xml = AS400IFSUtil.readFileToStringFromIFS(as400, fileName); ERRORSXML obj = fromXML(errorCtx, xml); for (ERROR err : obj.getERROR()) { BaseError res = new BaseError(); res.setCode(err.getERRORCODE()); res.setDescription(err.getERRORDESC()); res.setMessage(err.getFIELD()); results.add(res); } } AS400IFSUtil.disconnectAS400(as400); } catch (IOException e) { throw new ServiceException(ErrorCodes.COR027, e); } return results; }
/** * Saves the disbursement XML file in the specified folder * * @return a formatted loan reference number */ private String saveDisbursementFile(LoansXML request, String path) throws ServiceException { ConfigCredential configCredential = boot.findMount(BayServConstants.rpgService, boot.findMasterEnvironment()); if (configCredential == null) { throw new ServiceException(ErrorCodes.EXA001); } AS400 as400 = AS400IFSUtil.connectToAS400( configCredential.getId(), configCredential.getIdentity(), configCredential.getCredential()); String exportPath = config.findServiceFeature(environmentConfig.getFeatures(), "ExportPath") + "/" + path + "/"; String xml = renderDisbursementXML(request); String result = StringUtils.leftPad(String.valueOf(request.getLoanID()), 10, '0'); String fileName = result + ".xml"; fileName = exportPath + "/" + fileName; AS400IFSUtil.writeToIFS(as400, fileName, xml); AS400IFSUtil.disconnectAS400(as400); return result; }