From 57f33550eea585cc08b227900d2c19409e6664da Mon Sep 17 00:00:00 2001 From: muriloht Date: Fri, 6 Sep 2024 07:26:07 -0300 Subject: [PATCH] IDEMPIERE-6223 / COF #17758 - Add new field JsonData to AD_PInstance and AD_PInstance_Log (#2447) --- .../oracle/202409041533_IDEMPIERE-6223.sql | 94 +++++++++++++++++++ .../202409041533_IDEMPIERE-6223.sql | 91 ++++++++++++++++++ .../org/compiere/model/I_AD_PInstance.java | 13 +++ .../compiere/model/I_AD_PInstance_Log.java | 13 +++ .../src/org/compiere/model/MPInstanceLog.java | 37 ++++++-- .../src/org/compiere/model/MProcess.java | 2 + .../org/compiere/model/X_AD_PInstance.java | 16 ++++ .../compiere/model/X_AD_PInstance_Log.java | 16 ++++ .../src/org/compiere/process/ProcessInfo.java | 25 ++++- .../org/compiere/process/ProcessInfoLog.java | 32 +++++-- .../org/compiere/process/ProcessInfoUtil.java | 2 +- .../compiere/process/ServerProcessCtl.java | 1 + .../src/org/compiere/process/SvrProcess.java | 1 + .../org/compiere/apps/AbstractProcessCtl.java | 1 + 14 files changed, 328 insertions(+), 16 deletions(-) create mode 100644 migration/iD11/oracle/202409041533_IDEMPIERE-6223.sql create mode 100644 migration/iD11/postgresql/202409041533_IDEMPIERE-6223.sql diff --git a/migration/iD11/oracle/202409041533_IDEMPIERE-6223.sql b/migration/iD11/oracle/202409041533_IDEMPIERE-6223.sql new file mode 100644 index 0000000000..e7fe46ff9a --- /dev/null +++ b/migration/iD11/oracle/202409041533_IDEMPIERE-6223.sql @@ -0,0 +1,94 @@ +-- Adding new fields to AD_PInstance and AD_PInstance_Log +SELECT register_migration_script('202409041533_IDEMPIERE-6223.sql') FROM dual; + +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- Sep 4, 2024, 3:33:12 PM BRT +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216788,0,'JSON Data','The json field stores json data.',282,'JsonData',0,'N','N','N','N','N',0,'N',200267,0,0,'Y',TO_TIMESTAMP('2024-09-04 15:33:12','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-09-04 15:33:12','YYYY-MM-DD HH24:MI:SS'),100,203924,'Y','N','D','N','N','N','Y','6ec3e423-205d-482f-b7e2-3dea6b66d5d0','Y',0,'N','N','N','N','N') +; + +-- Sep 4, 2024, 3:33:16 PM BRT +ALTER TABLE AD_PInstance ADD JsonData CLOB DEFAULT NULL CONSTRAINT AD_PInstance_JsonData_isjson CHECK (JsonData IS JSON) +; + +-- Sep 4, 2024, 3:33:39 PM BRT +INSERT INTO AD_Field (AD_Field_ID,Name,Description,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan,NumLines) VALUES (208511,'JSON Data','The json field stores json data.',663,216788,'Y',0,210,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-09-04 15:33:39','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-09-04 15:33:39','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','2455e488-36a8-48d2-8410-2ff0808915e4','Y',200,2,5) +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET IsDisplayed='Y', SeqNo=110, XPosition=1, ColumnSpan=5,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=208511 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=120,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10501 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=130,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207416 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=140,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10495 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=150,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202845 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=160,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202847 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=170,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207405 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=180,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207407 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=190,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207406 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=200,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207408 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=210,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207720 +; + +-- Sep 4, 2024, 3:34:40 PM BRT +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216789,0,'JSON Data','The json field stores json data.',578,'JsonData',0,'N','N','N','N','N',0,'N',200267,0,0,'Y',TO_TIMESTAMP('2024-09-04 15:34:40','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-09-04 15:34:40','YYYY-MM-DD HH24:MI:SS'),100,203924,'Y','N','D','N','N','N','Y','7539f67f-922d-4e27-881f-c04f0dc8c160','Y',0,'N','N','N','N','N') +; + +-- Sep 4, 2024, 3:34:43 PM BRT +ALTER TABLE AD_PInstance_Log ADD JsonData CLOB DEFAULT NULL CONSTRAINT AD_PInstance_Log_JsonData_isjson CHECK (JsonData IS JSON) +; + +-- Sep 4, 2024, 3:35:54 PM BRT +INSERT INTO AD_Field (AD_Field_ID,Name,Description,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan,NumLines) VALUES (208512,'JSON Data','The json field stores json data.',665,216789,'Y',0,100,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-09-04 15:35:54','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-09-04 15:35:54','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','27e958ae-9e31-4e8b-824e-e571df7da15c','Y',100,2,5) +; + +-- Sep 4, 2024, 3:36:15 PM BRT +UPDATE AD_Field SET IsDisplayed='Y', SeqNo=70, XPosition=1, ColumnSpan=5,Updated=TO_TIMESTAMP('2024-09-04 15:36:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=208512 +; + +-- Sep 4, 2024, 3:36:15 PM BRT +UPDATE AD_Field SET SeqNo=80,Updated=TO_TIMESTAMP('2024-09-04 15:36:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200309 +; + +-- Sep 4, 2024, 3:36:15 PM BRT +UPDATE AD_Field SET SeqNo=90,Updated=TO_TIMESTAMP('2024-09-04 15:36:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200310 +; + +-- Sep 4, 2024, 3:36:15 PM BRT +UPDATE AD_Field SET SeqNo=100,Updated=TO_TIMESTAMP('2024-09-04 15:36:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207622 +; + +-- Sep 4, 2024, 3:36:15 PM BRT +UPDATE AD_Field SET SeqNo=0,Updated=TO_TIMESTAMP('2024-09-04 15:36:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=204554 +; + diff --git a/migration/iD11/postgresql/202409041533_IDEMPIERE-6223.sql b/migration/iD11/postgresql/202409041533_IDEMPIERE-6223.sql new file mode 100644 index 0000000000..89cba3109e --- /dev/null +++ b/migration/iD11/postgresql/202409041533_IDEMPIERE-6223.sql @@ -0,0 +1,91 @@ +-- Adding new fields to AD_PInstance and AD_PInstance_Log +SELECT register_migration_script('202409041533_IDEMPIERE-6223.sql') FROM dual; + +-- Sep 4, 2024, 3:33:12 PM BRT +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216788,0,'JSON Data','The json field stores json data.',282,'JsonData',0,'N','N','N','N','N',0,'N',200267,0,0,'Y',TO_TIMESTAMP('2024-09-04 15:33:12','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-09-04 15:33:12','YYYY-MM-DD HH24:MI:SS'),100,203924,'Y','N','D','N','N','N','Y','6ec3e423-205d-482f-b7e2-3dea6b66d5d0','Y',0,'N','N','N','N','N') +; + +-- Sep 4, 2024, 3:33:16 PM BRT +ALTER TABLE AD_PInstance ADD COLUMN JsonData TEXT DEFAULT NULL CONSTRAINT AD_PInstance_JsonData_isjson CHECK (JsonData IS JSON) +; + +-- Sep 4, 2024, 3:33:39 PM BRT +INSERT INTO AD_Field (AD_Field_ID,Name,Description,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan,NumLines) VALUES (208511,'JSON Data','The json field stores json data.',663,216788,'Y',0,210,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-09-04 15:33:39','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-09-04 15:33:39','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','2455e488-36a8-48d2-8410-2ff0808915e4','Y',200,2,5) +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET IsDisplayed='Y', SeqNo=110, XPosition=1, ColumnSpan=5,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=208511 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=120,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10501 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=130,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207416 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=140,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10495 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=150,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202845 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=160,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202847 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=170,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207405 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=180,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207407 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=190,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207406 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=200,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207408 +; + +-- Sep 4, 2024, 3:34:12 PM BRT +UPDATE AD_Field SET SeqNo=210,Updated=TO_TIMESTAMP('2024-09-04 15:34:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207720 +; + +-- Sep 4, 2024, 3:34:40 PM BRT +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216789,0,'JSON Data','The json field stores json data.',578,'JsonData',0,'N','N','N','N','N',0,'N',200267,0,0,'Y',TO_TIMESTAMP('2024-09-04 15:34:40','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-09-04 15:34:40','YYYY-MM-DD HH24:MI:SS'),100,203924,'Y','N','D','N','N','N','Y','7539f67f-922d-4e27-881f-c04f0dc8c160','Y',0,'N','N','N','N','N') +; + +-- Sep 4, 2024, 3:34:43 PM BRT +ALTER TABLE AD_PInstance_Log ADD COLUMN JsonData TEXT DEFAULT NULL CONSTRAINT AD_PInstance_Log_JsonData_isjson CHECK (JsonData IS JSON) +; + +-- Sep 4, 2024, 3:35:54 PM BRT +INSERT INTO AD_Field (AD_Field_ID,Name,Description,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan,NumLines) VALUES (208512,'JSON Data','The json field stores json data.',665,216789,'Y',0,100,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-09-04 15:35:54','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-09-04 15:35:54','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','27e958ae-9e31-4e8b-824e-e571df7da15c','Y',100,2,5) +; + +-- Sep 4, 2024, 3:36:15 PM BRT +UPDATE AD_Field SET IsDisplayed='Y', SeqNo=70, XPosition=1, ColumnSpan=5,Updated=TO_TIMESTAMP('2024-09-04 15:36:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=208512 +; + +-- Sep 4, 2024, 3:36:15 PM BRT +UPDATE AD_Field SET SeqNo=80,Updated=TO_TIMESTAMP('2024-09-04 15:36:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200309 +; + +-- Sep 4, 2024, 3:36:15 PM BRT +UPDATE AD_Field SET SeqNo=90,Updated=TO_TIMESTAMP('2024-09-04 15:36:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200310 +; + +-- Sep 4, 2024, 3:36:15 PM BRT +UPDATE AD_Field SET SeqNo=100,Updated=TO_TIMESTAMP('2024-09-04 15:36:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207622 +; + +-- Sep 4, 2024, 3:36:15 PM BRT +UPDATE AD_Field SET SeqNo=0,Updated=TO_TIMESTAMP('2024-09-04 15:36:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=204554 +; + diff --git a/org.adempiere.base/src/org/compiere/model/I_AD_PInstance.java b/org.adempiere.base/src/org/compiere/model/I_AD_PInstance.java index b1a37ab417..3b7207d80c 100644 --- a/org.adempiere.base/src/org/compiere/model/I_AD_PInstance.java +++ b/org.adempiere.base/src/org/compiere/model/I_AD_PInstance.java @@ -239,6 +239,19 @@ public interface I_AD_PInstance */ public boolean isSummary(); + /** Column name JsonData */ + public static final String COLUMNNAME_JsonData = "JsonData"; + + /** Set JSON Data. + * The json field stores json data. + */ + public void setJsonData (String JsonData); + + /** Get JSON Data. + * The json field stores json data. + */ + public String getJsonData(); + /** Column name Name */ public static final String COLUMNNAME_Name = "Name"; diff --git a/org.adempiere.base/src/org/compiere/model/I_AD_PInstance_Log.java b/org.adempiere.base/src/org/compiere/model/I_AD_PInstance_Log.java index 188c2adc36..a260f03f24 100644 --- a/org.adempiere.base/src/org/compiere/model/I_AD_PInstance_Log.java +++ b/org.adempiere.base/src/org/compiere/model/I_AD_PInstance_Log.java @@ -80,6 +80,19 @@ public interface I_AD_PInstance_Log public org.compiere.model.I_AD_Table getAD_Table() throws RuntimeException; + /** Column name JsonData */ + public static final String COLUMNNAME_JsonData = "JsonData"; + + /** Set JSON Data. + * The json field stores json data. + */ + public void setJsonData (String JsonData); + + /** Get JSON Data. + * The json field stores json data. + */ + public String getJsonData(); + /** Column name Log_ID */ public static final String COLUMNNAME_Log_ID = "Log_ID"; diff --git a/org.adempiere.base/src/org/compiere/model/MPInstanceLog.java b/org.adempiere.base/src/org/compiere/model/MPInstanceLog.java index 48fa6e3f63..a6eaad21c5 100644 --- a/org.adempiere.base/src/org/compiere/model/MPInstanceLog.java +++ b/org.adempiere.base/src/org/compiere/model/MPInstanceLog.java @@ -47,7 +47,7 @@ public class MPInstanceLog public MPInstanceLog (int AD_PInstance_ID, int Log_ID, Timestamp P_Date, int P_ID, BigDecimal P_Number, String P_Msg) { - this(AD_PInstance_ID, Log_ID, P_Date, P_ID, P_Number, P_Msg, 0, 0, X_AD_PInstance_Log.PINSTANCELOGTYPE_Result); + this(AD_PInstance_ID, Log_ID, P_Date, P_ID, P_Number, P_Msg, 0, 0, null, X_AD_PInstance_Log.PINSTANCELOGTYPE_Result); } // MPInstance_Log /** @@ -63,7 +63,7 @@ public class MPInstanceLog public MPInstanceLog (int AD_PInstance_ID, int Log_ID, Timestamp P_Date, int P_ID, BigDecimal P_Number, String P_Msg, int AD_Table_ID, int Record_ID) { - this(AD_PInstance_ID, Log_ID, P_Date, P_ID, P_Number, P_Msg, AD_Table_ID, Record_ID, X_AD_PInstance_Log.PINSTANCELOGTYPE_Result); + this(AD_PInstance_ID, Log_ID, P_Date, P_ID, P_Number, P_Msg, AD_Table_ID, Record_ID, null, X_AD_PInstance_Log.PINSTANCELOGTYPE_Result); } // MPInstance_Log /** @@ -78,9 +78,9 @@ public class MPInstanceLog * @param PInstanceLogType Log Type X_AD_PInstance_Log.PINSTANCELOGTYPE_* */ public MPInstanceLog (int AD_PInstance_ID, int Log_ID, Timestamp P_Date, - int P_ID, BigDecimal P_Number, String P_Msg, int AD_Table_ID, int Record_ID, String PInstanceLogType) + int P_ID, BigDecimal P_Number, String P_Msg, int AD_Table_ID, int Record_ID, String jsonData, String PInstanceLogType) { - this("", AD_PInstance_ID, Log_ID, P_Date, P_ID, P_Number, P_Msg, AD_Table_ID, Record_ID, PInstanceLogType); + this("", AD_PInstance_ID, Log_ID, P_Date, P_ID, P_Number, P_Msg, AD_Table_ID, Record_ID, jsonData, PInstanceLogType); } /** @@ -97,7 +97,7 @@ public class MPInstanceLog * @param PInstanceLogType Log Type X_AD_PInstance_Log.PINSTANCELOGTYPE_* */ public MPInstanceLog (String AD_PInstance_Log_UU, int AD_PInstance_ID, int Log_ID, Timestamp P_Date, - int P_ID, BigDecimal P_Number, String P_Msg, int AD_Table_ID, int Record_ID, String PInstanceLogType) + int P_ID, BigDecimal P_Number, String P_Msg, int AD_Table_ID, int Record_ID, String jsonData, String PInstanceLogType) { setAD_PInstance_ID(AD_PInstance_ID); setLog_ID(Log_ID); @@ -107,6 +107,7 @@ public class MPInstanceLog setP_Msg(P_Msg); setAD_Table_ID(AD_Table_ID); setRecord_ID(Record_ID); + setJsonData(jsonData); setPInstanceLogType(PInstanceLogType); if(!Util.isEmpty(AD_PInstance_Log_UU)) setAD_PInstance_Log_UU(AD_PInstance_Log_UU); @@ -127,6 +128,7 @@ public class MPInstanceLog setP_Msg(rs.getString(X_AD_PInstance_Log.COLUMNNAME_P_Msg)); setAD_Table_ID(rs.getInt(X_AD_PInstance_Log.COLUMNNAME_AD_Table_ID)); setRecord_ID(rs.getInt(X_AD_PInstance_Log.COLUMNNAME_Record_ID)); + setJsonData(rs.getString(X_AD_PInstance_Log.COLUMNNAME_JsonData)); setPInstanceLogType(rs.getString(X_AD_PInstance_Log.COLUMNNAME_PInstanceLogType)); setAD_PInstance_Log_UU(rs.getString(X_AD_PInstance_Log.COLUMNNAME_AD_PInstance_Log_UU)); } // MPInstance_Log @@ -139,6 +141,7 @@ public class MPInstanceLog private String m_P_Msg; private int m_AD_Table_ID; private int m_Record_ID; + private String m_jsonData; private String m_PInstanceLogType; private String m_AD_PInstance_Log_UU; @@ -159,13 +162,15 @@ public class MPInstanceLog sb.append(",Number=").append(m_P_Number); if (m_P_Msg != null) sb.append(",").append(m_P_Msg); + if (m_jsonData != null) + sb.append(",").append(m_jsonData); sb.append("]"); return sb.toString(); } // toString private final static String insertSql = "INSERT INTO AD_PInstance_Log " - + "(AD_PInstance_ID, Log_ID, P_Date, P_ID, P_Number, P_Msg, AD_Table_ID, Record_ID, AD_PInstance_Log_UU, PInstanceLogType)" - + " VALUES (?,?,?,?,?,?,?,?,?,?) "; + + "(AD_PInstance_ID, Log_ID, P_Date, P_ID, P_Number, P_Msg, AD_Table_ID, Record_ID, AD_PInstance_Log_UU, JsonData, PInstanceLogType)" + + " VALUES (?,?,?,?,?,?,?,?,?,?,?) "; private final static String updateSql = "UPDATE AD_PInstance_Log " + " SET P_Date = ?, " @@ -174,6 +179,7 @@ public class MPInstanceLog + " P_Msg = ?, " + " AD_Table_ID = ?, " + " Record_ID = ?, " + + " JsonData = ?, " + " PInstanceLogType = ? " + " WHERE AD_PInstance_Log_UU = ? "; @@ -247,6 +253,8 @@ public class MPInstanceLog if(isInsert) params.add(getAD_PInstance_Log_UU()); + params.add(m_jsonData); + params.add(m_PInstanceLogType); if(!isInsert) @@ -399,6 +407,21 @@ public class MPInstanceLog m_Record_ID = recordId; } + /** + * Get JsonData + * @return JsonData + */ + public String getJsonData() { + return m_jsonData; + } + /** + * Set JsonData + * @param jsonData + */ + public void setJsonData(String jsonData) { + this.m_jsonData = jsonData; + } + /** * Get Log Type * @return Instance Log Type (X_AD_PInstance_Log.PINSTANCELOGTYPE_*) diff --git a/org.adempiere.base/src/org/compiere/model/MProcess.java b/org.adempiere.base/src/org/compiere/model/MProcess.java index cdbb1cfea2..60714a1313 100644 --- a/org.adempiere.base/src/org/compiere/model/MProcess.java +++ b/org.adempiere.base/src/org/compiere/model/MProcess.java @@ -327,6 +327,7 @@ public class MProcess extends X_AD_Process implements ImmutablePOSupport // Unlock pInstance.setResult(ok ? MPInstance.RESULT_OK : MPInstance.RESULT_ERROR); pInstance.setErrorMsg(processInfo.getSummary()); + pInstance.setJsonData(processInfo.getJsonData()); pInstance.setIsProcessing(false); pInstance.saveEx(); // @@ -379,6 +380,7 @@ public class MProcess extends X_AD_Process implements ImmutablePOSupport String errmsg = pi.getSummary(); pinstance.setResult(!pi.isError()); pinstance.setErrorMsg(errmsg); + pinstance.setJsonData(pi.getJsonData()); pinstance.saveEx(); ok = !pi.isError(); } diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_PInstance.java b/org.adempiere.base/src/org/compiere/model/X_AD_PInstance.java index a307f366fd..f088bcea72 100644 --- a/org.adempiere.base/src/org/compiere/model/X_AD_PInstance.java +++ b/org.adempiere.base/src/org/compiere/model/X_AD_PInstance.java @@ -415,6 +415,22 @@ public class X_AD_PInstance extends PO implements I_AD_PInstance, I_Persistent return false; } + /** Set JSON Data. + @param JsonData The json field stores json data. + */ + public void setJsonData (String JsonData) + { + set_Value (COLUMNNAME_JsonData, JsonData); + } + + /** Get JSON Data. + @return The json field stores json data. + */ + public String getJsonData() + { + return (String)get_Value(COLUMNNAME_JsonData); + } + /** Set Name. @param Name Alphanumeric identifier of the entity */ diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_PInstance_Log.java b/org.adempiere.base/src/org/compiere/model/X_AD_PInstance_Log.java index 1d1dc3953f..ffe7c28fdc 100644 --- a/org.adempiere.base/src/org/compiere/model/X_AD_PInstance_Log.java +++ b/org.adempiere.base/src/org/compiere/model/X_AD_PInstance_Log.java @@ -178,6 +178,22 @@ public class X_AD_PInstance_Log extends PO implements I_AD_PInstance_Log, I_Pers return ii.intValue(); } + /** Set JSON Data. + @param JsonData The json field stores json data. + */ + public void setJsonData (String JsonData) + { + set_Value (COLUMNNAME_JsonData, JsonData); + } + + /** Get JSON Data. + @return The json field stores json data. + */ + public String getJsonData() + { + return (String)get_Value(COLUMNNAME_JsonData); + } + /** Set Log. @param Log_ID Log */ diff --git a/org.adempiere.base/src/org/compiere/process/ProcessInfo.java b/org.adempiere.base/src/org/compiere/process/ProcessInfo.java index e8ed29e9ba..d48bbb3d2d 100644 --- a/org.adempiere.base/src/org/compiere/process/ProcessInfo.java +++ b/org.adempiere.base/src/org/compiere/process/ProcessInfo.java @@ -130,6 +130,8 @@ public class ProcessInfo implements Serializable private int m_InfoWindowID = 0; /** Summary of Execution */ private String m_Summary = ""; + /** JsonData of Execution **/ + private String m_jsonData; /** Execution had an error */ private boolean m_Error = false; @@ -262,13 +264,32 @@ public class ProcessInfo implements Serializable if (m_transactionName != null) sb.append(",Trx=").append(m_transactionName); sb.append(",Summary=").append(getSummary()) + .append(",JsonData=").append(getJsonData()) .append(",Log=").append(m_logs == null ? 0 : m_logs.size()); // .append(getLogInfo(false)); sb.append("]"); return sb.toString(); } // toString - + + /************************************************************************** + * Set JsonData + * @param jsonData jsonData (valid json string) + */ + public void setJsonData (String jsonData) + { + if (jsonData != null && !Util.isEmpty(jsonData)) + m_jsonData = Util.prettifyJSONString(jsonData); + } // setJsonData + /** + * Method getJsonData + * @return String + */ + public String getJsonData () + { + return m_jsonData; + } // getJsonData + /************************************************************************** * Set Summary * @param summary summary (will be translated) @@ -775,6 +796,7 @@ public class ProcessInfo implements Serializable logEntry.getP_Msg(), logEntry.getAD_Table_ID(), logEntry.getRecord_ID(), + logEntry.getJsonData(), logEntry.getPInstanceLogType()); il.saveEx(); return il.getAD_PInstance_Log_UU(); @@ -812,6 +834,7 @@ public class ProcessInfo implements Serializable logEntry.getP_Msg(), logEntry.getAD_Table_ID(), logEntry.getRecord_ID(), + logEntry.getJsonData(), logEntry.getPInstanceLogType()); return il.update(); } // saveLog diff --git a/org.adempiere.base/src/org/compiere/process/ProcessInfoLog.java b/org.adempiere.base/src/org/compiere/process/ProcessInfoLog.java index 28bf292523..0d40ab7c42 100644 --- a/org.adempiere.base/src/org/compiere/process/ProcessInfoLog.java +++ b/org.adempiere.base/src/org/compiere/process/ProcessInfoLog.java @@ -43,9 +43,10 @@ public class ProcessInfoLog implements Serializable * @param P_Msg Process Message * @param AD_Table_ID Table ID * @param Record_ID Record ID + * @param jsonData jsonData * @param PInstanceLogType Log Type */ - public ProcessInfoLog (String AD_PInstance_Log_UU, int Log_ID,int P_ID, Timestamp P_Date, BigDecimal P_Number, String P_Msg, int AD_Table_ID ,int Record_ID, String PInstanceLogType) + public ProcessInfoLog (String AD_PInstance_Log_UU, int Log_ID,int P_ID, Timestamp P_Date, BigDecimal P_Number, String P_Msg, int AD_Table_ID ,int Record_ID, String jsonData, String PInstanceLogType) { setLog_ID (Log_ID); setP_ID (P_ID); @@ -54,6 +55,7 @@ public class ProcessInfoLog implements Serializable setP_Msg (P_Msg); setAD_Table_ID(AD_Table_ID); setRecord_ID(Record_ID); + setJsonData(jsonData); setPInstanceLogType(PInstanceLogType); setAD_PInstance_Log_UU(AD_PInstance_Log_UU); @@ -71,7 +73,7 @@ public class ProcessInfoLog implements Serializable */ public ProcessInfoLog (int Log_ID,int P_ID, Timestamp P_Date, BigDecimal P_Number, String P_Msg, int AD_Table_ID ,int Record_ID) { - this("", Log_ID, P_ID, P_Date, P_Number, P_Msg, AD_Table_ID, Record_ID, null); + this("", Log_ID, P_ID, P_Date, P_Number, P_Msg, AD_Table_ID, Record_ID, null, null); } /** @@ -86,7 +88,7 @@ public class ProcessInfoLog implements Serializable */ public ProcessInfoLog (int P_ID, Timestamp P_Date, BigDecimal P_Number, String P_Msg, int AD_Table_ID ,int Record_ID, String PInstanceLogType) { - this("", s_Log_ID++, P_ID, P_Date, P_Number, P_Msg, AD_Table_ID, Record_ID, PInstanceLogType); + this("", s_Log_ID++, P_ID, P_Date, P_Number, P_Msg, AD_Table_ID, Record_ID, null, PInstanceLogType); } /** @@ -101,7 +103,7 @@ public class ProcessInfoLog implements Serializable */ public ProcessInfoLog (String AD_PInstance_Log_UU, int P_ID, Timestamp P_Date, BigDecimal P_Number, String P_Msg, int AD_Table_ID ,int Record_ID) { - this(AD_PInstance_Log_UU, s_Log_ID++, P_ID, P_Date, P_Number, P_Msg, AD_Table_ID, Record_ID, null); + this(AD_PInstance_Log_UU, s_Log_ID++, P_ID, P_Date, P_Number, P_Msg, AD_Table_ID, Record_ID, null, null); } /** @@ -154,7 +156,7 @@ public class ProcessInfoLog implements Serializable */ public ProcessInfoLog (String AD_PInstance_Log_UU, int P_ID, Timestamp P_Date, BigDecimal P_Number, String P_Msg, String PInstanceLogType) { - this (AD_PInstance_Log_UU, s_Log_ID++, P_ID, P_Date, P_Number, P_Msg, 0, 0, PInstanceLogType); + this (AD_PInstance_Log_UU, s_Log_ID++, P_ID, P_Date, P_Number, P_Msg, 0, 0, null, PInstanceLogType); } // ProcessInfoLog /** @@ -167,7 +169,7 @@ public class ProcessInfoLog implements Serializable */ public ProcessInfoLog (String AD_PInstance_Log_UU, int P_ID, Timestamp P_Date, BigDecimal P_Number, String P_Msg) { - this (AD_PInstance_Log_UU, s_Log_ID++, P_ID, P_Date, P_Number, P_Msg, 0,0,null); + this (AD_PInstance_Log_UU, s_Log_ID++, P_ID, P_Date, P_Number, P_Msg, 0,0, null, null); } // ProcessInfoLog /** @@ -181,7 +183,7 @@ public class ProcessInfoLog implements Serializable */ public ProcessInfoLog (int Log_ID, int P_ID, Timestamp P_Date, BigDecimal P_Number, String P_Msg, String PInstanceLogType) { - this ("", Log_ID, P_ID, P_Date, P_Number, P_Msg, 0, 0, PInstanceLogType); + this ("", Log_ID, P_ID, P_Date, P_Number, P_Msg, 0, 0, null, PInstanceLogType); } // ProcessInfoLog private static int s_Log_ID = 0; @@ -193,6 +195,7 @@ public class ProcessInfoLog implements Serializable private String m_P_Msg; private int m_AD_Table_ID; private int m_Record_ID; + private String m_JsonData; private String m_PInstanceLogType; private String m_AD_PInstance_Log_UU; @@ -296,6 +299,21 @@ public class ProcessInfoLog implements Serializable m_P_Msg = P_Msg; } + /** + * Get JsonData + * @returnJsonData + */ + public String getJsonData() { + return m_JsonData; + } + /** + * Set JsonData + * @param jsonData + */ + public void setJsonData(String jsonData) { + this.m_JsonData = jsonData; + } + /** * Get Log Type * @return Log Type diff --git a/org.adempiere.base/src/org/compiere/process/ProcessInfoUtil.java b/org.adempiere.base/src/org/compiere/process/ProcessInfoUtil.java index 7e4538a6d9..eb6fbaedf0 100644 --- a/org.adempiere.base/src/org/compiere/process/ProcessInfoUtil.java +++ b/org.adempiere.base/src/org/compiere/process/ProcessInfoUtil.java @@ -174,7 +174,7 @@ public class ProcessInfoUtil { MPInstanceLog il = new MPInstanceLog(pi.getAD_PInstance_ID(), logs[i].getLog_ID(), logs[i].getP_Date(), logs[i].getP_ID(), logs[i].getP_Number(), logs[i].getP_Msg(), - logs[i].getAD_Table_ID(), logs[i].getRecord_ID(), + logs[i].getAD_Table_ID(), logs[i].getRecord_ID(), logs[i].getJsonData(), !Util.isEmpty(logs[i].getPInstanceLogType()) ? logs[i].getPInstanceLogType() : X_AD_PInstance_Log.PINSTANCELOGTYPE_Result); il.save(); } diff --git a/org.adempiere.base/src/org/compiere/process/ServerProcessCtl.java b/org.adempiere.base/src/org/compiere/process/ServerProcessCtl.java index 99dcff6bc4..1503af0a32 100644 --- a/org.adempiere.base/src/org/compiere/process/ServerProcessCtl.java +++ b/org.adempiere.base/src/org/compiere/process/ServerProcessCtl.java @@ -259,6 +259,7 @@ public class ServerProcessCtl implements Runnable { if (m_pi.isError()) { MPInstance pinstance = new MPInstance(Env.getCtx(), m_pi.getAD_PInstance_ID(), null); pinstance.setErrorMsg(m_pi.getSummary()); + pinstance.setJsonData(m_pi.getJsonData()); pinstance.saveEx(); } return; diff --git a/org.adempiere.base/src/org/compiere/process/SvrProcess.java b/org.adempiere.base/src/org/compiere/process/SvrProcess.java index d2eeaa554f..5980beda8a 100644 --- a/org.adempiere.base/src/org/compiere/process/SvrProcess.java +++ b/org.adempiere.base/src/org/compiere/process/SvrProcess.java @@ -761,6 +761,7 @@ public abstract class SvrProcess implements ProcessCall mpi.setIsProcessing(false); mpi.setResult(!m_pi.isError()); mpi.setErrorMsg(m_pi.getSummary()); + mpi.setJsonData(m_pi.getJsonData()); mpi.saveEx(); if (log.isLoggable(Level.FINE)) log.fine(mpi.toString()); diff --git a/org.adempiere.ui/src/org/compiere/apps/AbstractProcessCtl.java b/org.adempiere.ui/src/org/compiere/apps/AbstractProcessCtl.java index 758748d6be..29c7ca07a6 100644 --- a/org.adempiere.ui/src/org/compiere/apps/AbstractProcessCtl.java +++ b/org.adempiere.ui/src/org/compiere/apps/AbstractProcessCtl.java @@ -175,6 +175,7 @@ public abstract class AbstractProcessCtl implements Runnable String errmsg = m_pi.getSummary(); pinstance.setResult(!m_pi.isError()); pinstance.setErrorMsg(errmsg); + pinstance.setJsonData(m_pi.getJsonData()); pinstance.saveEx(); unlock(); }