[ 2876218 ] 2pack is not using proper key identifiers

https://sourceforge.net/tracker/?func=detail&aid=2876218&group_id=176962&atid=879335
This commit is contained in:
teo_sarca 2009-10-10 13:49:19 +00:00
parent e5ca457c33
commit 24a024a602
4 changed files with 61 additions and 37 deletions

View File

@ -13,6 +13,7 @@
* *
* Copyright (C) 2005 Robert Klein. robeklein@hotmail.com * Copyright (C) 2005 Robert Klein. robeklein@hotmail.com
* Contributor(s): Low Heng Sin hengsin@avantz.com * Contributor(s): Low Heng Sin hengsin@avantz.com
* Teo Sarca, teo.sarca@gmail.com
*****************************************************************************/ *****************************************************************************/
package org.adempiere.pipo.handler; package org.adempiere.pipo.handler;
@ -96,10 +97,16 @@ public class ColumnElementHandler extends AbstractElementHandler {
} }
m_Column.setColumnName(columnName); m_Column.setColumnName(columnName);
String Name = atts.getValue("ADProcessNameID"); // Process
id = get_IDWithColumn(ctx, "AD_Process", "Name", Name); String processName = atts.getValue("ADProcessNameID");
m_Column.setAD_Process_ID(id); int AD_Process_ID = get_IDWithColumn(ctx, "AD_Process", "Value", processName);
Name = atts.getValue("ADReferenceNameID"); if (AD_Process_ID <= 0 /** TODO PackOut version check 005 */)
{
AD_Process_ID = get_IDWithColumn(ctx, "AD_Process", "Name", processName);
}
m_Column.setAD_Process_ID(AD_Process_ID);
//
String Name = atts.getValue("ADReferenceNameID");
id = get_IDWithColumn(ctx, "AD_Reference", "Name", Name); id = get_IDWithColumn(ctx, "AD_Reference", "Name", Name);
m_Column.setAD_Reference_ID(id); m_Column.setAD_Reference_ID(id);
// log.info("Column ID ->"+id); // log.info("Column ID ->"+id);
@ -408,18 +415,29 @@ public class ColumnElementHandler extends AbstractElementHandler {
atts.addAttribute("", "", "ADColumnNameID", "CDATA", name); atts.addAttribute("", "", "ADColumnNameID", "CDATA", name);
} else } else
atts.addAttribute("", "", "ADColumnNameID", "CDATA", ""); atts.addAttribute("", "", "ADColumnNameID", "CDATA", "");
if (m_Column.getAD_Process_ID() > 0) { //
sql = "SELECT Name FROM AD_Process WHERE AD_Process_ID=?"; if (m_Column.getAD_Process_ID() > 0)
name = DB.getSQLValueString(null, sql, m_Column.getAD_Process_ID()); {
sql = "SELECT Value FROM AD_Process WHERE AD_Process_ID=?";
name = DB.getSQLValueStringEx(null, sql, m_Column.getAD_Process_ID());
atts.addAttribute("", "", "ADProcessNameID", "CDATA", name); atts.addAttribute("", "", "ADProcessNameID", "CDATA", name);
} else }
else
{
atts.addAttribute("", "", "ADProcessNameID", "CDATA", ""); atts.addAttribute("", "", "ADProcessNameID", "CDATA", "");
if (m_Column.getAD_Element_ID() > 0) { }
sql = "SELECT Name FROM AD_Element WHERE AD_Element_ID=?"; // Element - this info is not needed since we search for element based on ColumnName
name = DB.getSQLValueString(null, sql, m_Column.getAD_Element_ID()); if (m_Column.getAD_Element_ID() > 0)
{
sql = "SELECT ColumnName FROM AD_Element WHERE AD_Element_ID=?";
name = DB.getSQLValueStringEx(null, sql, m_Column.getAD_Element_ID());
atts.addAttribute("", "", "ADElementNameID", "CDATA", name); atts.addAttribute("", "", "ADElementNameID", "CDATA", name);
} else }
else
{
atts.addAttribute("", "", "ADElementNameID", "CDATA", ""); atts.addAttribute("", "", "ADElementNameID", "CDATA", "");
}
//
if (m_Column.getAD_Reference_ID() > 0) { if (m_Column.getAD_Reference_ID() > 0) {
sql = "SELECT Name FROM AD_Reference WHERE AD_Reference_ID=?"; sql = "SELECT Name FROM AD_Reference WHERE AD_Reference_ID=?";
name = DB.getSQLValueString(null, sql, m_Column name = DB.getSQLValueString(null, sql, m_Column

View File

@ -13,6 +13,7 @@
* *
* Copyright (C) 2005 Robert Klein. robeklein@hotmail.com * Copyright (C) 2005 Robert Klein. robeklein@hotmail.com
* Contributor(s): Low Heng Sin hengsin@avantz.com * Contributor(s): Low Heng Sin hengsin@avantz.com
* Teo Sarca, teo.sarca@gmail.com
*****************************************************************************/ *****************************************************************************/
package org.adempiere.pipo.handler; package org.adempiere.pipo.handler;

View File

@ -13,6 +13,7 @@
* *
* Copyright (C) 2005 Robert Klein. robeklein@hotmail.com * Copyright (C) 2005 Robert Klein. robeklein@hotmail.com
* Contributor(s): Low Heng Sin hengsin@avantz.com * Contributor(s): Low Heng Sin hengsin@avantz.com
* Teo Sarca, teo.sarca@gmail.com
*****************************************************************************/ *****************************************************************************/
package org.adempiere.pipo.handler; package org.adempiere.pipo.handler;
@ -97,7 +98,11 @@ public class ProcessParaElementHandler extends AbstractElementHandler {
name = atts.getValue("ADElementNameID"); name = atts.getValue("ADElementNameID");
if (name != null && name.trim().length() > 0) { if (name != null && name.trim().length() > 0) {
id = get_IDWithColumn(ctx, "AD_Element", "Name", name); id = get_IDWithColumn(ctx, "AD_Element", "ColumnName", name);
if (id <= 0 /** Check Packout version - 005 */)
{
id = get_IDWithColumn(ctx, "AD_Element", "Name", name);
}
// Setup Element // Setup Element
X_AD_Element adElement = new X_AD_Element(ctx, id, getTrxName(ctx)); X_AD_Element adElement = new X_AD_Element(ctx, id, getTrxName(ctx));
if (adElement.getAD_Element_ID() == 0) { if (adElement.getAD_Element_ID() == 0) {
@ -240,9 +245,8 @@ public class ProcessParaElementHandler extends AbstractElementHandler {
} else } else
atts.addAttribute("", "", "ADProcessParaNameID", "CDATA", ""); atts.addAttribute("", "", "ADProcessParaNameID", "CDATA", "");
if (m_Processpara.getAD_Element_ID() > 0) { if (m_Processpara.getAD_Element_ID() > 0) {
sql = "SELECT Name FROM AD_Element WHERE AD_Element_ID=?"; sql = "SELECT ColumnName FROM AD_Element WHERE AD_Element_ID=?";
name = DB.getSQLValueString(null, sql, m_Processpara name = DB.getSQLValueStringEx(null, sql, m_Processpara.getAD_Element_ID());
.getAD_Element_ID());
atts.addAttribute("", "", "ADElementNameID", "CDATA", name); atts.addAttribute("", "", "ADElementNameID", "CDATA", name);
} else } else
atts.addAttribute("", "", "ADElementNameID", "CDATA", ""); atts.addAttribute("", "", "ADElementNameID", "CDATA", "");

View File

@ -13,6 +13,7 @@
* *
* Copyright (C) 2005 Robert Klein. robeklein@hotmail.com * Copyright (C) 2005 Robert Klein. robeklein@hotmail.com
* Contributor(s): Low Heng Sin hengsin@avantz.com * Contributor(s): Low Heng Sin hengsin@avantz.com
* Teo Sarca, teo.sarca@gmail.com
*****************************************************************************/ *****************************************************************************/
package org.adempiere.pipo.handler; package org.adempiere.pipo.handler;
@ -38,8 +39,8 @@ import org.xml.sax.Attributes;
import org.xml.sax.SAXException; import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl; import org.xml.sax.helpers.AttributesImpl;
public class TabElementHandler extends AbstractElementHandler { public class TabElementHandler extends AbstractElementHandler
{
private FieldElementHandler fieldHandler = new FieldElementHandler(); private FieldElementHandler fieldHandler = new FieldElementHandler();
public void startElement(Properties ctx, Element element) throws SAXException { public void startElement(Properties ctx, Element element) throws SAXException {
@ -128,10 +129,18 @@ public class TabElementHandler extends AbstractElementHandler {
id = get_IDWithColumn(ctx, "AD_Table", "TableName", name); id = get_IDWithColumn(ctx, "AD_Table", "TableName", name);
m_Tab.setAD_Table_ID(id); m_Tab.setAD_Table_ID(id);
} }
if (getStringValue(atts,"ADColumnNameID")!= null){ if (getStringValue(atts,"ADColumnNameID")!= null) {
name = atts.getValue("ADColumnNameID"); name = atts.getValue("ADColumnNameID");
id = get_IDWithMasterAndColumn (ctx, "AD_Column","Name", atts.getValue("ADColumnNameID"), "AD_Table", get_IDWithColumn(ctx,"AD_Table", "TableName", atts.getValue("ADTableNameID"))); id = get_IDWithMasterAndColumn(ctx, "AD_Column","ColumnName", atts.getValue("ADColumnNameID"), "AD_Table", m_Tab.getAD_Table_ID());
m_Tab.setAD_Column_ID(id); if (id <= 0 /** TODO Check PackOut Version -- 005 */)
{
id = get_IDWithMasterAndColumn(ctx, "AD_Column","Name", atts.getValue("ADColumnNameID"), "AD_Table", m_Tab.getAD_Table_ID());
}
m_Tab.setAD_Column_ID(id);
if (id <= 0)
{
log.warning("@NotFound@ @AD_Column_ID@ - @Name@:"+name+", @AD_Table_ID@:"+atts.getValue("ADTableNameID"));
}
} }
m_Tab.setAD_Window_ID(windowid); m_Tab.setAD_Window_ID(windowid);
@ -198,16 +207,14 @@ public class TabElementHandler extends AbstractElementHandler {
String sql = "SELECT * FROM AD_FIELD WHERE AD_TAB_ID = " + AD_Tab_ID String sql = "SELECT * FROM AD_FIELD WHERE AD_TAB_ID = " + AD_Tab_ID
+ "ORDER BY SEQNO asc, "+X_AD_Field.COLUMNNAME_AD_Field_ID; + "ORDER BY SEQNO asc, "+X_AD_Field.COLUMNNAME_AD_Field_ID;
PreparedStatement pstmt = null; PreparedStatement pstmt = null;
pstmt = DB.prepareStatement (sql, getTrxName(ctx)); ResultSet rs = null;
try { try {
ResultSet rs = pstmt.executeQuery(); pstmt = DB.prepareStatement (sql, getTrxName(ctx));
rs = pstmt.executeQuery();
while (rs.next()) while (rs.next())
{ {
createField(ctx, document, rs.getInt("AD_Field_ID")); createField(ctx, document, rs.getInt("AD_Field_ID"));
} }
rs.close();
pstmt.close();
pstmt = null;
} }
catch (Exception e) catch (Exception e)
{ {
@ -216,14 +223,8 @@ public class TabElementHandler extends AbstractElementHandler {
} }
finally finally
{ {
try DB.close(rs, pstmt);
{ rs = null; pstmt = null;
if (pstmt != null)
pstmt.close ();
}
catch (Exception e)
{}
pstmt = null;
} }
document.endElement("","","tab"); document.endElement("","","tab");
@ -250,21 +251,21 @@ public class TabElementHandler extends AbstractElementHandler {
atts.addAttribute("", "", "AD_Tab_ID", "CDATA", Integer.toString(m_Tab.getAD_Tab_ID())); atts.addAttribute("", "", "AD_Tab_ID", "CDATA", Integer.toString(m_Tab.getAD_Tab_ID()));
atts.addAttribute("","","Name","CDATA",(m_Tab.getName () != null ? m_Tab.getName ():"")); atts.addAttribute("","","Name","CDATA",(m_Tab.getName () != null ? m_Tab.getName ():""));
if (m_Tab.getAD_ColumnSortOrder_ID()>0){ if (m_Tab.getAD_ColumnSortOrder_ID()>0){
sql = "SELECT Name FROM AD_Column WHERE AD_Column_ID=?"; sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?";
name = DB.getSQLValueString(null,sql,m_Tab.getAD_ColumnSortOrder_ID()); name = DB.getSQLValueString(null,sql,m_Tab.getAD_ColumnSortOrder_ID());
atts.addAttribute("","","ADColumnSortOrderNameID","CDATA",name); atts.addAttribute("","","ADColumnSortOrderNameID","CDATA",name);
} }
else else
atts.addAttribute("","","ADColumnSortOrderNameID","CDATA",""); atts.addAttribute("","","ADColumnSortOrderNameID","CDATA","");
if (m_Tab.getAD_ColumnSortYesNo_ID()>0 ){ if (m_Tab.getAD_ColumnSortYesNo_ID()>0 ){
sql = "SELECT Name FROM AD_Column WHERE AD_Column_ID=?"; sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?";
name = DB.getSQLValueString(null,sql,m_Tab.getAD_ColumnSortYesNo_ID()); name = DB.getSQLValueString(null,sql,m_Tab.getAD_ColumnSortYesNo_ID());
atts.addAttribute("","","ADColumnSortYesNoNameID","CDATA",name); atts.addAttribute("","","ADColumnSortYesNoNameID","CDATA",name);
} }
else else
atts.addAttribute("","","ADColumnSortYesNoNameID","CDATA",""); atts.addAttribute("","","ADColumnSortYesNoNameID","CDATA","");
if (m_Tab.getAD_Column_ID()>0 ){ if (m_Tab.getAD_Column_ID()>0 ){
sql = "SELECT Name FROM AD_Column WHERE AD_Column_ID=?"; sql = "SELECT ColumnName FROM AD_Column WHERE AD_Column_ID=?";
name = DB.getSQLValueString(null,sql,m_Tab.getAD_Column_ID()); name = DB.getSQLValueString(null,sql,m_Tab.getAD_Column_ID());
atts.addAttribute("","","ADColumnNameID","CDATA",name); atts.addAttribute("","","ADColumnNameID","CDATA",name);
} }