Project:
View Issue Details[ Jump to Notes ] | [ Issue History ] [ Print ] | |||||||
ID | ||||||||
0004864 | ||||||||
Type | Category | Severity | Reproducibility | Date Submitted | Last Update | |||
defect | [Openbravo ERP] 00. Application dictionary | minor | always | 2008-09-09 09:12 | 2008-12-16 13:10 | |||
Reporter | rafaroda | View Status | public | |||||
Assigned To | rafaroda | |||||||
Priority | high | Resolution | fixed | Fixed in Version | ||||
Status | closed | Fix in branch | pi | Fixed in SCM revision | 7139 | |||
Projection | none | ETA | none | Target Version | ||||
OS | Linux 32 bit | Database | PostgreSQL | Java version | 1.5 | |||
OS Version | Ubuntu 7.10 | Database version | 8.3 | Ant version | 1.7 | |||
Product Version | pi | SCM revision | 7008 | |||||
Merge Request Status | ||||||||
Review Assigned To | ||||||||
OBNetwork customer | No | |||||||
Web browser | ||||||||
Modules | Core | |||||||
Support ticket | ||||||||
Regression level | ||||||||
Regression date | ||||||||
Regression introduced in release | ||||||||
Regression introduced by commit | ||||||||
Triggers an Emergency Pack | No | |||||||
Summary | 0004864: AD_COLUMN_IDENTIFIER does not work correctly for 'M_Product' table | |||||||
Description | In some files [1] [2] [3], AD_COLUMN_IDENTIFIER is used, for instance, as: AD_COLUMN_IDENTIFIER(TO_CHAR('M_Product'), TO_CHAR(T.M_PRODUCT_ID), TO_CHAR('es_ES')) in order to get the name of a product in Spanish, if this product has a translation to Spanish. [1] https://dev.openbravo.com/websvn/openbravo/trunk/src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesJR.java [^] [2] https://dev.openbravo.com/websvn/openbravo/trunk/src/org/openbravo/erpCommon/ad_reports/ReportInvoiceVendorDimensionalAnalysesJR.java [^] [3] https://dev.openbravo.com/websvn/openbravo/trunk/src/org/openbravo/erpCommon/ad_reports/ReportMaterialDimensionalAnalysesJR.java [^] | |||||||
Steps To Reproduce | 1) Set a Spanish translation for the product with M_Product_Id = 1000001 (Telephone) inside 'Master Data Management || Product || Product >> Translation' 2) Execute (being 1000001 the ID of the product - M_Product_Id): select AD_COLUMN_IDENTIFIER('M_Product', '1000001', 'es_ES') from dual; You still get the name 'Telephone' in 'en_US'. | |||||||
Proposed Solution | If you inspect AD_COLUMN_IDENTIFIER function, you find: SELECT REPLACE(REPLACE(SQL_RECORD_IDENTIFIER, ':c_language', '''' || p_Language || ''''), ':c_ID', p_Record_ID) INTO v_SQL FROM AD_TABLE WHERE UPPER(TABLENAME)=UPPER(p_TableName) ; If you execute: SELECT REPLACE(REPLACE(SQL_RECORD_IDENTIFIER, ':c_language', '''' || 'es_ES' || ''''), ':c_ID', '1000001') FROM AD_TABLE WHERE UPPER(TABLENAME)=UPPER('M_Product') ; You get the SQL: SELECT TO_CHAR(COALESCE(TO_CHAR(T.Name),'')) AS COLUMN_IDENTIFIER FROM (SELECT AD_LANGUAGE FROM AD_LANGUAGE WHERE AD_LANGUAGE='es_ES') L, M_Product T WHERE M_Product_ID='1000001' Then, inside AD_COLUMN_IDENTIFIER function, this SQL sentence is executed. You can notice that there is no reference to M_Product_Trl table so you will never get the Spanish translation of the product. | |||||||
Tags | No tags attached. | |||||||
Attached Files | ||||||||
![]() |
|||||||||||||||
|
![]() |
|
(0008950) rafaroda (viewer) 2008-09-09 17:07 |
In fact, the problem is in AD_COLUMN where 'Name' column for 'M_Product' table (ad_table_id = 208) has value 'IsTranslated' = 'N'. A.1) select istranslated from ad_column where ad_Table_id = '208' and columnname ='Name'; Result = N A.2) select ad_column_identifier_sql('M_Product') from dual; Result = SELECT TO_CHAR(COALESCE(TO_CHAR(T.Name),'')) AS COLUMN_IDENTIFIER FROM (SELECT AD_LANGUAGE FROM AD_LANGUAGE WHERE AD_LANGUAGE=:c_language) L, M_Product T WHERE M_Product_ID=:c_ID To solve this: B.1) update ad_column set istranslated = 'Y' where ad_Table_id = '208' and columnname ='Name'; B.2) select ad_column_identifier_sql('M_Product') from dual; Result = SELECT (SELECT COALESCE(TO_CHAR(MAX(TT.Name)), TO_CHAR(T.Name)) FROM M_Product_Trl TT WHERE TT.M_Product_ID=T.M_Product_ID AND TT.AD_LANGUAGE=L.AD_LANGUAGE) AS COLUMN_IDENTIFIER FROM (SELECT AD_LANGUAGE FROM AD_LANGUAGE WHERE AD_LANGUAGE=:c_language) L, M_Product T WHERE M_Product_ID=':c_ID' B.3) select ad_update_table_identifier(null); B.4) select SQL_RECORD_IDENTIFIER from ad_table where UPPER(TABLENAME)=UPPER('M_Product') ; Result = SELECT (SELECT COALESCE(TO_CHAR(MAX(TT.Name)), TO_CHAR(T.Name)) FROM M_Product_Trl TT WHERE TT.M_Product_ID=T.M_Product_ID AND TT.AD_LANGUAGE=L.AD_LANGUAGE) AS COLUMN_IDENTIFIER FROM (SELECT AD_LANGUAGE FROM AD_LANGUAGE WHERE AD_LANGUAGE=:c_language) L, M_Product T WHERE M_Product_ID=:c_ID B.5) select * from m_product_trl; B.6) select AD_COLUMN_IDENTIFIER('M_Product', '1000001', 'es_ES') from dual; Result = Teléfono |
(0008966) svnbot (viewer) 2008-09-10 09:45 |
Repository: openbravo Revision: 7139 Author: rafaroda Date: 2008-09-10 09:45:26 +0200 (Wed, 10 Sep 2008) Fixes bug 0004864 Changed to 'Y' the value 'Translation' of 'Name' column inside 'M_Product' table then run 'ad_update_table_identifier(null)' procedure. --- U trunk/src-db/database/sourcedata/AD_COLUMN.xml U trunk/src-db/database/sourcedata/AD_TABLE.xml --- https://dev.openbravo.com/websvn/openbravo/?rev=7139&sc=1 [^] |
![]() |
|||
Date Modified | Username | Field | Change |
2008-09-09 09:12 | rafaroda | New Issue | |
2008-09-09 09:12 | rafaroda | Assigned To | => cromero |
2008-09-09 09:12 | rafaroda | sf_bug_id | 0 => 2101536 |
2008-09-09 09:12 | rafaroda | OBNetwork customer | => No |
2008-09-09 09:12 | rafaroda | Regression testing | => No |
2008-09-09 09:23 | rafaroda | Relationship added | blocks 0004865 |
2008-09-09 09:38 | rafaroda | Assigned To | cromero => alostale |
2008-09-09 17:07 | rafaroda | Note Added: 0008950 | |
2008-09-09 17:16 | rafaroda | Assigned To | alostale => rafaroda |
2008-09-09 17:16 | rafaroda | Severity | major => minor |
2008-09-09 17:16 | rafaroda | Summary | AD_COLUMN_IDENTIFIER does not work => AD_COLUMN_IDENTIFIER does not work correctly for 'M_Product' table |
2008-09-09 17:16 | rafaroda | Status | new => scheduled |
2008-09-09 17:16 | rafaroda | fix_in_branch | => trunk |
2008-09-10 09:45 | svnbot | Checkin | |
2008-09-10 09:45 | svnbot | Note Added: 0008966 | |
2008-09-10 09:45 | svnbot | Status | scheduled => resolved |
2008-09-10 09:45 | svnbot | Resolution | open => fixed |
2008-09-10 09:45 | svnbot | svn_revision | => 7139 |
2008-12-16 13:10 | psarobe | Status | resolved => closed |
Copyright © 2000 - 2009 MantisBT Group |