core-jgi/extend/src/test/functional/XMLImportStructureTest.java

3032 lines
121 KiB
Java

//XMLImportStructureTest.java
package test.functional;
import java.io.*;
import java.util.*;
import java.util.Properties;
import java.util.logging.Level;
import junit.framework.TestCase;
import org.compiere.model.*;
import org.compiere.util.DB;
import org.compiere.util.Ini;
import org.adempiere.pipo.*;
import org.compiere.util.*;
import javax.xml.parsers.*;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.sax.TransformerHandler;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;
import org.xml.sax.Attributes;
import org.xml.sax.helpers.DefaultHandler;
import java.sql.*;
import org.compiere.Adempiere;
import org.compiere.wf.*;
import java.math.BigDecimal;
public class XMLImportStructureTest extends TestCase {
// Test: General
private Properties testProperties = null;
private Properties m_Ctx = null;
private String fileName_DefaultValue = "J:/Trifon-CD-0.3/workspace/adempiere-trunk/adempiere/Adempiere/Adempiere.properties";
private String fileName_Key = "AdempiereProperties";
private String fileName_Value = "";
private String isClient_DefaultValue = "Y";
private String isClient_Key = "isClient";
private boolean isClient_Value = true;
private String AD_User_ID_DefaultValue = "0";
private String AD_User_ID_Key = "AD_User_ID";
private int AD_User_ID_Value = 0;
private String AD_Client_ID_DefaultValue = "11";
private String AD_Client_ID_Key = "AD_Client_ID";
private int AD_Client_ID_Value = 11;
// Test: Specific variables
private MLocation location = null;
@Override
protected void setUp() throws Exception {
super.setUp();
testProperties = new Properties();
testProperties.load(new FileInputStream("test.properties"));
fileName_Value = testProperties.getProperty(fileName_Key, fileName_DefaultValue);
isClient_Value = "Y".equals( testProperties.getProperty(isClient_Key, isClient_DefaultValue) );
AD_User_ID_Value = Integer.parseInt(testProperties.getProperty(AD_User_ID_Key, AD_User_ID_DefaultValue) );
AD_Client_ID_Value = Integer.parseInt(testProperties.getProperty(AD_Client_ID_Key, AD_Client_ID_DefaultValue) );
m_Ctx = new Properties();
m_Ctx.setProperty("#AD_User_ID", new Integer(AD_User_ID_Value).toString());
m_Ctx.setProperty("#AD_Client_ID", new Integer(AD_Client_ID_Value).toString());
System.out.println("m_Ctx: " + m_Ctx);
if (fileName_Value.length() < 1) {
assertEquals("Please specify path to Adempiere.properties file!", true, false);
}
System.setProperty("PropertyFile", fileName_Value);
Ini.setClient (isClient_Value);
org.compiere.Adempiere.startup(isClient_Value);
// Force connection if there are enough parameters. Else we work with Adempiere.properties
// if (args.length >= 6) {
// CConnection cc = CConnection.get(Database.DB_ORACLE, args[1], Integer.valueOf(args[2]).intValue(), args[3], args[4], args[5]);
// System.out.println("DB UserID:"+cc.getDbUid());
// DB.setDBTarget(cc);
// }
CLogMgt.setLevel(Level.FINEST);
/* Available levels:
Level.OFF, Level.SEVERE, Level.WARNING, Level.INFO,
Level.CONFIG, Level.FINE, Level.FINER, Level.FINEST, Level.ALL
*/
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
testProperties = null;
m_Ctx = null;
}
public class TestPackInHandler extends DefaultHandler {
OutputStream fw_document = null;
private TransformerHandler hd_documemt = null;
private AttributesImpl attsOut = null;
private StreamResult streamResult_document = null;
private SAXTransformerFactory tf_document = null;
private Transformer serializer_document = null;
private int Start_Doc = 0;
private String Object_Status = null;
private String logDate = null;
private String PK_Status = "Installing";
String fileDate = null;
int indentLevel = 0;
private String m_trxName = null;
private Properties m_ctx = null;
StringBuffer sqlB = null;
int AD_Package_Imp_ID=0;
int AD_Package_Imp_Inst_ID=0;
int AD_Backup_ID =0;
private int m_AD_Client_ID = 0;
Map<String, List<Map<String, String>>> elementAttsMap = new HashMap<String, List<Map<String,String>>>();
public Map<String, List<Map<String, String>>> getElementAttsMap() {
return elementAttsMap;
}
public void startElement (String uri, String localName, String qName, Attributes atts)
throws org.xml.sax.SAXException {
/*System.out.println("In startElement");
System.out.println("uri: " + uri);
System.out.println("localName: " + localName);
System.out.println("qName: " + qName); */
indentLevel++;
//System.out.println("indentLevel: " + indentLevel);
if (atts != null) {
Map<String, String> attsMap = new HashMap<String, String>();
for (int i = 0; i < atts.getLength(); i++) {
attsMap.put(atts.getQName(i), atts.getValue(i));
/*System.out.println( "atts begin ----------");
System.out.println( atts.getLocalName(i));
System.out.println( atts.getQName(i));
System.out.println( atts.getValue(i));
System.out.println( "atts end ----------"); */
}
attsMap.put("indentLevel", "" + indentLevel);
List<Map<String, String>> m_attsMapList = elementAttsMap.get(qName);
if (m_attsMapList == null)
elementAttsMap.put(qName, m_attsMapList=new ArrayList<Map<String, String>>());
//System.out.println("adding atts.getLength: " + atts.getLength());
//System.out.println("atts.getClass().getName(): " + atts.getClass().getName());
m_attsMapList.add(attsMap);
}
}
public void endElement (String uri, String localName, String qName) throws SAXException {
//System.out.println("endElement qName: " + qName);
indentLevel--;
//System.out.println("indentLevel: " + indentLevel);
if(qName.equals("adempiereAD")) {
processImportStructure();
}
}
/* The XML elements that need to be processed are as follows:
table
referencelist
printformatitem
form
message
workflowNode
column
printformat
menuset
workflowNodeNext
referencetable
processpara
dynvalrule
process
preference
tab
field
workflow
menu
window
reference
Dependency Analysis:
windows don't depend on anything
dynamic validation rules don't depend on anything
referencelist don't depend on anything
forms don't depend on anything
messages don't depend on anything
references don't depend on anything
tables depend on validation rules, windows
columns depend on processes, references, tables, dynamic validation rules
Fields depend on tables, windows
printformats depend on tables, other printformats
printformatitems depend on printformats, tables
workflows depend on tables
processes depend on workflows, printformats, reportviews
workflowNodes depend on workflows, windows, processes, forms
menus depend on windows, processes, forms, workflows, other menus
workflowNodeNexts depend on workflows, workflowNodes
referencetables depend on tables, columns
processparas depend on processes, references, dynamic validation rules
preferences depend on windows
tabs depend on columns, processes, tables, windows
*/
public void handleWindowsImport() {
System.out.println("In handleWindowsImport");
if(elementAttsMap.containsKey("window")) {
List<Map<String, String>> m_windowsAttsMapList = elementAttsMap.get("window");
System.out.println("processing " + m_windowsAttsMapList.size() + " windows");
while(m_windowsAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_windowsAttsMapList.get(0);
System.out.println("window name: " + attsMap.get("ADWindowNameID"));
importWindow(attsMap);
attsMap.clear();
m_windowsAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("window");
}
}
public void handleDynValRulesImport() {
System.out.println("In handleDynValRulesImport");
if(elementAttsMap.containsKey("dynvalrule")) {
List<Map<String, String>> m_dynvalrulesAttsMapList = elementAttsMap.get("dynvalrule");
System.out.println("processing " + m_dynvalrulesAttsMapList.size() + " dynamic validation rules");
while(m_dynvalrulesAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_dynvalrulesAttsMapList.get(0);
System.out.println("dynamic validation rule name: " + attsMap.get("Name"));
importDynValRule(attsMap);
attsMap.clear();
m_dynvalrulesAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("dynvalrule");
}
}
public void handleReferenceListsImport() {
System.out.println("In handleReferenceListsImport");
if(elementAttsMap.containsKey("referencelist")) {
List<Map<String, String>> m_referenceListsAttsMapList = elementAttsMap.get("referencelist");
System.out.println("processing " + m_referenceListsAttsMapList.size() + " referencelists");
while(m_referenceListsAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_referenceListsAttsMapList.get(0);
System.out.println("referenceList name: " + attsMap.get("Name"));
importReferenceList(attsMap);
attsMap.clear();
m_referenceListsAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("referencelist");
}
}
public void handleFormsImport() {
System.out.println("In handleFormsImport");
if(elementAttsMap.containsKey("form")) {
List<Map<String, String>> m_formsAttsMapList = elementAttsMap.get("form");
System.out.println("processing " + m_formsAttsMapList.size() + " forms");
while(m_formsAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_formsAttsMapList.get(0);
System.out.println("form name: " + attsMap.get("ADFormNameID"));
attsMap.clear();
m_formsAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("form");
}
}
public void handleMessagesImport() {
System.out.println("In handleMessagesImport");
if(elementAttsMap.containsKey("message")) {
List<Map<String, String>> m_messagesAttsMapList = elementAttsMap.get("message");
System.out.println("processing " + m_messagesAttsMapList.size() + " messages");
while(m_messagesAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_messagesAttsMapList.get(0);
System.out.println("message value: " + attsMap.get("Value"));
importMessage(attsMap);
attsMap.clear();
m_messagesAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("message");
}
}
public void handleReferencesImport() {
System.out.println("In handleReferencesImport");
if(elementAttsMap.containsKey("reference")) {
List<Map<String, String>> m_referencesAttsMapList = elementAttsMap.get("reference");
System.out.println("processing " + m_referencesAttsMapList.size() + " references");
while(m_referencesAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_referencesAttsMapList.get(0);
System.out.println("reference name: " + attsMap.get("Name"));
importReference(attsMap);
attsMap.clear();
m_referencesAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("reference");
}
}
public void handleTablesImport() {
System.out.println("In handleTablesImport");
if(elementAttsMap.containsKey("table")) {
List<Map<String, String>> m_tablesAttsMapList = elementAttsMap.get("table");
System.out.println("processing " + m_tablesAttsMapList.size() + " tables");
while(m_tablesAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_tablesAttsMapList.get(0);
System.out.println("table name: " + attsMap.get("Name"));
importTable(attsMap);
attsMap.clear();
m_tablesAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("table");
}
}
public void handleColumnsImport() {
System.out.println("In handleColumnsImport");
if(elementAttsMap.containsKey("column")) {
List<Map<String, String>> m_columnsAttsMapList = elementAttsMap.get("column");
System.out.println("processing " + m_columnsAttsMapList.size() + " columns");
while(m_columnsAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_columnsAttsMapList.get(0);
System.out.println("column name: " + attsMap.get("ADColumnNameID"));
importColumn(attsMap);
attsMap.clear();
m_columnsAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("column");
}
}
public void handleFieldsImport() {
System.out.println("In handleFieldsImport");
if(elementAttsMap.containsKey("field")) {
List<Map<String, String>> m_fieldsAttsMapList = elementAttsMap.get("field");
System.out.println("processing " + m_fieldsAttsMapList.size() + " fields");
while(m_fieldsAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_fieldsAttsMapList.get(0);
System.out.println("field name: " + attsMap.get("ADFieldNameID"));
importField(attsMap);
attsMap.clear();
m_fieldsAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("field");
}
}
public void handlePrintFormatsImport() {
System.out.println("In handlePrintFormatsImport");
if(elementAttsMap.containsKey("printformat")) {
List<Map<String, String>> m_printformatsAttsMapList = elementAttsMap.get("printformat");
System.out.println("processing " + m_printformatsAttsMapList.size() + " printformats");
while(m_printformatsAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_printformatsAttsMapList.get(0);
System.out.println("printformat name: " + attsMap.get("Name"));
importPrintFormat(attsMap);
attsMap.clear();
m_printformatsAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("printformat");
}
}
public void handlePrintFormatItemsImport() {
System.out.println("In handlePrintFormatItemsImport");
if(elementAttsMap.containsKey("printformatitem")) {
List<Map<String, String>> m_printformatitemsAttsMapList = elementAttsMap.get("printformatitem");
System.out.println("processing " + m_printformatitemsAttsMapList.size() + " printformats");
while(m_printformatitemsAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_printformatitemsAttsMapList.get(0);
System.out.println("printformatitem name: " + attsMap.get("Name"));
importPrintFormatItem(attsMap);
attsMap.clear();
m_printformatitemsAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("printformatitem");
}
}
public void handleWorkflowsImport() {
System.out.println("In handleWorkflowsImport");
if(elementAttsMap.containsKey("workflow")) {
List<Map<String, String>> m_workflowsAttsMapList = elementAttsMap.get("workflow");
System.out.println("processing " + m_workflowsAttsMapList.size() + " workflows");
while(m_workflowsAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_workflowsAttsMapList.get(0);
System.out.println("worklfow name: " + attsMap.get("Name"));
importWorkflow(attsMap);
attsMap.clear();
m_workflowsAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("workflow");
}
}
public void handleProcessesImport() {
System.out.println("In handleProcessesImport");
if(elementAttsMap.containsKey("process")) {
List<Map<String, String>> m_processesAttsMapList = elementAttsMap.get("process");
System.out.println("processing " + m_processesAttsMapList.size() + " processes");
while(m_processesAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_processesAttsMapList.get(0);
System.out.println("process name: " + attsMap.get("Name"));
importProcess(attsMap);
attsMap.clear();
m_processesAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("process");
}
}
public void handleWorkflowNodesImport() {
System.out.println("In handleWorkflowNodesImport");
if(elementAttsMap.containsKey("workflowNode")) {
List<Map<String, String>> m_workflowNodesAttsMapList = elementAttsMap.get("workflowNode");
System.out.println("processing " + m_workflowNodesAttsMapList.size() + " workflowNodes");
while(m_workflowNodesAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_workflowNodesAttsMapList.get(0);
System.out.println("worklfowNode name: " + attsMap.get("Name"));
importWorkflowNode(attsMap);
attsMap.clear();
m_workflowNodesAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("workflowNode");
}
}
public void importForm(Map<String, String> attsMap) {
MForm m_Form = null;
String entitytype = attsMap.get("EntityType");
if (entitytype.compareTo("U") == 0 || entitytype.compareTo("D") == 0 ) {
String name = attsMap.get("ADFormNameID");
int id = get_ID("AD_Form", name);
m_Form = new MForm(m_ctx, id, m_trxName);
if (id > 0){
AD_Backup_ID = copyRecord("AD_Form",m_Form);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
m_Form.setClassname (attsMap.get("Classname"));
m_Form.setIsBetaFunctionality (Boolean.valueOf(attsMap.get("isBetaFunctionality")).booleanValue());
m_Form.setAccessLevel(attsMap.get("AccessLevel"));
m_Form.setDescription(attsMap.get("Description").replaceAll("'","''").replaceAll(",",""));
m_Form.setEntityType(attsMap.get("EntityType"));
m_Form.setHelp(attsMap.get("Help").replaceAll(",",""));
m_Form.setIsActive(attsMap.get("isActive") != null ? Boolean.valueOf(attsMap.get("isActive")).booleanValue():true);
m_Form.setName(attsMap.get("Name"));
try {
if (m_Form.save(m_trxName) == true) {
System.out.println("m_Form.save succeeded");
record_log (1, m_Form.getName(),"Form", m_Form.get_ID(),AD_Backup_ID, Object_Status,"AD_Form",get_IDWithColumn("AD_Table", "TableName", "AD_Form"));
}
else{
System.out.println("m_Form.save failed");
record_log (0, m_Form.getName(),"Form", m_Form.get_ID(),AD_Backup_ID, Object_Status,"AD_Form",get_IDWithColumn("AD_Table", "TableName", "AD_Form"));
}
} catch(SAXException e) {
System.out.println("Exception in importForm: " + e.getMessage());
}
}
}
public void importColumn(Map<String, String> attsMap) {
MColumn m_Column = null;
int success=0;
String entitytype = attsMap.get("EntityType");
if (entitytype.compareTo("U") == 0 || entitytype.compareTo("D") == 0 ) {
String columnName = attsMap.get("ColumnName");
int tableid = get_IDWithColumn("AD_Table", "TableName", attsMap.get("ADTableNameID"));
int id =get_IDWithMasterAndColumn ("AD_Column", "ColumnName", columnName, "AD_Table", tableid);
m_Column = new MColumn(m_ctx, id, m_trxName);
if (id > 0){
AD_Backup_ID = copyRecord("AD_Column",m_Column);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
m_Column.setColumnName(columnName);
String Name = attsMap.get("ADProcessNameID");
id = get_IDWithColumn("AD_Process", "Name", Name);
m_Column.setAD_Process_ID(id);
Name = attsMap.get("ADReferenceNameID");
// log.info("Column Name1 ->"+Name);
// log.info("Database Name ->"+m_DatabaseType);
/**
//Adjust for difference between Oracle and PostgreSql DataTypes
if (m_DatabaseType.equals("Oracle")){
if (Name.equals("TIMESTAMP"))
Name = "Date";
else if (Name.equals("TIMESTAMP+Time"))
Name = "Date+Time";
else if (Name.equals("NUMERIC"))
Name = "Number";}
else if (m_DatabaseType.equals("Sybase")){
if (Name.equals("TIMESTAMP"))
Name = "Date";
else if (Name.equals("TIMESTAMP+Time"))
Name = "Date+Time";
else if (Name.equals("NUMERIC"))
Name = "Number";}
else if (m_DatabaseType.equals("PostgreSQL")){
if (Name.equals("Date"))
Name = "TIMESTAMP";
else if (Name.equals("Date+Time"))
Name = "TIMESTAMP+Time";
else if (Name.equals("Number"))
Name = "NUMERIC";}
**/
// log.info("Column Name2 ->"+Name);
id = get_IDWithColumn("AD_Reference", "Name", Name);
m_Column.setAD_Reference_ID(id);
// log.info("Column ID ->"+id);
Name = attsMap.get("ADTableNameID");
id = get_IDWithColumn("AD_Table", "TableName", Name);
m_Column.setAD_Table_ID(id);
Name = attsMap.get("ADValRuleNameID");
id = get_IDWithColumn("AD_Val_Rule", "Name", Name);
m_Column.setAD_Val_Rule_ID(id);
Name = attsMap.get("ADReferenceNameValueID");
id = get_IDWithColumn("AD_Reference", "Name", Name);
m_Column.setAD_Reference_Value_ID(id);
m_Column.setCallout(attsMap.get("Callout"));
m_Column.setColumnSQL(attsMap.get("ColumnSQL"));
m_Column.setColumnName(attsMap.get("ColumnName"));
m_Column.setDefaultValue(attsMap.get("DefaultValue"));
m_Column.setDescription(attsMap.get("Description").replaceAll("'","''").replaceAll(",",""));
m_Column.setEntityType(attsMap.get("EntityType"));
if (Integer.parseInt(attsMap.get("FieldLength")) >0)
m_Column.setFieldLength (Integer.parseInt(attsMap.get("FieldLength")));
m_Column.setHelp(attsMap.get("Help").replaceAll("'","''").replaceAll(",",""));
m_Column.setIsActive(attsMap.get("isActive") != null ? Boolean.valueOf(attsMap.get("isActive")).booleanValue():true);
m_Column.setIsAlwaysUpdateable((Boolean.valueOf(attsMap.get("isAlwaysUpdateable")).booleanValue()));
//m_Column.setIsEncrypted(atts.getValue("isEncrypted"));
m_Column.setIsIdentifier((Boolean.valueOf(attsMap.get("isIdentifier")).booleanValue()));
m_Column.setIsKey((Boolean.valueOf(attsMap.get("isKey")).booleanValue()));
m_Column.setIsMandatory((Boolean.valueOf(attsMap.get("isMandatory")).booleanValue()));
m_Column.setIsParent((Boolean.valueOf(attsMap.get("isParent")).booleanValue()));
m_Column.setIsSelectionColumn((Boolean.valueOf(attsMap.get("isSelectionColumn")).booleanValue()));
m_Column.setIsSyncDatabase (attsMap.get("getIsSyncDatabase"));
m_Column.setIsTranslated((Boolean.valueOf(attsMap.get("isTranslated")).booleanValue()));
m_Column.setIsUpdateable((Boolean.valueOf(attsMap.get("isUpdateable")).booleanValue()));
m_Column.setName(attsMap.get("Name"));
m_Column.setReadOnlyLogic(attsMap.get("ReadOnlyLogic"));
if (Integer.parseInt(attsMap.get("SeqNo")) >0)
m_Column.setSeqNo(Integer.parseInt(attsMap.get("SeqNo")));
m_Column.setVFormat(attsMap.get("VFormat"));
if (attsMap.get("ValueMax") != null)
m_Column.setValueMax(attsMap.get("ValueMax"));
if (attsMap.get("ValueMin") != null)
m_Column.setValueMin(attsMap.get("ValueMin"));
if (attsMap.get("Version") != null)
m_Column.setVersion(new BigDecimal(attsMap.get("Version")));
// Setup Element.
id = get_IDWithColumn("AD_Element", "ColumnName", m_Column.getColumnName());
X_AD_Element element = new X_AD_Element(m_ctx, id, m_trxName);
String Object_Status_col = Object_Status;
if (element.getAD_Element_ID() == 0) {
//Object_Status = "New";
element.setColumnName(m_Column.getColumnName());
element.setEntityType(m_Column.getEntityType());
element.setPrintName(m_Column.getColumnName());
element.setName(m_Column.getColumnName());
try {
if (element.save(m_trxName) == true){
System.out.println("element.savesucceded");
record_log (1, m_Column.getName(),"Element", element.getAD_Element_ID(),AD_Backup_ID, "New","AD_Element",get_IDWithColumn("AD_Table", "TableName", "AD_Element"));
} else {
System.out.println("element.savefailed");
record_log (0, m_Column.getName(),"Element", element.getAD_Element_ID(),AD_Backup_ID, "New","AD_Element",get_IDWithColumn("AD_Table", "TableName", "AD_Element"));
}
} catch (Exception e) {
System.out.println("import Column element.save exception: " + e.getMessage());
}
}
Object_Status = Object_Status_col;
m_Column.setAD_Element_ID(element.getAD_Element_ID());
boolean recreateColumn =
(
m_Column.is_new()
|| m_Column.is_ValueChanged("AD_Reference_ID")
|| m_Column.is_ValueChanged("FieldLength")
|| m_Column.is_ValueChanged("ColumnName")
|| m_Column.is_ValueChanged("IsMandatory")
);
// changed default ??
// m_Column.is_ValueChanged("DefaultValue") doesn't work well with nulls
if (! recreateColumn) {
String oldDefault = (String) m_Column.get_ValueOld("DefaultValue");
String newDefault = (String) m_Column.get_Value("DefaultValue");
if (oldDefault != null && oldDefault.length() == 0)
oldDefault = null;
if (newDefault != null && newDefault.length() == 0)
newDefault = null;
if ((oldDefault == null && newDefault != null) ||
(oldDefault != null && newDefault == null)) {
recreateColumn = true;
} else if (oldDefault != null && newDefault != null) {
if (! oldDefault.equals(newDefault))
recreateColumn = true;
}
}
// Don't create database column for virtual columns
// Don't create columns by default, just if getIsSyncDatabase='Y'
if (recreateColumn) {
String sync = attsMap.get("getIsSyncDatabase");
if (m_Column.isVirtualColumn() || sync == null || (!sync.equals("Y")))
recreateColumn = false;
}
try {
if (m_Column.save(m_trxName) == true){
System.out.println("m_Column.save succeeded");
record_log (1, m_Column.getName(),"Column", m_Column.get_ID(),AD_Backup_ID, Object_Status,"AD_Column",get_IDWithColumn("AD_Table", "TableName", "AD_Column"));
} else {
System.out.println("m_Column.save failed");
record_log (0, m_Column.getName(),"Column", m_Column.get_ID(),AD_Backup_ID, Object_Status,"AD_Column",get_IDWithColumn("AD_Table", "TableName", "AD_Column"));
}
} catch(Exception e) {
System.out.println("Exception in importColumn with m_Column.save: " + e.getMessage());
}
if (recreateColumn) {
success = createcolumn (m_Column);
try {
if (success == 1){
record_log (1, m_Column.getColumnName(),"dbColumn", m_Column.get_ID(),0, Object_Status,attsMap.get("ADTableNameID").toUpperCase(),get_IDWithColumn("AD_Table", "TableName", attsMap.get("ADTableNameID").toUpperCase()));
} else {
record_log (0, m_Column.getColumnName(),"dbColumn", m_Column.get_ID(),0, Object_Status,attsMap.get("ADTableNameID").toUpperCase(),get_IDWithColumn("AD_Table", "TableName", attsMap.get("ADTableNameID").toUpperCase()));
}
} catch(Exception e) {
System.out.println("Exception in importColumn: " + e.getMessage());
}
}
}
}
public void importTable(Map<String, String> attsMap) {
MTable m_Table = null;
String entitytype = attsMap.get("EntityType");
if (entitytype.equals("U") || entitytype.equals("D")) {
String tableName = attsMap.get("ADTableNameID");
int id = get_IDWithColumn("AD_Table", "TableName", tableName);
m_Table = new MTable(m_ctx, id, m_trxName);
if (id > 0){
AD_Backup_ID = copyRecord("AD_Table",m_Table);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
m_Table.setTableName(tableName);
String Name = attsMap.get("ADWindowNameID");
id = get_IDWithColumn("AD_Window", "Name", Name);
m_Table.setAD_Window_ID(id);
Name = attsMap.get("POWindowNameID");
if (Name != null){
id = get_IDWithColumn("AD_Window", "Name", Name);
m_Table.setPO_Window_ID(id);
}
else
Name = attsMap.get("ADValRuleNameID");
id = get_IDWithColumn("AD_Val_Rule", "Name", Name);
m_Table.setAD_Val_Rule_ID(id);
m_Table.setAccessLevel (attsMap.get("AccessLevel"));
m_Table.setDescription(attsMap.get("Description").replaceAll("'","''").replaceAll(",",""));
m_Table.setEntityType(attsMap.get("EntityType"));
m_Table.setHelp(attsMap.get("Help").replaceAll("'","''").replaceAll(",",""));
m_Table.setIsActive(attsMap.get("isActive") != null ? Boolean.valueOf(attsMap.get("isActive")).booleanValue():true);
m_Table.setImportTable(attsMap.get("ImportTable"));
m_Table.setIsChangeLog(Boolean.valueOf(attsMap.get("isChangeLog")).booleanValue());
m_Table.setIsDeleteable(Boolean.valueOf(attsMap.get("isDeleteable")).booleanValue());
m_Table.setIsHighVolume(Boolean.valueOf(attsMap.get("isHighVolume")).booleanValue());
m_Table.setIsSecurityEnabled(Boolean.valueOf(attsMap.get("isSecurityEnabled")).booleanValue());
m_Table.setIsView(Boolean.valueOf(attsMap.get("isView")).booleanValue());
//m_Table.setLoadSeq(Integer.parseInt(atts.getValue("LoadSeq")));
m_Table.setName(attsMap.get("Name"));
m_Table.setReplicationType(attsMap.get("ReplicationType"));
m_Table.setTableName(attsMap.get("TableName"));
// log.info("in3");
attsOut.clear();
try {
if (m_Table.save(m_trxName) == true){
System.out.println("m_Table.save succeeded");
record_log (1, m_Table.getName(),"Table", m_Table.get_ID(),AD_Backup_ID, Object_Status,"AD_Table",get_IDWithColumn("AD_Table", "TableName", "AD_Table"));
}
else{
System.out.println("m_Table.save failed");
record_log (0, m_Table.getName(),"Table", m_Table.get_ID(),AD_Backup_ID, Object_Status,"AD_Table",get_IDWithColumn("AD_Table", "TableName", "AD_Table"));
}
} catch(SAXException e) {
System.out.println("Exception in importTable: " + e.getMessage());
}
}
}
public void importField(Map<String, String> attsMap) {
MField m_Field = null;
String entitytype = attsMap.get("EntityType");
if (entitytype.compareTo("U") == 0 || entitytype.compareTo("D") == 0 ) {
String name = attsMap.get("Name");
String tabname = attsMap.get("ADTabNameID");
String colname = attsMap.get("ADColumnNameID");
// log.info("Column Name ->"+colname);
// log.info("Database Name ->"+m_DatabaseType);
/**
//Adjust for difference between Oracle and PostgreSql DataTypes
if (m_DatabaseType.equals("Oracle")){
if (colname.equals("TIMESTAMP"))
colname = "Date";
else if (colname.equals("TIMESTAMP+Time"))
colname = "Date+Time";
else if (colname.equals("NUMERIC"))
colname = "Number";}
else if (m_DatabaseType.equals("Sybase")){
if (colname.equals("TIMESTAMP"))
colname = "Date";
else if (colname.equals("TIMESTAMP+Time"))
colname = "Date+Time";
else if (colname.equals("NUMERIC"))
colname = "Number";}
else if (m_DatabaseType.equals("PostgreSQL")){
log.info("Before Column Name ->"+colname);
if (colname.equals("Date"))
colname = "TIMESTAMP";
else if (colname.equals("Date+Time"))
colname = "TIMESTAMP+Time";
else if (colname.equals("Number"))
colname = "NUMERIC";
System.out.println("After Column Name ->"+colname); }
**/
int tableid = get_IDWithColumn("AD_Table", "TableName", attsMap.get("ADTableNameID"));
int windowid = get_ID("AD_Window", attsMap.get("ADWindowNameID"));
//log.info("Column Name ->"+colname);
int columnid = get_IDWithMasterAndColumn ("AD_Column","ColumnName", colname, "AD_Table", tableid);
//log.info("ColumnID->"+columnid);
sqlB = new StringBuffer ("select AD_Tab_ID from AD_Tab where AD_Window_ID = " + windowid
+ " and Name = '"+tabname +"'"
+ " and AD_Table_ID = ?");
int tabid = DB.getSQLValue(m_trxName, sqlB.toString (), tableid);
if (tabid > 0 )
{
sqlB = new StringBuffer ("select AD_Field_ID from AD_Field where AD_Column_ID = "+columnid
+ " and AD_Tab_ID = ?");
int id = DB.getSQLValue(m_trxName, sqlB.toString (), tabid);
m_Field = new MField(m_ctx, id, m_trxName);
if (id > 0){
AD_Backup_ID = copyRecord("AD_Field",m_Field);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
m_Field.setName(attsMap.get("Name"));
m_Field.setAD_Column_ID(columnid);
name = attsMap.get("ADFieldGroupNameID");
id = get_IDWithColumn("AD_FieldGroup", "Name", name);
m_Field.setAD_FieldGroup_ID(id);
m_Field.setAD_Tab_ID(tabid);
m_Field.setEntityType (attsMap.get("EntityType"));
m_Field.setIsSameLine(Boolean.valueOf(attsMap.get("SameLine")).booleanValue());
m_Field.setIsCentrallyMaintained(Boolean.valueOf(attsMap.get("isCentrallyMaintained")).booleanValue());
m_Field.setIsDisplayed(Boolean.valueOf(attsMap.get("Displayed")).booleanValue());
//m_Field.setIsEncrypted(Boolean.valueOf(atts.getValue("isEncrypted")).booleanValue());
m_Field.setIsFieldOnly(Boolean.valueOf(attsMap.get("isFieldOnly")).booleanValue());
m_Field.setIsHeading(Boolean.valueOf(attsMap.get("isHeading")).booleanValue());
m_Field.setIsReadOnly(Boolean.valueOf(attsMap.get("isReadOnly")).booleanValue());
m_Field.setSeqNo(Integer.parseInt(attsMap.get("SeqNo")));
m_Field.setDisplayLength(Integer.parseInt(attsMap.get("DisplayLength")));
m_Field.setDescription(attsMap.get("Description").replaceAll("'","''").replaceAll(",",""));
m_Field.setHelp(attsMap.get("Help").replaceAll("'","''").replaceAll(",",""));
m_Field.setIsActive(attsMap.get("isActive") != null ? Boolean.valueOf(attsMap.get("isActive")).booleanValue():true);
m_Field.setSortNo(new BigDecimal(attsMap.get("SortNo")));
m_Field.setDisplayLogic(attsMap.get("DisplayLogic"));
try {
if (m_Field.save(m_trxName) == true){
System.out.println("m_Field.save succeeded");
record_log (1, m_Field.getName(),"Field", m_Field.get_ID(),AD_Backup_ID, Object_Status,"AD_Field",get_IDWithColumn("AD_Table", "TableName", "AD_Field"));
}
else{
System.out.println("m_Field.save failed");
record_log (0, m_Field.getName(),"Field", m_Field.get_ID(),AD_Backup_ID, Object_Status,"AD_Field",get_IDWithColumn("AD_Table", "TableName", "AD_Field"));
}
} catch(Exception e) {
System.out.println("Exception in m_Field.save: " + e.getMessage());
}
}
else
System.out.println("Tab do not exist to field Name: "+ name);
}
}
public void importPrintFormatItem(Map<String, String> attsMap) {
X_AD_PrintFormatItem m_PrintFormatItem = null;
String name = attsMap.get("Name");
int id = get_IDWithMaster("AD_PrintFormatItem", name,"AD_PrintFormat",attsMap.get("ADPrintFormatNameID"));
m_PrintFormatItem = new X_AD_PrintFormatItem(m_ctx, id, m_trxName);
if (id > 0){
AD_Backup_ID = copyRecord("AD_PrintFormatItem",m_PrintFormatItem);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
m_PrintFormatItem.setName(name);
name = attsMap.get("ADPrintFormatNameID");
id = get_IDWithColumn("AD_PrintFormat", "Name", name);
m_PrintFormatItem.setAD_PrintFormat_ID(id);
//name = atts.getValue("ADPrintFormatChildNameID");
//id = get_IDWithColumn("AD_PrintFormat", "Name", name);
//m_PrintFormatItem.setAD_PrintFormatChild_ID(id);
name = attsMap.get("ADTableNameID");
int tableid = get_IDWithColumn("AD_Table", "TableName", name);
name = attsMap.get("ADColumnNameID");
id =get_IDWithMasterAndColumn ("AD_Column", "ColumnName", name, "AD_Table", tableid);
if(id > 0)
m_PrintFormatItem.setAD_Column_ID(id);
name = attsMap.get("ADPrintGraphID");
id = get_IDWithColumn("AD_PrintGraph", "Name", name);
m_PrintFormatItem.setAD_PrintGraph_ID(id);
name = attsMap.get("ADPrintColorID");
id = get_IDWithColumn("AD_PrintColor", "Name", name);
m_PrintFormatItem.setAD_PrintColor_ID(id);
name = attsMap.get("ADPrintFontID");
id = get_IDWithColumn("AD_PrintFont", "Name", name);
m_PrintFormatItem.setAD_PrintFont_ID(id);
m_PrintFormatItem.setPrintName(attsMap.get("PrintName"));
m_PrintFormatItem.setName(attsMap.get("Name"));
m_PrintFormatItem.setPrintAreaType(attsMap.get("PrintAreaType"));
m_PrintFormatItem.setSeqNo(Integer.parseInt(attsMap.get("SeqNo")));
m_PrintFormatItem.setPrintFormatType(attsMap.get("PrintFormatType"));
m_PrintFormatItem.setXSpace(Integer.parseInt(attsMap.get("XSpace")));
m_PrintFormatItem.setYSpace(Integer.parseInt(attsMap.get("YSpace")));
m_PrintFormatItem.setXPosition(Integer.parseInt(attsMap.get("Xposition")));
m_PrintFormatItem.setYPosition(Integer.parseInt(attsMap.get("Yposition")));
m_PrintFormatItem.setMaxWidth(Integer.parseInt(attsMap.get("MaxWidth")));
m_PrintFormatItem.setMaxHeight(Integer.parseInt(attsMap.get("MaxHieght")));
m_PrintFormatItem.setSortNo(Integer.parseInt(attsMap.get("SortNo")));
m_PrintFormatItem.setFieldAlignmentType(attsMap.get("FieldAlignmentType"));
m_PrintFormatItem.setLineAlignmentType(attsMap.get("LineAlignmentType"));
m_PrintFormatItem.setImageURL(attsMap.get("ImageURL"));
m_PrintFormatItem.setArcDiameter(Integer.parseInt(attsMap.get("ArcDiameter")));
m_PrintFormatItem.setLineWidth(Integer.parseInt(attsMap.get("LineWidth")));
m_PrintFormatItem.setShapeType(attsMap.get("ShapeType"));
m_PrintFormatItem.setBelowColumn(Integer.parseInt(attsMap.get("BelowColumn")));
m_PrintFormatItem.setPrintNameSuffix(attsMap.get("PrintNameSuffix"));
m_PrintFormatItem.setRunningTotalLines(Integer.parseInt(attsMap.get("RunningTotalLines")));
m_PrintFormatItem.setIsActive(attsMap.get("isActive") != null ? Boolean.valueOf(attsMap.get("isActive")).booleanValue():true);
m_PrintFormatItem.setIsPrinted(Boolean.valueOf(attsMap.get("isPrinted")).booleanValue());
m_PrintFormatItem.setIsRelativePosition(Boolean.valueOf(attsMap.get("isRelativePosition")).booleanValue());
m_PrintFormatItem.setIsNextLine(Boolean.valueOf(attsMap.get("isNextLine")).booleanValue());
m_PrintFormatItem.setIsHeightOneLine(Boolean.valueOf(attsMap.get("isHeightOneLine")).booleanValue());
m_PrintFormatItem.setIsOrderBy(Boolean.valueOf(attsMap.get("isOrderBy")).booleanValue());
m_PrintFormatItem.setIsGroupBy(Boolean.valueOf(attsMap.get("isGroupBy")).booleanValue());
m_PrintFormatItem.setIsPageBreak(Boolean.valueOf(attsMap.get("isPageBreak")).booleanValue());
m_PrintFormatItem.setIsSummarized(Boolean.valueOf(attsMap.get("isSummarized")).booleanValue());
m_PrintFormatItem.setImageIsAttached(Boolean.valueOf(attsMap.get("isImageIsAttached")).booleanValue());
m_PrintFormatItem.setIsAveraged(Boolean.valueOf(attsMap.get("isAveraged")).booleanValue());
m_PrintFormatItem.setIsCounted(Boolean.valueOf(attsMap.get("isCounted")).booleanValue());
m_PrintFormatItem.setIsSetNLPosition(Boolean.valueOf(attsMap.get("isSetNLPosition")).booleanValue());
m_PrintFormatItem.setIsSuppressNull(Boolean.valueOf(attsMap.get("isSuppressNull")).booleanValue());
m_PrintFormatItem.setIsFixedWidth(Boolean.valueOf(attsMap.get("isFixedWidth")).booleanValue());
m_PrintFormatItem.setIsNextPage(Boolean.valueOf(attsMap.get("isNextPage")).booleanValue());
m_PrintFormatItem.setIsMaxCalc(Boolean.valueOf(attsMap.get("isMaxCalc")).booleanValue());
m_PrintFormatItem.setIsMinCalc(Boolean.valueOf(attsMap.get("isMinCalc")).booleanValue());
m_PrintFormatItem.setIsRunningTotal(Boolean.valueOf(attsMap.get("isRunningTotal")).booleanValue());
m_PrintFormatItem.setIsVarianceCalc(Boolean.valueOf(attsMap.get("isVarianceCalc")).booleanValue());
m_PrintFormatItem.setIsDeviationCalc(Boolean.valueOf(attsMap.get("isDeviationCalc")).booleanValue());
try {
if (m_PrintFormatItem.save(m_trxName) == true){
System.out.println("m_PrintFormatItem.save succeeded");
record_log (1, m_PrintFormatItem.getName(),"PrintFormatItem", m_PrintFormatItem.get_ID(),AD_Backup_ID, Object_Status,"AD_PrintFormatItem",get_IDWithColumn("AD_Table", "TableName", "AD_PrintFormatItem"));
}
else{
System.out.println("m_PrintFormatItem.save failed");
record_log (0, m_PrintFormatItem.getName(),"PrintFormatItem", m_PrintFormatItem.get_ID(),AD_Backup_ID, Object_Status,"AD_PrintFormatItem",get_IDWithColumn("AD_Table", "TableName", "AD_PrintFormatItem"));
}
} catch(Exception e) {
System.out.println("Exception in m_PrintFormatItem.save: " + e.getMessage());
}
}
public void importPrintFormat(Map<String, String> attsMap) {
X_AD_PrintFormat m_PrintFormat = null;
MTable m_Table = null;
String name = attsMap.get("Name");
int id = get_IDWithColumn("AD_PrintFormat", "Name", name);
m_PrintFormat = new X_AD_PrintFormat(m_ctx, id, m_trxName);
if (id > 0){
AD_Backup_ID = copyRecord("AD_PrintFormat",m_PrintFormat);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
name = attsMap.get("ADReportviewnameID");
id = get_IDWithColumn("AD_ReportView", "Name", name);
m_PrintFormat.setAD_ReportView_ID(id);
name = attsMap.get("ADTableNameID");
id = get_IDWithColumn("AD_Table", "TableName", name);
if (id == 0 ){
m_Table = new MTable(m_ctx, 0, m_trxName);
m_Table.setAccessLevel("3");
m_Table.setName(name);
m_Table.setTableName(name);
try {
if (m_Table.save(m_trxName) == true){
System.out.println("m_Table.save succeeded");
record_log (1, m_Table.getName(),"Table", m_Table.get_ID(),0, "New","AD_Table",get_IDWithColumn("AD_Table", "TableName", "AD_Table"));
}
else{
System.out.println("m_Table.save failed");
record_log (0, m_Table.getName(),"Table", m_Table.get_ID(),0, "New","AD_Table",get_IDWithColumn("AD_Table", "TableName", "AD_Table"));
}
} catch(Exception e) {
System.out.println("Exception in importPrintFormat: " + e.getMessage());
}
id = get_IDWithColumn("AD_Table", "TableName", name);
}
m_PrintFormat.setAD_Table_ID(id);
name = attsMap.get("ADPrintTableFormatID");
id = get_IDWithColumn("AD_PrintTableFormat", "Name", name);
m_PrintFormat.setAD_PrintTableFormat_ID(id);
name = attsMap.get("ADPrintColorID");
id = get_IDWithColumn("AD_PrintColor", "Name", name);
m_PrintFormat.setAD_PrintColor_ID(id);
name = attsMap.get("ADPrintFontID");
id = get_IDWithColumn("AD_PrintFont", "Name", name);
m_PrintFormat.setAD_PrintFont_ID(id);
name = attsMap.get("ADPrintPaperID");
id = get_IDWithColumn("AD_PrintPaper", "Name", name);
m_PrintFormat.setAD_PrintPaper_ID(id);
m_PrintFormat.setDescription (attsMap.get("Description").replaceAll("'","''").replaceAll(",",""));
m_PrintFormat.setName (attsMap.get("Name"));
m_PrintFormat.setPrinterName(attsMap.get("PrinterName"));
m_PrintFormat.setFooterMargin(Integer.parseInt(attsMap.get("FooterMargin")));
m_PrintFormat.setHeaderMargin(Integer.parseInt(attsMap.get("HeaderMargin")));
m_PrintFormat.setCreateCopy(attsMap.get("CreateCopy"));
m_PrintFormat.setIsActive(attsMap.get("isActive") != null ? Boolean.valueOf(attsMap.get("isActive")).booleanValue():true);
m_PrintFormat.setIsTableBased(Boolean.valueOf(attsMap.get("isTableBased")).booleanValue());
m_PrintFormat.setIsForm(Boolean.valueOf(attsMap.get("isForm")).booleanValue());
m_PrintFormat.setIsStandardHeaderFooter(Boolean.valueOf(attsMap.get("isStandardHeader")).booleanValue());
m_PrintFormat.setIsDefault(Boolean.valueOf(attsMap.get("isDefault")).booleanValue());
try {
if (m_PrintFormat.save(m_trxName) == true){
System.out.println("m_PrintFormat.save succeeded");
record_log (1, m_PrintFormat.getName(),"PrintFormat", m_PrintFormat.get_ID(),AD_Backup_ID, Object_Status,"AD_PrintFormat",get_IDWithColumn("AD_Table", "TableName", "AD_PrintFormat"));
}
else{
System.out.println("m_PrintFormat.save failed");
record_log (0, m_PrintFormat.getName(),"PrintFormat", m_PrintFormat.get_ID(),AD_Backup_ID, Object_Status,"AD_PrintFormat",get_IDWithColumn("AD_Table", "TableName", "AD_PrintFormat"));
}
} catch(Exception e) {
System.out.println("Exception with importPrintFormat: " + e.getMessage());
}
}
public void importWorkflowNodeNext(Map<String, String> attsMap) {
MWFNodeNext m_WFNodeNext = null;
String entitytype = attsMap.get("EntityType");
if (entitytype.equals("U") || entitytype.equals("D")) {
String workflowName = attsMap.get("ADWorkflowNameID");
int workflowId = get_IDWithColumn("AD_Workflow", "name", workflowName);
String workflowNodeName = attsMap.get("ADWorkflowNodeNameID");
String workflowNodeNextName = attsMap.get("ADWorkflowNodeNextNameID");
System.out.println("workflowNodeNextName: " + workflowNodeNextName);
//analyzeWorkflowImport( workflowId, workflowNodeName, m_trxName);
sqlB = new StringBuffer ("SELECT ad_wf_node_id FROM AD_WF_Node WHERE AD_Workflow_ID=? and Name =?");
int wfNodeId = DB.getSQLValue(m_trxName,sqlB.toString(),workflowId,workflowNodeName);
if( wfNodeId < 0) {
//wfNodeId = createPlaceHolderWorkflowNode( atts, m_trxName);
}
int wfNodeNextId = DB.getSQLValue(m_trxName,sqlB.toString(),workflowId,workflowNodeNextName);
sqlB = new StringBuffer ("SELECT ad_wf_nodenext_id FROM AD_WF_NodeNext WHERE ad_wf_node_id =? and ad_wf_next_id =?");
//int id = get_IDWithColumn("AD_WF_Node", "name", workflowNodeName);
int id = DB.getSQLValue(m_trxName,sqlB.toString(),wfNodeId,wfNodeNextId);
System.out.println("id used for MWFNodeNext: " + id);
m_WFNodeNext = new MWFNodeNext(m_ctx, id, m_trxName);
if (id > 0){
AD_Backup_ID = copyRecord("AD_WF_NodeNext",m_WFNodeNext);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
m_WFNodeNext.setAD_WF_Node_ID(wfNodeId);
m_WFNodeNext.setAD_WF_Next_ID(wfNodeNextId);
m_WFNodeNext.setEntityType(attsMap.get("EntityType"));
m_WFNodeNext.setSeqNo(Integer.valueOf(attsMap.get("SeqNo")));
m_WFNodeNext.setIsActive(attsMap.get("isActive") != null ? Boolean.valueOf(attsMap.get("isActive")).booleanValue():true);
m_WFNodeNext.setIsStdUserWorkflow(attsMap.get("IsStdUserWorkflow") != null ? Boolean.valueOf(attsMap.get("IsStdUserWorkflow")).booleanValue():true);
attsOut.clear();
try {
if (m_WFNodeNext.save(m_trxName) == true){
System.out.println("m_WFNodeNext save success");
record_log (1, String.valueOf(m_WFNodeNext.get_ID()),"WFNodeNext", m_WFNodeNext.get_ID(),AD_Backup_ID, Object_Status,"AD_WF_NodeNext",get_IDWithColumn("AD_WF_NodeNext", "ad_wf_nodenext_id", "AD_WF_NodeNext"));
}
else{
System.out.println("m_WFNodeNext save failure");
record_log (0, String.valueOf(m_WFNodeNext.get_ID()),"WFNode", m_WFNodeNext.get_ID(),AD_Backup_ID, Object_Status,"AD_WF_NodeNext",get_IDWithColumn("AD_WF_NodeNext", "ad_wf_nodenext_id", "AD_WF_NodeNext"));
}
} catch(SAXException e) {
System.out.println("Exception in importWorkflowNodeNext: " + e.getMessage());
}
}
}
public void importWorkflowNode(Map<String, String> attsMap) {
String entitytype = attsMap.get("EntityType");
MWFNode m_WFNode = null;
if (entitytype.equals("U") || entitytype.equals("D")) {
String workflowName = attsMap.get("ADWorkflowNameID");
int workflowId = get_IDWithColumn("AD_Workflow", "name", workflowName);
String workflowNodeName = attsMap.get("Name");
System.out.println("workflowNodeName: " + workflowNodeName);
sqlB = new StringBuffer ("SELECT ad_wf_node_id FROM AD_WF_Node WHERE AD_Workflow_ID=? and Name =?");
int id = DB.getSQLValue(m_trxName,sqlB.toString(),workflowId,workflowNodeName);
m_WFNode = new MWFNode(m_ctx, id, m_trxName);
if (id > 0){
AD_Backup_ID = copyRecord("AD_WF_Node",m_WFNode);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
m_WFNode.setName(workflowNodeName);
String Name = attsMap.get("ADWorkflowNameID");
id = get_IDWithColumn("AD_Workflow", "Name", Name);
m_WFNode.setAD_Workflow_ID(id);
m_WFNode.setAction(attsMap.get("Action"));
if (attsMap.get("ADProcessNameID")!= null){
Name = attsMap.get("ADProcessNameID");
id = get_IDWithColumn("AD_Process", "Name", Name);
if(id <= 0 && attsMap.get("Action").equals(X_AD_WF_Node.ACTION_AppsProcess) || attsMap.get("Action").equals(X_AD_WF_Node.ACTION_AppsReport)) {
//id = createPlaceHolderProcess(atts, m_trxName);
}
m_WFNode.setAD_Process_ID(id);
}
if (attsMap.get("ADFormNameID")!= null){
String name = attsMap.get("ADFormNameID");
id = get_IDWithColumn("AD_Form", "Name", name);
if(id <= 0 && attsMap.get("Action").equals(X_AD_WF_Node.ACTION_UserForm)) {
//id = createPlaceHolderForm(atts, m_trxName);
}
System.out.println("ADFormNameID: " + id);
m_WFNode.setAD_Form_ID(id);
}
if (attsMap.get("ADWorkflowResponsibleNameID")!= null){
String name = attsMap.get("ADWorkflowResponsibleNameID");
id = get_IDWithColumn("AD_WF_Responsible", "Name", name);
m_WFNode.setAD_WF_Responsible_ID(id);
}
if (attsMap.get("ADWindowNameID")!= null){
String name = attsMap.get("ADWindowNameID");
id = get_IDWithColumn("AD_Window", "Name", name);
if(id <= 0 && attsMap.get("Action").equals(X_AD_WF_Node.ACTION_UserWindow)) {
//id = createPlaceHolderWindow(atts, m_trxName);
}
System.out.println("ADWindowNameID: " + id);
m_WFNode.setAD_Window_ID(id);
}
if (attsMap.get("ADImageNameID")!= null){
String name = attsMap.get("ADImageNameID");
id = get_IDWithColumn("AD_Image", "Name", name);
m_WFNode.setAD_Image_ID(id);
}
if (attsMap.get("ADWorkflowBlockNameID")!= null){
String name = attsMap.get("ADWorkflowBlockNameID");
id = get_IDWithColumn("AD_WF_Block", "Name", name);
m_WFNode.setAD_WF_Block_ID(id);
}
/* FIXME: Do we need TaskName ?
if (attsMap.get("ADTaskNameID")!=null){
String name = atts.getValue("ADTaskNameID");
sqlB = new StringBuffer ("SELECT AD_Task_ID FROM AD_Task WHERE Name= ?");
taskid = DB.getSQLValue(m_trxName,sqlB.toString(),name);
}
*/
m_WFNode.setEntityType(attsMap.get("EntityType"));
m_WFNode.setDocAction(attsMap.get("DocAction"));
m_WFNode.setDescription(attsMap.get("Description").replaceAll("'","''").replaceAll(",",""));
m_WFNode.setJoinElement(attsMap.get("JoinElement"));
m_WFNode.setSplitElement(attsMap.get("SplitElement"));
m_WFNode.setXPosition(Integer.valueOf(attsMap.get("XPosition")));
m_WFNode.setYPosition(Integer.valueOf(attsMap.get("YPosition")));
m_WFNode.setWaitingTime(Integer.valueOf(attsMap.get("WaitingTime")));
m_WFNode.setWaitTime(Integer.valueOf(attsMap.get("WaitTime")));
m_WFNode.setWorkingTime(Integer.valueOf(attsMap.get("WorkingTime")));
m_WFNode.setCost(new BigDecimal(attsMap.get("Cost")));
m_WFNode.setDuration(Integer.valueOf(attsMap.get("Duration")));
m_WFNode.setPriority(Integer.valueOf(attsMap.get("Priority")));
//FIXME: Failing for some reason on a ""
//m_WFNode.setStartMode(atts.getValue("StartMode"));
//FIXME: Failing for some reason on a ""
//m_WFNode.setSubflowExecution(atts.getValue("SubflowExecution"));
m_WFNode.setIsCentrallyMaintained(Boolean.valueOf(attsMap.get("IsCentrallyMaintained")).booleanValue());
m_WFNode.setDynPriorityChange(new BigDecimal(attsMap.get("DynPriorityChange")));
//m_WFNode.setAccessLevel (atts.getValue("AccessLevel"));
//FIXME: Failing for some reason on a ""
//m_WFNode.setDynPriorityUnit (atts.getValue("DynPriorityUnit"));
m_WFNode.setIsActive(attsMap.get("isActive") != null ? Boolean.valueOf(attsMap.get("isActive")).booleanValue():true);
attsOut.clear();
System.out.println("about to execute m_WFNode.save");
try {
if (m_WFNode.save(m_trxName) == true){
System.out.println("m_WFNode save success");
record_log (1, m_WFNode.getName(),"WFNode", m_WFNode.get_ID(),AD_Backup_ID, Object_Status,"AD_WF_Node",get_IDWithColumn("AD_WF_Node", "Name", "AD_WF_Node"));
}
else{
System.out.println("m_WFNode save failure");
record_log (0, m_WFNode.getName(),"WFNode", m_WFNode.get_ID(),AD_Backup_ID, Object_Status,"AD_WF_Node",get_IDWithColumn("AD_WF_Node", "Name", "AD_WF_Node"));
}
} catch(SAXException e) {
System.out.println("Exception in importWorkflowNode: " + e.getMessage());
}
}
}
public void importWorkflow(Map<String, String> attsMap) {
MWorkflow m_Workflow = null;
String entitytype = attsMap.get("EntityType");
System.out.println("entitytype "+attsMap.get("EntityType"));
if (entitytype.equals("U") || entitytype.equals("D")) {
System.out.println("entitytype is a U or D");
String workflowName = attsMap.get("Name");
int id = get_IDWithColumn("AD_Workflow", "name", workflowName);
m_Workflow = new MWorkflow(m_ctx, id, m_trxName);
if (id > 0){
AD_Backup_ID = copyRecord("AD_Workflow",m_Workflow);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
if (attsMap.get("ADWorkflowResponsibleNameID")!= null){
String name = attsMap.get("ADWorkflowResponsibleNameID");
id = get_IDWithColumn("AD_WF_Responsible", "Name", name);
m_Workflow.setAD_WF_Responsible_ID(id);
}
if (attsMap.get("ADTableNameID")!= null){
String Name = attsMap.get("ADTableNameID");
id = get_IDWithColumn("AD_Table", "TableName", Name);
m_Workflow.setAD_Table_ID(id);
}
if (attsMap.get("ADWorkflowProcessorNameID")!= null){
String Name = attsMap.get("ADWorkflowProcessorNameID");
id = get_IDWithColumn("AD_WorkflowProcessor", "Name", Name);
m_Workflow.setAD_WorkflowProcessor_ID(id);
}
m_Workflow.setName(workflowName);
m_Workflow.setAccessLevel (attsMap.get("AccessLevel"));
m_Workflow.setDescription(attsMap.get("Description").replaceAll("'","''").replaceAll(",",""));
m_Workflow.setHelp(attsMap.get("Help").replaceAll("'","''").replaceAll(",",""));
m_Workflow.setDurationUnit(attsMap.get("DurationUnit"));
m_Workflow.setAuthor(attsMap.get("Author"));
m_Workflow.setVersion(Integer.valueOf(attsMap.get("Version")));
m_Workflow.setPriority(Integer.valueOf(attsMap.get("Priority")));
m_Workflow.setLimit(Integer.valueOf(attsMap.get("Limit")));
m_Workflow.setDuration(Integer.valueOf(attsMap.get("Duration")));
m_Workflow.setCost(Integer.valueOf(attsMap.get("Cost")));
m_Workflow.setWorkingTime(Integer.valueOf(attsMap.get("WorkingTime")));
m_Workflow.setWaitingTime(Integer.valueOf(attsMap.get("WaitingTime")));
m_Workflow.setPublishStatus(attsMap.get("PublishStatus"));
m_Workflow.setWorkflowType(attsMap.get("WorkflowType"));
m_Workflow.setDocValueLogic(attsMap.get("DocValueLogic"));
m_Workflow.setIsValid(attsMap.get("isValid") != null ? Boolean.valueOf(attsMap.get("isValid")).booleanValue():true);
m_Workflow.setEntityType(attsMap.get("EntityType"));
m_Workflow.setAD_WF_Node_ID(-1);
attsOut.clear();
System.out.println("about to execute m_Workflow.save");
try {
if (m_Workflow.save(m_trxName) == true){
System.out.println("m_Workflow.save succeeded");
record_log (1, m_Workflow.getName(),"Workflow", m_Workflow.get_ID(),AD_Backup_ID, Object_Status,"AD_Workflow",get_IDWithColumn("AD_Workflow", "Name", "AD_Workflow"));
}
else{
System.out.println("m_Workflow save failure");
record_log (0, m_Workflow.getName(),"Workflow", m_Workflow.get_ID(),AD_Backup_ID, Object_Status,"AD_Workflow",get_IDWithColumn("AD_Workflow", "Name", "AD_Workflow"));
}
} catch(SAXException e) {
System.out.println("Exception in importWorkflow: " + e.getMessage());
}
}
}
public void importProcess(Map<String, String> attsMap) {
MProcess m_Process = null;
int id = 0;
String entitytype = attsMap.get("EntityType");
if (entitytype.compareTo("U") == 0 || entitytype.compareTo("D") == 0 ) {
String name = attsMap.get("Name");
// Get New process.
id=get_ID("AD_Process", name);
if (id > 0){
m_Process = new MProcess(m_ctx, id, m_trxName);
AD_Backup_ID = copyRecord("AD_Process",m_Process);
Object_Status = "Update";
}
else{
m_Process = new MProcess(m_ctx, id, m_trxName);
id = MSequence.getNextID (Env.getAD_Client_ID(m_ctx), "AD_Process", m_trxName);
m_Process.setAD_Process_ID(id);
Object_Status = "New";
AD_Backup_ID =0;
}
m_Process.setName(name);
name = attsMap.get("ADWorkflowNameID");
id = get_IDWithColumn("AD_Workflow", "Name", name);
m_Process.setAD_Workflow_ID(id);
name = attsMap.get("ADProcessNameID");
name = attsMap.get("ADPrintFormatNameID");
id = get_IDWithColumn("AD_PrintFormat", "Name", name);
m_Process.setAD_PrintFormat_ID(id);
name = attsMap.get("ADReportViewNameID");
id = get_IDWithColumn("AD_ReportView", "Name", name);
m_Process.setAD_ReportView_ID(id);
m_Process.setAccessLevel(attsMap.get("AccessLevel"));
m_Process.setClassname(attsMap.get("Classname"));
m_Process.setDescription(attsMap.get("Description").replaceAll("'","''").replaceAll(",",""));
m_Process.setEntityType(attsMap.get("EntityType"));
m_Process.setHelp(attsMap.get("Help").replaceAll("'","''").replaceAll(",",""));
m_Process.setIsBetaFunctionality(Boolean.valueOf(attsMap.get("isBetaFunctionality")).booleanValue());
m_Process.setIsDirectPrint(Boolean.valueOf(attsMap.get("isDirectPrint")).booleanValue());
m_Process.setIsReport(Boolean.valueOf(attsMap.get("isReport")).booleanValue());
m_Process.setName(attsMap.get("Name"));
m_Process.setProcedureName(attsMap.get("ProcedureName"));
m_Process.setStatistic_Count(0);
m_Process.setIsActive(attsMap.get("isActive") != null ? Boolean.valueOf(attsMap.get("isActive")).booleanValue():true);
m_Process.setStatistic_Seconds(0);
m_Process.setValue(attsMap.get("Value"));
m_Process.setWorkflowValue(attsMap.get("WorkflowValue"));
try {
if (m_Process.save(m_trxName) == true){
System.out.println("m_Process.save succeeded");
record_log (1, m_Process.getName(),"Process", m_Process.get_ID(),AD_Backup_ID, Object_Status,"AD_Process",get_IDWithColumn("AD_Table", "TableName", "AD_Process"));
}
else{
System.out.println("m_Process.save failed");
record_log (0, m_Process.getName(),"Process", m_Process.get_ID(),AD_Backup_ID, Object_Status,"AD_Process",get_IDWithColumn("AD_Table", "TableName", "AD_Process"));
}
} catch(SAXException e) {
System.out.println("Exception in importProcess: " + e.getMessage());
}
}
}
public void importMenu(Map<String, String> attsMap) {
X_AD_Menu m_Menu = null;
int idDetail =0;
String entitytype = attsMap.get("EntityType");
//if (entitytype.compareTo("U") == 0 || entitytype.compareTo("D") == 0) {
String name = attsMap.get("ADMenuNameID");
int menuid = get_IDWithColumn("AD_Menu", "Name",name);
m_Menu = new X_AD_Menu(m_ctx, menuid, m_trxName);
if (menuid > 0){
AD_Backup_ID = copyRecord("AD_Menu",m_Menu);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
m_Menu.setName(name);
int id = get_IDWithColumn("AD_Window", "Name", attsMap.get("ADWindowNameID"));
m_Menu.setAD_Window_ID(id);
id = get_IDWithColumn("AD_Process", "Name", attsMap.get("ADProcessNameID"));
m_Menu.setAD_Process_ID(id);
id = get_IDWithColumn("AD_Form", "Name", attsMap.get("ADFormNameID"));
m_Menu.setAD_Form_ID(id);
id = get_IDWithColumn("AD_Task", "Name", attsMap.get("ADTaskNameID"));
m_Menu.setAD_Task_ID(id);
id = get_IDWithColumn("AD_Workbench", "Name", attsMap.get("ADWorkbenchNameID"));
m_Menu.setAD_Workbench_ID(id);
id = get_IDWithColumn("AD_Workflow", "Name", attsMap.get("ADWorkflowNameID"));
m_Menu.setAD_Workflow_ID(id);
String m_Action = (attsMap.get("Action") != null ? attsMap.get("Action") : " ");
if (m_Action.compareTo(" ") > -1 )
m_Menu.setAction(m_Action);
m_Menu.setDescription(attsMap.get("Description").replaceAll("'","''").replaceAll(",",""));
m_Menu.setEntityType(attsMap.get("EntityType"));
m_Menu.setIsReadOnly(Boolean.valueOf(attsMap.get("isReadOnly")).booleanValue());
m_Menu.setIsSOTrx(Boolean.valueOf(attsMap.get("isSOTrx")).booleanValue());
m_Menu.setIsSummary(Boolean.valueOf(attsMap.get("isSummary")).booleanValue());
m_Menu.setIsActive(Boolean.valueOf(attsMap.get("isActive")).booleanValue());
if (m_Menu.save(m_trxName) == true){
try {
System.out.println("m_Menu.save succeeded");
idDetail = record_log (1, m_Menu.getName(),"Menu", m_Menu.get_ID(),AD_Backup_ID, Object_Status,"AD_Menu",get_IDWithColumn("AD_Table", "TableName", "AD_Menu"));
} catch (SAXException e) {
System.out.println ("setmenu:"+e);
}
}
else{
try {
System.out.println("m_Menu.save failed");
idDetail = record_log (0, m_Menu.getName(),"Menu", m_Menu.get_ID(),AD_Backup_ID, Object_Status,"AD_Menu",get_IDWithColumn("AD_Table", "TableName", "AD_Menu"));
} catch (SAXException e) {
System.out.println("setmenu:"+e);
}
}
name = attsMap.get("ADParentMenuNameID");
id = get_ID("AD_Menu", name);
String sql2 = "SELECT count(Parent_ID) FROM AD_TREENODEMM WHERE AD_Tree_ID = 10"
+ " AND Node_ID = " + menuid;
int countRecords = DB.getSQLValue(m_trxName,sql2);
if (countRecords>0){
StringBuffer sqlC = new StringBuffer ("select * from AD_TREENODEMM where AD_Tree_ID = 10 and "
+" Node_ID =?");
try {
PreparedStatement pstmt1 = DB.prepareStatement(sqlC.toString(), m_trxName);
pstmt1.setInt(1, menuid);
ResultSet rs1 = pstmt1.executeQuery();
if (rs1.next()){
String colValue=null;
ResultSetMetaData meta = rs1.getMetaData();
int columns = meta.getColumnCount();
int tableID = get_IDWithColumn("AD_Table", "TableName", "AD_TreeNodeMM");
for (int q = 1; q <= columns; q++){
String col_Name = meta.getColumnName(q);
StringBuffer sql = new StringBuffer ("SELECT AD_Column_ID FROM AD_column WHERE Upper(ColumnName) = '"+col_Name+"' AND AD_Table_ID = ?");
int columnID = DB.getSQLValue(m_trxName, sql.toString(),tableID);
sql = new StringBuffer ("SELECT AD_Reference_ID FROM AD_COLUMN WHERE AD_Column_ID = '"+columnID+"'");
int referenceID = DB.getSQLValue(m_trxName,sql.toString());
int idBackup = MSequence.getNextID (Env.getAD_Client_ID(m_ctx), "AD_Package_Imp_Backup", m_trxName);
if (referenceID == 20|| referenceID == 28)
if (rs1.getObject(q).equals("Y"))
colValue = "true";
else
colValue = "false";
else
colValue = rs1.getObject(q).toString();
StringBuffer sqlD = new StringBuffer ("Insert INTO AD_Package_Imp_Backup"
+ "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, "
+ "AD_PACKAGE_IMP_BACKUP_ID, AD_PACKAGE_IMP_DETAIL_ID, AD_PACKAGE_IMP_ID,"
+ " AD_TABLE_ID, AD_COLUMN_ID, AD_REFERENCE_ID, COLVALUE)"
+ "VALUES("
+ " "+ Env.getAD_Client_ID(m_ctx)
+ ", "+ Env.getAD_Org_ID(m_ctx)
+ ", "+ Env.getAD_User_ID(m_ctx)
+ ", "+ Env.getAD_User_ID(m_ctx)
+ ", " + idBackup
+ ", " + idDetail
+ ", " + AD_Package_Imp_ID
+ ", " + tableID
+ ", " + columnID
+ ", " + referenceID
+ ", '" +colValue
+"')");
int no = DB.executeUpdate (sqlD.toString(), m_trxName);
if (no == -1)
System.out.println("Insert to import backup failed");
}
}
rs1.close();
pstmt1.close();
pstmt1 = null;
}
catch (Exception e) {
System.out.println ("get_IDWithMasterID:"+e);
}
sqlB = new StringBuffer ("UPDATE AD_TREENODEMM "
+ "SET Parent_ID = " + id
+ " , SeqNo = " + attsMap.get("ADParentSeqno")
+ " WHERE AD_Tree_ID = 10"
+ " AND Node_ID = " + m_Menu.getAD_Menu_ID());
} else {
sqlB = new StringBuffer ("Insert INTO AD_TREENODEMM"
+ "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, "
+ "Parent_ID, SeqNo, AD_Tree_ID, Node_ID)"
+ "VALUES(0, 0, 0, 0, "
+ id + ","+ attsMap.get("ADParentSeqno")+", 10, "+m_Menu.getAD_Menu_ID()+")");
}
DB.executeUpdate(sqlB.toString(), m_trxName);
//}
}
public void importReferenceTable(Map<String, String> attsMap) {
MTable m_Table = null;
MColumn m_Column = null;
String entitytype = attsMap.get("EntityType");
String name = attsMap.get("ADRefenceNameID");
if (entitytype.compareTo("U") == 0 || entitytype.compareTo("D") == 0 ) {
sqlB = new StringBuffer ("SELECT AD_Reference_ID FROM AD_Reference WHERE Name= ?");
int id = DB.getSQLValue(m_trxName,sqlB.toString(),name);
sqlB = new StringBuffer ("SELECT Count(*) FROM AD_Ref_Table WHERE AD_Reference_ID= ?");
int count = DB.getSQLValue(m_trxName, sqlB.toString(),id);
int tableId = get_IDWithColumn("AD_Table", "TableName", attsMap.get("ADTableNameID"));
if (tableId ==0){
m_Table = new MTable(m_ctx, 0, m_trxName);
m_Table.setAccessLevel("3");
m_Table.setName(attsMap.get("ADTableNameID"));
m_Table.setTableName(attsMap.get("ADTableNameID"));
try {
if (m_Table.save(m_trxName) == true){
record_log (1, m_Table.getName(),"Table", m_Table.get_ID(),0, "New","AD_Table",get_IDWithColumn("AD_Table", "TableName", "AD_Table"));
}
else{
record_log (0, m_Table.getName(),"Table", m_Table.get_ID(),0, "New","AD_Table",get_IDWithColumn("AD_Table", "TableName", "AD_Table"));
}
} catch(SAXException e) {
System.out.println("Exception in importReferenceTable: " + e.getMessage());
}
tableId = get_IDWithColumn("AD_Table", "TableName", attsMap.get("ADTableNameID"));
}
name = attsMap.get("ADDisplay");
int DisplayId =get_IDWithMasterAndColumn ("AD_Column", "ColumnName", name, "AD_Table", tableId);
if (DisplayId ==0){
m_Column = new MColumn(m_ctx,0,m_trxName);
m_Column.setAD_Table_ID(tableId);
// m_Column.setVersion(new BigDecimal("1")); // use constructor value
m_Column.setColumnName(name);
m_Column.setName(name);
m_Column.setAD_Reference_ID(30);
try {
if (m_Column.save(m_trxName) == true){
record_log (1, m_Column.getName(),"Column", m_Column.get_ID(),0, "New","AD_Column",get_IDWithColumn("AD_Table", "TableName", "AD_Column"));
}
else{
record_log (0, m_Column.getName(),"Column", m_Column.get_ID(),0, "New","AD_Column",get_IDWithColumn("AD_Table", "TableName", "AD_Column"));
}
} catch(SAXException e) {
System.out.println("Exception in importReferenceTable: " + e.getMessage());
}
}
name = attsMap.get("Key");
int keyId =get_IDWithMasterAndColumn ("AD_Column", "ColumnName", name, "AD_Table", tableId);
if (keyId ==0){
m_Column = new MColumn(m_ctx,0,m_trxName);
m_Column.setAD_Table_ID(tableId);
//m_Column.setVersion(new BigDecimal("1")); // use constructor value
m_Column.setColumnName(name);
m_Column.setName(name);
m_Column.setAD_Reference_ID(30);
try {
if (m_Column.save(m_trxName) == true){
record_log (1, m_Column.getName(),"Column", m_Column.get_ID(),0, "New","AD_Column",get_IDWithColumn("AD_Table", "TableName", "AD_Column"));
}
else{
record_log (0, m_Column.getName(),"Column", m_Column.get_ID(),0, "New","AD_Column",get_IDWithColumn("AD_Table", "TableName", "AD_Column"));
}
} catch(SAXException e) {
System.out.println("Exception in importReferenceTable: " + e.getMessage());
}
}
name = attsMap.get("ADDisplay");
DisplayId = get_IDWithMasterAndColumn ("AD_Column", "ColumnName", name, "AD_Table", tableId);
name = attsMap.get("Key");
keyId = get_IDWithMasterAndColumn ("AD_Column", "ColumnName", name, "AD_Table", tableId);
String entityType = attsMap.get("EntityType");
String isValueDisplayed = attsMap.get("IsValueDisplayed");
String OrderByClause= attsMap.get("OrderByClause").replaceAll("'","''").replaceAll(",","");
String WhereClause= attsMap.get("WhereClause").replaceAll("'","''").replaceAll(",","");
if (count >0 ){
sqlB = new StringBuffer ("UPDATE AD_Ref_Table "
+ "SET AD_Table_ID = " + tableId
+ ", AD_Display = " + DisplayId
+ ", AD_Key = " + keyId
+ ", isValueDisplayed = '" + isValueDisplayed
+ "', OrderByClause = '" + OrderByClause
+ "', EntityType ='" + entityType
+ "', WhereClause = '" + WhereClause
+ "' WHERE AD_Reference_ID = " + id);
int no = DB.executeUpdate (sqlB.toString(), m_trxName);
try {
if (no > 0){
record_log (1, attsMap.get("ADRefenceNameID"),"Reference Table", id,0, "Update","AD_Ref_Table",get_IDWithColumn("AD_Table", "TableName", "AD_Ref_Table"));
}
else{
record_log (0, attsMap.get("ADRefenceNameID"),"Reference Table", id,0, "Update","AD_Ref_Table",get_IDWithColumn("AD_Table", "TableName", "AD_Ref_Table"));
}
} catch(SAXException e) {
System.out.println("Exception in importReferenceTable: " + e.getMessage());
}
}
else{
sqlB = new StringBuffer ("Insert INTO AD_Ref_Table"
+ "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, "
+ "AD_Reference_ID, AD_Table_ID, AD_Display, AD_Key "
+ ",entityType, isValueDisplayed, OrderByClause, "
+ " WhereClause )"
+ "VALUES(0, 0, 0, 0, "+id
+ ", " + tableId
+ ", " + DisplayId
+ ", " + keyId
+ ", '" + entityType
+ "', '" + isValueDisplayed
+ "', '" + OrderByClause
+ "', '" + WhereClause +"')");
int no = DB.executeUpdate (sqlB.toString(), m_trxName);
try {
if (no > 0){
record_log (1, attsMap.get("ADRefenceNameID"),"Reference Table", id,0, "New","AD_Ref_Table",get_IDWithColumn("AD_Table", "TableName", "AD_Ref_Table"));
}
else{
record_log (0, attsMap.get("ADRefenceNameID"),"Reference Table", id,0, "New","AD_Ref_Table",get_IDWithColumn("AD_Table", "TableName", "AD_Ref_Table"));
}
} catch(SAXException e) {
System.out.println("Exception in importReferenceTable: " + e.getMessage());
}
}
}
}
public void importProcessPara(Map<String, String> attsMap) {
String entitytype = attsMap.get("EntityType");
if (entitytype.compareTo("U") == 0 || entitytype.compareTo("D") == 0 ) {
String name = attsMap.get("Name");
int id = get_IDWithMaster("AD_Process_Para", name, "AD_Process", attsMap.get("ADProcessNameID"));
X_AD_Process_Para m_Process_para = new X_AD_Process_Para(m_ctx, id, m_trxName);
if (id>0){
AD_Backup_ID = copyRecord("AD_Process_Para",m_Process_para);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
m_Process_para.setName(attsMap.get("Name"));
name = attsMap.get("ADProcessNameID");
id = get_IDWithColumn("AD_Process", "Name", name);
m_Process_para.setAD_Process_ID(id);
name = attsMap.get("ADElementNameID");
id = get_IDWithColumn("AD_Element", "Name", name);
m_Process_para.setAD_Element_ID(id);
name = attsMap.get("ADReferenceNameID");
/**
//Adjust for difference between Oracle and PostgreSql DataTypes
if (m_DatabaseType.equals("Oracle")){
if (name.equals("TIMESTAMP"))
name = "Date";
else if (name.equals("TIMESTAMP+Time"))
name = "Date+Time";
else if (name.equals("NUMERIC"))
name = "Number";}
else if (m_DatabaseType.equals("Sybase")){
if (name.equals("TIMESTAMP"))
name = "Date";
else if (name.equals("TIMESTAMP+Time"))
name = "Date+Time";
else if (name.equals("NUMERIC"))
name = "Number";}
else if (m_DatabaseType.equals("PostgreSQL")){
if (name.equals("Date"))
name = "TIMESTAMP";
else if (name.equals("Date+Time"))
name = "TIMESTAMP+Time";
else if (name.equals("Number"))
name = "NUMERIC";}
**/
id = get_IDWithColumn("AD_Reference", "Name", name);
m_Process_para.setAD_Reference_ID(id);
name = attsMap.get("ADReferenceValueNameID");
id = get_IDWithColumn("AD_Reference", "Name", name);
m_Process_para.setAD_Reference_Value_ID(id);
name = attsMap.get("ADValRuleNameID");
id = get_IDWithColumn("AD_Val_Rule", "Name", name);
m_Process_para.setAD_Val_Rule_ID(id);
m_Process_para.setColumnName(attsMap.get("ColumnName"));
m_Process_para.setDefaultValue(attsMap.get("DefaultValue"));
m_Process_para.setDefaultValue2(attsMap.get("DefaultValue2"));
m_Process_para.setDescription(attsMap.get("Description").replaceAll("'","''").replaceAll(",",""));
m_Process_para.setEntityType(attsMap.get("EntityType"));
m_Process_para.setHelp(attsMap.get("Help").replaceAll("'","''").replaceAll(",",""));
m_Process_para.setIsActive(attsMap.get("isActive") != null ? Boolean.valueOf(attsMap.get("isActive")).booleanValue():true);
m_Process_para.setName(attsMap.get("Name"));
m_Process_para.setVFormat(attsMap.get("VFormat"));
m_Process_para.setValueMax(attsMap.get("ValueMax"));
m_Process_para.setValueMin(attsMap.get("ValueMin"));
m_Process_para.setSeqNo(Integer.parseInt(attsMap.get("SeqNo")));
m_Process_para.setFieldLength(Integer.parseInt(attsMap.get("FieldLength")));
m_Process_para.setIsCentrallyMaintained(Boolean.valueOf(attsMap.get("isCentrallyMaintained")).booleanValue());
m_Process_para.setIsMandatory(Boolean.valueOf(attsMap.get("isMandatory")).booleanValue());
m_Process_para.setIsRange(Boolean.valueOf(attsMap.get("isRange")).booleanValue());
try {
if (m_Process_para.save(m_trxName) == true){
System.out.println("m_Process_para.save succeeded");
record_log (1, m_Process_para.getName(),"Process_para", m_Process_para.get_ID(),AD_Backup_ID, Object_Status,"AD_Process_para",get_IDWithColumn("AD_Table", "TableName", "AD_Process_para"));
}
else{
System.out.println("m_Process_para.save failed");
record_log (0, m_Process_para.getName(),"Process_para", m_Process_para.get_ID(),AD_Backup_ID, Object_Status,"AD_Process_para",get_IDWithColumn("AD_Table", "TableName", "AD_Process_para"));
}
} catch(SAXException e) {
System.out.println("Exception in importProcessPara: " + e.getMessage());
}
}
}
public void importPreference(Map<String, String> attsMap) {
MPreference m_Preference = null;
//TODO Add User_ID
int windowid = get_ID("AD_Window", attsMap.get("ADWindowNameID"));
sqlB = new StringBuffer ("select AD_Preference_ID from AD_Preference where "
+ " Attribute = '"+attsMap.get("Attribute") +"'"
+ " and AD_Window_ID = ?");
int id = DB.getSQLValue(m_trxName, sqlB.toString (), windowid);
m_Preference = new MPreference(m_ctx, id, m_trxName);
if (id > 0){
AD_Backup_ID = copyRecord("AD_Preference",m_Preference);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
sqlB = null;
m_Preference.setAD_Window_ID(windowid);
m_Preference.setAttribute(attsMap.get("Attribute"));
m_Preference.setValue(attsMap.get("Value"));
try {
if (m_Preference.save(m_trxName) == true){
System.out.println("m_Preference.save succeeded");
record_log (1, m_Preference.getAttribute(),"Preference", m_Preference.get_ID(),AD_Backup_ID, Object_Status,"AD_Preference",get_IDWithColumn("AD_Table", "TableName", "AD_Preference"));
}
else{
System.out.println("m_Preference.save failed");
record_log (0, m_Preference.getAttribute(),"Preference", m_Preference.get_ID(),AD_Backup_ID, Object_Status,"AD_Preference",get_IDWithColumn("AD_Table", "TableName", "AD_Preference"));
}
} catch(SAXException e) {
System.out.println("Exception in importPreference: " + e.getMessage());
}
}
public void importTab(Map<String, String> attsMap) {
MTab m_Tab = null;
String entitytype = attsMap.get("EntityType");
if (entitytype.compareTo("U") == 0 || entitytype.compareTo("D") == 0 ) {
String name = attsMap.get("ADTabNameID");
int tableid = get_IDWithColumn("AD_Table", "TableName", attsMap.get("ADTableNameID"));
int windowid = get_ID("AD_Window", attsMap.get("ADWindowNameID"));
sqlB = new StringBuffer ("select AD_Tab_ID from AD_Tab where AD_Window_ID = " + windowid
+ " and Name = '"+name +"'"
+ " and AD_Table_ID = ?");
int id = DB.getSQLValue(m_trxName, sqlB.toString (), tableid);
m_Tab = new MTab(m_ctx, id, m_trxName);
if (id > 0){
AD_Backup_ID = copyRecord("AD_Tab",m_Tab);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
sqlB = null;
m_Tab.setName(name);
id = 0;
if (attsMap.get("ADColumnSortYesNoNameID")!= null){
name = attsMap.get("ADColumnSortYesNoNameID");
id = get_IDWithColumn("AD_Column", "Name", name);
m_Tab.setAD_ColumnSortYesNo_ID(id);
}
if (attsMap.get("ADColumnSortOrderNameID")!= null){
name = attsMap.get("ADColumnSortOrderNameID");
id = get_IDWithColumn("AD_Column", "Name", name);
m_Tab.setAD_ColumnSortOrder_ID(id);
}
if (attsMap.get("ADImageNameID")!= null){
name = attsMap.get("ADImageNameID");
id = get_IDWithColumn("AD_Image", "Name", name);
m_Tab.setAD_Image_ID(id);
}
if (attsMap.get("ADProcessNameID")!= null){
name = attsMap.get("ADProcessNameID");
id = get_IDWithColumn("AD_Process", "Name", name);
m_Tab.setAD_Process_ID(id);
}
if (attsMap.get("ADTableNameID")!= null){
name = attsMap.get("ADTableNameID");
id = get_IDWithColumn("AD_Table", "TableName", name);
m_Tab.setAD_Table_ID(id);
}
if (attsMap.get("ADColumnNameID")!= null){
name = attsMap.get("ADColumnNameID");
id = get_IDWithMasterAndColumn ("AD_Column","Name", attsMap.get("ADColumnNameID"), "AD_Table", get_IDWithColumn("AD_Table", "TableName", attsMap.get("ADTableNameID")));
m_Tab.setAD_Column_ID(id);
}
if (attsMap.get("ADWindowNameID")!= null){
name = attsMap.get("ADWindowNameID");
id = get_IDWithColumn("AD_Window", "Name", name);
m_Tab.setAD_Window_ID(id);
}
if (attsMap.get("IncludedTabNameID")!= null){
name = attsMap.get("IncludedTabNameID");
id = get_IDWithColumn("AD_Tab", "Name", name);
m_Tab.setIncluded_Tab_ID(id);
}
m_Tab.setCommitWarning(attsMap.get("CommitWarning"));
m_Tab.setDescription(attsMap.get("Description").replaceAll("'","''").replaceAll(",",""));
m_Tab.setEntityType (attsMap.get("EntityType"));
m_Tab.setHasTree(Boolean.valueOf(attsMap.get("isHasTree")).booleanValue());
m_Tab.setHelp (attsMap.get("Help").replaceAll("'","''").replaceAll(",",""));
m_Tab.setIsActive(attsMap.get("isActive") != null ? Boolean.valueOf(attsMap.get("isActive")).booleanValue():true);
m_Tab.setImportFields (attsMap.get("ImportFields"));
m_Tab.setIsInfoTab (Boolean.valueOf(attsMap.get("isInfoTab")).booleanValue());
m_Tab.setIsReadOnly (Boolean.valueOf(attsMap.get("isReadOnly")).booleanValue());
m_Tab.setIsSingleRow (Boolean.valueOf(attsMap.get("isSingleRow")).booleanValue());
m_Tab.setIsSortTab (Boolean.valueOf(attsMap.get("isSortTab")).booleanValue());
m_Tab.setIsTranslationTab (Boolean.valueOf(attsMap.get("IsTranslationTab")).booleanValue());
m_Tab.setName (attsMap.get("Name"));
m_Tab.setOrderByClause (attsMap.get("OrderByClause"));
m_Tab.setProcessing(false);
m_Tab.setSeqNo (Integer.parseInt(attsMap.get("SeqNo")));
m_Tab.setTabLevel (Integer.parseInt(attsMap.get("TabLevel")));
m_Tab.setWhereClause (attsMap.get("WhereClause"));
if (attsMap.get("ReadOnlyLogic") != null) {
m_Tab.setReadOnlyLogic(attsMap.get("ReadOnlyLogic"));
}
if (attsMap.get("DisplayLogic") != null) {
m_Tab.setDisplayLogic(attsMap.get("DisplayLogic"));
}
if (attsMap.get("isInsertRecord") != null) {
m_Tab.setIsInsertRecord(Boolean.valueOf(attsMap.get("isInsertRecord")).booleanValue());
}
if (attsMap.get("isAdvancedTab") != null) {
m_Tab.setIsAdvancedTab(Boolean.valueOf(attsMap.get("isAdvancedTab")).booleanValue());
}
try {
if (m_Tab.save(m_trxName) == true){
System.out.println("m_Tab.save succeeded");
record_log (1, m_Tab.getName(),"Tab", m_Tab.get_ID(),AD_Backup_ID, Object_Status,"AD_Tab",get_IDWithColumn("AD_Table", "TableName", "AD_Tab"));
} else {
System.out.println("m_Tab.save failed");
record_log (0, m_Tab.getName(),"Tab", m_Tab.get_ID(),AD_Backup_ID, Object_Status,"AD_Tab",get_IDWithColumn("AD_Table", "TableName", "AD_Tab"));
}
} catch(SAXException e) {
System.out.println("Exception in importTab: " + e.getMessage());
}
}
}
public void importWindow(Map<String, String> attsMap) {
MWindow m_Window = null;
String entitytype = attsMap.get("EntityType");
if (entitytype.compareTo("U") == 0 || entitytype.compareTo("D") == 0 ) {
String name = attsMap.get("Name");
int id= get_ID("AD_Window", name);
m_Window = new MWindow(m_ctx, id, m_trxName);
if (id > 0){
AD_Backup_ID = copyRecord("AD_Window",m_Window);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
m_Window.setName(name);
name = attsMap.get("ADImageNameID");
id = get_IDWithColumn("AD_Image", "Name", name);
m_Window.setAD_Image_ID(id);
name = attsMap.get("ADColorNameID");
id = get_IDWithColumn("AD_Color", "Name", name);
m_Window.setAD_Color_ID(id);
m_Window.setDescription(attsMap.get("Description").replaceAll("'","''").replaceAll(",",""));
m_Window.setEntityType(attsMap.get("EntityType"));
m_Window.setHelp (attsMap.get("Help").replaceAll("'","''").replaceAll(",",""));
m_Window.setIsActive(attsMap.get("isActive") != null ? Boolean.valueOf(attsMap.get("isActive")).booleanValue():true);
m_Window.setIsBetaFunctionality(Boolean.valueOf(attsMap.get("isBetaFunctionality")).booleanValue());
m_Window.setIsDefault(Boolean.valueOf(attsMap.get("isDefault")).booleanValue());
m_Window.setIsSOTrx(Boolean.valueOf(attsMap.get("isSOTrx")).booleanValue());
m_Window.setName (attsMap.get("Name"));
m_Window.setProcessing (false);
//m_Window.setWinHeight(Integer.parseInt(atts.getValue("WinHeight")));
//m_Window.setWinWidth (Integer.parseInt(atts.getValue("WinWidth")));
m_Window.setWindowType (attsMap.get("WindowType"));
try {
if (m_Window.save(m_trxName) == true){
System.out.println("m_Window.save succeeded");
record_log (1, m_Window.getName(),"Window", m_Window.get_ID(),AD_Backup_ID, Object_Status,"AD_Window",get_IDWithColumn("AD_Table", "TableName", "AD_Window"));
}
else{
System.out.println("m_Window.save failed");
record_log (0, m_Window.getName(),"Window", m_Window.get_ID(),AD_Backup_ID, Object_Status,"AD_Window",get_IDWithColumn("AD_Table", "TableName", "AD_Window"));
}
} catch(SAXException e) {
System.out.println("Exception in importWindow: " + e.getMessage());
}
}
}
public void importMessage(Map<String, String> attsMap) {
MMessage m_Message = null;
String entitytype = attsMap.get("EntityType");
if (entitytype.equals("U") || entitytype.equals("D") ) {
String value = attsMap.get("Value");
int id = get_IDWithColumn("AD_Message", "value", value);
m_Message = new MMessage(m_ctx, id, m_trxName);
if (id > 0){
AD_Backup_ID = copyRecord("AD_Message",m_Message);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
m_Message.setMsgText(attsMap.get("MsgText").replaceAll("'","''").replaceAll(",",""));
m_Message.setMsgTip(attsMap.get("MsgTip").replaceAll("'","''").replaceAll(",",""));
m_Message.setEntityType(attsMap.get("EntityType"));
m_Message.setIsActive(attsMap.get("isActive") != null ? Boolean.valueOf(attsMap.get("isActive")).booleanValue():true);
m_Message.setValue(value);
m_Message.setMsgType(attsMap.get("MsgType"));
try {
if (m_Message.save(m_trxName) == true){
System.out.println("m_Message.save succeeded");
record_log (1, m_Message.getValue(),"Message", m_Message.get_ID(),AD_Backup_ID, Object_Status,"AD_Message",get_IDWithColumn("AD_Message", "value", "AD_Message"));
}
else{
System.out.println("m_Message.save failed");
record_log (0, m_Message.getValue(),"Message", m_Message.get_ID(),AD_Backup_ID, Object_Status,"AD_Message",get_IDWithColumn("AD_Message", "value", "AD_Message"));
}
} catch(SAXException e) {
System.out.println("Exception in importMessage: " + e.getMessage());
}
}
}
public void importDynValRule(Map<String, String> attsMap) {
String entitytype = attsMap.get("EntityType");
if (entitytype.equals("U") || entitytype.equals("D") ) {
X_AD_Val_Rule m_ValRule = null;
String name = attsMap.get("Name");
int id = get_IDWithColumn("AD_Val_Rule", "name", name);
m_ValRule = new X_AD_Val_Rule(m_ctx, id, m_trxName);
if (id > 0){
AD_Backup_ID = copyRecord("AD_Val_Rule",m_ValRule);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
m_ValRule.setDescription(attsMap.get("Description").replaceAll("'","''").replaceAll(",",""));
m_ValRule.setEntityType(attsMap.get("EntityType"));
m_ValRule.setIsActive(attsMap.get("isActive") != null ? Boolean.valueOf(attsMap.get("isActive")).booleanValue():true);
m_ValRule.setName(name);
m_ValRule.setType(attsMap.get("Type"));
m_ValRule.setCode(attsMap.get("Code"));
try {
if (m_ValRule.save(m_trxName) == true){
System.out.println("m_ValRule.save succeeded");
record_log (1, m_ValRule.getName(),"Task", m_ValRule.get_ID(),AD_Backup_ID, Object_Status,"AD_Val_Rule",get_IDWithColumn("AD_Val_Rule", "Name", "AD_Val_Rule"));
}
else{
System.out.println("m_ValRule.save failed");
record_log (0, m_ValRule.getName(),"Task", m_ValRule.get_ID(),AD_Backup_ID, Object_Status,"AD_Val_Rule",get_IDWithColumn("AD_Val_Rule", "Name", "AD_Val_Rule"));
}
} catch(SAXException e) {
System.out.println("Exception in importDynValRule: " + e.getMessage());
}
}
}
public void importReferenceList(Map<String, String> attsMap) {
//TODO: Solve for date issues with valuefrom valueto
X_AD_Ref_List m_Ref_List = null;
String entitytype = attsMap.get("EntityType");
if (entitytype.compareTo("U") == 0 || entitytype.compareTo("D") == 0 ) {
String name = attsMap.get("Name");
int Referenceid = get_IDWithColumn("AD_Reference", "Name", attsMap.get("ADRefenceNameID"));
int id = get_IDWithMaster("AD_Ref_List", name, "AD_Reference",Referenceid);
m_Ref_List = new X_AD_Ref_List(m_ctx, id, m_trxName);
if (id > 0){
AD_Backup_ID = copyRecord("AD_Ref_List",m_Ref_List);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
name = attsMap.get("ADRefenceNameID");
id = get_IDWithColumn("AD_Reference", "Name", name);
m_Ref_List.setAD_Reference_ID(id);
m_Ref_List.setDescription(attsMap.get("Description").replaceAll("'","''").replaceAll(",",""));
m_Ref_List.setEntityType (attsMap.get("EntityType"));
m_Ref_List.setName(attsMap.get("Name"));
m_Ref_List.setIsActive(attsMap.get("isActive") != null ? Boolean.valueOf(attsMap.get("isActive")).booleanValue():true);
m_Ref_List.setValue(attsMap.get("Value"));
try {
if (m_Ref_List.save(m_trxName) == true){
System.out.println("m_Ref_List.save succeeded");
record_log (1, m_Ref_List.getName(),"Reference List", m_Ref_List.get_ID(),AD_Backup_ID, Object_Status,"AD_Ref_List",get_IDWithColumn("AD_Table", "TableName", "AD_Ref_List"));
}
else{
System.out.println("m_Ref_List.save failed");
record_log (0, m_Ref_List.getName(),"Reference List", m_Ref_List.get_ID(),AD_Backup_ID, Object_Status,"AD_Ref_List",get_IDWithColumn("AD_Table", "TableName", "AD_Ref_List"));
}
} catch(SAXException e) {
System.out.println("Exception in importReferenceList: " + e.getMessage());
}
}
}
public void importReference(Map<String, String> attsMap) {
X_AD_Reference m_Reference = null;
String entitytype = attsMap.get("EntityType");
String name = attsMap.get("name");
if (entitytype.compareTo("U") == 0 || entitytype.compareTo("D") == 0) {
int id = get_ID("AD_Reference", name);
m_Reference = new X_AD_Reference(m_ctx, id, m_trxName);
if (id > 0){
AD_Backup_ID = copyRecord("AD_Reference",m_Reference);
Object_Status = "Update";
}
else{
Object_Status = "New";
AD_Backup_ID =0;
}
m_Reference.setDescription(attsMap.get("Description").replaceAll("'","''").replaceAll(",",""));
m_Reference.setEntityType(attsMap.get("EntityType"));
m_Reference.setHelp(attsMap.get("Help").replaceAll("'","''").replaceAll(",",""));
m_Reference.setIsActive(attsMap.get("isActive") != null ? Boolean.valueOf(attsMap.get("isActive")).booleanValue():true);
m_Reference.setName(attsMap.get("name"));
//m_Reference.setVFormat(atts.getValue("VFormat"));
m_Reference.setValidationType(attsMap.get("ValidationType"));
try {
if (m_Reference.save(m_trxName) == true){
System.out.println("m_Reference.save succeeded");
record_log (1, m_Reference.getName(),"Reference", m_Reference.get_ID(),AD_Backup_ID, Object_Status,"AD_Reference",get_IDWithColumn("AD_Table", "TableName", "AD_Reference"));
}
else{
System.out.println("m_Reference.save failed");
record_log (0, m_Reference.getName(),"Reference", m_Reference.get_ID(),AD_Backup_ID, Object_Status,"AD_Reference",get_IDWithColumn("AD_Table", "TableName", "AD_Reference"));
}
} catch(SAXException e) {
System.out.println("Exception in importReferenceList: " + e.getMessage());
}
}
}
public void handleMenusImport() {
System.out.println("In handleMenusImport");
if(elementAttsMap.containsKey("menu")) {
List<Map<String, String>> m_menusAttsMapList = elementAttsMap.get("menu");
System.out.println("processing " + m_menusAttsMapList.size() + " menus");
while(m_menusAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_menusAttsMapList.get(0);
System.out.println("menu name: " + attsMap.get("ADMenuNameID"));
importMenu(attsMap);
attsMap.clear();
m_menusAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("menu");
}
}
public void handleWorkflowNodeNextsImport() {
System.out.println("In handleWorkflowNodeNextsImport");
if(elementAttsMap.containsKey("workflowNodeNext")) {
List<Map<String, String>> m_workflowNodeNextsAttsMapList = elementAttsMap.get("workflowNodeNext");
System.out.println("processing " + m_workflowNodeNextsAttsMapList.size() + " workflowNodeNexts");
while(m_workflowNodeNextsAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_workflowNodeNextsAttsMapList.get(0);
System.out.println("worklfowNodeNext name: " + attsMap.get("ADWorkflowNodeNextNameID"));
importWorkflowNodeNext(attsMap);
attsMap.clear();
m_workflowNodeNextsAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("workflowNodeNext");
}
}
public void handleReferenceTablesImport() {
System.out.println("In handleReferenceTablesImport");
if(elementAttsMap.containsKey("referencetable")) {
List<Map<String, String>> m_referenceTablesAttsMapList = elementAttsMap.get("referencetable");
System.out.println("processing " + m_referenceTablesAttsMapList.size() + " referenceTables");
while(m_referenceTablesAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_referenceTablesAttsMapList.get(0);
System.out.println("reference table name: " + attsMap.get("ADRefenceNameID"));
importReferenceTable(attsMap);
attsMap.clear();
m_referenceTablesAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("referencetable");
}
}
public void handleProcessParasImport() {
System.out.println("In handleProcessParasImport");
if(elementAttsMap.containsKey("processpara")) {
List<Map<String, String>> m_processParasAttsMapList = elementAttsMap.get("processpara");
System.out.println("processing " + m_processParasAttsMapList.size() + " processparas");
while(m_processParasAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_processParasAttsMapList.get(0);
System.out.println("processPara name: " + attsMap.get("Name"));
importProcessPara(attsMap);
attsMap.clear();
m_processParasAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("processpara");
}
}
public void handlePreferencesImport() {
System.out.println("In handlePreferencesImport");
if(elementAttsMap.containsKey("preference")) {
List<Map<String, String>> m_preferencesAttsMapList = elementAttsMap.get("preference");
System.out.println("processing " + m_preferencesAttsMapList.size() + " preferences");
while(m_preferencesAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_preferencesAttsMapList.get(0);
System.out.println("preference name: " + attsMap.get("Name"));
importPreference(attsMap);
attsMap.clear();
m_preferencesAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("preference");
}
}
public void handleTabsImport() {
System.out.println("In handleTabsImport");
if(elementAttsMap.containsKey("tab")) {
List<Map<String, String>> m_tabsAttsMapList = elementAttsMap.get("tab");
System.out.println("processing " + m_tabsAttsMapList.size() + " tabs");
while(m_tabsAttsMapList.size() > 0 ) {
Map<String, String> attsMap = m_tabsAttsMapList.get(0);
System.out.println("tab name: " + attsMap.get("Name"));
importTab(attsMap);
attsMap.clear();
m_tabsAttsMapList.remove(0);
/*for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
} */
}
elementAttsMap.remove("tab");
}
}
public void processImportStructure() {
System.out.println("In processImportStructure");
handleWindowsImport();
handleDynValRulesImport();
handleFormsImport();
handleMessagesImport();
handleReferencesImport();
handleTablesImport();
handleReferenceListsImport();
handleFieldsImport();
handlePrintFormatsImport();
handlePrintFormatItemsImport();
handleWorkflowsImport();
handleProcessesImport();
handleColumnsImport();
handleWorkflowNodesImport();
handleWorkflowNodeNextsImport();
handleMenusImport();
handleReferenceTablesImport();
handleProcessParasImport();
handlePreferencesImport();
handleTabsImport();
for (Map.Entry<String, List<Map<String, String>>> e : elementAttsMap.entrySet()) {
System.out.println(e.getKey());
}
/*try {
DB.commit(true, m_trxName);
} catch (SQLException e) {
e.printStackTrace();
} */
}
/**
* Get ID from Name for a table.
* TODO: substitute with PO.getAllIDs
*
* @param tableName
* @param name
*
*/
public int get_ID (String tableName, String name) {
int id = 0;
sqlB = new StringBuffer ("select "+tableName+"_ID from "+tableName+" where name=?");
if (!tableName.startsWith("AD_"))
sqlB = sqlB.append(" and AD_Client_ID=?");
try {
PreparedStatement pstmt = DB.prepareStatement(sqlB.toString(), m_trxName);
pstmt.setString(1, name);
if (!tableName.startsWith("AD_"))
pstmt.setInt(2, m_AD_Client_ID);
ResultSet rs = pstmt.executeQuery();
if (rs.next())
id = rs.getInt(1);
rs.close();
pstmt.close();
pstmt = null;
}
catch (Exception e) {
System.out.println ("get_ID:"+e);
}
return id;
}
/**
* Get ID from column value for a table.
*
* @param tableName
* @param columName
* @param name
*/
public int get_IDWithColumn (String tableName, String columnName, Object value) {
int id = 0;
sqlB = new StringBuffer ("select "+tableName+"_ID from "+tableName+" where UPPER("+columnName+")=?");
//StringBuffer sqlC = new StringBuffer ("select "+tableName+"_ID from "+tableName+" where "+columnName+"="+value.toString());
if (!tableName.startsWith("AD_"))
sqlB = sqlB.append(" and AD_Client_ID=?");
//here!
sqlB = sqlB.append(" Order By "+tableName+"_ID");
try {
PreparedStatement pstmt = DB.prepareStatement(sqlB.toString(), m_trxName);
if (value instanceof String)
pstmt.setString(1, ((String)value).toUpperCase());
else if (value instanceof Integer)
pstmt.setInt(1, ((Integer)value).intValue());
if (!tableName.startsWith("AD_"))
pstmt.setInt(2, m_AD_Client_ID);
ResultSet rs = pstmt.executeQuery();
if (rs.next())
id = rs.getInt(1);
rs.close();
pstmt.close();
pstmt = null;
}
catch (Exception e) {
System.out.println ("get_ID:"+e);
}
return id;
}
/**
* Get ID from Name for a table with a Master reference.
*
* @param tableName
* @param name
* @param tableNameMaster
* @param nameMaster
*/
public int get_IDWithMaster (String tableName, String name, String tableNameMaster, String nameMaster) {
int id = 0;
sqlB = new StringBuffer ("select "+tableName+"_ID from "+tableName+" where UPPER(name)=? and "
+ tableNameMaster+"_ID = (select "+tableNameMaster+"_ID from "+tableNameMaster+" where UPPER(name)=?)");
try {
PreparedStatement pstmt = DB.prepareStatement(sqlB.toString(), m_trxName);
pstmt.setString(1, name.toUpperCase());
pstmt.setString(2, nameMaster.toUpperCase());
ResultSet rs = pstmt.executeQuery();
if (rs.next())
id = rs.getInt(1);
rs.close();
pstmt.close();
pstmt = null;
}
catch (Exception e) {
System.out.println ("get_IDWithMaster:"+e);
}
return id;
}
/**
* Get ID from Name for a table with a Master reference.
*
* @param tableName
* @param name
* @param tableNameMaster
* @param nameMaster
*/
public int get_IDWithMasterAndColumn (String tableName, String columnName, String name, String tableNameMaster, int masterID) {
int id = 0;
sqlB = new StringBuffer ("select "+tableName+"_ID from "+tableName+" where UPPER("+columnName+")=? and "
+ tableNameMaster+"_ID =?");
//StringBuffer sqlC = new StringBuffer ("select "+tableName+"_ID from "+tableName+" where "+columnName+"="+name+" and "
// + tableNameMaster+"_ID ="+masterID);
System.out.println(sqlB.toString());
try {
PreparedStatement pstmt = DB.prepareStatement(sqlB.toString(), m_trxName);
pstmt.setString(1, name.toUpperCase());
pstmt.setInt(2, masterID);
ResultSet rs = pstmt.executeQuery();
if (rs.next())
id = rs.getInt(1);
rs.close();
pstmt.close();
pstmt = null;
}
catch (Exception e) {
System.out.println ("get_IDWithMasterAndColumn:"+e);
}
return id;
}
/**
* Get ID from Name for a table with a Master reference ID.
*
* @param tableName
* @param name
* @param tableNameMaster
* @param masterID
*/
public int get_IDWithMaster (String tableName, String name, String tableNameMaster, int masterID) {
int id = 0;
sqlB = new StringBuffer ("select "+tableName+"_ID from "+tableName+" where name=? and "
+ tableNameMaster+"_ID=?");
try {
PreparedStatement pstmt = DB.prepareStatement(sqlB.toString(), m_trxName);
pstmt.setString(1, name);
pstmt.setInt(2, masterID);
ResultSet rs = pstmt.executeQuery();
if (rs.next())
id = rs.getInt(1);
rs.close();
pstmt.close();
pstmt = null;
}
catch (Exception e) {
System.out.println ("get_IDWithMasterID:"+e);
}
return id;
}
/**
* Get ID from Name for a table.
* TODO: substitute with PO.getAllIDs
*
* @param tableName
* @param name
*/
public int getIDbyName (String tableName, String name) {
int id = 0;
String sql = "SELECT "+tableName+"_ID "
+ "FROM "+tableName+" "
+ "WHERE name=?";
if (!tableName.startsWith("AD_"))
sql = sql + " AND AD_Client_ID=?";
try {
PreparedStatement pstmt = DB.prepareStatement(sql, m_trxName);
pstmt.setString(1, name);
if (!tableName.startsWith("AD_"))
pstmt.setInt(2, m_AD_Client_ID);
ResultSet rs = pstmt.executeQuery();
if (rs.next())
id = rs.getInt(1);
rs.close();
pstmt.close();
pstmt = null;
}
catch (Exception e) {
System.out.println("getID:"+e);
}
return id;
}
/**
* Write results to log and records in history table
*
* @param success
* @param tableName
* @param objectType
* @param objectID
* @param objectStatus
* @throws SAXException
*
*/
public int record_log (int success, String objectName,String objectType, int objectID,int objectIDBackup, String objectStatus, String tableName, int AD_Table_ID) throws SAXException{
System.out.println("In record_log");
String recordLayout;
int id = 0;
if (success == 1){
System.out.println("In record_log 1");
//hd_documemt.startElement("","","Successfull",attsOut);
recordLayout = "Type:"+objectType + " - Name:"+objectName + " - ID:"+objectID +" - Action:"+objectStatus+" - Success";
hd_documemt.startElement("","","Success",attsOut);
hd_documemt.characters(recordLayout.toCharArray(),0,recordLayout.length());
hd_documemt.endElement("","","Success");
//hd_documemt.endElement("","","Successfull");
//String sql2 = "SELECT MAX(AD_PACKAGE_IMP_DETAIL_ID) FROM AD_PACKAGE_IMP_DETAIL";
//int id = DB.getSQLValue(m_trxName, sql2)+1;
System.out.println("In record_log 2");
id = MSequence.getNextID (Env.getAD_Client_ID(m_ctx), "AD_Package_Imp_Detail", m_trxName);
System.out.println("In record_log 3");
sqlB = new StringBuffer ("Insert INTO AD_Package_Imp_Detail"
+ "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, "
+ "AD_PACKAGE_IMP_DETAIL_ID, AD_PACKAGE_IMP_ID, TYPE, NAME,"
+ " ACTION, SUCCESS, AD_ORIGINAL_ID, AD_BACKUP_ID, TABLENAME, AD_TABLE_ID)"
+ " VALUES ("
+ " "+ Env.getAD_Client_ID(m_ctx)
+ ", "+ Env.getAD_Org_ID(m_ctx)
+ ", "+ Env.getAD_User_ID(m_ctx)
+ ", "+ Env.getAD_User_ID(m_ctx)
+ ", " + id
+ ", " + AD_Package_Imp_ID
+ ", '" + objectType
+ "', '" + objectName
+ "', '" + objectStatus
+ "', 'Success'"
+ ", "+objectID
+ ", "+objectIDBackup
+ ", '"+tableName
+ "', "+AD_Table_ID
+")");
int no = DB.executeUpdate (sqlB.toString(), m_trxName);
System.out.println("In record_log 4");
if (no == -1)
System.out.println("Insert to import detail failed");
}
else{
PK_Status = "Completed with errors";
hd_documemt.startElement("","","Failure",attsOut);
recordLayout = "Type:"+objectType + " - Name:"+tableName + " - ID:"+objectID +" - Action:"+objectStatus+" - Failure";
//hd_documemt.startElement("","","Success",attsOut);
hd_documemt.characters(recordLayout.toCharArray(),0,recordLayout.length());
//hd_documemt.endElement("","","Success");
hd_documemt.endElement("","","Failure");
//String sql2 = "SELECT MAX(AD_PACKAGE_IMP_DETAIL_ID) FROM AD_PACKAGE_IMP_DETAIL";
//int id = DB.getSQLValue(m_trxName,sql2)+1;
id = MSequence.getNextID (Env.getAD_Client_ID(m_ctx), "AD_Package_Imp_Detail", m_trxName);
sqlB = new StringBuffer ("Insert INTO AD_Package_Imp_Detail"
+ "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, "
+ "AD_PACKAGE_IMP_DETAIL_ID, AD_PACKAGE_IMP_ID, TYPE, NAME,"
+ " ACTION, SUCCESS, AD_ORIGINAL_ID, AD_BACKUP_ID, TABLENAME, AD_TABLE_ID)"
+ " VALUES ("
+ " "+ Env.getAD_Client_ID(m_ctx)
+ ", "+ Env.getAD_Org_ID(m_ctx)
+ ", "+ Env.getAD_User_ID(m_ctx)
+ ", "+ Env.getAD_User_ID(m_ctx)
+ ", " + id
+ ", " + AD_Package_Imp_ID
+ ", '" + objectType
+ "', '" + objectName
+ "', '" + objectStatus
+ "', 'Failure'"
+ ", "+objectID
+ ", "+objectIDBackup
+ ", '"+tableName
+ "', "+AD_Table_ID
+")");
int no = DB.executeUpdate (sqlB.toString(), m_trxName);
if (no == -1)
System.out.println("Insert to import detail failed");
}
Object_Status = "Status not set";
return id;
}
public void set_TrxName(String trxName) {
m_trxName = trxName;
}
// globalqss - add support for trx in 3.1.2
public void setCtx(Properties ctx) {
m_ctx = ctx;
}
/**
* Make backup copy of record.
*
* @param tablename
*
*
*
*/
public int copyRecord(String tableName,PO from){
// Create new record
int idBackup = 0;
String colValue=null;
int tableID = get_IDWithColumn("AD_Table", "TableName", tableName);
POInfo poInfo = POInfo.getPOInfo(m_ctx, tableID);
for (int i = 0; i < poInfo.getColumnCount(); i++){
String colName = poInfo.getColumnName(i);
colValue=null;
int columnID =get_IDWithMasterAndColumn ("AD_Column", "ColumnName", poInfo.getColumnName(i), "AD_Table", tableID);
StringBuffer sqlD = new StringBuffer("SELECT AD_Reference_ID FROM AD_COLUMN WHERE AD_Column_ID = '"+columnID+"'");
int referenceID = DB.getSQLValue(m_trxName,sqlD.toString());
idBackup = MSequence.getNextID (Env.getAD_Client_ID(m_ctx), "AD_Package_Imp_Backup", m_trxName);
sqlD = new StringBuffer("SELECT MAX(AD_PACKAGE_IMP_DETAIL_ID) FROM AD_PACKAGE_IMP_DETAIL");
int idDetail = DB.getSQLValue(m_trxName,sqlD.toString())+1;
if (referenceID == 10 || referenceID == 14 || referenceID == 34 || referenceID == 17)
if (from.get_Value(i)!= null)
colValue = from.get_Value(i).toString().replaceAll("'","''");
else if (referenceID == 20|| referenceID == 28)
if (from.get_Value(i)!= null)
colValue = from.get_Value(i).toString().replaceAll("'","''");
else
;//Ignore
sqlB = new StringBuffer ("Insert INTO AD_Package_Imp_Backup"
+ "(AD_Client_ID, AD_Org_ID, CreatedBy, UpdatedBy, "
+ "AD_PACKAGE_IMP_BACKUP_ID, AD_PACKAGE_IMP_DETAIL_ID, AD_PACKAGE_IMP_ID,"
+ " AD_TABLE_ID, AD_COLUMN_ID, AD_REFERENCE_ID, COLVALUE)"
+ "VALUES("
+ " "+ Env.getAD_Client_ID(m_ctx)
+ ", "+ Env.getAD_Org_ID(m_ctx)
+ ", "+ Env.getAD_User_ID(m_ctx)
+ ", "+ Env.getAD_User_ID(m_ctx)
+ ", " + idBackup
+ ", " + idDetail
+ ", " + AD_Package_Imp_ID
+ ", " + tableID
+ ", " + columnID
+ ", " + referenceID
+ ", '" + (colValue != null ? colValue : from.get_Value(i))
+"')");
int no = DB.executeUpdate (sqlB.toString(), m_trxName);
if (no == -1)
System.out.println("Insert to import backup failed");
//}
}
return idBackup;
}
// to aid with unit testing
public void setHd_document(TransformerHandler hd_documemt) {
this.hd_documemt = hd_documemt;
}
/**
* Check if column exists in database and modify. If not create column.
*
* @param tablename
* @param columnname
* @param v_AD_Reference_ID
* @param v_FieldLength
* @param v_DefaultValue
* @param v_IsMandatory
*
*/
public int createcolumn (MColumn column){
MTable table = new MTable(m_ctx, column.getAD_Table_ID(), m_trxName);
if (table.isView())
return 0;
int no = 0;
String sql = null;
ResultSet rst = null;
ResultSet rsc = null;
try {
// Find Column in Database
DatabaseMetaData md = DB.getConnectionRO().getMetaData();
String catalog = DB.getDatabase().getCatalog();
String schema = DB.getDatabase().getSchema();
String tableName = table.getTableName();
String columnName = column.getColumnName();
if (DB.isOracle()) {
tableName = tableName.toUpperCase();
columnName = columnName.toUpperCase();
} else if (DB.isPostgreSQL()) {
tableName = tableName.toLowerCase();
columnName = columnName.toLowerCase();
}
rst = md.getTables(catalog, schema, tableName, new String[] {"TABLE"});
if (! rst.next()) {
// table doesn't exist
sql = table.getSQLCreate ();
} else {
//
rsc = md.getColumns(catalog, schema, tableName, columnName);
if (rsc.next())
{
// update existing column
boolean notNull = DatabaseMetaData.columnNoNulls == rsc.getInt("NULLABLE");
sql = column.getSQLModify(table, column.isMandatory() != notNull);
} else {
// No existing column
sql = column.getSQLAdd(table);
}
rsc.close();
rsc = null;
}
rst.close();
rst = null;
System.out.println(sql);
if (sql.indexOf(DB.SQLSTATEMENT_SEPARATOR) == -1)
{
no = DB.executeUpdate(sql, false, m_trxName);
}
else
{
String statements[] = sql.split(DB.SQLSTATEMENT_SEPARATOR);
for (int i = 0; i < statements.length; i++)
{
int count = DB.executeUpdate(statements[i], false, m_trxName);
no += count;
}
}
} catch (SQLException e) {
e.printStackTrace();
if (rsc != null) {
try {
rsc.close();
} catch (SQLException e1) { }
rsc = null;
}
if (rst != null) {
try {
rst.close();
} catch (SQLException e1) { }
rst = null;
}
return 0;
}
// postgres requires commit on DDL (ALTER,CREATE)
if (DB.isPostgreSQL()) {
try {
DB.commit(true, m_trxName);
} catch (SQLException e) {
e.printStackTrace();
return 0;
}
}
return 1;
}
}
public void testXMLImportStructure() {
String trxName = "test";
Trx m_trx = Trx.get(Trx.createTrxName("SvrProcess"), true);
File in = new File("PackOut.xml");
if (!in.exists()) {
String msg = "File does not exist: PackOut.xml ";
System.out.println("importXML:" + msg);
assertTrue("testXMLImportStructure", false);
} else {
try {
System.out.println("starting");
TestPackInHandler handler = new TestPackInHandler();
handler.setCtx(m_Ctx);
handler.set_TrxName("test");
SAXTransformerFactory tf_document = null;
TransformerHandler hd_documemt = null;
tf_document = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
try {
hd_documemt = tf_document.newTransformerHandler();
} catch (TransformerConfigurationException e2) {
System.out.println("startElement:"+e2);
}
handler.setHd_document(hd_documemt);
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
String msg = "Start Parser";
System.out.println(msg);
parser.parse(in, handler);
msg = "End Parser";
System.out.println(msg);
Map<String, List<Map<String, String>>> elementAttsMap = handler.getElementAttsMap();
/* for (Map.Entry<String, List<Map<String, String>>> e : elementAttsMap.entrySet()) {
//System.out.println(e.getKey() + ": " + e.getValue());
List<Map<String, String>> m_attsMapList = e.getValue();
System.out.println("element: " + e.getKey() );
System.out.println("list size: " + m_attsMapList.size());
for (int j = 0; j < m_attsMapList.size(); j++ ) {
Map<String, String> attsMap = m_attsMapList.get(j);
System.out.println("attsMap length: " + attsMap.size());
for (Map.Entry<String, String> f : attsMap.entrySet()) {
System.out.println( "attsMap begin ----------");
System.out.println(f.getKey() + ": " + f.getValue());
System.out.println( "atts end ----------");
}
}
} */
} catch (Exception e) {
System.out.println("importXML exception: " + e);
}
}
assertTrue("testXMLImportStructure", true);
}
public static void main(String[] args) {
System.out.println("In main of XMLImportStructureTest");
XMLImportStructureTest m_XMLImportStructureTest = new XMLImportStructureTest();
try {
m_XMLImportStructureTest.setUp();
m_XMLImportStructureTest.testXMLImportStructure();
} catch(Exception e) {
System.out.println("Exception with m_XMLImportStructureTest.setUp: " + e.getMessage());
}
}
}