[ 1755177 ] ad_changelog should have an 'action' field

[ 1783027 ] Add descriptive info to AD_Session (like Role)
[ 1755175 ] ad_changelog should capture insert too
This commit is contained in:
Carlos Ruiz 2008-02-13 03:30:34 +00:00
parent 97151d1485
commit 8e6133e094
8 changed files with 183 additions and 11 deletions

View File

@ -127,6 +127,19 @@ public interface I_AD_ChangeLog
*/
public String getDescription();
/** Column name EventChangeLog */
public static final String COLUMNNAME_EventChangeLog = "EventChangeLog";
/** Set Event Change Log.
* Type of Event in Change Log
*/
public void setEventChangeLog (String EventChangeLog);
/** Get Event Change Log.
* Type of Event in Change Log
*/
public String getEventChangeLog();
/** Column name IsCustomization */
public static final String COLUMNNAME_IsCustomization = "IsCustomization";

View File

@ -33,6 +33,7 @@
package org.compiere.model;
import java.math.BigDecimal;
import java.sql.Timestamp;
import org.compiere.util.KeyNamePair;
/** Generated Interface for AD_Session
@ -56,6 +57,21 @@ public interface I_AD_Session
/** Load Meta Data */
/** Column name AD_Role_ID */
public static final String COLUMNNAME_AD_Role_ID = "AD_Role_ID";
/** Set Role.
* Responsibility Role
*/
public void setAD_Role_ID (int AD_Role_ID);
/** Get Role.
* Responsibility Role
*/
public int getAD_Role_ID();
public I_AD_Role getAD_Role() throws Exception;
/** Column name AD_Session_ID */
public static final String COLUMNNAME_AD_Session_ID = "AD_Session_ID";
@ -69,6 +85,28 @@ public interface I_AD_Session
*/
public int getAD_Session_ID();
/** Column name Description */
public static final String COLUMNNAME_Description = "Description";
/** Set Description.
* Optional short description of the record
*/
public void setDescription (String Description);
/** Get Description.
* Optional short description of the record
*/
public String getDescription();
/** Column name LoginDate */
public static final String COLUMNNAME_LoginDate = "LoginDate";
/** Set Login date */
public void setLoginDate (Timestamp LoginDate);
/** Get Login date */
public Timestamp getLoginDate();
/** Column name Processed */
public static final String COLUMNNAME_Processed = "Processed";

View File

@ -168,13 +168,10 @@ public class MChangeLog extends X_AD_ChangeLog
//
setOldValue (OldValue);
setNewValue (NewValue);
setEventChangeLog(event);
// EVENT / Release 3.3.1t_2007-12-05 ADempiere
if (event != null)
setDescription(event + " / " + Adempiere.MAIN_VERSION + "_"
+ Adempiere.DATE_VERSION + " " + Adempiere.getImplementationVersion());
else
setDescription(Adempiere.MAIN_VERSION + "_"
+ Adempiere.DATE_VERSION + " " + Adempiere.getImplementationVersion());
// Drop description from AD_ChangeLog - pass it to AD_Session to save disk space
// setDescription(Adempiere.MAIN_VERSION + "_" + Adempiere.DATE_VERSION + " " + Adempiere.getImplementationVersion());
} // MChangeLog

View File

@ -20,6 +20,8 @@ import java.net.*;
import java.sql.*;
import java.util.*;
import java.util.logging.*;
import org.compiere.Adempiere;
import org.compiere.util.*;
/**
@ -142,6 +144,11 @@ public class MSession extends X_AD_Session
setRemote_Host(Remote_Host);
if (WebSession != null)
setWebSession(WebSession);
setDescription(Adempiere.MAIN_VERSION + "_"
+ Adempiere.DATE_VERSION + " "
+ Adempiere.getImplementationVersion());
setAD_Role_ID(Env.getContextAsInt(ctx, "#AD_Role_ID"));
setLoginDate(Env.getContextAsDate(ctx, "#Date"));
} // MSession
/**
@ -157,6 +164,11 @@ public class MSession extends X_AD_Session
InetAddress lh = InetAddress.getLocalHost();
setRemote_Addr(lh.getHostAddress());
setRemote_Host(lh.getHostName());
setDescription(Adempiere.MAIN_VERSION + "_"
+ Adempiere.DATE_VERSION + " "
+ Adempiere.getImplementationVersion());
setAD_Role_ID(Env.getContextAsInt(ctx, "#AD_Role_ID"));
setLoginDate(Env.getContextAsDate(ctx, "#Date"));
}
catch (UnknownHostException e)
{

View File

@ -2195,7 +2195,7 @@ public abstract class PO
MChangeLog cLog = session.changeLog (
m_trxName, AD_ChangeLog_ID,
p_info.getAD_Table_ID(), p_info.getColumn(i).AD_Column_ID,
get_ID(), getAD_Client_ID(), getAD_Org_ID(), oldV, newV, "UPDATE");
get_ID(), getAD_Client_ID(), getAD_Org_ID(), oldV, newV, MChangeLog.EVENTCHANGELOG_Update);
if (cLog != null)
AD_ChangeLog_ID = cLog.getAD_ChangeLog_ID();
}
@ -2407,14 +2407,14 @@ public abstract class PO
&& !p_info.isEncrypted(i) // not encrypted
&& !p_info.isVirtualColumn(i) // no virtual column
&& !"Password".equals(columnName)
&& p_info.getColumn(i).IsKey // log just the key - to log all columns comment this line
// && p_info.getColumn(i).IsKey // log all record - to log just ID uncomment this line
)
{
// change log on new
MChangeLog cLog = session.changeLog (
m_trxName, AD_ChangeLog_ID,
p_info.getAD_Table_ID(), p_info.getColumn(i).AD_Column_ID,
get_ID(), getAD_Client_ID(), getAD_Org_ID(), null, value, "INSERT");
get_ID(), getAD_Client_ID(), getAD_Org_ID(), null, value, MChangeLog.EVENTCHANGELOG_Insert);
if (cLog != null)
AD_ChangeLog_ID = cLog.getAD_ChangeLog_ID();
}
@ -2680,7 +2680,7 @@ public abstract class PO
MChangeLog cLog = session.changeLog (
m_trxName != null ? m_trxName : localTrxName, AD_ChangeLog_ID,
AD_Table_ID, p_info.getColumn(i).AD_Column_ID,
Record_ID, getAD_Client_ID(), getAD_Org_ID(), value, null, "DELETE");
Record_ID, getAD_Client_ID(), getAD_Org_ID(), value, null, MChangeLog.EVENTCHANGELOG_Delete);
if (cLog != null)
AD_ChangeLog_ID = cLog.getAD_ChangeLog_ID();
}

View File

@ -244,6 +244,38 @@ public class X_AD_ChangeLog extends PO implements I_AD_ChangeLog, I_Persistent
return (String)get_Value(COLUMNNAME_Description);
}
/** EventChangeLog AD_Reference_ID=53238 */
public static final int EVENTCHANGELOG_AD_Reference_ID=53238;
/** Insert = I */
public static final String EVENTCHANGELOG_Insert = "I";
/** Delete = D */
public static final String EVENTCHANGELOG_Delete = "D";
/** Update = U */
public static final String EVENTCHANGELOG_Update = "U";
/** Set Event Change Log.
@param EventChangeLog
Type of Event in Change Log
*/
public void setEventChangeLog (String EventChangeLog)
{
if (EventChangeLog == null || EventChangeLog.equals("I") || EventChangeLog.equals("D") || EventChangeLog.equals("U")); else throw new IllegalArgumentException ("EventChangeLog Invalid value - " + EventChangeLog + " - Reference_ID=53238 - I - D - U");
if (EventChangeLog != null && EventChangeLog.length() > 1)
{
log.warning("Length > 1 - truncated");
EventChangeLog = EventChangeLog.substring(0, 1);
}
set_Value (COLUMNNAME_EventChangeLog, EventChangeLog);
}
/** Get Event Change Log.
@return Type of Event in Change Log
*/
public String getEventChangeLog ()
{
return (String)get_Value(COLUMNNAME_EventChangeLog);
}
/** Set Customization.
@param IsCustomization
The change is a customization of the data dictionary and can be applied after Migration

View File

@ -17,8 +17,11 @@
/** Generated Model - DO NOT CHANGE */
package org.compiere.model;
import java.lang.reflect.Constructor;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.Properties;
import java.util.logging.Level;
import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Session
@ -71,6 +74,45 @@ public class X_AD_Session extends PO implements I_AD_Session, I_Persistent
return sb.toString();
}
public I_AD_Role getAD_Role() throws Exception
{
Class<?> clazz = MTable.getClass(I_AD_Role.Table_Name);
I_AD_Role result = null;
try {
Constructor<?> constructor = null;
constructor = clazz.getDeclaredConstructor(new Class[]{Properties.class, int.class, String.class});
result = (I_AD_Role)constructor.newInstance(new Object[] {getCtx(), new Integer(getAD_Role_ID()), get_TrxName()});
} catch (Exception e) {
log.log(Level.SEVERE, "(id) - Table=" + Table_Name + ",Class=" + clazz, e);
log.saveError("Error", "Table=" + Table_Name + ",Class=" + clazz);
throw e;
}
return result;
}
/** Set Role.
@param AD_Role_ID
Responsibility Role
*/
public void setAD_Role_ID (int AD_Role_ID)
{
if (AD_Role_ID < 0)
set_Value (COLUMNNAME_AD_Role_ID, null);
else
set_Value (COLUMNNAME_AD_Role_ID, Integer.valueOf(AD_Role_ID));
}
/** Get Role.
@return Responsibility Role
*/
public int getAD_Role_ID ()
{
Integer ii = (Integer)get_Value(COLUMNNAME_AD_Role_ID);
if (ii == null)
return 0;
return ii.intValue();
}
/** Set Session.
@param AD_Session_ID
User Session Online or Web
@ -101,6 +143,43 @@ public class X_AD_Session extends PO implements I_AD_Session, I_Persistent
return new KeyNamePair(get_ID(), String.valueOf(getAD_Session_ID()));
}
/** Set Description.
@param Description
Optional short description of the record
*/
public void setDescription (String Description)
{
if (Description != null && Description.length() > 255)
{
log.warning("Length > 255 - truncated");
Description = Description.substring(0, 255);
}
set_Value (COLUMNNAME_Description, Description);
}
/** Get Description.
@return Optional short description of the record
*/
public String getDescription ()
{
return (String)get_Value(COLUMNNAME_Description);
}
/** Set Login date.
@param LoginDate Login date */
public void setLoginDate (Timestamp LoginDate)
{
set_Value (COLUMNNAME_LoginDate, LoginDate);
}
/** Get Login date.
@return Login date */
public Timestamp getLoginDate ()
{
return (Timestamp)get_Value(COLUMNNAME_LoginDate);
}
/** Set Processed.
@param Processed
The document has been processed

View File

@ -200,7 +200,8 @@ public class ChangeLogProcess extends SvrProcess
m_oldRecord_ID = cLog.getRecord_ID();
// Insert - new value is null and UnDo only
m_isInsert = cLog.isNewNull() && p_CheckNewValue != null;
// m_isInsert = cLog.isNewNull() && p_CheckNewValue != null;
m_isInsert = MChangeLog.EVENTCHANGELOG_Insert.equals(cLog.getEventChangeLog());
if (m_isInsert)
{
m_sqlInsert = new StringBuffer ("INSERT INTO ")