Port of AD_Synchronize stored procedure
This commit is contained in:
parent
3f09e9cc42
commit
8d24d668f7
|
@ -0,0 +1,774 @@
|
|||
/******************************************************************************
|
||||
* Product: Adempiere ERP & CRM Smart Business Solution *
|
||||
* Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. *
|
||||
* This program is free software; you can redistribute it and/or modify it *
|
||||
* under the terms version 2 of the GNU General Public License as published *
|
||||
* by the Free Software Foundation. This program is distributed in the hope *
|
||||
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU General Public License for more details. *
|
||||
* You should have received a copy of the GNU General Public License along *
|
||||
* with this program; if not, write to the Free Software Foundation, Inc., *
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||
* For the text or an alternative of this public license, you may reach us *
|
||||
* ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
|
||||
* or via info@compiere.org or http://www.compiere.org/license.html *
|
||||
*****************************************************************************/
|
||||
package org.compiere.process;
|
||||
|
||||
import java.sql.*;
|
||||
import java.math.*;
|
||||
import java.util.logging.*;
|
||||
|
||||
import org.compiere.model.*;
|
||||
import org.compiere.util.*;
|
||||
|
||||
/**
|
||||
* Synchronize Column with Database
|
||||
*
|
||||
* @author Victor P<EFBFBD>rez, Jorg Janke
|
||||
* @version $Id: ColumnSync.java,v 1.2 2006/07/30 00:51:01 jjanke Exp $
|
||||
*/
|
||||
public class SynchronizeTerminology extends SvrProcess
|
||||
{
|
||||
/** The Column */
|
||||
private int p_AD_Column_ID = 0;
|
||||
|
||||
/**
|
||||
* Prepare - e.g., get Parameters.
|
||||
*/
|
||||
protected void prepare()
|
||||
{
|
||||
ProcessInfoParameter[] para = getParameter();
|
||||
for (int i = 0; i < para.length; i++)
|
||||
{
|
||||
String name = para[i].getParameterName();
|
||||
if (para[i].getParameter() == null)
|
||||
;
|
||||
else
|
||||
log.log(Level.SEVERE, "Unknown Parameter: " + name);
|
||||
}
|
||||
p_AD_Column_ID = getRecord_ID();
|
||||
} // prepare
|
||||
|
||||
/**
|
||||
* Process
|
||||
* @return message
|
||||
* @throws Exception
|
||||
*/
|
||||
protected String doIt() throws Exception
|
||||
{
|
||||
//TODO Error handling
|
||||
try {
|
||||
int rowNum;
|
||||
String sql="SELECT DISTINCT ColumnName, Name,Description, Help, EntityType "
|
||||
+"FROM AD_COLUMN c WHERE NOT EXISTS "
|
||||
+"(SELECT 1 FROM AD_ELEMENT e "
|
||||
+" WHERE UPPER(c.ColumnName)=UPPER(e.ColumnName))";
|
||||
PreparedStatement pstmt = DB.prepareStatement(sql, get_TrxName());
|
||||
ResultSet rs = pstmt.executeQuery ();
|
||||
while (rs.next()){
|
||||
String columnName = rs.getString(1);
|
||||
String name = rs.getString(2);
|
||||
String desc = rs.getString(3);
|
||||
String help =rs.getString(4);
|
||||
String entityType=rs.getString(5);
|
||||
M_Element elem = new M_Element(getCtx(),columnName,entityType,get_TrxName());
|
||||
elem.setDescription(desc);
|
||||
elem.setHelp(help);
|
||||
elem.setPrintName(name);
|
||||
elem.save();
|
||||
}
|
||||
pstmt.close();
|
||||
rs.close();
|
||||
sql="SELECT DISTINCT ColumnName, Name, Description, Help, EntityType "
|
||||
+" FROM AD_PROCESS_PARA p "
|
||||
+" WHERE NOT EXISTS "
|
||||
+" (SELECT 1 FROM AD_ELEMENT e "
|
||||
+" WHERE UPPER(p.ColumnName)=UPPER(e.ColumnName))";
|
||||
pstmt = DB.prepareStatement(sql, get_TrxName());
|
||||
rs = pstmt.executeQuery ();
|
||||
while (rs.next()){
|
||||
String columnName = rs.getString(1);
|
||||
String name = rs.getString(2);
|
||||
String desc = rs.getString(3);
|
||||
String help =rs.getString(4);
|
||||
String entityType=rs.getString(5);
|
||||
//TODO AD_SEQ system !!!
|
||||
M_Element elem = new M_Element(getCtx(),columnName,entityType,get_TrxName());
|
||||
elem.setDescription(desc);
|
||||
elem.setHelp(help);
|
||||
elem.setPrintName(name);
|
||||
elem.save();
|
||||
}
|
||||
pstmt.close();
|
||||
rs.close();
|
||||
log.info("Adding missing Element Translations");
|
||||
sql="INSERT INTO AD_ELEMENT_TRL (AD_Element_ID, AD_LANGUAGE, AD_Client_ID, AD_Org_ID,"
|
||||
+" IsActive, Created, CreatedBy, Updated, UpdatedBy,"
|
||||
+" Name, PrintName, Description, Help, IsTranslated)"
|
||||
+" SELECT m.AD_Element_ID, l.AD_LANGUAGE, m.AD_Client_ID, m.AD_Org_ID,"
|
||||
+" m.IsActive, m.Created, m.CreatedBy, m.Updated, m.UpdatedBy,"
|
||||
+" m.Name, m.PrintName, m.Description, m.Help, 'N'"
|
||||
+" FROM AD_ELEMENT m, AD_LANGUAGE l"
|
||||
+" WHERE l.IsActive = 'Y' AND l.IsSystemLanguage = 'Y'"
|
||||
+" AND AD_Element_ID || AD_LANGUAGE NOT IN "
|
||||
+" (SELECT AD_Element_ID || AD_LANGUAGE FROM AD_ELEMENT_TRL)";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
|
||||
log.info("Creating link from Element to Column");
|
||||
sql="UPDATE AD_COLUMN c"
|
||||
+" SET AD_Element_id ="
|
||||
+" (SELECT AD_Element_ID FROM AD_ELEMENT e"
|
||||
+" WHERE UPPER(c.ColumnName)=UPPER(e.ColumnName))"
|
||||
+" WHERE AD_Element_ID IS NULL";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
|
||||
log.info("Deleting unused Elements");
|
||||
sql="DELETE AD_ELEMENT_TRL"
|
||||
+" WHERE AD_Element_ID IN"
|
||||
+" (SELECT AD_Element_ID FROM AD_ELEMENT e "
|
||||
+" WHERE NOT EXISTS"
|
||||
+" (SELECT 1 FROM AD_COLUMN c WHERE UPPER(e.ColumnName)=UPPER(c.ColumnName))"
|
||||
+" AND NOT EXISTS"
|
||||
+" (SELECT 1 FROM AD_PROCESS_PARA p WHERE UPPER(e.ColumnName)=UPPER(p.ColumnName)))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows deleted: "+rowNum);
|
||||
|
||||
sql="DELETE AD_ELEMENT e"
|
||||
+" WHERE NOT EXISTS"
|
||||
+" (SELECT 1 FROM AD_COLUMN c WHERE UPPER(e.ColumnName)=UPPER(c.ColumnName))"
|
||||
+" AND NOT EXISTS"
|
||||
+" (SELECT 1 FROM AD_PROCESS_PARA p WHERE UPPER(e.ColumnName)=UPPER(p.ColumnName))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows deleted: "+rowNum);
|
||||
|
||||
|
||||
// Columns
|
||||
log.info("Synchronize Column");
|
||||
sql=" UPDATE AD_COLUMN c"
|
||||
+" SET (ColumnName, Name, Description, Help) ="
|
||||
+" (SELECT ColumnName, Name, Description, Help"
|
||||
+" FROM AD_ELEMENT e WHERE c.AD_Element_ID=e.AD_Element_ID),"
|
||||
+" Updated = SYSDATE"
|
||||
+" WHERE EXISTS (SELECT 1 FROM AD_ELEMENT e "
|
||||
+" WHERE c.AD_Element_ID=e.AD_Element_ID"
|
||||
+" AND (c.ColumnName <> e.ColumnName OR c.Name <> e.Name "
|
||||
+" OR NVL(c.Description,' ') <> NVL(e.Description,' ') OR NVL(c.Help,' ') <> NVL(e.Help,' ')))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Fields should now be syncronized
|
||||
log.info("Synchronize Field");
|
||||
sql=" UPDATE AD_FIELD f"
|
||||
+" SET (Name, Description, Help) = "
|
||||
+" (SELECT e.Name, e.Description, e.Help"
|
||||
+" FROM AD_ELEMENT e, AD_COLUMN c"
|
||||
+" WHERE e.AD_Element_ID=c.AD_Element_ID AND c.AD_Column_ID=f.AD_Column_ID),"
|
||||
+" Updated = SYSDATE"
|
||||
+" WHERE f.IsCentrallyMaintained='Y' AND f.IsActive='Y'"
|
||||
+" AND EXISTS (SELECT 1 FROM AD_ELEMENT e, AD_COLUMN c"
|
||||
+" WHERE f.AD_Column_ID=c.AD_Column_ID"
|
||||
+" AND c.AD_Element_ID=e.AD_Element_ID AND c.AD_Process_ID IS NULL"
|
||||
+" AND (f.Name <> e.Name OR NVL(f.Description,' ') <> NVL(e.Description,' ') OR NVL(f.Help,' ') <> NVL(e.Help,' ')))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Field Translations
|
||||
log.info("Synchronize Field Translations");
|
||||
sql="UPDATE AD_FIELD_TRL trl"
|
||||
+" SET Name = (SELECT e.Name FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f"
|
||||
+" WHERE e.AD_LANGUAGE=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=trl.AD_Field_ID),"
|
||||
+" Description = (SELECT e.Description FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f"
|
||||
+" WHERE e.AD_LANGUAGE=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=trl.AD_Field_ID),"
|
||||
+" Help = (SELECT e.Help FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f"
|
||||
+" WHERE e.AD_LANGUAGE=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=trl.AD_Field_ID),"
|
||||
+" IsTranslated = (SELECT e.IsTranslated FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f"
|
||||
+" WHERE e.AD_LANGUAGE=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=trl.AD_Field_ID),"
|
||||
+" Updated = SYSDATE"
|
||||
+" WHERE EXISTS (SELECT 1 FROM AD_FIELD f, AD_ELEMENT_TRL e, AD_COLUMN c"
|
||||
+" WHERE trl.AD_Field_ID=f.AD_Field_ID"
|
||||
+" AND f.AD_Column_ID=c.AD_Column_ID"
|
||||
+" AND c.AD_Element_ID=e.AD_Element_ID AND c.AD_Process_ID IS NULL"
|
||||
+" AND trl.AD_LANGUAGE=e.AD_LANGUAGE"
|
||||
+" AND f.IsCentrallyMaintained='Y' AND f.IsActive='Y'"
|
||||
+" AND (trl.Name <> e.Name OR NVL(trl.Description,' ') <> NVL(e.Description,' ') OR NVL(trl.Help,' ') <> NVL(e.Help,' ')))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Fields should now be syncronized
|
||||
log.info("Synchronize PO Field");
|
||||
sql="UPDATE AD_FIELD f"
|
||||
+" SET Name = (SELECT e.PO_Name FROM AD_ELEMENT e, AD_COLUMN c"
|
||||
+" WHERE e.AD_Element_ID=c.AD_Element_ID AND c.AD_Column_ID=f.AD_Column_ID),"
|
||||
+" Description = (SELECT e.PO_Description FROM AD_ELEMENT e, AD_COLUMN c"
|
||||
+" WHERE e.AD_Element_ID=c.AD_Element_ID AND c.AD_Column_ID=f.AD_Column_ID),"
|
||||
+" Help = (SELECT e.PO_Help FROM AD_ELEMENT e, AD_COLUMN c"
|
||||
+" WHERE e.AD_Element_ID=c.AD_Element_ID AND c.AD_Column_ID=f.AD_Column_ID),"
|
||||
+" Updated = SYSDATE"
|
||||
+" WHERE f.IsCentrallyMaintained='Y' AND f.IsActive='Y'"
|
||||
+" AND EXISTS (SELECT 1 FROM AD_ELEMENT e, AD_COLUMN c"
|
||||
+" WHERE f.AD_Column_ID=c.AD_Column_ID"
|
||||
+" AND c.AD_Element_ID=e.AD_Element_ID AND c.AD_Process_ID IS NULL"
|
||||
+" AND (f.Name <> e.PO_Name OR NVL(f.Description,' ') <> NVL(e.PO_Description,' ') OR NVL(f.Help,' ') <> NVL(e.PO_Help,' '))"
|
||||
+" AND e.PO_Name IS NOT NULL)"
|
||||
+" AND EXISTS (SELECT 1 FROM AD_TAB t, AD_WINDOW w"
|
||||
+" WHERE f.AD_Tab_ID=t.AD_Tab_ID"
|
||||
+" AND t.AD_Window_ID=w.AD_Window_ID"
|
||||
+" AND w.IsSOTrx='N')";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Field Translations
|
||||
log.info("Synchronize PO Field Translations");
|
||||
sql=" UPDATE AD_FIELD_TRL trl"
|
||||
+" SET Name = (SELECT e.PO_Name FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f"
|
||||
+" WHERE e.AD_LANGUAGE=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=trl.AD_Field_ID),"
|
||||
+" Description = (SELECT e.PO_Description FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f"
|
||||
+" WHERE e.AD_LANGUAGE=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=trl.AD_Field_ID),"
|
||||
+" Help = (SELECT e.PO_Help FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f"
|
||||
+" WHERE e.AD_LANGUAGE=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=trl.AD_Field_ID),"
|
||||
+" IsTranslated = (SELECT e.IsTranslated FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_FIELD f"
|
||||
+" WHERE e.AD_LANGUAGE=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=trl.AD_Field_ID),"
|
||||
+" Updated = SYSDATE"
|
||||
+" WHERE EXISTS (SELECT 1 FROM AD_FIELD f, AD_ELEMENT_TRL e, AD_COLUMN c"
|
||||
+" WHERE trl.AD_Field_ID=f.AD_Field_ID"
|
||||
+" AND f.AD_Column_ID=c.AD_Column_ID"
|
||||
+" AND c.AD_Element_ID=e.AD_Element_ID AND c.AD_Process_ID IS NULL"
|
||||
+" AND trl.AD_LANGUAGE=e.AD_LANGUAGE"
|
||||
+" AND f.IsCentrallyMaintained='Y' AND f.IsActive='Y'"
|
||||
+" AND (trl.Name <> e.PO_Name OR NVL(trl.Description,' ') <> NVL(e.PO_Description,' ') OR NVL(trl.Help,' ') <> NVL(e.PO_Help,' '))"
|
||||
+" AND e.PO_Name IS NOT NULL)"
|
||||
+" AND EXISTS (SELECT 1 FROM AD_FIELD f, AD_TAB t, AD_WINDOW w"
|
||||
+" WHERE trl.AD_Field_ID=f.AD_Field_ID"
|
||||
+" AND f.AD_Tab_ID=t.AD_Tab_ID"
|
||||
+" AND t.AD_Window_ID=w.AD_Window_ID"
|
||||
+" AND w.IsSOTrx='N')";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
|
||||
// Fields from Process
|
||||
log.info("Synchronize Field from Process");
|
||||
sql="UPDATE AD_FIELD f"
|
||||
+" SET Name = (SELECT p.Name FROM AD_PROCESS p, AD_COLUMN c WHERE p.AD_Process_ID=c.AD_Process_ID"
|
||||
+" AND c.AD_Column_ID=f.AD_Column_ID),"
|
||||
+" Description = (SELECT p.Description FROM AD_PROCESS p, AD_COLUMN c WHERE p.AD_Process_ID=c.AD_Process_ID"
|
||||
+" AND c.AD_Column_ID=f.AD_Column_ID),"
|
||||
+" Help = (SELECT p.Help FROM AD_PROCESS p, AD_COLUMN c WHERE p.AD_Process_ID=c.AD_Process_ID"
|
||||
+" AND c.AD_Column_ID=f.AD_Column_ID),"
|
||||
+" Updated = SYSDATE"
|
||||
+" WHERE f.IsCentrallyMaintained='Y' AND f.IsActive='Y'"
|
||||
+" AND EXISTS (SELECT 1 FROM AD_PROCESS p, AD_COLUMN c"
|
||||
+" WHERE c.AD_Process_ID=p.AD_Process_ID AND f.AD_Column_ID=c.AD_Column_ID"
|
||||
+" AND (f.Name<>p.Name OR NVL(f.Description,' ')<>NVL(p.Description,' ') OR NVL(f.Help,' ')<>NVL(p.Help,' ')))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Field Translations from Process
|
||||
log.info("Synchronize Field Trl from Process Trl");
|
||||
sql="UPDATE AD_FIELD_TRL trl"
|
||||
+" SET Name = (SELECT p.Name FROM AD_PROCESS_TRL p, AD_COLUMN c, AD_FIELD f"
|
||||
+" WHERE p.AD_Process_ID=c.AD_Process_ID AND c.AD_Column_ID=f.AD_Column_ID"
|
||||
+" AND f.AD_Field_ID=trl.AD_Field_ID AND p.AD_LANGUAGE=trl.AD_LANGUAGE),"
|
||||
+" Description = (SELECT p.Description FROM AD_PROCESS_TRL p, AD_COLUMN c, AD_FIELD f"
|
||||
+" WHERE p.AD_Process_ID=c.AD_Process_ID AND c.AD_Column_ID=f.AD_Column_ID"
|
||||
+" AND f.AD_Field_ID=trl.AD_Field_ID AND p.AD_LANGUAGE=trl.AD_LANGUAGE),"
|
||||
+" Help = (SELECT p.Help FROM AD_PROCESS_TRL p, AD_COLUMN c, AD_FIELD f "
|
||||
+" WHERE p.AD_Process_ID=c.AD_Process_ID AND c.AD_Column_ID=f.AD_Column_ID"
|
||||
+" AND f.AD_Field_ID=trl.AD_Field_ID AND p.AD_LANGUAGE=trl.AD_LANGUAGE),"
|
||||
+" IsTranslated = (SELECT p.IsTranslated FROM AD_PROCESS_TRL p, AD_COLUMN c, AD_FIELD f"
|
||||
+" WHERE p.AD_Process_ID=c.AD_Process_ID AND c.AD_Column_ID=f.AD_Column_ID"
|
||||
+" AND f.AD_Field_ID=trl.AD_Field_ID AND p.AD_LANGUAGE=trl.AD_LANGUAGE),"
|
||||
+" Updated = SYSDATE"
|
||||
+" WHERE EXISTS (SELECT 1 FROM AD_PROCESS_TRL p, AD_COLUMN c, AD_FIELD f"
|
||||
+" WHERE c.AD_Process_ID=p.AD_Process_ID AND f.AD_Column_ID=c.AD_Column_ID"
|
||||
+" AND f.AD_Field_ID=trl.AD_Field_ID AND p.AD_LANGUAGE=trl.AD_LANGUAGE"
|
||||
+" AND f.IsCentrallyMaintained='Y' AND f.IsActive='Y'"
|
||||
+" AND (trl.Name<>p.Name OR NVL(trl.Description,' ')<>NVL(p.Description,' ') OR NVL(trl.Help,' ')<>NVL(p.Help,' ')))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Sync Parameter ColumnName
|
||||
sql="UPDATE AD_PROCESS_PARA f"
|
||||
+" SET ColumnName = (SELECT e.ColumnName FROM AD_ELEMENT e"
|
||||
+" WHERE UPPER(e.ColumnName)=UPPER(f.ColumnName))"
|
||||
+" WHERE f.IsCentrallyMaintained='Y' AND f.IsActive='Y'"
|
||||
+" AND EXISTS (SELECT 1 FROM AD_ELEMENT e"
|
||||
+" WHERE UPPER(e.ColumnName)=UPPER(f.ColumnName)"
|
||||
+" AND e.ColumnName<>f.ColumnName)";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
|
||||
// Paramenter Fields
|
||||
sql="UPDATE AD_PROCESS_PARA p"
|
||||
+" SET IsCentrallyMaintained = 'N'"
|
||||
+" WHERE IsCentrallyMaintained <> 'N'"
|
||||
+" AND NOT EXISTS (SELECT 1 FROM AD_ELEMENT e WHERE p.ColumnName=e.ColumnName)";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Parameter Fields
|
||||
log.info("Synchronize Process Parameter");
|
||||
sql="UPDATE AD_PROCESS_PARA f"
|
||||
+" SET Name = (SELECT e.Name FROM AD_ELEMENT e"
|
||||
+" WHERE e.ColumnName=f.ColumnName),"
|
||||
+" Description = (SELECT e.Description FROM AD_ELEMENT e"
|
||||
+" WHERE e.ColumnName=f.ColumnName),"
|
||||
+" Help = (SELECT e.Help FROM AD_ELEMENT e"
|
||||
+" WHERE e.ColumnName=f.ColumnName),"
|
||||
+" Updated = SYSDATE"
|
||||
+" WHERE f.IsCentrallyMaintained='Y' AND f.IsActive='Y'"
|
||||
+" AND EXISTS (SELECT 1 FROM AD_ELEMENT e"
|
||||
+" WHERE e.ColumnName=f.ColumnName"
|
||||
+" AND (f.Name <> e.Name OR NVL(f.Description,' ') <> NVL(e.Description,' ') OR NVL(f.Help,' ') <> NVL(e.Help,' ')))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Parameter Translations
|
||||
log.info("Synchronize Process Parameter Trl");
|
||||
sql="UPDATE AD_PROCESS_PARA_TRL trl"
|
||||
+" SET Name = (SELECT et.Name FROM AD_ELEMENT_TRL et, AD_ELEMENT e, AD_PROCESS_PARA f"
|
||||
+" WHERE et.AD_LANGUAGE=trl.AD_LANGUAGE AND et.AD_Element_ID=e.AD_Element_ID"
|
||||
+" AND e.ColumnName=f.ColumnName AND f.AD_Process_Para_ID=trl.AD_Process_Para_ID),"
|
||||
+" Description = (SELECT et.Description FROM AD_ELEMENT_TRL et, AD_ELEMENT e, AD_PROCESS_PARA f"
|
||||
+" WHERE et.AD_LANGUAGE=trl.AD_LANGUAGE AND et.AD_Element_ID=e.AD_Element_ID"
|
||||
+" AND e.ColumnName=f.ColumnName AND f.AD_Process_Para_ID=trl.AD_Process_Para_ID),"
|
||||
+" Help = (SELECT et.Help FROM AD_ELEMENT_TRL et, AD_ELEMENT e, AD_PROCESS_PARA f"
|
||||
+" WHERE et.AD_LANGUAGE=trl.AD_LANGUAGE AND et.AD_Element_ID=e.AD_Element_ID"
|
||||
+" AND e.ColumnName=f.ColumnName AND f.AD_Process_Para_ID=trl.AD_Process_Para_ID),"
|
||||
+" IsTranslated = (SELECT et.IsTranslated FROM AD_ELEMENT_TRL et, AD_ELEMENT e, AD_PROCESS_PARA f"
|
||||
+" WHERE et.AD_LANGUAGE=trl.AD_LANGUAGE AND et.AD_Element_ID=e.AD_Element_ID"
|
||||
+" AND e.ColumnName=f.ColumnName AND f.AD_Process_Para_ID=trl.AD_Process_Para_ID),"
|
||||
+" Updated = SYSDATE"
|
||||
+" WHERE EXISTS (SELECT 1 FROM AD_ELEMENT_TRL et, AD_ELEMENT e, AD_PROCESS_PARA f"
|
||||
+" WHERE et.AD_LANGUAGE=trl.AD_LANGUAGE AND et.AD_Element_ID=e.AD_Element_ID"
|
||||
+" AND e.ColumnName=f.ColumnName AND f.AD_Process_Para_ID=trl.AD_Process_Para_ID"
|
||||
+" AND f.IsCentrallyMaintained='Y' AND f.IsActive='Y'"
|
||||
+" AND (trl.Name <> et.Name OR NVL(trl.Description,' ') <> NVL(et.Description,' ') OR NVL(trl.Help,' ') <> NVL(et.Help,' ')))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Workflow Node - Window
|
||||
log.info("Synchronize Workflow Node from Window");
|
||||
sql="UPDATE AD_WF_NODE n"
|
||||
+" SET Name = (SELECT w.Name FROM AD_WINDOW w"
|
||||
+" WHERE w.AD_Window_ID=n.AD_Window_ID),"
|
||||
+" Description = (SELECT w.Description FROM AD_WINDOW w"
|
||||
+" WHERE w.AD_Window_ID=n.AD_Window_ID),"
|
||||
+" Help = (SELECT w.Help FROM AD_WINDOW w"
|
||||
+" WHERE w.AD_Window_ID=n.AD_Window_ID)"
|
||||
+" WHERE n.IsCentrallyMaintained = 'Y'"
|
||||
+" AND EXISTS (SELECT 1 FROM AD_WINDOW w"
|
||||
+" WHERE w.AD_Window_ID=n.AD_Window_ID"
|
||||
+" AND (w.Name <> n.Name OR NVL(w.Description,' ') <> NVL(n.Description,' ') OR NVL(w.Help,' ') <> NVL(n.Help,' ')))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Workflow Translations - Window
|
||||
log.info("Synchronize Workflow Node Trl from Window Trl");
|
||||
sql="UPDATE AD_WF_NODE_TRL trl"
|
||||
+" SET Name = (SELECT t.Name FROM AD_WINDOW_TRL t, AD_WF_NODE n"
|
||||
+" WHERE trl.AD_WF_Node_ID=n.AD_WF_Node_ID AND n.AD_Window_ID=t.AD_Window_ID"
|
||||
+" AND trl.AD_LANGUAGE=t.AD_LANGUAGE),"
|
||||
+" Description = (SELECT t.Description FROM AD_WINDOW_TRL t, AD_WF_NODE n"
|
||||
+" WHERE trl.AD_WF_Node_ID=n.AD_WF_Node_ID AND n.AD_Window_ID=t.AD_Window_ID"
|
||||
+" AND trl.AD_LANGUAGE=t.AD_LANGUAGE),"
|
||||
+" Help = (SELECT t.Help FROM AD_WINDOW_TRL t, AD_WF_NODE n"
|
||||
+" WHERE trl.AD_WF_Node_ID=n.AD_WF_Node_ID AND n.AD_Window_ID=t.AD_Window_ID"
|
||||
+" AND trl.AD_LANGUAGE=t.AD_LANGUAGE)"
|
||||
+" WHERE EXISTS (SELECT 1 FROM AD_WINDOW_TRL t, AD_WF_NODE n"
|
||||
+" WHERE trl.AD_WF_Node_ID=n.AD_WF_Node_ID AND n.AD_Window_ID=t.AD_Window_ID"
|
||||
+" AND trl.AD_LANGUAGE=t.AD_LANGUAGE AND n.IsCentrallyMaintained='Y' AND n.IsActive='Y'"
|
||||
+" AND (trl.Name <> t.Name OR NVL(trl.Description,' ') <> NVL(t.Description,' ') OR NVL(trl.Help,' ') <> NVL(t.Help,' ')))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Workflow Node - Form
|
||||
log.info("Synchronize Workflow Node from Form");
|
||||
sql="UPDATE AD_WF_NODE n"
|
||||
+" SET (Name, Description, Help) = (SELECT f.Name, f.Description, f.Help"
|
||||
+" FROM AD_FORM f"
|
||||
+" WHERE f.AD_Form_ID=n.AD_Form_ID)"
|
||||
+" WHERE n.IsCentrallyMaintained = 'Y'"
|
||||
+" AND EXISTS (SELECT 1 FROM AD_FORM f"
|
||||
+" WHERE f.AD_Form_ID=n.AD_Form_ID"
|
||||
+" AND (f.Name <> n.Name OR NVL(f.Description,' ') <> NVL(n.Description,' ') OR NVL(f.Help,' ') <> NVL(n.Help,' ')))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Workflow Translations - Form
|
||||
log.info("Synchronize Workflow Node Trl from Form Trl");
|
||||
sql=" UPDATE AD_WF_NODE_TRL trl"
|
||||
+" SET (Name, Description, Help) = (SELECT t.Name, t.Description, t.Help"
|
||||
+" FROM AD_FORM_TRL t, AD_WF_NODE n"
|
||||
+" WHERE trl.AD_WF_Node_ID=n.AD_WF_Node_ID AND n.AD_Form_ID=t.AD_Form_ID"
|
||||
+" AND trl.AD_LANGUAGE=t.AD_LANGUAGE)"
|
||||
+" WHERE EXISTS (SELECT 1 FROM AD_FORM_TRL t, AD_WF_NODE n"
|
||||
+" WHERE trl.AD_WF_Node_ID=n.AD_WF_Node_ID AND n.AD_Form_ID=t.AD_Form_ID"
|
||||
+" AND trl.AD_LANGUAGE=t.AD_LANGUAGE AND n.IsCentrallyMaintained='Y' AND n.IsActive='Y'"
|
||||
+" AND (trl.Name <> t.Name OR NVL(trl.Description,' ') <> NVL(t.Description,' ') OR NVL(trl.Help,' ') <> NVL(t.Help,' ')))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Workflow Node - Report
|
||||
log.info("Synchronize Workflow Node from Process");
|
||||
sql="UPDATE AD_WF_NODE n"
|
||||
+" SET (Name, Description, Help) = (SELECT f.Name, f.Description, f.Help"
|
||||
+" FROM AD_PROCESS f"
|
||||
+" WHERE f.AD_Process_ID=n.AD_Process_ID)"
|
||||
+" WHERE n.IsCentrallyMaintained = 'Y'"
|
||||
+" AND EXISTS (SELECT 1 FROM AD_PROCESS f"
|
||||
+" WHERE f.AD_Process_ID=n.AD_Process_ID"
|
||||
+" AND (f.Name <> n.Name OR NVL(f.Description,' ') <> NVL(n.Description,' ') OR NVL(f.Help,' ') <> NVL(n.Help,' ')))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Workflow Translations - Form
|
||||
log.info("Synchronize Workflow Node Trl from Process Trl");
|
||||
sql="UPDATE AD_WF_NODE_TRL trl"
|
||||
+" SET (Name, Description, Help) = (SELECT t.Name, t.Description, t.Help"
|
||||
+" FROM AD_PROCESS_TRL t, AD_WF_NODE n"
|
||||
+" WHERE trl.AD_WF_Node_ID=n.AD_WF_Node_ID AND n.AD_Process_ID=t.AD_Process_ID"
|
||||
+" AND trl.AD_LANGUAGE=t.AD_LANGUAGE)"
|
||||
+" WHERE EXISTS (SELECT 1 FROM AD_PROCESS_TRL t, AD_WF_NODE n"
|
||||
+" WHERE trl.AD_WF_Node_ID=n.AD_WF_Node_ID AND n.AD_Process_ID=t.AD_Process_ID"
|
||||
+" AND trl.AD_LANGUAGE=t.AD_LANGUAGE AND n.IsCentrallyMaintained='Y' AND n.IsActive='Y'"
|
||||
+" AND (trl.Name <> t.Name OR NVL(trl.Description,' ') <> NVL(t.Description,' ') OR NVL(trl.Help,' ') <> NVL(t.Help,' ')))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Need centrally maintained flag here!
|
||||
log.info("Synchronize PrintFormatItem Name from Element");
|
||||
sql="UPDATE AD_PRINTFORMATITEM pfi"
|
||||
+" SET Name = (SELECT e.Name "
|
||||
+" FROM AD_ELEMENT e, AD_COLUMN c"
|
||||
+" WHERE e.AD_Element_ID=c.AD_Element_ID"
|
||||
+" AND c.AD_Column_ID=pfi.AD_Column_ID)"
|
||||
+" WHERE pfi.IsCentrallyMaintained='Y'"
|
||||
+" AND EXISTS (SELECT 1 "
|
||||
+" FROM AD_ELEMENT e, AD_COLUMN c"
|
||||
+" WHERE e.AD_Element_ID=c.AD_Element_ID"
|
||||
+" AND c.AD_Column_ID=pfi.AD_Column_ID"
|
||||
+" AND e.Name<>pfi.Name)"
|
||||
+" AND EXISTS (SELECT 1 FROM AD_CLIENT"
|
||||
+" WHERE AD_Client_ID=pfi.AD_Client_ID AND IsMultiLingualDocument='Y')";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
log.info("Synchronize PrintFormatItem PrintName from Element");
|
||||
sql="UPDATE AD_PRINTFORMATITEM pfi"
|
||||
+" SET PrintName = (SELECT e.PrintName "
|
||||
+" FROM AD_ELEMENT e, AD_COLUMN c"
|
||||
+" WHERE e.AD_Element_ID=c.AD_Element_ID"
|
||||
+" AND c.AD_Column_ID=pfi.AD_Column_ID)"
|
||||
+" WHERE pfi.IsCentrallyMaintained='Y'"
|
||||
+" AND EXISTS (SELECT 1 "
|
||||
+" FROM AD_ELEMENT e, AD_COLUMN c, AD_PRINTFORMAT pf"
|
||||
+" WHERE e.AD_Element_ID=c.AD_Element_ID"
|
||||
+" AND c.AD_Column_ID=pfi.AD_Column_ID"
|
||||
+" AND LENGTH(pfi.PrintName) > 0"
|
||||
+" AND e.PrintName<>pfi.PrintName"
|
||||
+" AND pf.AD_PrintFormat_ID=pfi.AD_PrintFormat_ID"
|
||||
+" AND pf.IsForm='N' AND IsTableBased='Y')"
|
||||
+" AND EXISTS (SELECT 1 FROM AD_CLIENT "
|
||||
+" WHERE AD_Client_ID=pfi.AD_Client_ID AND IsMultiLingualDocument='Y')";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
log.info("Synchronize PrintFormatItem Trl from Element Trl (Multi-Lingual)");
|
||||
sql="UPDATE AD_PRINTFORMATITEM_TRL trl"
|
||||
+" SET PrintName = (SELECT e.PrintName"
|
||||
+" FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_PRINTFORMATITEM pfi"
|
||||
+" WHERE e.AD_LANGUAGE=trl.AD_LANGUAGE"
|
||||
+" AND e.AD_Element_ID=c.AD_Element_ID"
|
||||
+" AND c.AD_Column_ID=pfi.AD_Column_ID"
|
||||
+" AND pfi.AD_PrintFormatItem_ID=trl.AD_PrintFormatItem_ID)"
|
||||
+" WHERE EXISTS (SELECT 1 "
|
||||
+" FROM AD_ELEMENT_TRL e, AD_COLUMN c, AD_PRINTFORMATITEM pfi, AD_PRINTFORMAT pf"
|
||||
+" WHERE e.AD_LANGUAGE=trl.AD_LANGUAGE"
|
||||
+" AND e.AD_Element_ID=c.AD_Element_ID"
|
||||
+" AND c.AD_Column_ID=pfi.AD_Column_ID"
|
||||
+" AND pfi.AD_PrintFormatItem_ID=trl.AD_PrintFormatItem_ID"
|
||||
+" AND pfi.IsCentrallyMaintained='Y'"
|
||||
+" AND LENGTH(pfi.PrintName) > 0"
|
||||
+" AND (e.PrintName<>trl.PrintName OR trl.PrintName IS NULL)"
|
||||
+" AND pf.AD_PrintFormat_ID=pfi.AD_PrintFormat_ID "
|
||||
+" AND pf.IsForm='N' AND IsTableBased='Y')"
|
||||
+" AND EXISTS (SELECT 1 FROM AD_CLIENT "
|
||||
+" WHERE AD_Client_ID=trl.AD_Client_ID AND IsMultiLingualDocument='Y')";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
log.info("Synchronize PrintFormatItem Trl (Not Multi-Lingual)");
|
||||
sql="UPDATE AD_PRINTFORMATITEM_TRL trl"
|
||||
+" SET PrintName = (SELECT pfi.PrintName"
|
||||
+" FROM AD_PRINTFORMATITEM pfi"
|
||||
+" WHERE pfi.AD_PrintFormatItem_ID=trl.AD_PrintFormatItem_ID)"
|
||||
+" WHERE EXISTS (SELECT 1 "
|
||||
+" FROM AD_PRINTFORMATITEM pfi, AD_PRINTFORMAT pf"
|
||||
+" WHERE pfi.AD_PrintFormatItem_ID=trl.AD_PrintFormatItem_ID"
|
||||
+" AND pfi.IsCentrallyMaintained='Y'"
|
||||
+" AND LENGTH(pfi.PrintName) > 0"
|
||||
+" AND pfi.PrintName<>trl.PrintName"
|
||||
+" AND pf.AD_PrintFormat_ID=pfi.AD_PrintFormat_ID "
|
||||
+" AND pf.IsForm='N' AND pf.IsTableBased='Y')"
|
||||
+" AND EXISTS (SELECT 1 FROM AD_CLIENT "
|
||||
+" WHERE AD_Client_ID=trl.AD_Client_ID AND IsMultiLingualDocument='N')";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
log.info("Reset PrintFormatItem Trl where not used in base table");
|
||||
sql="UPDATE AD_PRINTFORMATITEM_TRL trl"
|
||||
+" SET PrintName = NULL"
|
||||
+" WHERE PrintName IS NOT NULL"
|
||||
+" AND EXISTS (SELECT 1"
|
||||
+" FROM AD_PRINTFORMATITEM pfi"
|
||||
+" WHERE pfi.AD_PrintFormatItem_ID=trl.AD_PrintFormatItem_ID"
|
||||
+" AND pfi.IsCentrallyMaintained='Y'"
|
||||
+" AND (LENGTH (pfi.PrintName) = 0 OR pfi.PrintName IS NULL))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
/**
|
||||
SELECT e.PrintName "Element", pfi.PrintName "FormatItem", trl.AD_Language, trl.PrintName "Trl"
|
||||
FROM AD_Element e
|
||||
INNER JOIN AD_Column c ON (e.AD_Element_ID=c.AD_Element_ID)
|
||||
INNER JOIN AD_PrintFormatItem pfi ON (c.AD_Column_ID=pfi.AD_Column_ID)
|
||||
INNER JOIN AD_PrintFormatItem_Trl trl ON (pfi.AD_PrintFormatItem_ID=trl.AD_PrintFormatItem_ID)
|
||||
WHERE pfi.AD_PrintFormatItem_ID=?
|
||||
**/
|
||||
|
||||
// Sync Names - Window
|
||||
log.info("Synchronizing Menu with Window");
|
||||
sql="UPDATE AD_MENU m"
|
||||
+" SET Name = (SELECT Name FROM AD_WINDOW w WHERE m.AD_Window_ID=w.AD_Window_ID),"
|
||||
+" Description = (SELECT Description FROM AD_WINDOW w WHERE m.AD_Window_ID=w.AD_Window_ID)"
|
||||
+" WHERE AD_Window_ID IS NOT NULL"
|
||||
+" AND Action = 'W'";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
sql="UPDATE AD_MENU_TRL mt"
|
||||
+" SET Name = (SELECT wt.Name FROM AD_WINDOW_TRL wt, AD_MENU m "
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Window_ID=wt.AD_Window_ID "
|
||||
+" AND mt.AD_LANGUAGE=wt.AD_LANGUAGE),"
|
||||
+" Description = (SELECT wt.Description FROM AD_WINDOW_TRL wt, AD_MENU m "
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Window_ID=wt.AD_Window_ID "
|
||||
+" AND mt.AD_LANGUAGE=wt.AD_LANGUAGE),"
|
||||
+" IsTranslated = (SELECT wt.IsTranslated FROM AD_WINDOW_TRL wt, AD_MENU m "
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Window_ID=wt.AD_Window_ID "
|
||||
+" AND mt.AD_LANGUAGE=wt.AD_LANGUAGE)"
|
||||
+" WHERE EXISTS (SELECT 1 FROM AD_WINDOW_TRL wt, AD_MENU m "
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Window_ID=wt.AD_Window_ID "
|
||||
+" AND mt.AD_LANGUAGE=wt.AD_LANGUAGE"
|
||||
+" AND m.AD_Window_ID IS NOT NULL"
|
||||
+" AND m.Action = 'W')";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Sync Names - Process
|
||||
log.info("Synchronizing Menu with Processes");
|
||||
sql="UPDATE AD_MENU m"
|
||||
+" SET Name = (SELECT p.Name FROM AD_PROCESS p WHERE m.AD_Process_ID=p.AD_Process_ID),"
|
||||
+" Description = (SELECT p.Description FROM AD_PROCESS p WHERE m.AD_Process_ID=p.AD_Process_ID)"
|
||||
+" WHERE m.AD_Process_ID IS NOT NULL"
|
||||
+" AND m.Action IN ('R', 'P')";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
sql="UPDATE AD_MENU_TRL mt"
|
||||
+" SET Name = (SELECT pt.Name FROM AD_PROCESS_TRL pt, AD_MENU m"
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Process_ID=pt.AD_Process_ID"
|
||||
+" AND mt.AD_LANGUAGE=pt.AD_LANGUAGE),"
|
||||
+" Description = (SELECT pt.Description FROM AD_PROCESS_TRL pt, AD_MENU m"
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Process_ID=pt.AD_Process_ID"
|
||||
+" AND mt.AD_LANGUAGE=pt.AD_LANGUAGE),"
|
||||
+" IsTranslated = (SELECT pt.IsTranslated FROM AD_PROCESS_TRL pt, AD_MENU m"
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Process_ID=pt.AD_Process_ID"
|
||||
+" AND mt.AD_LANGUAGE=pt.AD_LANGUAGE)"
|
||||
+" WHERE EXISTS (SELECT 1 FROM AD_PROCESS_TRL pt, AD_MENU m"
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Process_ID=pt.AD_Process_ID"
|
||||
+" AND mt.AD_LANGUAGE=pt.AD_LANGUAGE"
|
||||
+" AND m.AD_Process_ID IS NOT NULL"
|
||||
+" AND Action IN ('R', 'P'))";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Sync Names = Form
|
||||
log.info("Synchronizing Menu with Forms");
|
||||
sql="UPDATE AD_MENU m"
|
||||
+" SET Name = (SELECT Name FROM AD_FORM f WHERE m.AD_Form_ID=f.AD_Form_ID),"
|
||||
+" Description = (SELECT Description FROM AD_FORM f WHERE m.AD_Form_ID=f.AD_Form_ID)"
|
||||
+" WHERE AD_Form_ID IS NOT NULL"
|
||||
+" AND Action = 'X'";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
sql="UPDATE AD_MENU_TRL mt"
|
||||
+" SET Name = (SELECT ft.Name FROM AD_FORM_TRL ft, AD_MENU m"
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Form_ID=ft.AD_Form_ID"
|
||||
+" AND mt.AD_LANGUAGE=ft.AD_LANGUAGE),"
|
||||
+" Description = (SELECT ft.Description FROM AD_FORM_TRL ft, AD_MENU m"
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Form_ID=ft.AD_Form_ID"
|
||||
+" AND mt.AD_LANGUAGE=ft.AD_LANGUAGE),"
|
||||
+" IsTranslated = (SELECT ft.IsTranslated FROM AD_FORM_TRL ft, AD_MENU m"
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Form_ID=ft.AD_Form_ID"
|
||||
+" AND mt.AD_LANGUAGE=ft.AD_LANGUAGE)"
|
||||
+" WHERE EXISTS (SELECT 1 FROM AD_FORM_TRL ft, AD_MENU m"
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Form_ID=ft.AD_Form_ID"
|
||||
+" AND mt.AD_LANGUAGE=ft.AD_LANGUAGE"
|
||||
+" AND m.AD_Form_ID IS NOT NULL"
|
||||
+" AND Action = 'X')";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Sync Names - Workflow
|
||||
log.info("Synchronizing Menu with Workflows");
|
||||
sql="UPDATE AD_MENU m"
|
||||
+" SET Name = (SELECT p.Name FROM AD_WORKFLOW p WHERE m.AD_Workflow_ID=p.AD_Workflow_ID),"
|
||||
+" Description = (SELECT p.Description FROM AD_WORKFLOW p WHERE m.AD_Workflow_ID=p.AD_Workflow_ID)"
|
||||
+" WHERE m.AD_Workflow_ID IS NOT NULL"
|
||||
+" AND m.Action = 'F'";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
sql="UPDATE AD_MENU_TRL mt"
|
||||
+" SET Name = (SELECT pt.Name FROM AD_WORKFLOW_TRL pt, AD_MENU m"
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Workflow_ID=pt.AD_Workflow_ID"
|
||||
+" AND mt.AD_LANGUAGE=pt.AD_LANGUAGE),"
|
||||
+" Description = (SELECT pt.Description FROM AD_WORKFLOW_TRL pt, AD_MENU m"
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Workflow_ID=pt.AD_Workflow_ID"
|
||||
+" AND mt.AD_LANGUAGE=pt.AD_LANGUAGE),"
|
||||
+" IsTranslated = (SELECT pt.IsTranslated FROM AD_WORKFLOW_TRL pt, AD_MENU m"
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Workflow_ID=pt.AD_Workflow_ID"
|
||||
+" AND mt.AD_LANGUAGE=pt.AD_LANGUAGE)"
|
||||
+" WHERE EXISTS (SELECT 1 FROM AD_WORKFLOW_TRL pt, AD_MENU m"
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Workflow_ID=pt.AD_Workflow_ID"
|
||||
+" AND mt.AD_LANGUAGE=pt.AD_LANGUAGE"
|
||||
+" AND m.AD_Workflow_ID IS NOT NULL"
|
||||
+" AND Action = 'F')";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Sync Names = Task
|
||||
log.info("Synchronizing Menu with Tasks");
|
||||
sql="UPDATE AD_MENU m"
|
||||
+" SET Name = (SELECT Name FROM AD_TASK f WHERE m.AD_Task_ID=f.AD_Task_ID),"
|
||||
+" Description = (SELECT Description FROM AD_TASK f WHERE m.AD_Task_ID=f.AD_Task_ID)"
|
||||
+" WHERE AD_Task_ID IS NOT NULL"
|
||||
+" AND Action = 'T'";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
sql="UPDATE AD_MENU_TRL mt"
|
||||
+" SET Name = (SELECT ft.Name FROM AD_TASK_TRL ft, AD_MENU m"
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Task_ID=ft.AD_Task_ID"
|
||||
+" AND mt.AD_LANGUAGE=ft.AD_LANGUAGE),"
|
||||
+" Description = (SELECT ft.Description FROM AD_TASK_TRL ft, AD_MENU m"
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Task_ID=ft.AD_Task_ID"
|
||||
+" AND mt.AD_LANGUAGE=ft.AD_LANGUAGE),"
|
||||
+" IsTranslated = (SELECT ft.IsTranslated FROM AD_TASK_TRL ft, AD_MENU m"
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Task_ID=ft.AD_Task_ID"
|
||||
+" AND mt.AD_LANGUAGE=ft.AD_LANGUAGE)"
|
||||
+" WHERE EXISTS (SELECT 1 FROM AD_TASK_TRL ft, AD_MENU m"
|
||||
+" WHERE mt.AD_Menu_ID=m.AD_Menu_ID AND m.AD_Task_ID=ft.AD_Task_ID"
|
||||
+" AND mt.AD_LANGUAGE=ft.AD_LANGUAGE"
|
||||
+" AND m.AD_Task_ID IS NOT NULL"
|
||||
+" AND Action = 'T')";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
// Column Name + Element
|
||||
log.info("Synchronizing Column with Element");
|
||||
sql="UPDATE AD_COLUMN c"
|
||||
+" SET (Name,Description,Help) ="
|
||||
+" (SELECT e.Name,e.Description,e.Help "
|
||||
+" FROM AD_ELEMENT e WHERE c.AD_Element_ID=e.AD_Element_ID)"
|
||||
+" WHERE EXISTS "
|
||||
+" (SELECT 1 FROM AD_ELEMENT e "
|
||||
+" WHERE c.AD_Element_ID=e.AD_Element_ID"
|
||||
+" AND c.Name<>e.Name)";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
sql="UPDATE AD_COLUMN_TRL ct"
|
||||
+" SET Name = (SELECT e.Name"
|
||||
+" FROM AD_COLUMN c INNER JOIN AD_ELEMENT_TRL e ON (c.AD_Element_ID=e.AD_Element_ID)"
|
||||
+" WHERE ct.AD_Column_ID=c.AD_Column_ID AND ct.AD_LANGUAGE=e.AD_LANGUAGE)"
|
||||
+" WHERE EXISTS "
|
||||
+" (SELECT 1 FROM AD_COLUMN c INNER JOIN AD_ELEMENT_TRL e ON (c.AD_Element_ID=e.AD_Element_ID)"
|
||||
+" WHERE ct.AD_Column_ID=c.AD_Column_ID AND ct.AD_LANGUAGE=e.AD_LANGUAGE"
|
||||
+" AND ct.Name<>e.Name)";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" rows updated: "+rowNum);
|
||||
|
||||
|
||||
// Table Name + Element
|
||||
log.info("Synchronizing Table with Element");
|
||||
sql="UPDATE AD_TABLE t "
|
||||
+"SET (Name,Description) = (SELECT e.Name,e.Description FROM AD_ELEMENT e "
|
||||
+"WHERE t.TableName||'_ID'=e.ColumnName) "
|
||||
+"WHERE EXISTS (SELECT 1 FROM AD_ELEMENT e "
|
||||
+"WHERE t.TableName||'_ID'=e.ColumnName "
|
||||
+"AND t.Name<>e.Name)";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
|
||||
log.info(" rows updated: " +rowNum);
|
||||
sql="UPDATE AD_TABLE_TRL tt"
|
||||
+" SET Name = (SELECT e.Name "
|
||||
+" FROM AD_TABLE t INNER JOIN AD_ELEMENT ex ON (t.TableName||'_ID'=ex.ColumnName)"
|
||||
+" INNER JOIN AD_ELEMENT_TRL e ON (ex.AD_Element_ID=e.AD_Element_ID)"
|
||||
+" WHERE tt.AD_Table_ID=t.AD_Table_ID AND tt.AD_LANGUAGE=e.AD_LANGUAGE)"
|
||||
+" WHERE EXISTS (SELECT 1 "
|
||||
+" FROM AD_TABLE t INNER JOIN AD_ELEMENT ex ON (t.TableName||'_ID'=ex.ColumnName)"
|
||||
+" INNER JOIN AD_ELEMENT_TRL e ON (ex.AD_Element_ID=e.AD_Element_ID)"
|
||||
+" WHERE tt.AD_Table_ID=t.AD_Table_ID AND tt.AD_LANGUAGE=e.AD_LANGUAGE"
|
||||
+" AND tt.Name<>e.Name)";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" trl rows updated: "+rowNum);
|
||||
|
||||
// Trl Table Name + Element
|
||||
sql="UPDATE AD_TABLE t"
|
||||
+" SET (Name,Description) = (SELECT e.Name||' Trl', e.Description "
|
||||
+" FROM AD_ELEMENT e "
|
||||
+" WHERE SUBSTR(t.TableName,1,LENGTH(t.TableName)-4)||'_ID'=e.ColumnName)"
|
||||
+" WHERE TableName LIKE '%_Trl'"
|
||||
+" AND EXISTS (SELECT 1 FROM AD_ELEMENT e "
|
||||
+" WHERE SUBSTR(t.TableName,1,LENGTH(t.TableName)-4)||'_ID'=e.ColumnName"
|
||||
+" AND t.Name<>e.Name)";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" trl rows updated: "+rowNum);
|
||||
sql=" UPDATE AD_TABLE_TRL tt"
|
||||
+" SET Name = (SELECT e.Name || ' **'"
|
||||
+" FROM AD_TABLE t INNER JOIN AD_ELEMENT ex ON (SUBSTR(t.TableName,1,LENGTH(t.TableName)-4)||'_ID'=ex.ColumnName)"
|
||||
+" INNER JOIN AD_ELEMENT_TRL e ON (ex.AD_Element_ID=e.AD_Element_ID)"
|
||||
+" WHERE tt.AD_Table_ID=t.AD_Table_ID AND tt.AD_LANGUAGE=e.AD_LANGUAGE)"
|
||||
+" WHERE EXISTS (SELECT 1 "
|
||||
+" FROM AD_TABLE t INNER JOIN AD_ELEMENT ex ON (SUBSTR(t.TableName,1,LENGTH(t.TableName)-4)||'_ID'=ex.ColumnName)"
|
||||
+" INNER JOIN AD_ELEMENT_TRL e ON (ex.AD_Element_ID=e.AD_Element_ID)"
|
||||
+" WHERE tt.AD_Table_ID=t.AD_Table_ID AND tt.AD_LANGUAGE=e.AD_LANGUAGE"
|
||||
+" AND t.TableName LIKE '%_Trl'"
|
||||
+" AND tt.Name<>e.Name)";
|
||||
rowNum = DB.executeUpdate(sql, false, get_TrxName());
|
||||
log.info(" trl rows updated: "+rowNum);
|
||||
} catch (Exception e) {
|
||||
log.log (Level.SEVERE, "@Failed@: "+e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
return "@OK@";
|
||||
} // doIt
|
||||
|
||||
} // ColumnSync
|
Loading…
Reference in New Issue