details: https://code.openbravo.com/erp/devel/pi/rev/c97041fdd8fe changeset: 14751:c97041fdd8fe user: Asier Lostalé <asier.lostale <at> openbravo.com> date: Mon Nov 28 15:32:42 2011 +0100 summary: related to bug 19195: Better log when export trl query fails
details: https://code.openbravo.com/erp/devel/pi/rev/dd72bcec5a07 changeset: 14752:dd72bcec5a07 user: Asier Lostalé <asier.lostale <at> openbravo.com> date: Mon Nov 28 15:34:16 2011 +0100 summary: fxed bug 19195: Widget menu entries translations are not exported Changed OBKMO_WidgetClassMenu_Trl.AD_Language column refrence from String to Table. Being String caused it to be identified as a tranlation text instead of FK to language table. details: https://code.openbravo.com/erp/devel/pi/rev/323950c8eb31 changeset: 14753:323950c8eb31 user: Asier Lostalé <asier.lostale <at> openbravo.com> date: Mon Nov 28 16:34:20 2011 +0100 summary: fixed bug 19156: Translation in Query Widget Columns is not exportable Adding an additional level when looking for ad_module_id column in *trl tables diffstat: modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_COLUMN.xml | 3 +- src/org/openbravo/erpCommon/ad_forms/TranslationManager.java | 42 ++++++--- src/org/openbravo/erpCommon/ad_forms/Translation_data.xsql | 35 +++++++- 3 files changed, 60 insertions(+), 20 deletions(-) diffs (180 lines): diff -r 5170deb9c581 -r 323950c8eb31 modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_COLUMN.xml --- a/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_COLUMN.xml Mon Nov 28 13:57:46 2011 +0100 +++ b/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_COLUMN.xml Mon Nov 28 16:34:20 2011 +0100 @@ -254,7 +254,8 @@ <!--4246D6A142A14DD0A9272C784D1EEBD0--> <HELP><![CDATA[The Language identifies the language to use for display]]></HELP> <!--4246D6A142A14DD0A9272C784D1EEBD0--> <COLUMNNAME><![CDATA[AD_Language]]></COLUMNNAME> <!--4246D6A142A14DD0A9272C784D1EEBD0--> <AD_TABLE_ID><![CDATA[09C543CF4D854CB4A706E8EF1591F042]]></AD_TABLE_ID> -<!--4246D6A142A14DD0A9272C784D1EEBD0--> <AD_REFERENCE_ID><![CDATA[10]]></AD_REFERENCE_ID> +<!--4246D6A142A14DD0A9272C784D1EEBD0--> <AD_REFERENCE_ID><![CDATA[18]]></AD_REFERENCE_ID> +<!--4246D6A142A14DD0A9272C784D1EEBD0--> <AD_REFERENCE_VALUE_ID><![CDATA[106]]></AD_REFERENCE_VALUE_ID> <!--4246D6A142A14DD0A9272C784D1EEBD0--> <FIELDLENGTH><![CDATA[6]]></FIELDLENGTH> <!--4246D6A142A14DD0A9272C784D1EEBD0--> <ISKEY><![CDATA[N]]></ISKEY> <!--4246D6A142A14DD0A9272C784D1EEBD0--> <ISPARENT><![CDATA[N]]></ISPARENT> diff -r 5170deb9c581 -r 323950c8eb31 src/org/openbravo/erpCommon/ad_forms/TranslationManager.java --- a/src/org/openbravo/erpCommon/ad_forms/TranslationManager.java Mon Nov 28 13:57:46 2011 +0100 +++ b/src/org/openbravo/erpCommon/ad_forms/TranslationManager.java Mon Nov 28 16:34:20 2011 +0100 @@ -10,7 +10,7 @@ * Portions created by Jorg Janke are Copyright (C) 1999-2001 Jorg Janke, parts * created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved. * Contributor(s): Openbravo SLU - * Contributions are Copyright (C) 2001-2010 Openbravo S.L.U. + * Contributions are Copyright (C) 2001-2011 Openbravo S.L.U. ******************************************************************************/ package org.openbravo.erpCommon.ad_forms; @@ -34,6 +34,7 @@ import org.apache.commons.betwixt.io.BeanReader; import org.apache.commons.betwixt.io.BeanWriter; +import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.openbravo.base.session.OBPropertiesProvider; import org.openbravo.database.ConnectionProvider; @@ -369,6 +370,7 @@ String rootDirectory, String moduleId, String moduleLanguage, String javaPackage, boolean trl) { Statement st = null; + StringBuffer sql = null; try { String trlTable = table; if (trl && !table.endsWith("_TRL")) @@ -388,7 +390,7 @@ } // Prepare query to retrieve translated rows - final StringBuffer sql = new StringBuffer("SELECT "); + sql = new StringBuffer("SELECT "); if (trl) sql.append("t.IsTranslated,"); else @@ -418,23 +420,35 @@ sql.append(" AND o.AD_Client_ID='0' "); if (!exportReferenceData) { - String strParentTable = null; String tempTrlTableName = trlTable; - if (!tempTrlTableName.toLowerCase().endsWith("_trl")) + if (!tempTrlTableName.toLowerCase().endsWith("_trl")) { tempTrlTableName = tempTrlTableName + "_Trl"; + } final TranslationData[] parentTable = TranslationData.parentTable(cp, tempTrlTableName); - if (parentTable.length > 0) { - strParentTable = parentTable[0].tablename; - } - if (strParentTable == null) { + + if (parentTable.length == 0) { sql.append(" AND ").append(" o.ad_module_id='").append(moduleId).append("'"); } else { /** Search for ad_module_id in the parent table */ - sql.append(" AND "); - sql.append(" exists ( select 1 from ").append(strParentTable).append(" p "); - sql.append(" where p.").append(strParentTable + "_ID").append("=") - .append("o." + strParentTable + "_ID"); - sql.append(" and p.ad_module_id='").append(moduleId).append("')"); + if (StringUtils.isEmpty(parentTable[0].grandparent)) { + String strParentTable = parentTable[0].tablename; + sql.append(" AND "); + sql.append(" exists ( select 1 from ").append(strParentTable).append(" p "); + sql.append(" where p.").append(strParentTable + "_ID").append("=") + .append("o." + strParentTable + "_ID"); + sql.append(" and p.ad_module_id='").append(moduleId).append("')"); + } else { + String strParentTable = parentTable[0].tablename; + String strGandParentTable = parentTable[0].grandparent; + + sql.append(" AND "); + sql.append(" exists ( select 1 from ").append(strGandParentTable).append(" gp, ") + .append(strParentTable).append(" p"); + sql.append(" where p.").append(strParentTable + "_ID").append("=") + .append("o." + strParentTable + "_ID"); + sql.append(" and p." + strGandParentTable + "_ID = gp." + strGandParentTable + "_ID"); + sql.append(" and gp.ad_module_id='").append(moduleId).append("')"); + } } } if (exportReferenceData && !exportAll) { @@ -563,7 +577,7 @@ transformer.transform(source, new StreamResult(osw)); osw.close(); } catch (final Exception e) { - log4j.error("Error exporting translation for table " + table, e); + log4j.error("Error exporting translation for table " + table + "\n" + sql, e); } finally { try { if (st != null) diff -r 5170deb9c581 -r 323950c8eb31 src/org/openbravo/erpCommon/ad_forms/Translation_data.xsql --- a/src/org/openbravo/erpCommon/ad_forms/Translation_data.xsql Mon Nov 28 13:57:46 2011 +0100 +++ b/src/org/openbravo/erpCommon/ad_forms/Translation_data.xsql Mon Nov 28 16:34:20 2011 +0100 @@ -12,7 +12,7 @@ * under the License. * The Original Code is Openbravo ERP. * The Initial Developer of the Original Code is Openbravo SLU - * All portions are Copyright (C) 2001-2010 Openbravo SLU + * All portions are Copyright (C) 2001-2011 Openbravo SLU * All Rights Reserved. * Contributor(s): ______________________________________. ************************************************************************ @@ -27,7 +27,7 @@ <SqlMethodComment></SqlMethodComment> <Sql> select '1' AS C, '' AS AD_MODULE_ID, '' AS VALUE, '' AS TABLENAME, - '' AS ISINDEVELOPMENT, '' AS AD_Table_ID, '' as AD_Language + '' AS ISINDEVELOPMENT, '' AS AD_Table_ID, '' as AD_Language, '' AS grandParent from dual </Sql> </SqlMethod> @@ -119,24 +119,49 @@ and lower(t2.tablename)||'_id' = lower(c.columnname) and lower(t1.tablename) || '_trl' = lower(t.tablename) and exists (select 1 from ad_column where ad_table_id = t2.ad_table_id and lower(columnname) = 'ad_module_id') + union + select 1 + from ad_table t1, ad_column c, ad_table t2, ad_column c2, ad_table t3, ad_column c3 + where t2.ad_table_id = c2.ad_table_id + and t1.ad_table_id = c.ad_table_id + and c.isparent='Y' + and c2.isparent='Y' + and lower(t3.tablename)||'_id' = lower(c2.columnname) + and lower(t2.tablename)||'_id' = lower(c.columnname) + and lower(t1.tablename) || '_trl' = lower(t.tablename) + and exists (select 1 from ad_column where ad_table_id = t3.ad_table_id and lower(columnname) = 'ad_module_id') + and not exists (select 1 from ad_column where ad_table_id = t2.ad_table_id and lower(columnname) = 'ad_module_id') ) </Sql> </SqlMethod> <SqlMethod name="parentTable" type="preparedStatement" return="multiple"> <Sql> - select distinct t2.tablename as tablename - from ad_table t, ad_table t1, ad_column c, ad_table t2, ad_column c2 + select t2.tablename as tablename, null as grandParent + from ad_table t, ad_table t1, ad_column c, ad_table t2 where t1.ad_table_id = c.ad_table_id and c.isparent='Y' and lower(t2.tablename)||'_id' = lower(c.columnname) and lower(t1.tablename) || '_trl' = lower(t.tablename) and exists (select 1 from ad_column where ad_table_id = t2.ad_table_id and lower(columnname) = 'ad_module_id') - and lower(t.tablename) like '%trl' and not exists (select 1 from ad_column where ad_table_id = t1.ad_table_id and lower(columnname) = 'ad_module_id') and lower(t.tablename) = lower(?) + union + select t2.tablename, t3.tablename + from ad_table t, ad_table t1, ad_column c, ad_table t2, ad_column c2, ad_table t3 + where t2.ad_table_id = c2.ad_table_id + and t1.ad_table_id = c.ad_table_id + and c.isparent='Y' + and c2.isparent='Y' + and lower(t3.tablename)||'_id' = lower(c2.columnname) + and lower(t2.tablename)||'_id' = lower(c.columnname) + and lower(t1.tablename) || '_trl' = lower(t.tablename) + and exists (select 1 from ad_column where ad_table_id = t3.ad_table_id and lower(columnname) = 'ad_module_id') + and not exists (select 1 from ad_column where ad_table_id = t2.ad_table_id and lower(columnname) = 'ad_module_id') + and lower(t.tablename) = lower(?) </Sql> <Parameter name="tablename"/> + <Parameter name="tablename"/> </SqlMethod> <SqlMethod name="referenceDataTrl" type="preparedStatement" return="multiple"> ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-novd2d _______________________________________________ Openbravo-commits mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openbravo-commits
