use of org.compiere.util.Trx in project adempiere by adempiere.
the class OrderDistributionReceipt method generate.
// saveSelection
/**************************************************************************
* Generate Movements
*/
public String generate(MiniTable miniTable, IStatusBar statusBar, String docActionSelected) {
String info = "";
log.info("DD_Order_ID=" + m_DD_Order_ID);
log.info("MovementDate" + m_MovementDate);
String trxName = Trx.createTrxName("MVG");
Trx trx = Trx.get(trxName, true);
// prevents from being called twice
setSelectionActive(false);
statusBar.setStatusLine(Msg.translate(Env.getCtx(), "M_Movement_ID"));
statusBar.setStatusDB(String.valueOf(getSelection().size()));
Properties m_ctx = Env.getCtx();
Timestamp movementDate = (Timestamp) m_MovementDate;
MDDOrder order = new MDDOrder(m_ctx, Integer.parseInt(m_DD_Order_ID.toString()), trxName);
MMovement movement = new MMovement(order, movementDate);
movement.saveEx();
ArrayList<Integer> ids = getSelection();
int i = 0;
for (int DD_OrderLine_ID : ids) {
MDDOrderLine oline = new MDDOrderLine(m_ctx, DD_OrderLine_ID, trxName);
MMovementLine line = new MMovementLine(movement);
line.setM_Product_ID(oline.getM_Product_ID());
BigDecimal QtyDeliver = (BigDecimal) miniTable.getValueAt(i, 1);
if (QtyDeliver == null | QtyDeliver.compareTo(oline.getQtyInTransit()) > 0)
throw new AdempiereException("Error in Qty");
line.setOrderLine(oline, QtyDeliver, true);
line.saveEx();
i++;
}
// Fails if there is a confirmation
if (!movement.processIt(MMovement.ACTION_Complete))
log.warning("Failed: " + movement);
movement.setDocStatus(MMovement.DOCACTION_Complete);
movement.setDocAction(MMovement.ACTION_Close);
movement.saveEx();
return info;
}
use of org.compiere.util.Trx in project adempiere by adempiere.
the class OrderDistribution method generate.
// saveSelection
public String generate(IStatusBar statusBar, String docActionSelected) {
String info = "";
log.info("M_Locator_ID=" + m_M_Locator_ID);
String trxName = Trx.createTrxName("IMG");
Trx trx = Trx.get(trxName, true);
// prevents from being called twice
setSelectionActive(false);
statusBar.setStatusLine(Msg.translate(Env.getCtx(), "M_Movement_ID"));
statusBar.setStatusDB(String.valueOf(getSelection().size()));
// Prepare Process
int AD_Process_ID = MProcess.getProcess_ID("M_Generate Movement", trxName);
MPInstance instance = new MPInstance(Env.getCtx(), AD_Process_ID, 0);
if (!instance.save()) {
info = Msg.getMsg(Env.getCtx(), "ProcessNoInstance");
return info;
}
DB.createT_Selection(instance.getAD_PInstance_ID(), getSelection(), null);
//call process
ProcessInfo pi = new ProcessInfo("VOrderDistribution", AD_Process_ID);
pi.setAD_PInstance_ID(instance.getAD_PInstance_ID());
// Add Parameter - Selection=Y
MPInstancePara ip = new MPInstancePara(instance, 10);
ip.setParameter("Selection", "Y");
ip.saveEx();
MLocator locator = MLocator.get(Env.getCtx(), Integer.parseInt(m_M_Locator_ID.toString()));
// Add Parameter - M_Warehouse_ID=x
ip = new MPInstancePara(instance, 20);
ip.setParameter("M_Warehouse_ID", locator.getM_Warehouse_ID());
ip.saveEx();
setTrx(trx);
setProcessInfo(pi);
return info;
}
use of org.compiere.util.Trx in project adempiere by adempiere.
the class SynchronizeTerminology method doIt.
// prepare
/**
* Process
* @return message
* @throws Exception
*/
protected String doIt() throws Exception {
//TODO Error handling
String sql = null;
try {
int no;
Trx trx = Trx.get(get_TrxName(), false);
if (isCreateElementsfromColumnOrParameters()) {
// Create Elements from ColumnNames
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))" + " AND c.isActive = 'Y'";
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.saveEx();
}
pstmt.close();
rs.close();
trx.commit(true);
// Create Elements for Process Parameters which are centrally maintained
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))" + " AND p.isCentrallyMaintained = 'Y'" + " AND p.isActive = 'Y'";
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.saveEx();
}
pstmt.close();
rs.close();
trx.commit(true);
}
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)";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
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";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
if (isDeletingUnusedElements()) {
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)))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows deleted: " + no);
trx.commit(true);
sql = "DELETE AD_ELEMENT e" + " WHERE AD_Element_ID >= 1000000 AND 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))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows deleted: " + no);
trx.commit(true);
}
// 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,' ')))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// Fields should now be synchronized
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,' ')))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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,' ')))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// Fields should now be synchronized
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')";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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')";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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,' ')))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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,' ')))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
//Browse Fields should now be synchronized
log.info("Synchronize Browse Field");
sql = " UPDATE AD_BROWSE_FIELD f" + " SET (Name, Description, Help) = " + " (SELECT e.Name, e.Description, e.Help" + " FROM AD_ELEMENT e " + " WHERE e.AD_Element_ID=f.AD_Element_ID)," + " Updated = SYSDATE" + " WHERE f.IsCentrallyMaintained='Y' AND f.IsActive='Y'" + " AND EXISTS (SELECT 1 FROM AD_ELEMENT e " + " WHERE f.AD_Element_ID=e.AD_Element_ID " + " AND (f.Name <> e.Name OR NVL(f.Description,' ') <> NVL(e.Description,' ') OR NVL(f.Help,' ') <> NVL(e.Help,' ')))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// Browse Field Translations
log.info("Synchronize Browse Field Translations");
sql = "UPDATE AD_BROWSE_FIELD_TRL trl" + " SET Name = (SELECT e.Name FROM AD_ELEMENT_TRL e , AD_BROWSE_FIELD f" + " WHERE e.AD_LANGUAGE=trl.AD_LANGUAGE AND e.AD_Element_ID=f.AD_Element_ID " + " AND f.AD_Browse_Field_ID=trl.AD_Browse_Field_ID)," + " Description = (SELECT e.Description FROM AD_ELEMENT_TRL e, AD_BROWSE_FIELD f" + " WHERE e.AD_LANGUAGE=trl.AD_LANGUAGE AND e.AD_Element_ID=f.AD_Element_ID " + " AND f.AD_Browse_Field_ID=trl.AD_Browse_Field_ID)," + " Help = (SELECT e.Help FROM AD_ELEMENT_TRL e, AD_BROWSE_FIELD f" + " WHERE e.AD_LANGUAGE=trl.AD_LANGUAGE AND e.AD_Element_ID=f.AD_Element_ID " + " AND f.AD_Browse_Field_ID=trl.AD_Browse_Field_ID)," + " IsTranslated = (SELECT e.IsTranslated FROM AD_ELEMENT_TRL e, AD_BROWSE_FIELD f" + " WHERE e.AD_LANGUAGE=trl.AD_LANGUAGE AND e.AD_Element_ID=f.AD_Element_ID " + " AND f.AD_Browse_Field_ID=trl.AD_Browse_Field_ID)," + " Updated = SYSDATE" + " WHERE EXISTS (SELECT 1 FROM AD_BROWSE_FIELD f, AD_ELEMENT_TRL e" + " WHERE trl.AD_Browse_Field_ID=f.AD_Browse_Field_ID" + " AND f.AD_Element_ID=e.AD_Element_ID" + " 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,' ')))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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 e.ColumnName=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)";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// Parameter 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)";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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,' ')))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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,' ')))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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,' ')))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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,' ')))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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,' ')))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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,' ')))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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,' ')))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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,' ')))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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')";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
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')";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
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')";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
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')";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
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))";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
/**
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 m.AD_Window_ID IS NOT NULL" + " AND m.Action = 'W'" + " AND m.IsCentrallyMaintained='Y' AND m.IsActive='Y'";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
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'" + " AND m.IsCentrallyMaintained='Y' AND m.IsActive='Y'" + ")";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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')" + " AND m.IsCentrallyMaintained='Y' AND m.IsActive='Y'";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
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 m.Action IN ('R', 'P')" + " AND m.IsCentrallyMaintained='Y' AND m.IsActive='Y'" + ")";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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 m.AD_Form_ID IS NOT NULL" + " AND m.Action = 'X'" + " AND m.IsCentrallyMaintained='Y' AND m.IsActive='Y'";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
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 m.Action = 'X'" + " AND m.IsCentrallyMaintained='Y' AND m.IsActive='Y'" + ")";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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'" + " AND m.IsCentrallyMaintained='Y' AND m.IsActive='Y'";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
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 m.Action = 'F'" + " AND m.IsCentrallyMaintained='Y' AND m.IsActive='Y'" + ")";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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 m.AD_Task_ID IS NOT NULL" + " AND m.Action = 'T'" + " AND m.IsCentrallyMaintained='Y' AND m.IsActive='Y'";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
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 m.Action = 'T'" + " AND m.IsCentrallyMaintained='Y' AND m.IsActive='Y'" + ")";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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)";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
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)";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" rows updated: " + no);
trx.commit(true);
// 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)";
no = DB.executeUpdate(sql, false, get_TrxName());
trx.commit(true);
log.info(" rows updated: " + no);
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)";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" trl rows updated: " + no);
trx.commit(true);
// 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)";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" trl rows updated: " + no);
trx.commit(true);
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)";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" trl rows updated: " + no);
trx.commit(true);
// FR [ 237 ]
// Copy parent Print Name
log.info("Synchronizing Report View with Table");
sql = " UPDATE AD_ReportView rvt " + "SET PrintName = COALESCE(rvt.Description, (SELECT COALESCE(e.PrintName, t.Name) " + " FROM AD_Table t" + " INNER JOIN AD_ReportView rv ON(rv.AD_Table_ID = t.AD_Table_ID)" + " LEFT JOIN AD_Element e ON(SUBSTR(t.TableName, 1, LENGTH(t.TableName) - 4) || '_ID' = e.ColumnName)" + " WHERE rv.AD_ReportView_ID = rvt.AD_ReportView_ID" + "))" + "WHERE EXISTS (SELECT 1 " + " FROM AD_Table tt " + " INNER JOIN AD_ReportView rv ON(rv.AD_Table_ID = tt.AD_Table_ID) " + " WHERE rv.AD_ReportView_ID = rvt.AD_ReportView_ID " + " AND tt.Name <> COALESCE(rvt.PrintName, NULL)" + " AND rv.IsCentrallyMaintained = 'Y') ";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" trl rows updated: " + no);
trx.commit(true);
// For Translation
log.info("Synchronizing Report View with Table");
sql = " UPDATE AD_ReportView_Trl rvt " + "SET Name = (SELECT tt.Name " + " FROM AD_Table_Trl tt " + " INNER JOIN AD_ReportView rv ON(rv.AD_Table_ID = tt.AD_Table_ID) " + " WHERE rv.AD_ReportView_ID = rvt.AD_ReportView_ID " + " AND tt.AD_Language = rvt.AD_Language" + "), " + "PrintName = (SELECT COALESCE(et.PrintName, et.Name, tt.Name) " + " FROM AD_Table t" + " INNER JOIN AD_Table_Trl tt ON(tt.AD_Table_ID = t.AD_Table_ID)" + " INNER JOIN AD_ReportView rv ON(rv.AD_Table_ID = tt.AD_Table_ID)" + " LEFT JOIN AD_Element e ON(SUBSTR(t.TableName, 1, LENGTH(t.TableName) - 4) || '_ID' = e.ColumnName)" + " LEFT JOIN AD_Element_Trl et ON(et.AD_Element_ID = e.AD_Element_ID AND et.AD_Language = tt.AD_Language)" + " WHERE rv.AD_ReportView_ID = rvt.AD_ReportView_ID" + " AND tt.AD_Language = rvt.AD_Language" + "), " + "Description = (SELECT COALESCE(et.Name, tt.Name) " + " FROM AD_Table t" + " INNER JOIN AD_Table_Trl tt ON(tt.AD_Table_ID = t.AD_Table_ID)" + " INNER JOIN AD_ReportView rv ON(rv.AD_Table_ID = tt.AD_Table_ID)" + " LEFT JOIN AD_Element e ON(SUBSTR(t.TableName, 1, LENGTH(t.TableName) - 4) || '_ID' = e.ColumnName)" + " LEFT JOIN AD_Element_Trl et ON(et.AD_Element_ID = e.AD_Element_ID AND et.AD_Language = tt.AD_Language)" + " WHERE rv.AD_ReportView_ID = rvt.AD_ReportView_ID" + " AND tt.AD_Language = rvt.AD_Language" + ")" + "WHERE EXISTS (SELECT 1 " + " FROM AD_Table_Trl tt " + " INNER JOIN AD_ReportView rv ON(rv.AD_Table_ID = tt.AD_Table_ID) " + " WHERE rv.AD_ReportView_ID = rvt.AD_ReportView_ID AND tt.AD_Language = rvt.AD_Language " + " AND tt.Name<>rvt.Name" + " AND rv.IsCentrallyMaintained = 'Y') ";
no = DB.executeUpdate(sql, false, get_TrxName());
log.info(" trl rows updated: " + no);
trx.commit(true);
} catch (Exception e) {
log.log(Level.SEVERE, "@Failed@: " + e.getLocalizedMessage(), e);
throw e;
}
return "@OK@";
}
use of org.compiere.util.Trx in project adempiere by adempiere.
the class MWFActivity method run.
// getApproval
/**************************************************************************
* Execute Work.
* Called from MWFProcess.startNext
* Feedback to Process via setWFState -> checkActivities
*/
public void run() {
log.info("Node=" + getNode());
m_newValue = null;
//m_trx = Trx.get(, true);
Trx trx = null;
boolean localTrx = false;
if (get_TrxName() == null) {
this.set_TrxName(Trx.createTrxName("WFA"));
localTrx = true;
}
trx = Trx.get(get_TrxName(), true);
Savepoint savepoint = null;
//
try {
if (!localTrx)
savepoint = trx.setSavepoint(null);
if (!m_state.isValidAction(StateEngine.ACTION_Start)) {
setTextMsg("State=" + getWFState() + " - cannot start");
addTextMsg(new Exception(""));
setWFState(StateEngine.STATE_Terminated);
return;
}
//
setWFState(StateEngine.STATE_Running);
if (getNode().get_ID() == 0) {
setTextMsg("Node not found - AD_WF_Node_ID=" + getAD_WF_Node_ID());
setWFState(StateEngine.STATE_Aborted);
return;
}
// Do Work
/**** Trx Start ****/
boolean done = performWork(Trx.get(get_TrxName(), false));
// Reason: if the commit fails the document should be put in Invalid state
if (localTrx) {
try {
trx.commit(true);
} catch (Exception e) {
// If we have a DocStatus, change it to Invalid, and throw the exception to the next level
if (m_docStatus != null)
m_docStatus = DocAction.STATUS_Invalid;
throw e;
}
}
setWFState(done ? StateEngine.STATE_Completed : StateEngine.STATE_Suspended);
} catch (Exception e) {
log.log(Level.WARNING, "" + getNode(), e);
/**** Trx Rollback ****/
if (localTrx) {
trx.rollback();
} else if (savepoint != null) {
try {
trx.rollback(savepoint);
} catch (SQLException e1) {
}
}
//
if (e.getCause() != null)
log.log(Level.WARNING, "Cause", e.getCause());
String processMsg = e.getLocalizedMessage();
if (processMsg == null || processMsg.length() == 0)
processMsg = e.getMessage();
setTextMsg(processMsg);
addTextMsg(e);
// unlocks
setWFState(StateEngine.STATE_Terminated);
// Set Document Status
if (m_po != null && m_po instanceof DocAction && m_docStatus != null) {
m_po.load(get_TrxName());
DocAction doc = (DocAction) m_po;
doc.setDocStatus(m_docStatus);
m_po.saveEx();
}
} finally {
if (localTrx && trx != null) {
trx.close();
}
}
}
use of org.compiere.util.Trx in project adempiere by adempiere.
the class PackOutTest method testPackOut.
public void testPackOut() {
PackOut m_PackOut = new PackOut();
PackInHandler m_PackInHandler = new PackInHandler();
Trx m_trx = Trx.get(getTrxName(), true);
int m_ad_process_id = IDFinder.get_IDWithColumn("ad_process", "Name", "PackOut", getAD_Client_ID(), getTrxName());
int m_ad_table_id = IDFinder.get_IDWithColumn("ad_table", "Name", "AD_Package_Exp_ID", getAD_Client_ID(), getTrxName());
//Create 2Pack Export Package
MPackageExp m_MPackageExp = new MPackageExp(getCtx(), 0, getTrxName());
m_MPackageExp.setName("testSqlStatement2Pack");
m_MPackageExp.setIsActive(true);
m_MPackageExp.setDescription("Test Output Package");
m_MPackageExp.setEMail("wgheath@gmail.com");
m_MPackageExp.setUserName("wgheath@gmail.com");
m_MPackageExp.setFile_Directory("packages/");
m_MPackageExp.setInstructions("use 2pack to import this package");
m_MPackageExp.setReleaseNo(X_AD_Package_Exp_Detail.RELEASENO_NoSpecificRelease);
m_MPackageExp.setVersion("1.0");
m_MPackageExp.setPK_Version("1.0");
boolean saveResult = m_MPackageExp.save();
assertTrue("MPackageExp.save()", saveResult);
X_AD_Package_Exp_Detail m_PackDetail = new X_AD_Package_Exp_Detail(getCtx(), 0, getTrxName());
m_PackDetail.setAD_Org_ID(m_MPackageExp.getAD_Org_ID());
m_PackDetail.setAD_Package_Exp_ID(m_MPackageExp.get_ID());
m_MPackageExp.setIsActive(true);
m_PackDetail.setType(X_AD_Package_Exp_Detail.TYPE_SQLStatement);
m_PackDetail.setDBType("ALL");
m_PackDetail.setSQLStatement("select * from ad_table");
m_PackDetail.setDescription("2pack test sql statement");
/*m_PackDetail.setFileName(rs.getString("FILENAME"));
m_PackDetail.setAD_Client_ID(m_MPackageExp.getAD_Client_ID());
m_PackDetail.setDescription(rs.getString("DESCRIPTION"));
m_PackDetail.setTarget_Directory(rs.getString("TARGET_DIRECTORY"));
m_PackDetail.setFile_Directory(rs.getString("FILE_DIRECTORY"));
m_PackDetail.setDestination_Directory(rs.getString("DESTINATION_DIRECTORY"));
m_PackDetail.setAD_Workflow_ID(rs.getInt("AD_WORKFLOW_ID"));
m_PackDetail.setAD_Window_ID(rs.getInt("AD_WINDOW_ID"));
m_PackDetail.setAD_Role_ID(rs.getInt("AD_ROLE_ID"));
m_PackDetail.setAD_Process_ID(rs.getInt("AD_PROCESS_ID"));
m_PackDetail.setAD_Menu_ID(rs.getInt("AD_MENU_ID"));
m_PackDetail.setAD_ImpFormat_ID(rs.getInt("AD_IMPFORMAT_ID"));
m_PackDetail.setAD_Workbench_ID(rs.getInt("AD_WORKBENCH_ID"));
m_PackDetail.setAD_Table_ID(rs.getInt("AD_TABLE_ID"));
m_PackDetail.setAD_Form_ID(rs.getInt("AD_FORM_ID"));
m_PackDetail.setAD_ReportView_ID(rs.getInt("AD_REPORTVIEW_ID"));
*/
m_PackDetail.setLine(10);
saveResult = m_PackDetail.save();
assertTrue("X_AD_Package_Exp_Detail.save()", saveResult);
int m_ad_record_id = IDFinder.get_IDWithColumn("ad_package_exp", "Name", "test2packJunit", getAD_Client_ID(), getTrxName());
ProcessInfo m_ProcessInfo = new ProcessInfo("PackOut", m_ad_process_id, m_ad_table_id, m_MPackageExp.get_ID());
m_PackOut.startProcess(getCtx(), m_ProcessInfo, m_trx);
assertFalse("PackOut", m_ProcessInfo.isError());
try {
commit();
} catch (Exception e) {
fail(e.getLocalizedMessage());
}
}
Aggregations