protected void init() { try { _con = WebAppConnection.getWebAppConnection().getConnection(); } catch (OptInCustomerException ex) { AppLog.writeAuditLog( "OptIN Driver OptInCustomerException: no connection to dB " + ex.getMessage()); System.out.println( "OptIN Driver OptInCustomerException: no connection to dB " + ex.getMessage()); System.exit(1); } catch (Exception exe) { AppLog.writeAuditLog("OptIN Driver Exception: " + exe.getMessage()); System.out.println("OptIn Driver Exception : " + exe.getMessage()); System.exit(1); } }
/** * @author gdulski * @since nov 26, 2003 * @param ArrayList of updated CustomerValue objects containing new PIN, new OptInStatus, new date * updated and new lastUpdateUserId. * @return boolean true if update successful otherwise return false * <p>Update the DAOptInCustomer table in Styx for each customer in the input ArrayList. */ protected boolean updateCustomers(ArrayList _rowset) throws OptInCustomerException { boolean updateOK = false; // dB connection init(); // update each customer for (int _inx = 0; _inx < _rowset.size(); _inx++) { CustomerValue _customer = (CustomerValue) _rowset.get(_inx); try { updateOK = update(_customer); if (!updateOK) break; } catch (SQLException _e) { AppLog.writeErrorLog( "SQL Exception when preparing update SQL " + _customer.getCAPnumber() + " message : " + _e.getMessage()); System.out.println( "SQL Exception when preparing update SQL " + _customer.getCAPnumber() + " msg " + _e.getMessage()); throw new OptInCustomerException( "SQL Exception when preparing update SQL " + _customer.getCAPnumber() + " msg " + _e.getMessage()); } _customer = null; } return true; }
protected ArrayList getOptInCustomers() { int counter = 0; ArrayList _rowset = new ArrayList(); // get CAPBatch properties: // _limit = number of letters to print // _sql = the Select query int _limit = Integer.parseInt(_appProp.getProperty(SEGMENTPROPERTY)); String _sql = _appProp.getNoEnvironmentProperty(SQLREADPROPERTY); try { ResultSet _resultSet = null; Statement _stmt = null; _stmt = _con.createStatement(); ResultSet _rs = _stmt.executeQuery(_sql); if (_rs == null) { AppLog.writeAuditLog("LetterDriverDataBean - no customer letters to process."); System.out.println("LetterDriverDataBean - no customer letters to process."); return null; } for (; _rs != null && _rs.next() && counter < _limit; counter++) { try { CustomerValue _customer = new CustomerValue(AppLog); _customer.setCustomerData(_rs); _rowset.add(counter, _customer); _customer = null; } catch (OptInCustomerException e) { System.out.println("Populating CustomerValue object failed " + e.getMessage()); AppLog.writeAuditLog("Populating CustomerValue object failed " + e.getMessage()); } } } catch (SQLException _e) { AppLog.writeAuditLog("SQL Exception: occurred reading DAOptinCustomer " + _e.getMessage()); System.out.println("SQL Exception occurred reading DAOptInCustomer " + _e.getMessage()); } finally { // close the connection try { closeConnection(); } catch (OptInCustomerException _io) { System.out.println("DB close exception occurred. terminate job."); } } System.out.println("There were " + counter + " customers read from DAOptInCustomer table"); return _rowset; }
/** * @author gdulski * @param _con * @return nothing * <p>call the closeConnection() of WebAppConnection class */ protected void closeConnection() throws OptInCustomerException { try { WebAppConnection.getWebAppConnection().closeConnection(); } catch (Exception _e) { AppLog.writeErrorLog("Closing dB Connection Failure. Skip remaining job " + _e.getMessage()); System.out.println("Closing dB Connection Failure. Skip remaining job " + _e.getMessage()); throw new OptInCustomerException( "Close dB Connection Failure. Skip remaining job " + _e.getMessage()); } }
public void addNewLAPAUInfo() throws OptInCustomerException { PreparedStatement psNewLAPAUContact = null; ResultSet rsNewLAPAUContact = null; try { _appLog.writeAuditLog("Part -- II: Adding new LAP-AU address and Contact information.."); String newLAPAUs = "Select au.au_abe_u, p.reference_u, a.long_busn_name1, r.abe_relation_u, " + " trim(a2.first_name_n), trim(a2.middle_init_n), trim(a2.abe_name_n), " + " c.email_t, a.long_busn_name2, a2.credentials_t " + " from lpt_au_abe au, ptt_abe_reference p, ptt_abe a, ptt_abe_relation r, ptt_abe a2, outer cpt_poc_email c " + " where au.au_abe_u = p.abe_u and " + " au.au_abe_u = a.abe_u and " + " au.au_abe_u = r.abe_u and " + " r.abe_relation_u = a2.abe_u and " + " r.abe_relation_u = c.abe_u and " + " au.accred_s = 'A' and " + " p.assigning_abe_u = 1000061 and " + " p.reference_type_c = 'I' and " + " r.relation_type_c = 'I' and " + " c.email_type_c = 'PRIM' and " + " p.reference_u NOT IN ( SELECT CAPNumber FROM tmp_CAPNumber ) and " + " current between p.effective_dt and p.termination_dt and " + " current between r.effective_dt and r.termination_dt and " + " current between c.effective_dt and c.termination_dt "; System.out.println("***** Started New LAP-AU refresh process.."); psNewLAPAUContact = _ifxConn.prepareStatement(newLAPAUs); rsNewLAPAUContact = psNewLAPAUContact.executeQuery(); this.updateCustomerInfo(rsNewLAPAUContact, "New"); System.out.println("***** Finished New LAP-AU refresh process.."); } catch (SQLException e) { throw new OptInCustomerException(e); } finally { // Close database Connections try { InfmxConnection.getInfmxConnection().closeConnection(); WebAppConnection.getWebAppConnection().closeConnection(); } catch (Exception ex) { throw new OptInCustomerException(ex); } } }
public class OptInLetterBatch { /** @SBGen Variable (,newSupplier,,0) */ private LetterDriver newSupplier; static MaintainLog _appLog = MaintainLog.getLogger("OptInLetterBatchProcess"); public OptInLetterBatch() {} public static void main(String args[]) { System.out.println( "The Opt In Letter process is beginning at " + (new SimpleDateFormat("yyyy.MM.dd 'at' HH:mm")).format(new Date())); LetterDriver driver = new LetterDriver(_appLog); System.out.println("The Opt In LetterDriver is processing letters"); driver.processLetters(); System.out.println( "The Opt In Letter process completed successfully at " + (new SimpleDateFormat("yyyy.MM.dd 'at' HH:mm")).format(new Date())); System.exit(0); } }
/** * @author gdulski * @param _customer CustomerValue object * @return boolean true if update ok otherwise false * @throws SQLException * @throws OptInCustomerException * <p>Update the DAOptInCustomer table Process a single customer at a time. Get the update SQL * from the CAPBatch properties file * <p>Columns affected: OptInKey, OptInStatus, LastStatusUpdateDt, LastUpdateDt, * LastUpdateUserID */ private boolean update(CustomerValue _customer) throws SQLException, OptInCustomerException { boolean updateOK = false; // prepare the SQL if (_stmt == null) { _stmt = _con.prepareStatement(_updatesql); } // populate query parameters try { _stmt.setString(1, _customer.getOptInKey()); } catch (SQLException _s1) { _s1.printStackTrace(); System.out.println("OptInKey exception " + _s1.getMessage()); } try { if (_customer.getOptInStatus().equalsIgnoreCase(DEFAULTOPTINSTATUSCODE)) { _stmt.setString(2, DEFAULTOPTINSTATUSCODE); } else { _stmt.setString(2, refreshedOptInStatusCode.trim()); } } catch (SQLException _s1) { _s1.printStackTrace(); System.out.println("OptInStatus exception " + _s1.getMessage()); } try { _stmt.setString(3, _customer.getLastUpdateUserid().substring(0, 19)); } catch (SQLException _s1) { _s1.printStackTrace(); System.out.println("LastUpdateUserId exception " + _s1.getMessage()); } try { _stmt.setString(4, _customer.getCAPnumber()); } catch (SQLException _s1) { _s1.printStackTrace(); System.out.println("CAPnumber exception " + _s1.getMessage()); } // execute the stmt try { _stmt.executeUpdate(); _stmt.close(); _stmt = null; updateOK = true; } catch (SQLException _e) { AppLog.writeErrorLog( "SQL EXCEPTION occurred update customer " + _customer.getCAPnumber() + " message\n" + _e.getMessage()); System.out.println( "SQL EXCEPTION occurred update customer " + _customer.getCAPnumber() + " message\n" + _e.getMessage()); throw new OptInCustomerException( "SQL EXCEPTION occurred update customer " + _customer.getCAPnumber() + " message\n" + _e.getMessage()); } if (_customer.getOptInStatus().equalsIgnoreCase(DEFAULTOPTINSTATUSCODE)) { // Audit Trail the Warning letter. DAAuditDetails da = new DAAuditDetails(); da.setApplicationID( _appProp.getProperty("batch.audittrail.optincustomerletter.ApplicationID")); System.out.println("Set Application ID:" + da.getApplicationID()); da.setLogAccess(null); da.setLogAction(_appProp.getProperty("batch.audittrail.optincustomerletter.Action")); da.setLogAdminName(0); da.setLogCAPNumber(_customer.getCAPnumber()); da.setLogProgram(""); da.setLogUserName(0); AuditTrail at = new AuditTrail(); at.writeAuditLog(da); } return updateOK; }
public void updateLAPAUInfo() throws OptInCustomerException { String customerCAPIDSQL = null; String LAPAUIDSQL = null; String tempSQL = null; Statement sCustomerCAPID = null; ResultSet rsCustomerCAPID = null; Statement sLAPAUContact = null; ResultSet rsLAPAUContact = null; PreparedStatement psTemp = null; try { System.out.println("\n\n\n\nupdateLAPAUInfo\n\n\n\n"); _appLog.writeAuditLog( "Part -- I: Refreshing LAP-AU address " + "and Contact information for existing CAPIDs.."); customerCAPIDSQL = "SELECT CAPNumber " + " FROM DAOptInCustomer " + " WHERE AbeType = 'A'"; sCustomerCAPID = _webAppConn.createStatement(); rsCustomerCAPID = sCustomerCAPID.executeQuery(customerCAPIDSQL); tempSQL = "CREATE temp table tmp_CAPNumber (CAPNumber Char(30)) " + "with no log"; psTemp = _ifxConn.prepareStatement(tempSQL); psTemp.executeUpdate(); tempSQL = "INSERT INTO tmp_CAPNumber (CAPNumber) VALUES (?)"; psTemp = _ifxConn.prepareStatement(tempSQL); while (rsCustomerCAPID.next()) { if (rsCustomerCAPID.getString(1) != null) { psTemp.setString(1, rsCustomerCAPID.getString(1).trim()); psTemp.executeUpdate(); } } LAPAUIDSQL = "SELECT au.au_abe_u, p.reference_u, a.long_busn_name1," + " r.abe_relation_u, a2.first_name_n, a2.middle_init_n," + " a2.abe_name_n, c.email_t, a.long_busn_name2," + " a2.credentials_t " + " FROM lpt_au_abe au, ptt_abe_reference p, ptt_abe a," + " ptt_abe_relation r, ptt_abe a2, outer cpt_poc_email c" + " WHERE au.au_abe_u = p.abe_u and " + " au.au_abe_u = a.abe_u and " + " au.au_abe_u = r.abe_u and " + " r.abe_relation_u = a2.abe_u and " + " r.abe_relation_u = c.abe_u and " + " au.accred_s = 'A' and " + " p.assigning_abe_u = 1000061 and " + " p.reference_type_c = 'I' and " + " r.relation_type_c = 'I' and " + " c.email_type_c = 'PRIM' and " + " p.reference_u IN ( SELECT CAPNumber FROM tmp_CAPNumber ) and " + " current between p.effective_dt and p.termination_dt and " + " current between r.effective_dt and r.termination_dt and " + " current between c.effective_dt and c.termination_dt "; System.out.println("***** Started LAP-AU Update refresh.."); sLAPAUContact = _ifxConn.createStatement(); rsLAPAUContact = sLAPAUContact.executeQuery(LAPAUIDSQL); this.updateCustomerInfo(rsLAPAUContact, "Refresh"); System.out.println("***** Finished LAP-AU Update refresh.."); } catch (Exception ex) { throw new OptInCustomerException(ex); } }
private void updateCustomerInfo(ResultSet rs, String mode) throws OptInCustomerException { String insertSQL = "INSERT INTO DAOptInCustomer (" + " CAPNumber, BusinessName1, Address1, Address2, Address3, " + " Address4, City, State, PostalCode, Country, " + " Contact, EMailAddress, " + " OptInStatus, LastStatusUpdateDt, SiteAdminCount, " + " AbeType, LastUpdateUserId, LastUpdateDt, BusinessName2, Optinattempt )" + " VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'N', getDate(), 0, 'A', 'javaint', getDate(), ?, 0 )"; String updateSQL = "UPDATE DAOptInCustomer " + "SET BusinessName1 = ?, Address1=?, Address2=?, Address3=?, Address4=?, " + " City=?, State=?, PostalCode=?, Country=?, Contact=?, EmailAddress=?, " + " LastUpdateUserId='javaint', LastUpdateDt=getDate(), BusinessName2=? " + " WHERE CAPNumber=? "; String addressID = null; String auAddressSQL = null; String addr1 = null; String addr2 = null; String addr3 = null; String addr4 = null; String city = null; String state = null; String zip = null; String country = null; String name = null; int totalCount = 0; PreparedStatement pstmt = null; PreparedStatement pstmtAddr = null; /* Get Address Details using SP lpp_get_address */ PreparedStatement psLAPAUAddressDetails = null; ResultSet rsAddress = null; ResultSet rsSP = null; CallableStatement cstmt = null; try { _appLog.writeAuditLog( "Retrieving Address details for each AU and Updating DAOptInCustomer table .."); cstmt = _ifxConn.prepareCall("{call lpp_get_address(?,?,?)}"); if (mode.equalsIgnoreCase("new")) { pstmt = _webAppConn.prepareStatement(insertSQL); } else { pstmt = _webAppConn.prepareStatement(updateSQL); } } catch (SQLException e) { e.printStackTrace(); } try { while (rs.next()) { try { totalCount++; // Set the au and CAPID cstmt.setInt(1, rs.getInt(1)); cstmt.setTimestamp(2, new Timestamp(new java.util.Date().getTime())); cstmt.setString(3, "M"); cstmt.execute(); rsSP = cstmt.getResultSet(); if (totalCount % 2000 == 0) { System.out.println("Processed " + totalCount + " Rows.."); } if (rsSP.next()) { addressID = rsSP.getString(3); /* Using addressID get address information from ptt_Address table */ auAddressSQL = "SELECT a.addr_1_t, a.addr_2_t, a.addr_3_t, " + " a.addr_4_t, a.city_t, a.state_c, a.zip_t, p.value_t " + " FROM ptt_address a, outer ptt_standard_codes p " + " WHERE a.country_c = p.key_u and p.table_u = 10 and " + " current between p.effective_dt and p.termination_dt and " + " a.address_u = " + addressID; pstmtAddr = _ifxConn.prepareStatement(auAddressSQL); rsAddress = pstmtAddr.executeQuery(); if (rsAddress.next()) { if (rsAddress.getString(1) != null) { addr1 = rsAddress.getString(1).trim(); } else { System.out.println("ADDRESS1 VALUE WAS NULL for address ID: " + addressID); addr1 = ""; } if (rsAddress.getString(2) != null) { addr2 = rsAddress.getString(2).trim(); } else { System.out.println("ADDRESS2 VALUE WAS NULL for address ID: " + addressID); addr2 = ""; } if (rsAddress.getString(3) != null) { addr3 = rsAddress.getString(3).trim(); } else { System.out.println("ADDRESS3 VALUE WAS NULL for address ID: " + addressID); addr3 = ""; } if (rsAddress.getString(4) != null) { addr4 = rsAddress.getString(4).trim(); } else { System.out.println("ADDRESS4 VALUE WAS NULL for address ID: " + addressID); addr4 = ""; } if (rsAddress.getString(5) != null) { city = rsAddress.getString(5).trim(); } else { System.out.println("CITY VALUE WAS NULL for address ID: " + addressID); city = ""; } if (rsAddress.getString(6) != null) { state = rsAddress.getString(6).trim(); } else { System.out.println("STATE VALUE WAS NULL for address ID: " + addressID); state = ""; } if (rsAddress.getString(7) != null) { zip = rsAddress.getString(7).trim(); } else { System.out.println("ZIP VALUE WAS NULL for address ID: " + addressID); zip = ""; } if (rsAddress.getString(8) != null) { country = rsAddress.getString(8).trim(); } else { country = "United States"; } // If Country is United States, insert an empty space if (country.equalsIgnoreCase("united states") || country.equalsIgnoreCase("usa")) country = ""; // Name Formatting if (rs.getString(6) != null && rs.getString(5) != null && rs.getString(7) != null) { if (rs.getString(6).trim().length() > 0) name = rs.getString(5).trim() + " " + rs.getString(6).trim() + ". " + rs.getString(7).trim(); else name = rs.getString(5).trim() + " " + rs.getString(7).trim(); } else name = rs.getString(5).trim() + " " + rs.getString(7).trim(); // Adding Credentials if (rs.getString(10) != null) { if (rs.getString(10).trim().length() > 0) name = name + ", " + rs.getString(10).trim(); } updateData.setCAPID(rs.getString(2)); updateData.setAddress1(addr1); updateData.setAddress2(addr2); updateData.setAddress3(addr3); updateData.setAddress4(addr4); updateData.setCity(city); updateData.setState(state); updateData.setZip(zip); updateData.setCountry(country); updateData.setCompanyName(rs.getString(3)); updateData.setContactName(name); updateData.setEmail(rs.getString(8)); updateData.setBusinessName2(rs.getString(9)); updateData.setAbeType("A"); // Not used here // Insert mode (add new AUs) if (mode.equalsIgnoreCase("new")) { System.out.println("Inserting the row for : " + updateData.getCAPID()); pstmt.setString(1, updateData.getCAPID()); // -- CAPID pstmt.setString(2, updateData.getCompanyName()); // -- CompanyName pstmt.setString(3, updateData.getAddress1()); // -- Address1 pstmt.setString(4, updateData.getAddress2()); // -- Address2 pstmt.setString(5, updateData.getAddress3()); // -- Address3 pstmt.setString(6, updateData.getAddress4()); // -- Address4 pstmt.setString(7, updateData.getCity()); // -- City pstmt.setString(8, updateData.getState()); // -- State pstmt.setString(9, updateData.getZip()); // -- Zip pstmt.setString(10, updateData.getCountry()); // -- Country pstmt.setString(11, updateData.getContactName()); // -- Contact Name pstmt.setString(12, updateData.getEmail()); // -- Email pstmt.setString(13, updateData.getBusinessName2()); // -- BusinessName2 pstmt.executeUpdate(); } // Update mode (refresh data for existing AUs) else { pstmt.setString(1, updateData.getCompanyName()); // -- Company name pstmt.setString(2, updateData.getAddress1()); // -- Address1 pstmt.setString(3, updateData.getAddress2()); // -- Address2 pstmt.setString(4, updateData.getAddress3()); // -- Address3 pstmt.setString(5, updateData.getAddress4()); // -- Address4 pstmt.setString(6, updateData.getCity()); // -- City pstmt.setString(7, updateData.getState()); // -- State pstmt.setString(8, updateData.getZip()); // -- Zip pstmt.setString(9, updateData.getCountry()); // -- Country pstmt.setString(10, updateData.getContactName()); // -- Contact Name pstmt.setString(11, updateData.getEmail()); // -- Email pstmt.setString(12, updateData.getBusinessName2()); // -- BusinessName2 pstmt.setString(13, updateData.getCAPID()); // -- CAPID pstmt.executeUpdate(); } } } } catch (SQLException e) { if (e.getErrorCode() == 2627) { // user Exists in the table. Update the record try { _appLog.writeAuditLog( "LAP Customer:Updated the status:" + "CAPID=" + updateData.getCAPID()); pstmt = _webAppConn.prepareStatement(updateSQL); pstmt.setString(1, updateData.getCompanyName()); // -- Company name pstmt.setString(2, updateData.getAddress1()); // -- Address1 pstmt.setString(3, updateData.getAddress2()); // -- Address2 pstmt.setString(4, updateData.getAddress3()); // -- Address3 pstmt.setString(5, updateData.getAddress4()); // -- Address4 pstmt.setString(6, updateData.getCity()); // -- City pstmt.setString(7, updateData.getState()); // -- State pstmt.setString(8, updateData.getZip()); // -- Zip pstmt.setString(9, updateData.getCountry()); // -- Country pstmt.setString(10, updateData.getContactName()); // -- Contact Name pstmt.setString(11, updateData.getEmail()); // -- Email pstmt.setString(12, updateData.getBusinessName2()); // -- BusinessName2 pstmt.setString(13, updateData.getCAPID()); // -- CAPID pstmt.executeUpdate(); // Set the prepared statement back to the new mode pstmt = _webAppConn.prepareStatement(insertSQL); // Now Update the AbeType String sqlString = "Update dbo.DAOptInCustomer set AbeType='A' where CAPNumber = '" + updateData.getCAPID() + "'"; PreparedStatement p = _webAppConn.prepareStatement(sqlString); p.executeUpdate(); p.close(); } catch (SQLException f) { System.out.println("Error: Updating DAOptInCustomer table...."); f.printStackTrace(); throw new OptInCustomerException(f); } } else { e.printStackTrace(); throw new OptInCustomerException(e); } } } if (mode.equalsIgnoreCase("refresh")) _appLog.writeAuditLog( "Part -- I Complete : Updated address and contact information for " + totalCount + " AUs in DAOptInCustomer table.."); else _appLog.writeAuditLog( "Part -- II Complete : Inserted " + totalCount + " new AUs in DAOptInCustomer table.."); } catch (SQLException e) { e.printStackTrace(); } }