Commit 0143687a authored by spawar's avatar spawar

Added source and deployment of shipment updation tool


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@98842 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 32fc5fc9
<dbconfig>
<driverURL>jdbc:oracle:thin:@192.168.0.3:1521:oracle3</driverURL>
<username>tarodev</username>
<passwordFile>Driver.ipw</passwordFile>
<drivername>oracle.jdbc.driver.OracleDriver</drivername>
</dbconfig>
Requirement:
java 1.6 or later
Update username, passwordFile(.ipw) and URL of the Database into Driver.xml file.
Set your JAVA_HOME directory path in sapClient.bat file.
Double Click on UpdationTool.bat file for run Updation Tool.
@ECHO OFF
@echo off
echo Setting JAVA_HOME
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_34
echo setting PATH
set PATH=%JAVA_HOME%\bin;%PATH%
echo Display java version
java -version
set CLASSPATH=%CLASSPATH%.;%cd%\MetisShipmentUpd.jar;suport_jars/log4j-1.2.4.jar;suport_jars/ojdbc14.jar
echo %CLASSPATH%
java ibase.main.OrderShipUpd
#cmd
\ No newline at end of file
package ibase.bean;
public class ConnParams
{
private boolean isPool;
private boolean isAutoCommit;
private String dataSourceName;
private String driverName;
private String driverUrl;
private String databaseUsername;
private String databasePassword;
public boolean isPool() {
return isPool;
}
public void setPool(boolean isPool) {
this.isPool = isPool;
}
public boolean isAutoCommit() {
return isAutoCommit;
}
public void setAutoCommit(boolean isAutoCommit) {
this.isAutoCommit = isAutoCommit;
}
public String getDataSourceName() {
return dataSourceName;
}
public void setDataSourceName(String dataSourceName) {
this.dataSourceName = dataSourceName;
}
public String getDriverName() {
return driverName;
}
public void setDriverName(String driverName) {
this.driverName = driverName;
}
public String getDriverUrl() {
return driverUrl;
}
public void setDriverUrl(String driverUrl) {
this.driverUrl = driverUrl;
}
public String getDatabaseUsername() {
return databaseUsername;
}
public void setDatabaseUsername(String databaseUsername) {
this.databaseUsername = databaseUsername;
}
public String getDatabasePassword() {
return databasePassword;
}
public void setDatabasePassword(String databasePassword) {
this.databasePassword = databasePassword;
}
}
package ibase.java;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.log4j.Logger;
import ibase.utility.CommonUtil;
public class MetisUpdate
{
Logger logger = Logger.getLogger(MetisUpdate.class);
public String update(String ptcn) throws Exception
{
String retString="Transaction Save Successfully";
logger.info("Inside Updation................");
CommonUtil commanUtil = new CommonUtil();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String sqlStr = "";
int rowUpd = 0;
int rowUpd1 = 0;
try
{
conn = commanUtil.getConnection();
conn.setAutoCommit(false);
sqlStr = "update wave_task_det set status = 'Y',wave_status = 'V' where ref_id = (select ref_id from wave_task_det where ptcn = ? and ref_ser ='S-DSP')";
logger.debug("SQL>>>>"+sqlStr);
pstmt = conn.prepareStatement(sqlStr);
logger.debug("SQL Param1>>>>"+ptcn);
pstmt.setString(1, ptcn);
rowUpd = pstmt.executeUpdate();
pstmt.close();
logger.debug("Rows Updated:"+rowUpd);
sqlStr = "UPDATE SHIP_DOCS SET DESP_CONFIRMED = 'Y' , ERROR_MSG = NULL WHERE PTCN = ?";
logger.debug("SQL>>>>"+sqlStr);
pstmt = conn.prepareStatement(sqlStr);
logger.debug("SQL Param1>>>>"+ptcn);
pstmt.setString(1, ptcn);
rowUpd1 = pstmt.executeUpdate();
pstmt.close();
logger.debug("Rows Updated:"+rowUpd1);
if(rowUpd == 0 || rowUpd1 == 0)
{
retString ="No rows updated";
conn.rollback();
}
else
{
retString="Transaction Save Successfully";
logger.info("Commiting Connection............");
conn.commit();
}
} catch (Exception e)
{
try
{
conn.rollback();
} catch (Exception e1)
{
logger.error("Exception>>>>",e1);
}
logger.error("Exception>>>>",e);
throw e;
}
finally
{
try {
logger.info("Closing Connection............");
pstmt.close();
conn.close();
} catch (Exception e)
{
logger.error("Exception>>>>",e);
}
}
return retString;
}
public String validate(String ptcn) throws Exception
{
logger.info("Inside Validation................");
String retString ="true";
CommonUtil commanUtil = new CommonUtil();
Connection conn = null;
String str = "";
PreparedStatement pstmt = null;
ResultSet rs = null;
if(ptcn.equals("")||ptcn.length()==0)
{
retString = "PTCN Can't Blank";
return retString;
}
else
{
try
{
conn = commanUtil.getConnection();
conn.setAutoCommit(false);
logger.debug("PTCN>>>>>>>>>>"+ptcn);
str = "select count(1) from despatch where ptcn = ?";
logger.debug("SQL>>>>"+str);
pstmt = conn.prepareStatement(str);
logger.debug("SQL Param1>>>>"+ptcn);
pstmt.setString(1, ptcn);
rs = pstmt.executeQuery();
if(rs.next())
{
logger.debug("SQL Out>>>>"+rs.getInt(1));
if(rs.getInt(1)==0)
{
retString = "PTCN Not Valid";
return retString;
}
}
pstmt.close();
rs.close();
str = "select count(1) from despatch where confirmed='Y' and ptcn = ?";
logger.debug("SQL>>>>"+str);
pstmt = conn.prepareStatement(str);
logger.debug("SQL Param1>>>>"+ptcn);
pstmt.setString(1, ptcn);
rs = pstmt.executeQuery();
if(rs.next())
{
logger.debug("SQL Out>>>>"+rs.getInt(1));
if(rs.getInt(1)==0)
{
retString = "Corresponding despatch transaction should be confimed";
return retString;
}
}
pstmt.close();
rs.close();
str = "select count(*) from wave_task_det where ref_ser <> 'S-DSP' and status = 'N' "
+ "and ptcn = ? ";
logger.debug("SQL>>>>"+str);
pstmt = conn.prepareStatement(str);
logger.debug("SQL Param1>>>>"+ptcn);
pstmt.setString(1, ptcn);
rs = pstmt.executeQuery();
if(rs.next())
{
logger.debug("SQL Out>>>>"+rs.getInt(1));
if(rs.getInt(1) > 0)
{
retString = "Task Pending,all tasks must be completed before shipment.";
return retString;
}
}
pstmt.close();
rs.close();
str = "select count(*) from shipment s,ship_docs d where s.shipment_id =d.shipment_id "
+ "and s.confirmed = 'Y' and d.ptcn = ? ";
logger.debug("SQL>>>>"+str);
pstmt = conn.prepareStatement(str);
logger.debug("SQL Param1>>>>"+ptcn);
pstmt.setString(1, ptcn);
rs = pstmt.executeQuery();
if(rs.next())
{
logger.debug("SQL Out>>>>"+rs.getInt(1));
if(rs.getInt(1)==0)
{
retString = "The corresponding shipment transaction should be confirmed,before updating wave task status";
return retString;
}
}
pstmt.close();
rs.close();
conn.close();
} catch (Exception e)
{
logger.error("Exception>>>>",e);
throw e;
}
finally
{
try
{
logger.info("Closing Connection............");
pstmt.close();
rs.close();
conn.close();
} catch (SQLException e)
{
logger.error("Exception>>>>",e);
}
}
}
return retString;
}
}
package ibase.main;
import ibase.java.MetisUpdate;
import ibase.utility.CommonUtil;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
public class OrderShipUpd
{
Logger logger = Logger.getLogger(OrderShipUpd.class);
Logger logger2 = logger.getLogger("ptcnLog");
// Logger.getRootLogger().addAppender(appender);
JFrame frm;
JButton button;
JTextField tfPtcn;
JLabel lPtcn;
OrderShipUpd()
{
frm=new JFrame("Metis Updation Tool");//creating instance of JFrame
JFrame headFrm = new JFrame();
JPanel hPanel= new JPanel(new GridLayout(2,2));
JPanel dPanel= new JPanel(new GridLayout(1,2));
JPanel sPanel= new JPanel(new GridLayout(1,3));
JLabel heading = new JLabel(" Shipment Updation ");
heading.setFont(new Font("Serif", Font.BOLD, 20));
//heading.setBounds(300,300,300,100);
hPanel.add(heading);
//panel.setLayout(null);
lPtcn = new JLabel("Enter PTCN :");
tfPtcn = new JTextField(10);
button=new JButton("Update");//creating instance of JButton
button.setBounds(130,100,100, 40);
ActionListener actionListener = new ActionListener()
{
public void actionPerformed(ActionEvent actionEvent)
{
String tfPtcnVal = tfPtcn.getText();
actionExecute(tfPtcnVal);
}
};
button.addActionListener(actionListener);
dPanel.add(lPtcn);
dPanel.add(tfPtcn);
sPanel.add(button);
frm.add(hPanel);
frm.add(dPanel);
frm.add(sPanel);
frm.setSize(400,500);//400 width and 500 height
frm.setLayout(new FlowLayout());
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setVisible(true);//making the frame visible
}
public static void main(String[] args)
{
new OrderShipUpd();
}
public void actionExecute(String ptcn)
{
MetisUpdate mUpdate = new MetisUpdate();
CommonUtil commUtil = new CommonUtil();
FileAppender fileAppender = commUtil.getLogAppender(ptcn);
Logger.getRootLogger().addAppender(fileAppender);
logger.info("PTCN Value from Text Field>>>>"+ptcn);
String valString;
try
{
valString = mUpdate.validate(ptcn);
if(valString.equals("true"))
{
String updString;
try
{
updString = mUpdate.update(ptcn);
logger.info(updString);
commUtil.message(updString);
} catch (Exception e) {
logger.error("Exception>>>>",e);
//System.out.println(e.getMessage());
JOptionPane.showMessageDialog(null,e);
}
}
else
{
logger.info(valString);
JOptionPane.showMessageDialog(null, valString);
}
} catch (Exception e1) {
logger.error("Exception>>>>"+e1);
JOptionPane.showMessageDialog(null, e1);
}
finally
{
logger.info("\n\n\n");
Logger.getRootLogger().removeAppender("ptcnLog");
}
}
}
\ No newline at end of file
package ibase.utility;
import ibase.bean.ConnParams;
import ibase.java.MetisUpdate;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import javax.swing.JOptionPane;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.PropertyConfigurator;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class CommonUtil
{
Logger logger = Logger.getLogger(CommonUtil.class);
public void message(String magStr)
{
JOptionPane.showMessageDialog(null, magStr);
}
public Connection getConnection() throws Exception
{
logger.info("Inside Getting Connection............");
Connection connection = null;
ConnParams connParams = setConnParams();
try
{
Class.forName(connParams.getDriverName());
String encodedPass = decrypt(readPasswordFromFile(connParams.getDatabasePassword()));
connection = DriverManager.getConnection(connParams.getDriverUrl(), connParams.getDatabaseUsername(), encodedPass);
logger.debug("Connection:"+connection);
}
catch(Exception e)
{
System.out.println("Connection Not Established([" + connParams.getDriverName() + "][" + connParams.getDriverUrl() + "][" + connParams.getDriverUrl() + "] ?????????");
logger.error("Connection Not Established([" + connParams.getDriverName() + "][" + connParams.getDriverUrl() + "][" + connParams.getDriverUrl() + "] ?????????");
logger.error("Exception: CommonUtil: getConnection: Generic Exception==>\n" + e);
throw e;
}
logger.info("Connection Established");
return connection;
}
private ConnParams setConnParams() throws ParserConfigurationException, SAXException, IOException {
logger.info("Inside set connection params...........");
ConnParams connParams = new ConnParams();
String current = System.getProperty("user.dir");
logger.info("working directory in Java : " + current);
//File fXmlFile = new File("/home/base/Desktop/XML Files/Driver.xml");
File fXmlFile = new File(current+"/Driver.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
org.w3c.dom.Document document = dBuilder.parse(fXmlFile);
NodeList parentNodeList = document.getElementsByTagName("dbconfig");
Node parentNode = parentNodeList.item(0);
NodeList childNodeList = parentNode.getChildNodes();
for(int i =0;i<childNodeList.getLength();i++)
{
//System.out.println("for loop"+i);
Node node = childNodeList.item(i);
//System.out.println("NodeName="+node.getNodeName());
if(node.getNodeName().equals("driverURL"))
{
//System.out.println("NodeValue="+node.getFirstChild().getNodeValue());
connParams.setDriverUrl(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("username"))
{
//System.out.println("NodeValue="+node.getFirstChild().getNodeValue());
connParams.setDatabaseUsername(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("passwordFile"))
{
//System.out.println("NodeValue="+node.getFirstChild().getNodeValue());
connParams.setDatabasePassword(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("drivername"))
{
//System.out.println("NodeValue="+node.getFirstChild().getNodeValue());
connParams.setDriverName(node.getFirstChild().getNodeValue());
}
}
return connParams;
}
private String readPasswordFromFile(String ipwFile)
{
String pass = "";
try
{
String fileName = System.getProperty("user.dir") +"/"+ ipwFile;
logger.info("ReadPasswordFromFile:"+fileName);
ByteArrayOutputStream baos=new ByteArrayOutputStream();
FileInputStream isr = new FileInputStream(fileName);
StringBuffer passStrBuff = new StringBuffer();
int i=-1;
while ( ( i = isr.read() ) !=-1 )
{
baos.write(i);
}
pass = baos.toString("ISO-8859-1");
baos.close();
isr.close();
}
catch(Exception e)
{
System.out.println("Exception: CommonUtil: readPasswordFromFile(String):==>\n"+e.getMessage());
}
//System.out.println("password:"+pass);
return pass;
}
private static String decrypt(String as_passwd)
{
String ls_return = "";
try
{
int li_len, li_count, li_Seed, li_passAsc, li_seedcount;
li_len = as_passwd.length();
li_seedcount = 1;
for(li_count = 0; li_count<li_len; li_count+=2)
{
li_Seed = ((int )as_passwd.charAt(li_count + 1 ) ) - li_seedcount ;
li_passAsc = ((int )as_passwd.charAt(li_count ) ) - li_seedcount ;
li_passAsc = li_passAsc - li_Seed;
ls_return += (char)(li_passAsc);
li_seedcount ++;
}
}
catch(Exception e)
{
System.out.println("Exception: ConnDriver: decrypt(String):==>\n"+e.getMessage());
//throw e;
}
//System.out.println("password:"+ls_return);
return ls_return;
}
public static Logger getLogger(Class clazz,String myLogFile){
org.apache.log4j.Logger log = Logger.getLogger(clazz);
Properties props=new Properties();
/* props.setProperty("log4j.appender.file","org.apache.log4j.RollingFileAppender");
props.setProperty("log4j.appender.logfile","org.apache.log4j.DailyRollingFileAppender");
props.setProperty("log4j.appender.logfile.DatePattern","'.'yyyy-MM-dd");
props.setProperty("log4j.appender.logfile.layout","org.apache.log4j.PatternLayout");
props.setProperty("log4j.appender.logfile.layout.ConversionPattern","%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n");
props.setProperty("log4j.appender.logfile.File",myLogFile);
props.setProperty("log4j.logger.com.com.test.log4j.conf","INFO, logfile");
*/
//log4j.rootLogger=debug,ERROR,INFO,CONSOLE,R
props.setProperty("log4j.rootLogger","debug,ERROR,INFO,CONSOLE,R");
//log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
props.setProperty("log4j.appender.CONSOLE","org.apache.log4j.ConsoleAppender");
//log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
props.setProperty("log4j.appender.CONSOLE.layout","org.apache.log4j.PatternLayout");
//log4j.appender.CONSOLE.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
props.setProperty("log4j.appender.CONSOLE.layout.ConversionPattern","%5p [%t] (%F:%L) - %m%n");
// log4j.appender.R=org.apache.log4j.RollingFileAppender
props.setProperty("log4j.appender.R","org.apache.log4j.RollingFileAppender");
// log4j.appender.R.File=update.log
props.setProperty("log4j.appender.R.File",myLogFile);
//log4j.appender.R.Target=System.out
props.setProperty("log4j.appender.R.Target","System.out");
// log4j.appender.R.MaxFileSize=200KB
props.setProperty("log4j.appender.file","org.apache.log4j.RollingFileAppender");
// log4j.appender.R.MaxBackupIndex=2
props.setProperty("log4j.appender.R.MaxFileSize","2");
// log4j.appender.R.layout=org.apache.log4j.PatternLayout
props.setProperty("log4j.appender.R.layout","org.apache.log4j.PatternLayout");
// log4j.appender.R.layout.ConversionPattern=%d - %c - %p - %m%n
props.setProperty("log4j.appender.R.layout.ConversionPattern","%d - %c - %p - %m%n");
PropertyConfigurator.configure(props);
return log;
}
public FileAppender getLogAppender(String ptcn)
{
FileAppender appender = new FileAppender();
appender.setName("ptcnLog");
appender.setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n"));
appender.setFile("logs/"+ptcn+".log");
appender.setAppend(true);
appender.setThreshold(Level.ERROR);
appender.setThreshold(Level.INFO);
appender.setThreshold(Level.DEBUG);
//appender.setThreshold(Level.ERROR);
appender.activateOptions();
return appender;
}
}
# Log levels
log4j.rootLogger=debug,ERROR,INFO,CONSOLE,R
# Appender Configuration
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
# Pattern to output the caller's file name and line number
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
# Rolling File Appender
log4j.appender.R=org.apache.log4j.RollingFileAppender
# Path and file name to store the log file
#log4j.appender.R.File=/home/base/Desktop/XML Files/update.log
log4j.appender.R.File=update.log
log4j.appender.R.Target=System.out
log4j.appender.R.MaxFileSize=200KB
# Number of backup files
log4j.appender.R.MaxBackupIndex=20
# Layout for Rolling File Appender
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d - %c - %p - %m%n
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment