<%@page contentType="text/html; charset=UTF-8"%> <%@page import="java.sql.*"%> <%@page import="com.csc.library.utilities.*"%> <%@page import="java.io.*,java.util.*"%> <html> <head> <title>Gen Rounting</title> <script language="JavaScript" type="text/javascript"src="../JS/jquery-1.11.1.min.js"></script> <script> $(function(){ $("#Submit").click(function(){ $("#cmd").val("connect"); $("#db").val(""); $("#export").val(""); $("#f1").submit(); }); window.onload = function() { $(".chk").mouseover(function(){ $(this).css("background-color","#FFFF00"); }); $(".chk").mouseout(function(){ $(this).css("background-color","#FFFFFF"); }); $(".chk").click(function(){ $("#db").val($(this).text()); $("#export").val(""); $("#f1").submit(); }); $(".clickexp").click(function(){ $("#export").val($(this).val()); $("#catid").val($(this).attr("catid")); $("#f1").submit(); }); }; $.loadfile= function(file){ //alert(file); window.open(file,file); } $.adddb= function(name){ var td ="<tr><td><div class='chk'>"+name+"</div></td></tr>"; $("#database").append(td); } $.addwd= function(wfid,catid,tname,transfer){ var td ="<tr><td width='10%'><div class='ch'>"+wfid+"</div></td>"+ "<td width='10%'><div class='ch'>"+catid+"</div></td>"+ "<td width='35%'><div class='ch'>"+tname+"</div></td>"+ "<td width='35%'><div class='ch'>"+transfer+"</div></td>"+ "<td width='10%'><div class='ch'><button type='button' class='clickexp' value='"+wfid+"' catid='"+catid+"'>EXPORT</button></div></td></tr>"; $("#workdef").append(td); } }); </script> <style type="text/css"> <!-- .style1 {color: #FFFFFF} .bd1 { border: thin solid #000000; } --> </style> </head> <body> <p> <% CheckNull chk = new CheckNull(); String cmd=chk.chkNullString(request.getParameter("cmd"),""); String ip=chk.chkNullString(request.getParameter("ip"),""); String user=chk.chkNullString(request.getParameter("user"),""); String pass=chk.chkNullString(request.getParameter("pass"),""); String db=chk.chkNullString(request.getParameter("db"),""); String export=chk.chkNullString(request.getParameter("export"),""); String catid=chk.chkNullString(request.getParameter("catid"),""); String dbtype=chk.chkNullString(request.getParameter("dbtype"),""); String dbname=chk.chkNullString(request.getParameter("dbname"),"").toUpperCase(); // String url=dbtype+ip; String url = ""; String driver = ""; if(dbtype.equals("MSSQL")){ url="jdbc:jtds:sqlserver://"+ip; driver = "net.sourceforge.jtds.jdbc.Driver"; }else if(dbtype.equals("PGSQL")){ // url="jdbc:postgresql://"; url="jdbc:postgresql://"+ip+":5432/"+dbname; driver = "org.postgresql.Driver"; } // out.println("URL :: "+url); // out.println("dbtype :: "+dbtype); Connection con; ResultSet rs; Statement s; String step="1"; if(cmd != null && cmd.equals("connect")){ try{ Class.forName(driver); con = DriverManager.getConnection(url,user,pass); rs=con.getMetaData().getCatalogs(); while(rs.next()) { %> <script> $(function(){ $.adddb('<%=rs.getString(1)%>'); }); </script> <% } }catch(Exception e){ %> <script> $(function(){ // $("#error").text("Not Connect Database"); $("#error").text("<%=e%>"); }); </script> <% } } if(db !="" && db != null){ if(dbtype.equals("MSSQL")){ url=url+"/"+db; } try{ con = DriverManager.getConnection(url,user,pass); s=con.createStatement(); String sql="SELECT * FROM WORKFLOW_DEFINITION ORDER BY WF_ID"; rs=s.executeQuery(sql); while(rs.next()){ %> <script> $(function(){ $.addwd('<%=rs.getString("WF_ID")%>','<%=rs.getString("CATEGORY_ID")%>','<%=rs.getString("TNAME")%>','<%=rs.getString("TRANSFER_FILE")%>'); }); </script> <% } }catch(Exception e){ %> <script> $(function(){ $("#error").text("No Data"); }); </script> <% } } if(export !="" && export != null){ Vector vt = new Vector(); vt.add("/*** DELETE CONFIG WF_ID "+export+" ***/"); // vt.add("--DELETE FROM CATEGORY WHERE CATEGORY_ID = 8;"); vt.add("DELETE FROM STEP_DEFINITION WHERE WF_ID = "+export+";"); vt.add("DELETE FROM CC_DEFINITION WHERE WF_ID = "+export+";"); vt.add("DELETE FROM STEP_TOOL WHERE WF_ID = "+export+";"); vt.add("DELETE FROM STEP_TOOL_IMPL WHERE WF_ID = "+export+";"); vt.add("DELETE FROM TRANSITION WHERE WF_ID = "+export+";"); vt.add("DELETE FROM WFVAR_DEFINITION WHERE WF_ID = "+export+";"); vt.add("DELETE FROM WORKFLOW_DEFINITION WHERE WF_ID = "+export+";"); vt.add("\n"); vt.add("/*** CATEGORY ***/"); if(dbtype.equals("MSSQL")){ url=url+"/"+db; } con = DriverManager.getConnection(url,user,pass); s=con.createStatement(); String sql="SELECT COMPANYID,CATEGORY_ID,TNAME,ENAME,TDESC,EDESC,ACTIVE,DEL FROM CATEGORY WHERE CATEGORY_ID='"+catid+"'"; rs=s.executeQuery(sql); while(rs.next()){ vt.add("--INSERT INTO CATEGORY (COMPANYID,CATEGORY_ID,TNAME,ENAME,TDESC,EDESC,ACTIVE,DEL) VALUES ('"+rs.getString("COMPANYID")+"','"+rs.getString("CATEGORY_ID")+"','"+rs.getString("TNAME")+"','"+rs.getString("ENAME")+"','"+rs.getString("TDESC")+"','"+rs.getString("EDESC")+"','"+rs.getString("ACTIVE")+"','"+rs.getString("DEL")+"');"); } vt.add("\n"); vt.add("/*** STEP_DEFINITION ***/"); sql="SELECT COMPANYID,WF_ID,WF_VER,STEP_ID,TNAME,ENAME,TDESC,EDESC,STEP_TYPE,RECIPIENT_DEF,TASK_RATE,WEB_PAGE,AUTO_APPROVE,ATTACHED_STATUS,COMPLETION_DURATION,EXTENSION_DURATION,DELAY_DURATION,ONLATE_ACTION,INTIME_ACTION,PRE_CONDITION,POST_CONDITION,TAKEOVER_RIGHT,COMPLETE_CLASS,RETURN_CLASS,ABORT_CLASS,AUTOMATE_CLASS,PREINIT_CLASS,HIST_WEB_PAGE,TAKE_WEB_PAGE,COMMENT_WEB_PAGE,AUTOASSIGNABLE,PASSED_NORECP FROM STEP_DEFINITION WHERE WF_ID='"+export+"'"; rs=s.executeQuery(sql); while(rs.next()){ vt.add("INSERT INTO STEP_DEFINITION (COMPANYID,WF_ID,WF_VER,STEP_ID,TNAME,ENAME,TDESC,EDESC,STEP_TYPE,RECIPIENT_DEF,TASK_RATE,WEB_PAGE,AUTO_APPROVE,ATTACHED_STATUS,COMPLETION_DURATION,EXTENSION_DURATION,DELAY_DURATION,ONLATE_ACTION,INTIME_ACTION,PRE_CONDITION,POST_CONDITION,TAKEOVER_RIGHT,COMPLETE_CLASS,RETURN_CLASS,ABORT_CLASS,AUTOMATE_CLASS,PREINIT_CLASS,HIST_WEB_PAGE,TAKE_WEB_PAGE,COMMENT_WEB_PAGE,AUTOASSIGNABLE,PASSED_NORECP) VALUES ('"+rs.getString("COMPANYID")+"','"+rs.getString("WF_ID")+"','"+rs.getString("WF_VER")+"','"+rs.getString("STEP_ID")+"','"+rs.getString("TNAME")+"','"+rs.getString("ENAME")+"','"+rs.getString("TDESC")+"','"+rs.getString("EDESC")+"','"+rs.getString("STEP_TYPE")+"','"+rs.getString("RECIPIENT_DEF")+"','"+rs.getString("TASK_RATE")+"','"+rs.getString("WEB_PAGE")+"','"+rs.getString("AUTO_APPROVE")+"','"+rs.getString("ATTACHED_STATUS")+"','"+rs.getString("COMPLETION_DURATION")+"','"+rs.getString("EXTENSION_DURATION")+"','"+rs.getString("DELAY_DURATION")+"','"+rs.getString("ONLATE_ACTION")+"','"+rs.getString("INTIME_ACTION")+"','"+rs.getString("PRE_CONDITION")+"','"+rs.getString("POST_CONDITION")+"','"+rs.getString("TAKEOVER_RIGHT")+"','"+rs.getString("COMPLETE_CLASS")+"','"+rs.getString("RETURN_CLASS")+"','"+rs.getString("ABORT_CLASS")+"','"+rs.getString("AUTOMATE_CLASS")+"','"+rs.getString("PREINIT_CLASS")+"','"+rs.getString("HIST_WEB_PAGE")+"','"+rs.getString("TAKE_WEB_PAGE")+"','"+rs.getString("COMMENT_WEB_PAGE")+"','"+rs.getString("AUTOASSIGNABLE")+"','"+rs.getString("PASSED_NORECP")+"');"); } vt.add("\n"); vt.add("/*** CC_DEFINITION ***/"); sql="SELECT COMPANYID,WF_ID,WF_VER,STEP_ID,CC_NAME FROM CC_DEFINITION WHERE WF_ID='"+export+"'"; rs=s.executeQuery(sql); while(rs.next()){ vt.add("INSERT INTO CC_DEFINITION (COMPANYID,WF_ID,WF_VER,STEP_ID,CC_NAME) VALUES ('"+rs.getString("COMPANYID")+"','"+rs.getString("WF_ID")+"','"+rs.getString("WF_VER")+"','"+rs.getString("STEP_ID")+"','"+rs.getString("CC_NAME")+"');"); } vt.add("\n"); vt.add("/*** STEP_TOOL ***/"); vt.add("/*** STEP "+step+" ***/"); sql="SELECT COMPANYID,WF_ID,WF_VER,STEP_TOOL_ID,STEP_ID,APP_ID,TOOL_TYPE,IMPL_TYPE,TDESC,EDESC,REF_IMPL FROM STEP_TOOL WHERE WF_ID='"+export+"' ORDER BY STEP_ID,STEP_TOOL_ID"; rs=s.executeQuery(sql); while(rs.next()){ if(!step.equals(rs.getString("STEP_ID"))){ step=rs.getString("STEP_ID"); vt.add("/*** STEP "+step+" ***/"); } vt.add("INSERT INTO STEP_TOOL (COMPANYID,WF_ID,WF_VER,STEP_TOOL_ID,STEP_ID,APP_ID,TOOL_TYPE,IMPL_TYPE,TDESC,EDESC,REF_IMPL) VALUES ('"+rs.getString("COMPANYID")+"','"+rs.getString("WF_ID")+"','"+rs.getString("WF_VER")+"','"+rs.getString("STEP_TOOL_ID")+"','"+rs.getString("STEP_ID")+"','"+rs.getString("APP_ID")+"','"+rs.getString("TOOL_TYPE")+"','"+rs.getString("IMPL_TYPE")+"','"+rs.getString("TDESC")+"','"+rs.getString("EDESC")+"','"+rs.getString("REF_IMPL")+"');"); } step="1"; vt.add("\n"); vt.add("/*** STEP_TOOL_IMPL ***/"); vt.add("/*** STEP "+step+" ***/"); sql="SELECT COMPANYID,WF_ID,WF_VER,STEP_TOOL_IMPL_ID,STEP_ID,APP_ID,TOOL_TYPE,IMPL_TYPE,PARAM_NAME,PARAM_VALUE FROM STEP_TOOL_IMPL WHERE WF_ID='"+export+"' ORDER BY STEP_ID,IMPL_TYPE,STEP_TOOL_IMPL_ID"; rs=s.executeQuery(sql); while(rs.next()){ if(!step.equals(rs.getString("STEP_ID"))){ step=rs.getString("STEP_ID"); vt.add("/*** STEP "+step+" ***/"); } vt.add("INSERT INTO STEP_TOOL_IMPL (COMPANYID,WF_ID,WF_VER,STEP_TOOL_IMPL_ID,STEP_ID,APP_ID,TOOL_TYPE,IMPL_TYPE,PARAM_NAME,PARAM_VALUE) VALUES('"+rs.getString("COMPANYID")+"','"+rs.getString("WF_ID")+"','"+rs.getString("WF_VER")+"','"+rs.getString("STEP_TOOL_IMPL_ID")+"','"+rs.getString("STEP_ID")+"','"+rs.getString("APP_ID")+"','"+rs.getString("TOOL_TYPE")+"','"+rs.getString("IMPL_TYPE")+"','"+rs.getString("PARAM_NAME")+"','"+rs.getString("PARAM_VALUE")+"');"); } vt.add("\n"); vt.add("/*** TRANSITION ***/"); sql="SELECT COMPANYID,WF_ID,WF_VER,TRANSITION_ID,STEP_ID,NEXT_STEP_ID,CONDITION,TDESC,EDESC,TRAN_TYPE FROM TRANSITION WHERE WF_ID='"+export+"' ORDER BY STEP_ID, NEXT_STEP_ID DESC "; rs=s.executeQuery(sql); while(rs.next()){ vt.add("INSERT INTO TRANSITION (COMPANYID,WF_ID,WF_VER,TRANSITION_ID,STEP_ID,NEXT_STEP_ID,CONDITION,TDESC,EDESC,TRAN_TYPE) VALUES('"+rs.getString("COMPANYID")+"','"+rs.getString("WF_ID")+"','"+rs.getString("WF_VER")+"','"+rs.getString("TRANSITION_ID")+"','"+rs.getString("STEP_ID")+"','"+rs.getString("NEXT_STEP_ID")+"','"+rs.getString("CONDITION")+"','"+rs.getString("TDESC")+"','"+rs.getString("EDESC")+"','"+rs.getString("TRAN_TYPE")+"');"); } vt.add("\n"); vt.add("/*** WFVAR_DEFINITION ***/"); sql="SELECT COMPANYID,WF_ID,WF_VER,VAR_ID,VAR_NAME,VAR_TYPE,TDESC,EDESC,HINT,INIT_VALUE,VALIDATE_CLASS,NULLABLE,ENCRYPT,PROTABLE_XML FROM WFVAR_DEFINITION WHERE WF_ID='"+export+"'"; rs=s.executeQuery(sql); while(rs.next()){ vt.add("INSERT INTO WFVAR_DEFINITION (COMPANYID,WF_ID,WF_VER,VAR_ID,VAR_NAME,VAR_TYPE,TDESC,EDESC,HINT,INIT_VALUE,VALIDATE_CLASS,NULLABLE,ENCRYPT,PROTABLE_XML) VALUES('"+rs.getString("COMPANYID")+"','"+rs.getString("WF_ID")+"','"+rs.getString("WF_VER")+"','"+rs.getString("VAR_ID")+"','"+rs.getString("VAR_NAME")+"','"+rs.getString("VAR_TYPE")+"','"+rs.getString("TDESC")+"','"+rs.getString("EDESC")+"','"+rs.getString("HINT")+"','"+rs.getString("INIT_VALUE")+"','"+rs.getString("VALIDATE_CLASS")+"','"+rs.getString("NULLABLE")+"','"+rs.getString("ENCRYPT")+"','"+rs.getString("PROTABLE_XML")+"');"); } vt.add("\n"); vt.add("/*** WORKFLOW_DEFINITION ***/"); sql="SELECT COMPANYID,WF_ID,WF_VER,CATEGORY_ID,TNAME,ENAME,TDESC,EDESC,LAST_SEQ,WF_SHORT_CODE,WF_OBJECTIVE,WF_RULE,INITIATOR_DEF,PRIORITY,AUTOASSIGNABLE,SCHEDULE,COMPLETION_DURATION,EXTENSION_DURATION,START_INITIATE_TIME,END_INITIATE_TIME,START_TIME,END_TIME,INITIATE_CLASS,COMPLETE_CLASS,ABORT_CLASS,SCHEDULE_CLASS,PUBLICATION_STATUS,XPDL_PATH,IMAGE_PATH,TRANSFER_FILE,MODIFYDATE,CREATED,ACTIVE,DEL FROM WORKFLOW_DEFINITION WHERE WF_ID='"+export+"'"; rs=s.executeQuery(sql); while(rs.next()){ vt.add("INSERT INTO WORKFLOW_DEFINITION (COMPANYID,WF_ID,WF_VER,CATEGORY_ID,TNAME,ENAME,TDESC,EDESC,LAST_SEQ,WF_SHORT_CODE,WF_OBJECTIVE,WF_RULE,INITIATOR_DEF,PRIORITY,AUTOASSIGNABLE,SCHEDULE,COMPLETION_DURATION,EXTENSION_DURATION,START_INITIATE_TIME,END_INITIATE_TIME,START_TIME,END_TIME,INITIATE_CLASS,COMPLETE_CLASS,ABORT_CLASS,SCHEDULE_CLASS,PUBLICATION_STATUS,XPDL_PATH,IMAGE_PATH,TRANSFER_FILE,MODIFYDATE,CREATED,ACTIVE,DEL) VALUES('"+rs.getString("COMPANYID")+"','"+rs.getString("WF_ID")+"','"+rs.getString("WF_VER")+"','"+rs.getString("CATEGORY_ID")+"','"+rs.getString("TNAME")+"','"+rs.getString("ENAME")+"','"+rs.getString("TDESC")+"','"+rs.getString("EDESC")+"','0','"+rs.getString("WF_SHORT_CODE")+"','"+rs.getString("WF_OBJECTIVE")+"','"+rs.getString("WF_RULE")+"','"+rs.getString("INITIATOR_DEF")+"','"+rs.getString("PRIORITY")+"','"+rs.getString("AUTOASSIGNABLE")+"','"+rs.getString("SCHEDULE")+"','"+rs.getString("COMPLETION_DURATION")+"','"+rs.getString("EXTENSION_DURATION")+"','"+rs.getString("START_INITIATE_TIME")+"','"+rs.getString("END_INITIATE_TIME")+"','"+rs.getString("START_TIME")+"','"+rs.getString("END_TIME")+"','"+rs.getString("INITIATE_CLASS")+"','"+rs.getString("COMPLETE_CLASS")+"','"+rs.getString("ABORT_CLASS")+"','"+rs.getString("SCHEDULE_CLASS")+"','"+rs.getString("PUBLICATION_STATUS")+"','"+rs.getString("XPDL_PATH")+"','"+rs.getString("IMAGE_PATH")+"','"+rs.getString("TRANSFER_FILE")+"','"+rs.getString("MODIFYDATE")+"','"+rs.getString("CREATED")+"','"+rs.getString("ACTIVE")+"','"+rs.getString("DEL")+"');"); } con.close(); rs.close(); s.close(); //File file=null; String path=application.getRealPath("/").replace('\\', '/')+"Genrouting/"+"GEN/"; File filefolder = new File(path); if(!filefolder.exists()){ filefolder.mkdirs(); } String fullpath="GEN/WF_"+export+".txt"; File file = new File(path+"WF_"+export+".txt"); if (!file.exists()) { file.createNewFile(); } /* FileWriter fw = new FileWriter(file.getAbsoluteFile()); BufferedWriter bw = new BufferedWriter(fw); */ BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path+"WF_"+export+".txt"), "UTF-8")); Iterator it = vt.iterator(); while(it.hasNext()){ bw.write(it.next().toString()); bw.newLine(); } bw.close(); %> <script> $(function(){ $.loadfile('<%=fullpath%>'); }); </script> <% } %> </p> <form id="f1" action="index.jsp"> <input name="cmd" type="hidden" id="cmd" value="<%=chk.chkNullString(request.getParameter("cmd"),"")%>"> <input name="db" type="hidden" id="db" value="<%=chk.chkNullString(request.getParameter("db"),"")%>"> <input name="export" type="hidden" id="export" value="<%=chk.chkNullString(request.getParameter("export"),"")%>"> <input name="catid" type="hidden" id="catid" value="<%=chk.chkNullString(request.getParameter("catid"),"")%>"> <table width="80%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td colspan="2" bgcolor="#666666" class="bd1"> <span class="style1">Gen Rounting </span></td> </tr> <tr> <td width="200" valign="top" class="bd1"><table width="200" border="0" cellspacing="0" cellpadding="0" id="login"> <tr> <td>Host[IP/Server name]: </td> <td><input name="ip" type="text" id="ip" value="<%=chk.chkNullString(request.getParameter("ip"),"")%>" size="15"></td> </tr> <tr> <td rowspan="2">DB Type </td> <td> <div><input type="radio" id="dbtype" name="dbtype" value="MSSQL" <%=dbtype.equals("MSSQL")?"checked":""%> >MSSQL</div> </td> </tr> <tr> <td nowrap> <div><input type="radio" id="dbtype" name="dbtype" value="PGSQL" <%=dbtype.equals("PGSQL")?"checked":""%>>PGSQL <input type="text" name="dbname" value="<%=dbname%>" size="10"></div> </td> </tr> <tr> <td>username: </td> <td><input name="user" type="text" id="user" value="<%=chk.chkNullString(request.getParameter("user"),"myhradmin")%>" size="15"></td> </tr> <tr> <td>password: </td> <td><input name="pass" type="password" id="pass" value="<%=chk.chkNullString(request.getParameter("pass"),"systemadmin")%>" size="15"></td> </tr> <tr> <td align="center"><input type="submit" id="Submit" name="Submit" value="Connect"></td> </tr> <tr> <td align="center"> </td> </tr> </table> <table width="200" border="0" cellspacing="0" cellpadding="0" id="database"> <tr> <td bgcolor="#666666" class="style1">DataBase</td> </tr> </table> </td> <td width="700" valign="top" bgcolor="#CCCCCC" > <table width="700" align="center" border="1" id="workdef"> <tr> <td width="10%">WF_ID</td> <td width="10%">CATID</td> <td width="35%">TNAME</td> <td width="35%">TRANSFER_FILE</td> <td width="10%">EXPORT</td> </tr> </table> <div id="error" align="center"></div> </td> </tr> </table> <p> </p> </form> </body> </html>