details:   /erp/stable/2.50/rev/d59568c5dcc3
changeset: 9547:d59568c5dcc3
user:      Egoitz Castillo <egoitz.castillo <at> openbravo.com>
date:      Tue Jun 21 10:19:00 2011 +0200
summary:   Fixed issue 17753. Performance problem on ImportBudget Process

details:   /erp/stable/2.50/rev/9b8312fc93b5
changeset: 9548:9b8312fc93b5
user:      Egoitz Castillo <egoitz.castillo <at> openbravo.com>
date:      Tue Jun 21 17:39:16 2011 +0200
summary:   Fixed Issue 17755. Syncronize terminology on purchase elements

diffstat:

 src-db/database/model/functions/AD_SYNCHRONIZE.xml            |  28 +++++++--
 src/org/openbravo/erpCommon/ad_process/ImportBudget.java      |   9 ++-
 src/org/openbravo/erpCommon/ad_process/ImportBudget_data.xsql |  31 +++++++++++
 3 files changed, 59 insertions(+), 9 deletions(-)

diffs (137 lines):

diff -r 0b9a665f80c8 -r 9b8312fc93b5 
src-db/database/model/functions/AD_SYNCHRONIZE.xml
--- a/src-db/database/model/functions/AD_SYNCHRONIZE.xml        Mon Jul 04 
08:22:27 2011 +0200
+++ b/src-db/database/model/functions/AD_SYNCHRONIZE.xml        Tue Jun 21 
17:39:16 2011 +0200
@@ -634,19 +634,25 @@
     DBMS_OUTPUT.PUT_LINE('Synchronize PO Field Translations') ;
     UPDATE AD_FIELD_TRL
       SET NAME=
-      (SELECT e.PO_Name
+      (SELECT (CASE WHEN e.PO_Name='' THEN e.Name
+           ELSE COALESCE(e.PO_Name, e.Name)
+       END)
       FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f
       WHERE e.AD_LANGUAGE=AD_FIELD_TRL.AD_LANGUAGE AND 
e.AD_Element_ID=c.AD_Element_ID
       AND c.AD_Column_ID=f.AD_Column_ID AND 
f.AD_Field_ID=AD_FIELD_TRL.AD_Field_ID
       )
       , Description=
-      (SELECT e.PO_Description
+      (SELECT (CASE WHEN e.PO_Description='' THEN e.Description
+           ELSE COALESCE(e.PO_Description, e.Description)
+       END)
       FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f
       WHERE e.AD_LANGUAGE=AD_FIELD_TRL.AD_LANGUAGE AND 
e.AD_Element_ID=c.AD_Element_ID
       AND c.AD_Column_ID=f.AD_Column_ID AND 
f.AD_Field_ID=AD_FIELD_TRL.AD_Field_ID
       )
       , Help=
-      (SELECT e.PO_Help
+      (SELECT (CASE WHEN e.PO_Help='' THEN e.Help
+           ELSE COALESCE(e.PO_Help, e.Help)
+       END)
       FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f
       WHERE e.AD_LANGUAGE=AD_FIELD_TRL.AD_LANGUAGE AND 
e.AD_Element_ID=c.AD_Element_ID
       AND c.AD_Column_ID=f.AD_Column_ID AND 
f.AD_Field_ID=AD_FIELD_TRL.AD_Field_ID
@@ -668,7 +674,7 @@
       AND (M.ISINDEVELOPMENT='Y' OR v_TemplateInDev ='Y')
       AND M.AD_LANGUAGE != E.AD_LANGUAGE
       AND(AD_FIELD_TRL.NAME<>e.PO_Name OR 
COALESCE(TO_CHAR(AD_FIELD_TRL.Description), ' 
')<>COALESCE(TO_CHAR(e.PO_Description), ' ')
-      OR COALESCE(TO_CHAR(AD_FIELD_TRL.Help), ' 
')<>COALESCE(TO_CHAR(e.PO_Help), ' ')) AND (e.PO_Name IS NOT NULL AND e.PO_Name 
<> '')
+      OR COALESCE(TO_CHAR(AD_FIELD_TRL.Help), ' 
')<>COALESCE(TO_CHAR(e.PO_Help), ' '))
       )
       AND EXISTS
       (SELECT *
@@ -681,19 +687,25 @@
       --Translation from non-trl table     
       UPDATE AD_FIELD_TRL
       SET NAME=
-      (SELECT e.PO_Name
+      (SELECT (CASE WHEN e.PO_Name='' THEN e.Name
+           ELSE COALESCE(e.PO_Name, e.Name)
+       END)
       FROM AD_ELEMENT e, AD_COLUMN c, AD_FIELD f
       WHERE e.AD_Element_ID=c.AD_Element_ID
       AND c.AD_Column_ID=f.AD_Column_ID AND 
f.AD_Field_ID=AD_FIELD_TRL.AD_Field_ID
       )
       , Description=
-      (SELECT e.PO_Description
+      (SELECT (CASE WHEN e.PO_Description='' THEN e.Description
+           ELSE COALESCE(e.PO_Description, e.Description)
+       END)
       FROM AD_ELEMENT e, AD_COLUMN c, AD_FIELD f
       WHERE e.AD_Element_ID=c.AD_Element_ID
       AND c.AD_Column_ID=f.AD_Column_ID AND 
f.AD_Field_ID=AD_FIELD_TRL.AD_Field_ID
       )
       , Help=
-      (SELECT e.PO_Help
+      (SELECT (CASE WHEN e.PO_Help='' THEN e.Help
+           ELSE COALESCE(e.PO_Help, e.Help)
+       END)
       FROM AD_ELEMENT e, AD_COLUMN c, AD_FIELD f
       WHERE e.AD_Element_ID=c.AD_Element_ID
       AND c.AD_Column_ID=f.AD_Column_ID AND 
f.AD_Field_ID=AD_FIELD_TRL.AD_Field_ID
@@ -712,7 +724,7 @@
       AND M1.AD_MODULE_ID = E.AD_MODULE_ID
       AND M.AD_LANGUAGE != M1.AD_LANGUAGE
       AND(AD_FIELD_TRL.NAME<>e.PO_Name OR 
COALESCE(TO_CHAR(AD_FIELD_TRL.Description), ' 
')<>COALESCE(TO_CHAR(e.PO_Description), ' ')
-      OR COALESCE(TO_CHAR(AD_FIELD_TRL.Help), ' 
')<>COALESCE(TO_CHAR(e.PO_Help), ' ')) AND (e.PO_Name IS NOT NULL AND e.PO_Name 
<> '')
+      OR COALESCE(TO_CHAR(AD_FIELD_TRL.Help), ' 
')<>COALESCE(TO_CHAR(e.PO_Help), ' '))
       )
       AND EXISTS
       (SELECT *
diff -r 0b9a665f80c8 -r 9b8312fc93b5 
src/org/openbravo/erpCommon/ad_process/ImportBudget.java
--- a/src/org/openbravo/erpCommon/ad_process/ImportBudget.java  Mon Jul 04 
08:22:27 2011 +0200
+++ b/src/org/openbravo/erpCommon/ad_process/ImportBudget.java  Tue Jun 21 
17:39:16 2011 +0200
@@ -153,7 +153,14 @@
         log4j.debug("Invalid Activity = " + no);
 
       // Account ID
-      no = ImportBudgetData.updateAccountId(con, conn, vars.getLanguage(), 
getAD_Client_ID());
+      ImportBudgetData[] dataElement = ImportBudgetData.selectElement(conn, 
getAD_Client_ID(), vars
+          .getLanguage());
+      no = 0;
+      for (int i = 0; i < dataElement.length; i++) {
+        ImportBudgetData.updateElement(con, conn, dataElement[i].cBudgetlineId,
+            dataElement[i].iBudgetlineId);
+        no = no + 1;
+      }
       if (log4j.isDebugEnabled())
         log4j.debug("ImportBudget AccountID = " + no);
       no = ImportBudgetData.updateAccountIdError(con, conn, getAD_Client_ID());
diff -r 0b9a665f80c8 -r 9b8312fc93b5 
src/org/openbravo/erpCommon/ad_process/ImportBudget_data.xsql
--- a/src/org/openbravo/erpCommon/ad_process/ImportBudget_data.xsql     Mon Jul 
04 08:22:27 2011 +0200
+++ b/src/org/openbravo/erpCommon/ad_process/ImportBudget_data.xsql     Tue Jun 
21 17:39:16 2011 +0200
@@ -713,4 +713,35 @@
     <Parameter name="client"/>
   </SqlMethod>
 
+  <SqlMethod name="selectElement" type="preparedStatement" return="multiple">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        select i_budgetline_id, c_budgetline_id from
+             (select i_budgetline_id , elementvalueident as eident, 
ad_client_id from i_budgetline
+             where I_IsImported='N'
+             AND C_ELEMENTVALUE_ID IS NULL
+             AND ELEMENTVALUEIDENT IS NOT NULL
+             AND AD_Client_ID = ?) ib,
+             (select c_elementvalue_id as c_budgetline_id,
+             AD_COLUMN_IDENTIFIER('C_ELEMENTVALUE', 
TO_CHAR(C_ELEMENTVALUE_ID), ?) as cidentifier,ad_client_id from c_elementvalue) 
ce
+        where ib.eident=ce.cidentifier and ib.ad_client_id=ce.ad_client_id
+      ]]>
+    </Sql>
+    <Parameter name="ad_client_id"/>
+    <Parameter name="adlanguage"/>
+  </SqlMethod>
+
+   <SqlMethod name="updateElement" type="preparedStatement" connection="true" 
return="rowCount">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      <![CDATA[
+        UPDATE I_BudgetLine
+              SET C_ELEMENTVALUE_ID = ?
+              WHERE I_BudgetLine_id = ?
+      ]]>
+    </Sql>
+    <Parameter name="celementvalue_id"/>
+    <Parameter name="budgetline_id"/>
+  </SqlMethod>
 </SqlClass>

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of 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-d2d-c2
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to