diff --git a/migration/iD11/oracle/202303161612_IDEMPIERE-5567.sql b/migration/iD11/oracle/202303161612_IDEMPIERE-5567.sql new file mode 100644 index 0000000000..b54f94440d --- /dev/null +++ b/migration/iD11/oracle/202303161612_IDEMPIERE-5567.sql @@ -0,0 +1,134 @@ +-- IDEMPIERE-5567 Support of UUID as Key (FHCA-4195) +SELECT register_migration_script('202303161612_IDEMPIERE-5567.sql') FROM dual; + +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- Mar 16, 2023, 4:12:22 PM CET +INSERT INTO AD_Reference (AD_Reference_ID,Name,Description,ValidationType,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,IsOrderByValue,AD_Reference_UU,ShowInactive) VALUES (200233,'Table (UU)','Table List based on UUID','D',0,0,'Y',TO_TIMESTAMP('2023-03-16 16:12:21','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-16 16:12:21','YYYY-MM-DD HH24:MI:SS'),100,'D','N','7a610848-25e3-4f38-ad47-5e79daf132fd','N') +; + +-- Mar 16, 2023, 4:12:35 PM CET +INSERT INTO AD_Reference (AD_Reference_ID,Name,Description,ValidationType,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,IsOrderByValue,AD_Reference_UU,ShowInactive) VALUES (200234,'Table Direct (UU)','Direct Table Access based on UUID','D',0,0,'Y',TO_TIMESTAMP('2023-03-16 16:12:34','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-16 16:12:34','YYYY-MM-DD HH24:MI:SS'),100,'D','N','52a4c2d4-3afb-47ef-b57c-8c9fc88bedff','N') +; + +-- Mar 16, 2023, 4:12:53 PM CET +INSERT INTO AD_Reference (AD_Reference_ID,Name,Description,ValidationType,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,IsOrderByValue,AD_Reference_UU,ShowInactive) VALUES (200235,'Search (UU)','Search Field based on UUID','D',0,0,'N',TO_TIMESTAMP('2023-03-16 16:12:53','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-16 16:12:53','YYYY-MM-DD HH24:MI:SS'),100,'D','N','f741f1a8-bc99-48cc-80a8-0c5d3bf85dbb','N') +; + +-- Mar 16, 2023, 5:21:52 PM CET +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=18 | @AD_Reference_ID@=21 | @AD_Reference_ID@=25 | @AD_Reference_ID@=31 | @AD_Reference_ID@=35 | @AD_Reference_ID@=33 | @AD_Reference_ID@=32 | @AD_Reference_ID@=53370 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-16 17:21:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202518 +; + +-- Mar 16, 2023, 5:22:02 PM CET +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=18 | @AD_Reference_ID@=21 | @AD_Reference_ID@=25 | @AD_Reference_ID@=31 | @AD_Reference_ID@=35 | @AD_Reference_ID@=33 | @AD_Reference_ID@=32 | @AD_Reference_ID@=53370 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-16 17:22:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202519 +; + +-- Mar 16, 2023, 5:23:17 PM CET +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-16 17:23:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=172 +; + +-- Mar 16, 2023, 5:23:24 PM CET +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-16 17:23:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206091 +; + +-- Mar 16, 2023, 6:38:53 PM CET +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-16 18:38:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=171 +; + +-- Mar 24, 2023, 5:28:41 PM CET +INSERT INTO AD_Reference (AD_Reference_ID,Name,ValidationType,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,IsOrderByValue,AD_Reference_UU,ShowInactive) VALUES (200237,'AD_Table with ID or UU Column','T',0,0,'Y',TO_TIMESTAMP('2023-03-24 17:28:41','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 17:28:41','YYYY-MM-DD HH24:MI:SS'),100,'D','N','23255e3a-0bf4-43f9-afdf-419ab47e21ff','N') +; + +-- Mar 24, 2023, 5:29:41 PM CET +INSERT INTO AD_Ref_Table (AD_Reference_ID,AD_Table_ID,AD_Key,AD_Display,WhereClause,OrderByClause,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsValueDisplayed,EntityType,AD_Ref_Table_UU) VALUES (200237,100,100,100,'AD_Table.IsView=''N'' AND AD_Table.IsActive=''Y'' AND EXISTS (SELECT 1 FROM AD_Column c WHERE c.AD_Table_ID=AD_Table.AD_Table_ID AND (UPPER(c.ColumnName)=UPPER(AD_Table.TableName)||''_ID'' OR UPPER(c.ColumnName)=UPPER(AD_Table.TableName)||''_UU'') AND c.IsActive=''Y'')','AD_Table.TableName',0,0,'Y',TO_TIMESTAMP('2023-03-24 17:29:41','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 17:29:41','YYYY-MM-DD HH24:MI:SS'),100,'N','D','908b6255-4cf4-4d76-9208-acc5e36c6add') +; + +-- Mar 24, 2023, 5:29:58 PM CET +UPDATE AD_Process_Para SET AD_Reference_Value_ID=200237,Updated=TO_TIMESTAMP('2023-03-24 17:29:58','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200264 +; + +-- Mar 24, 2023, 6:49:29 PM CET +INSERT INTO AD_Message (MsgType,MsgText,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Message_ID,Value,EntityType,AD_Message_UU) VALUES ('E','UUID Columns must end with suffix _UU',0,0,'Y',TO_TIMESTAMP('2023-03-24 18:49:28','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 18:49:28','YYYY-MM-DD HH24:MI:SS'),100,200827,'UUColumnsMustEndWithUU','D','183dfdda-b98b-4702-a942-11eaf0d5f816') +; + +-- Mar 29, 2023, 6:40:54 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235 & @AttributeValueType@=''R''',Updated=TO_TIMESTAMP('2023-03-29 18:40:54','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206510 +; + +-- Mar 29, 2023, 6:41:44 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200235 & @AttributeValueType@=''R''',Updated=TO_TIMESTAMP('2023-03-29 18:41:44','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=204144 +; + +-- Mar 29, 2023, 6:42:38 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=10 | @AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 18:42:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206409 +; + +-- Mar 29, 2023, 6:43:19 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 18:43:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201623 +; + +-- Mar 29, 2023, 6:43:58 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 18:43:58','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201622 +; + +-- Mar 29, 2023, 6:49:50 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 18:49:50','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10223 +; + +-- Mar 29, 2023, 6:50:27 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 18:50:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10225 +; + +-- Mar 29, 2023, 6:51:46 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=10 | @AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 18:51:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206410 +; + +-- Mar 29, 2023, 6:52:53 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=10 | @AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 18:52:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=56279 +; + +-- Mar 29, 2023, 7:08:17 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=30 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:08:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=54403 +; + +-- Mar 29, 2023, 7:09:03 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:09:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201895 +; + +-- Mar 29, 2023, 7:10:02 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=10 | @AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:10:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206408 +; + +-- Mar 29, 2023, 7:10:41 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:10:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=203266 +; + +-- Mar 29, 2023, 7:11:05 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:11:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206130 +; + +-- Mar 29, 2023, 7:11:47 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:11:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200855 +; + +-- Mar 29, 2023, 7:12:39 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:12:39','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=54401 +; + +-- Mar 29, 2023, 7:13:00 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:13:00','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206129 +; + +-- Mar 29, 2023, 7:13:29 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:13:29','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=54402 +; + +-- Mar 29, 2023, 7:38:53 PM CEST +UPDATE AD_Val_Rule SET Code='(AD_Ref_List.Value!=''M'' OR @AD_Reference_ID@ IN (18,19,30,200233,200234,200235))',Updated=TO_TIMESTAMP('2023-03-29 19:38:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=200064 +; + +-- Mar 29, 2023, 7:40:49 PM CEST +UPDATE AD_Val_Rule SET Code='AD_Reference.AD_Reference_ID IN (10,11,12,13,14,15,16,17,18,19,20,22,24,25,27,29,30,31,32,33,34,36,37,38,39,40,200233,200234,200235)',Updated=TO_TIMESTAMP('2023-03-29 19:40:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=200090 +; + diff --git a/migration/iD11/oracle/202303241637_IDEMPIERE-5567.sql b/migration/iD11/oracle/202303241637_IDEMPIERE-5567.sql new file mode 100644 index 0000000000..0b3b19110e --- /dev/null +++ b/migration/iD11/oracle/202303241637_IDEMPIERE-5567.sql @@ -0,0 +1,447 @@ +-- IDEMPIERE-5567 Support of UUID as Foreign Key (FHCA-4195) +SELECT register_migration_script('202303241637_IDEMPIERE-5567.sql') FROM dual; + +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- Mar 24, 2023, 4:37:27 PM CET +INSERT INTO AD_Table (AD_Table_ID,Name,TableName,AccessLevel,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsSecurityEnabled,IsDeleteable,IsHighVolume,IsView,EntityType,IsChangeLog,ReplicationType,AD_Table_UU,Processing) VALUES (200384,'Test UU Detail','TestUUDet','7',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:26','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:26','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','N','N','D','Y','L','a0dd2706-936b-4520-a38a-5afdccb92ecf','N') +; + +-- Mar 24, 2023, 4:37:27 PM CET +INSERT INTO AD_Sequence (Name,CurrentNext,IsAudited,StartNewYear,Description,IsActive,IsTableID,AD_Client_ID,AD_Org_ID,Created,CreatedBy,Updated,UpdatedBy,AD_Sequence_ID,IsAutoSequence,StartNo,IncrementNo,CurrentNextSys,AD_Sequence_UU) VALUES ('TestUUDet',1000000,'N','N','Table TestUUDet','Y','Y',0,0,TO_TIMESTAMP('2023-03-24 16:37:27','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:27','YYYY-MM-DD HH24:MI:SS'),100,200454,'Y',1000000,1,200000,'24b75e22-fd49-4cd6-87e4-887f915bc660') +; + +-- Mar 24, 2023, 4:37:28 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,DefaultValue,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,ReadOnlyLogic,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215795,0.0,'Tenant','Tenant for this installation.','A Tenant is a company or a legal entity. You cannot share data between Tenants.',200384,'AD_Client_ID','@#AD_Client_ID@',10,'N','N','Y','N','N','N',30,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:27','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:27','YYYY-MM-DD HH24:MI:SS'),100,102,'N','N','1=1','D','N','d91c6d4c-ae37-4257-b99c-6c7bcabc1ccd','N') +; + +-- Mar 24, 2023, 4:37:28 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,DefaultValue,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215796,0.0,'Organization','Organizational entity within tenant','An organization is a unit of your tenant or legal entity - examples are store, department. You can share data between organizations.',200384,'AD_Org_ID','@AD_Org_ID@',10,'N','N','Y','N','N','N',19,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:28','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:28','YYYY-MM-DD HH24:MI:SS'),100,113,'N','N','D','N','34378f01-63d9-47f1-8dbb-6010ea059ac1','N') +; + +-- Mar 24, 2023, 4:37:28 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215797,0.0,'Created','Date this record was created','The Created field indicates the date that this record was created.',200384,'Created',7,'N','N','Y','N','N','N',16,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:28','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:28','YYYY-MM-DD HH24:MI:SS'),100,245,'N','N','D','N','f47ee517-9a13-4587-a204-028580011acf','N') +; + +-- Mar 24, 2023, 4:37:29 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Reference_Value_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215798,0.0,'Created By','User who created this records','The Created By field indicates the user who created this record.',200384,'CreatedBy',10,'N','N','Y','N','N','N',30,110,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:28','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:28','YYYY-MM-DD HH24:MI:SS'),100,246,'N','N','D','N','226b0974-6e82-4f4e-b45f-26dc6d564768','N') +; + +-- Mar 24, 2023, 4:37:29 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215799,0.0,'Updated','Date this record was updated','The Updated field indicates the date that this record was updated.',200384,'Updated',7,'N','N','Y','N','N','N',16,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:29','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:29','YYYY-MM-DD HH24:MI:SS'),100,607,'N','N','D','N','72cc17f9-123a-46b6-b917-9b3346fb6f91','N') +; + +-- Mar 24, 2023, 4:37:30 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Reference_Value_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215800,0.0,'Updated By','User who updated this records','The Updated By field indicates the user who updated this record.',200384,'UpdatedBy',10,'N','N','Y','N','N','N',30,110,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:29','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:29','YYYY-MM-DD HH24:MI:SS'),100,608,'N','N','D','N','f6613f51-004b-436b-965a-fda212908640','N') +; + +-- Mar 24, 2023, 4:37:30 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,DefaultValue,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215801,0.0,'Active','The record is active in the system','There are two methods of making records unavailable in the system: One is to delete the record, the other is to de-activate the record. A de-activated record is not available for selection, but available for reports. +There are two reasons for de-activating and not deleting records: +(1) The system requires the record for audit purposes. +(2) The record is referenced by other records. E.g., you cannot delete a Business Partner, if there are invoices for this partner record existing. You de-activate the Business Partner and prevent that this record is used for future entries.',200384,'IsActive','Y',1,'N','N','Y','N','N','N',20,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:30','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:30','YYYY-MM-DD HH24:MI:SS'),100,348,'Y','N','D','N','89c118cb-eb52-4de6-9978-793091ae23b6','N') +; + +-- Mar 24, 2023, 4:37:30 PM CET +INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,PrintName,EntityType,AD_Element_UU) VALUES (203795,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:30','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:30','YYYY-MM-DD HH24:MI:SS'),100,'TestUUDet_UU','TestUUDet_UU','TestUUDet_UU','D','76076418-4f48-4d5f-862c-a7925a791b32') +; + +-- Mar 24, 2023, 4:37:31 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215802,0.0,'TestUUDet_UU',200384,'TestUUDet_UU',36,'N','N','N','N','N','N',200231,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:30','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:30','YYYY-MM-DD HH24:MI:SS'),100,203795,'Y','N','D','N','bd716d09-9915-4c16-a101-a1b71c4af014','N') +; + +-- Mar 24, 2023, 4:37:31 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,SeqNoSelection,IsToolbarButton) VALUES (215803,0.0,'Name','Alphanumeric identifier of the entity','The name of an entity (record) is used as an default search option in addition to the search key. The name is up to 60 characters in length.',200384,'Name',60,'N','N','Y','N','Y','N',10,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:31','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:31','YYYY-MM-DD HH24:MI:SS'),100,469,'Y','Y','D','N','dfb02d82-8abd-4903-9b0f-aa03acfb8c57',10,'N') +; + +-- Mar 24, 2023, 4:37:31 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Reference_Value_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215804,0.0,'Sales Representative','Sales Representative or Company Agent','The Sales Representative indicates the Sales Rep for this Region. Any Sales Rep must be a valid internal user.',200384,'SalesRep_ID',10,'N','N','Y','N','N','N',30,190,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:31','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:31','YYYY-MM-DD HH24:MI:SS'),100,1063,'Y','N','D','N','125cc090-2a67-4aac-836e-79e1fd939c81','N') +; + +-- Mar 24, 2023, 4:37:32 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Reference_Value_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215805,0.0,'User/Contact','User within the system - Internal or Business Partner Contact','The User identifies a unique user in the system. This could be an internal user or a business partner contact',200384,'AD_User_ID',10,'N','N','Y','N','N','N',30,110,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:31','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:31','YYYY-MM-DD HH24:MI:SS'),100,138,'Y','N','D','N','8539cc97-e3c6-4e40-b5f7-1fc075b4a886','N') +; + +-- Mar 24, 2023, 4:38:56 PM CET +UPDATE AD_Element SET Name='Test UU', PrintName='Test UU',Updated=TO_TIMESTAMP('2023-03-24 16:38:56','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=203793 +; + +-- Mar 24, 2023, 4:38:56 PM CET +UPDATE AD_Column SET ColumnName='TestUU_UU', Name='Test UU', Description=NULL, Help=NULL, Placeholder=NULL WHERE AD_Element_ID=203793 +; + +-- Mar 24, 2023, 4:38:56 PM CET +UPDATE AD_Process_Para SET ColumnName='TestUU_UU', Name='Test UU', Description=NULL, Help=NULL, AD_Element_ID=203793 WHERE UPPER(ColumnName)='TESTUU_UU' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL +; + +-- Mar 24, 2023, 4:38:56 PM CET +UPDATE AD_Process_Para SET ColumnName='TestUU_UU', Name='Test UU', Description=NULL, Help=NULL, Placeholder=NULL WHERE AD_Element_ID=203793 AND IsCentrallyMaintained='Y' +; + +-- Mar 24, 2023, 4:38:56 PM CET +UPDATE AD_InfoColumn SET ColumnName='TestUU_UU', Name='Test UU', Description=NULL, Help=NULL, Placeholder=NULL WHERE AD_Element_ID=203793 AND IsCentrallyMaintained='Y' +; + +-- Mar 24, 2023, 4:38:56 PM CET +UPDATE AD_Field SET Name='Test UU', Description=NULL, Help=NULL, Placeholder=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=203793) AND IsCentrallyMaintained='Y' +; + +-- Mar 24, 2023, 4:38:56 PM CET +UPDATE AD_PrintFormatItem SET PrintName='Test UU', Name='Test UU' WHERE IsCentrallyMaintained='Y' AND EXISTS (SELECT * FROM AD_Column c WHERE c.AD_Column_ID=AD_PrintFormatItem.AD_Column_ID AND c.AD_Element_ID=203793) +; + +-- Mar 24, 2023, 4:39:33 PM CET +UPDATE AD_Column SET Name='Test UU', Description=NULL, Help=NULL, ColumnName='TestUU_UU', FieldLength=36, AD_Reference_ID=200234, AD_Reference_Value_ID=NULL, AD_Element_ID=203793,Updated=TO_TIMESTAMP('2023-03-24 16:39:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215805 +; + +-- Mar 24, 2023, 4:40:40 PM CET +INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,Description,Help,PrintName,EntityType,AD_Element_UU) VALUES (203796,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:40:09','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:40:09','YYYY-MM-DD HH24:MI:SS'),100,'AltTestUU_UU','Alternate Test UU',NULL,NULL,'Alternate Test UU','D','1056f895-a7b0-49c0-b60e-1e5e702a19b1') +; + +-- Mar 24, 2023, 4:41:07 PM CET +INSERT INTO AD_Reference (AD_Reference_ID,Name,ValidationType,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,IsOrderByValue,AD_Reference_UU,ShowInactive) VALUES (200236,'Test UU','T',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:41:07','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:41:07','YYYY-MM-DD HH24:MI:SS'),100,'D','N','3eaddbd9-67d0-4e16-ae0b-4a6acee3a1e6','N') +; + +-- Mar 24, 2023, 4:42:05 PM CET +INSERT INTO AD_Ref_Table (AD_Reference_ID,AD_Table_ID,AD_Key,AD_Display,OrderByClause,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsValueDisplayed,EntityType,AD_Ref_Table_UU) VALUES (200236,200383,215785,215785,'TestUU.Name',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:42:05','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:42:05','YYYY-MM-DD HH24:MI:SS'),100,'N','D','00dc355b-14fe-4a48-aa7f-fb7a7b659ba1') +; + +-- Mar 24, 2023, 4:42:24 PM CET +UPDATE AD_Column SET Name='Alternate Test UU', Description=NULL, Help=NULL, ColumnName='AltTestUU_UU', FieldLength=36, AD_Reference_ID=200235, AD_Reference_Value_ID=200236, AD_Element_ID=203796,Updated=TO_TIMESTAMP('2023-03-24 16:42:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215804 +; + +-- Mar 24, 2023, 4:42:33 PM CET +UPDATE AD_Column SET IsAllowCopy='N', FKConstraintName='ADClient_TestUUDet', FKConstraintType='N',Updated=TO_TIMESTAMP('2023-03-24 16:42:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215795 +; + +-- Mar 24, 2023, 4:42:33 PM CET +UPDATE AD_Column SET IsAllowCopy='N', FKConstraintName='ADOrg_TestUUDet', FKConstraintType='N',Updated=TO_TIMESTAMP('2023-03-24 16:42:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215796 +; + +-- Mar 24, 2023, 4:42:33 PM CET +UPDATE AD_Column SET FKConstraintName='AltTestUUUU_TestUUDet', FKConstraintType='N',Updated=TO_TIMESTAMP('2023-03-24 16:42:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215804 +; + +-- Mar 24, 2023, 4:42:33 PM CET +UPDATE AD_Column SET IsAllowCopy='N', FKConstraintName='CreatedBy_TestUUDet', FKConstraintType='N',Updated=TO_TIMESTAMP('2023-03-24 16:42:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215798 +; + +-- Mar 24, 2023, 4:42:33 PM CET +UPDATE AD_Column SET FKConstraintName='TestUUUU_TestUUDet', FKConstraintType='N',Updated=TO_TIMESTAMP('2023-03-24 16:42:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215805 +; + +-- Mar 24, 2023, 4:42:33 PM CET +UPDATE AD_Column SET IsAllowCopy='N', FKConstraintName='UpdatedBy_TestUUDet', FKConstraintType='N',Updated=TO_TIMESTAMP('2023-03-24 16:42:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215800 +; + +-- Mar 24, 2023, 4:42:33 PM CET +CREATE TABLE TestUUDet (AD_Client_ID NUMBER(10) NOT NULL, AD_Org_ID NUMBER(10) NOT NULL, AltTestUU_UU VARCHAR2(36 CHAR) NOT NULL, Created DATE NOT NULL, CreatedBy NUMBER(10) NOT NULL, IsActive CHAR(1) DEFAULT 'Y' CHECK (IsActive IN ('Y','N')) NOT NULL, Name VARCHAR2(60 CHAR) NOT NULL, TestUUDet_UU VARCHAR2(36 CHAR) DEFAULT NULL , TestUU_UU VARCHAR2(36 CHAR) NOT NULL, Updated DATE NOT NULL, UpdatedBy NUMBER(10) NOT NULL, CONSTRAINT TestUUDet_UU_idx PRIMARY KEY (TestUUDet_UU)) +; + +-- Mar 24, 2023, 4:42:33 PM CET +ALTER TABLE TestUUDet ADD CONSTRAINT ADClient_TestUUDet FOREIGN KEY (AD_Client_ID) REFERENCES ad_client(ad_client_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Mar 24, 2023, 4:42:33 PM CET +ALTER TABLE TestUUDet ADD CONSTRAINT ADOrg_TestUUDet FOREIGN KEY (AD_Org_ID) REFERENCES ad_org(ad_org_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Mar 24, 2023, 4:42:33 PM CET +ALTER TABLE TestUUDet ADD CONSTRAINT AltTestUUUU_TestUUDet FOREIGN KEY (AltTestUU_UU) REFERENCES TestUU(TestUU_UU) DEFERRABLE INITIALLY DEFERRED +; + +-- Mar 24, 2023, 4:42:33 PM CET +ALTER TABLE TestUUDet ADD CONSTRAINT CreatedBy_TestUUDet FOREIGN KEY (CreatedBy) REFERENCES ad_user(ad_user_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Mar 24, 2023, 4:42:33 PM CET +ALTER TABLE TestUUDet ADD CONSTRAINT TestUUUU_TestUUDet FOREIGN KEY (TestUU_UU) REFERENCES TestUU(TestUU_UU) DEFERRABLE INITIALLY DEFERRED +; + +-- Mar 24, 2023, 4:42:33 PM CET +ALTER TABLE TestUUDet ADD CONSTRAINT UpdatedBy_TestUUDet FOREIGN KEY (UpdatedBy) REFERENCES ad_user(ad_user_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Mar 24, 2023, 4:43:02 PM CET +INSERT INTO AD_Tab (AD_Tab_ID,Name,AD_Window_ID,SeqNo,IsSingleRow,AD_Table_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,HasTree,IsTranslationTab,IsReadOnly,AD_Column_ID,OrderByClause,Processing,TabLevel,IsSortTab,EntityType,IsInsertRecord,IsAdvancedTab,AD_Tab_UU) VALUES (200349,'Test UU Detail',200138,20,'Y',200384,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:01','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:01','YYYY-MM-DD HH24:MI:SS'),100,'N','N','N',215805,'TestUUDet.Name','N',1,'N','D','Y','N','0c329e35-319d-401f-8be0-50bf1224e93b') +; + +-- Mar 24, 2023, 4:43:02 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,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) VALUES (207582,'Tenant','Tenant for this installation.','A Tenant is a company or a legal entity. You cannot share data between Tenants.',200349,215795,'Y',10,10,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:02','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:02','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','c5d3b3f4-ad2c-4d5f-b389-6ce51b1d967a','Y',10,2) +; + +-- Mar 24, 2023, 4:43:02 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,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,IsAllowCopy,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan) VALUES (207583,'Organization','Organizational entity within tenant','An organization is a unit of your tenant or legal entity - examples are store, department. You can share data between organizations.',200349,215796,'Y',10,20,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:02','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:02','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','7247c80b-0079-4f1d-9f95-3ac8173b11c0','Y','Y',20,4,2) +; + +-- Mar 24, 2023, 4:43:03 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,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) VALUES (207584,'Name','Alphanumeric identifier of the entity','The name of an entity (record) is used as an default search option in addition to the search key. The name is up to 60 characters in length.',200349,215803,'Y',60,30,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:02','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:02','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','db0f229a-b22f-413f-94e7-8564ec05f5e8','Y',30,5) +; + +-- Mar 24, 2023, 4:43:03 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,ColumnSpan) VALUES (207585,'TestUUDet_UU',200349,215802,'N',36,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:03','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:03','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','e305c9af-7e70-4bce-bbdc-8a9822096ec1','N',2) +; + +-- Mar 24, 2023, 4:43:03 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,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) VALUES (207586,'Alternate Test UU',200349,215804,'Y',36,40,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:03','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:03','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','f0cfbddf-17ea-431c-9404-968a68b97f1b','Y',40,2) +; + +-- Mar 24, 2023, 4:43:04 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,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) VALUES (207587,'Test UU',200349,215805,'Y',36,50,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:03','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:03','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','a1ced8df-f59e-4f50-8e98-8ab46781d92e','Y',50,2) +; + +-- Mar 24, 2023, 4:43:04 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,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,XPosition,ColumnSpan) VALUES (207588,'Active','The record is active in the system','There are two methods of making records unavailable in the system: One is to delete the record, the other is to de-activate the record. A de-activated record is not available for selection, but available for reports. +There are two reasons for de-activating and not deleting records: +(1) The system requires the record for audit purposes. +(2) The record is referenced by other records. E.g., you cannot delete a Business Partner, if there are invoices for this partner record existing. You de-activate the Business Partner and prevent that this record is used for future entries.',200349,215801,'Y',1,60,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:04','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:04','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','42acf576-76b4-41d3-8ee1-2683e002308d','Y',60,2,2) +; + +-- Mar 24, 2023, 4:43:04 PM CET +UPDATE AD_Table SET AD_Window_ID=200138,Updated=TO_TIMESTAMP('2023-03-24 16:43:04','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=200384 +; + +-- Mar 24, 2023, 4:43:27 PM CET +INSERT INTO AD_Window (AD_Window_ID,Name,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,WindowType,Processing,EntityType,IsSOTrx,IsDefault,IsBetaFunctionality,AD_Window_UU) VALUES (200139,'Test UU Detail',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:27','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:27','YYYY-MM-DD HH24:MI:SS'),100,'M','N','D','Y','N','N','d00d4825-3c3f-4fdb-b9fb-cfde86348020') +; + +-- Mar 24, 2023, 4:43:27 PM CET +INSERT INTO AD_Tab (AD_Tab_ID,Name,AD_Window_ID,SeqNo,IsSingleRow,AD_Table_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,HasTree,IsTranslationTab,IsReadOnly,OrderByClause,Processing,TabLevel,IsSortTab,EntityType,IsInsertRecord,IsAdvancedTab,AD_Tab_UU) VALUES (200350,'Test UU Detail',200139,10,'Y',200384,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:27','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:27','YYYY-MM-DD HH24:MI:SS'),100,'N','N','N','TestUUDet.Name','N',0,'N','D','Y','N','36b10541-db9c-4de4-b4de-2329979f4dff') +; + +-- Mar 24, 2023, 4:43:28 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,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) VALUES (207589,'Tenant','Tenant for this installation.','A Tenant is a company or a legal entity. You cannot share data between Tenants.',200350,215795,'Y',10,10,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:27','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:27','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','19c3b52e-5514-4e95-a30d-5e3bd82ca49a','Y',10,2) +; + +-- Mar 24, 2023, 4:43:28 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,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,IsAllowCopy,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan) VALUES (207590,'Organization','Organizational entity within tenant','An organization is a unit of your tenant or legal entity - examples are store, department. You can share data between organizations.',200350,215796,'Y',10,20,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:28','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:28','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','ffa6d972-4bab-499f-aada-f7770e9e056a','Y','Y',20,4,2) +; + +-- Mar 24, 2023, 4:43:28 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,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) VALUES (207591,'Name','Alphanumeric identifier of the entity','The name of an entity (record) is used as an default search option in addition to the search key. The name is up to 60 characters in length.',200350,215803,'Y',60,30,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:28','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:28','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','7419f61f-5227-4b7a-8ce8-17fbd4beb18b','Y',30,5) +; + +-- Mar 24, 2023, 4:43:29 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,ColumnSpan) VALUES (207592,'TestUUDet_UU',200350,215802,'N',36,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:28','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:28','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','0dd84068-8f30-49ab-a8ee-9e5494e32a82','N',2) +; + +-- Mar 24, 2023, 4:43:29 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,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) VALUES (207593,'Alternate Test UU',200350,215804,'Y',36,40,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:29','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:29','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','19a98247-e893-4dd8-a825-e76ae45576c0','Y',40,2) +; + +-- Mar 24, 2023, 4:43:29 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,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) VALUES (207594,'Test UU',200350,215805,'Y',36,50,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:29','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:29','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','3c5bf017-2dec-4ae3-88e9-b74f25e210f2','Y',50,2) +; + +-- Mar 24, 2023, 4:43:30 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,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,XPosition,ColumnSpan) VALUES (207595,'Active','The record is active in the system','There are two methods of making records unavailable in the system: One is to delete the record, the other is to de-activate the record. A de-activated record is not available for selection, but available for reports. +There are two reasons for de-activating and not deleting records: +(1) The system requires the record for audit purposes. +(2) The record is referenced by other records. E.g., you cannot delete a Business Partner, if there are invoices for this partner record existing. You de-activate the Business Partner and prevent that this record is used for future entries.',200350,215801,'Y',1,60,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:29','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:29','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','c66bb88f-0819-47e4-90d7-1d7542efb934','Y',60,2,2) +; + +-- Mar 24, 2023, 4:43:30 PM CET +INSERT INTO AD_Menu (AD_Menu_ID,Name,Action,AD_Window_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsSummary,IsSOTrx,IsReadOnly,EntityType,AD_Menu_UU) VALUES (200225,'Test UU Detail','W',200139,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:30','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:30','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','N','D','acf261b2-7b3d-4a6d-8e02-4a9d37e968c1') +; + +-- Mar 24, 2023, 4:43:30 PM CET +INSERT INTO AD_TreeNodeMM (AD_Client_ID,AD_Org_ID, IsActive,Created,CreatedBy,Updated,UpdatedBy, AD_Tree_ID, Node_ID, Parent_ID, SeqNo, AD_TreeNodeMM_UU) SELECT t.AD_Client_ID, 0, 'Y', getDate(), 100, getDate(), 100,t.AD_Tree_ID, 200225, 0, 999, Generate_UUID() FROM AD_Tree t WHERE t.AD_Client_ID=0 AND t.IsActive='Y' AND t.IsAllNodes='Y' AND t.TreeType='MM' AND NOT EXISTS (SELECT * FROM AD_TreeNodeMM e WHERE e.AD_Tree_ID=t.AD_Tree_ID AND Node_ID=200225) +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=11,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200225 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=12,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=220 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=13,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=351 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=14,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200218 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=15,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=289 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=16,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=302 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=17,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200168 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=18,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200169 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=19,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200221 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=20,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200222 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=21,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=303 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=22,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200047 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=23,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200048 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=24,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=321 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=25,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=461 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=26,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=53193 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=27,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200161 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=28,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=53322 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=29,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=383 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=30,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200177 +; + +-- Mar 24, 2023, 4:45:47 PM CET +UPDATE AD_Field SET IsDisplayed='Y', SeqNo=30, XPosition=1,Updated=TO_TIMESTAMP('2023-03-24 16:45:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207587 +; + +-- Mar 24, 2023, 4:45:47 PM CET +UPDATE AD_Field SET SeqNo=40,Updated=TO_TIMESTAMP('2023-03-24 16:45:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207584 +; + +-- Mar 24, 2023, 4:45:47 PM CET +UPDATE AD_Field SET SeqNo=50,Updated=TO_TIMESTAMP('2023-03-24 16:45:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207586 +; + +-- Mar 24, 2023, 4:45:47 PM CET +UPDATE AD_Field SET SeqNo=0,Updated=TO_TIMESTAMP('2023-03-24 16:45:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207585 +; + +-- Mar 24, 2023, 4:46:00 PM CET +UPDATE AD_Column SET IsMandatory='N',Updated=TO_TIMESTAMP('2023-03-24 16:46:00','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215804 +; + +-- Mar 24, 2023, 4:46:02 PM CET +ALTER TABLE TestUUDet MODIFY AltTestUU_UU VARCHAR2(36 CHAR) DEFAULT NULL +; + +-- Mar 24, 2023, 4:46:02 PM CET +ALTER TABLE TestUUDet MODIFY AltTestUU_UU NULL +; + +-- Mar 24, 2023, 4:46:41 PM CET +INSERT INTO TestUUDet (AD_Client_ID,AD_Org_ID,Created,CreatedBy,Updated,UpdatedBy,IsActive,TestUUDet_UU,Name,TestUU_UU) VALUES (0,0,TO_TIMESTAMP('2023-03-24 16:46:41','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:46:41','YYYY-MM-DD HH24:MI:SS'),100,'Y','07218035-18bc-4593-b76d-d498fafc9f0b','Detail Record','4e148b89-bdd9-48a6-8a8a-7609092f965c') +; + +-- Mar 24, 2023, 5:02:33 PM CET +UPDATE AD_Field SET IsDisplayed='Y', SeqNo=30, XPosition=1,Updated=TO_TIMESTAMP('2023-03-24 17:02:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207594 +; + +-- Mar 24, 2023, 5:02:33 PM CET +UPDATE AD_Field SET SeqNo=40,Updated=TO_TIMESTAMP('2023-03-24 17:02:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207591 +; + +-- Mar 24, 2023, 5:02:33 PM CET +UPDATE AD_Field SET SeqNo=50,Updated=TO_TIMESTAMP('2023-03-24 17:02:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207593 +; + +-- Mar 24, 2023, 5:02:33 PM CET +UPDATE AD_Field SET SeqNo=0,Updated=TO_TIMESTAMP('2023-03-24 17:02:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207592 +; + +-- Mar 29, 2023, 8:16:07 PM CEST +INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,Description,Help,PrintName,EntityType,AD_Element_UU) VALUES (203799,0,0,'Y',TO_TIMESTAMP('2023-03-29 20:15:52','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-29 20:15:52','YYYY-MM-DD HH24:MI:SS'),100,'TestUU_UUs','Multi TestUU',NULL,NULL,'Multi TestUU','D','fa2ddd35-2dfe-4771-ad64-a276e878427c') +; + +-- Mar 29, 2023, 8:16:45 PM CEST +INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Reference_Value_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,IsToolbarButton,IsSecure,FKConstraintType,IsHtml) VALUES (215809,0.0,'Multi TestUU',200384,'TestUU_UUs',2000,'N','N','Y','N','N',0,'N',200162,200236,0,0,'Y',TO_TIMESTAMP('2023-03-29 20:16:44','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-29 20:16:44','YYYY-MM-DD HH24:MI:SS'),100,203799,'Y','N','D','N','N','N','Y','efa1b7d2-8200-4bba-861b-87725ccf2099','Y','N','N','N','N') +; + +-- Mar 29, 2023, 8:17:07 PM CEST +UPDATE AD_Column SET IsMandatory='N',Updated=TO_TIMESTAMP('2023-03-29 20:17:07','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215809 +; + +-- Mar 29, 2023, 8:17:09 PM CEST +ALTER TABLE TestUUDet ADD TestUU_UUs VARCHAR2(2000 CHAR) DEFAULT NULL +; + +-- Mar 29, 2023, 8:17:31 PM CEST +INSERT INTO AD_Field (AD_Field_ID,Name,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) VALUES (207599,'Multi TestUU',200349,215809,'Y',2000,70,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-29 20:17:31','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-29 20:17:31','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','c1927d34-4a3e-4207-9f0a-e0748be9ad67','Y',70,5) +; + +-- Mar 29, 2023, 8:17:47 PM CEST +UPDATE AD_Field SET IsDisplayed='Y', SeqNo=60, XPosition=1,Updated=TO_TIMESTAMP('2023-03-29 20:17:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207599 +; + +-- Mar 29, 2023, 8:17:47 PM CEST +UPDATE AD_Field SET SeqNo=70,Updated=TO_TIMESTAMP('2023-03-29 20:17:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207588 +; + +-- Mar 29, 2023, 8:18:17 PM CEST +UPDATE AD_Element SET Name='Multi Test UU', PrintName='Multi Test UU',Updated=TO_TIMESTAMP('2023-03-29 20:18:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=203799 +; + +-- Mar 29, 2023, 8:18:17 PM CEST +UPDATE AD_Column SET ColumnName='TestUU_UUs', Name='Multi Test UU', Description=NULL, Help=NULL, Placeholder=NULL WHERE AD_Element_ID=203799 +; + +-- Mar 29, 2023, 8:18:17 PM CEST +UPDATE AD_Process_Para SET ColumnName='TestUU_UUs', Name='Multi Test UU', Description=NULL, Help=NULL, AD_Element_ID=203799 WHERE UPPER(ColumnName)='TESTUU_UUS' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL +; + +-- Mar 29, 2023, 8:18:17 PM CEST +UPDATE AD_Process_Para SET ColumnName='TestUU_UUs', Name='Multi Test UU', Description=NULL, Help=NULL, Placeholder=NULL WHERE AD_Element_ID=203799 AND IsCentrallyMaintained='Y' +; + +-- Mar 29, 2023, 8:18:17 PM CEST +UPDATE AD_InfoColumn SET ColumnName='TestUU_UUs', Name='Multi Test UU', Description=NULL, Help=NULL, Placeholder=NULL WHERE AD_Element_ID=203799 AND IsCentrallyMaintained='Y' +; + +-- Mar 29, 2023, 8:18:17 PM CEST +UPDATE AD_Field SET Name='Multi Test UU', Description=NULL, Help=NULL, Placeholder=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=203799) AND IsCentrallyMaintained='Y' +; + +-- Mar 29, 2023, 8:18:17 PM CEST +UPDATE AD_PrintFormatItem SET PrintName='Multi Test UU', Name='Multi Test UU' WHERE IsCentrallyMaintained='Y' AND EXISTS (SELECT * FROM AD_Column c WHERE c.AD_Column_ID=AD_PrintFormatItem.AD_Column_ID AND c.AD_Element_ID=203799) +; + +-- Mar 29, 2023, 8:18:34 PM CEST +INSERT INTO AD_Field (AD_Field_ID,Name,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) VALUES (207600,'Multi Test UU',200350,215809,'Y',2000,70,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-29 20:18:34','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-29 20:18:34','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','e35c3192-8704-490f-a79a-88b746588d64','Y',70,5) +; + +-- Mar 29, 2023, 8:18:42 PM CEST +UPDATE AD_Field SET IsDisplayed='Y', SeqNo=60, XPosition=1,Updated=TO_TIMESTAMP('2023-03-29 20:18:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207600 +; + +-- Mar 29, 2023, 8:18:42 PM CEST +UPDATE AD_Field SET SeqNo=70,Updated=TO_TIMESTAMP('2023-03-29 20:18:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207595 +; + diff --git a/migration/iD11/postgresql/202303161612_IDEMPIERE-5567.sql b/migration/iD11/postgresql/202303161612_IDEMPIERE-5567.sql new file mode 100644 index 0000000000..2953d7476a --- /dev/null +++ b/migration/iD11/postgresql/202303161612_IDEMPIERE-5567.sql @@ -0,0 +1,131 @@ +-- IDEMPIERE-5567 Support of UUID as Key (FHCA-4195) +SELECT register_migration_script('202303161612_IDEMPIERE-5567.sql') FROM dual; + +-- Mar 16, 2023, 4:12:22 PM CET +INSERT INTO AD_Reference (AD_Reference_ID,Name,Description,ValidationType,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,IsOrderByValue,AD_Reference_UU,ShowInactive) VALUES (200233,'Table (UU)','Table List based on UUID','D',0,0,'Y',TO_TIMESTAMP('2023-03-16 16:12:21','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-16 16:12:21','YYYY-MM-DD HH24:MI:SS'),100,'D','N','7a610848-25e3-4f38-ad47-5e79daf132fd','N') +; + +-- Mar 16, 2023, 4:12:35 PM CET +INSERT INTO AD_Reference (AD_Reference_ID,Name,Description,ValidationType,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,IsOrderByValue,AD_Reference_UU,ShowInactive) VALUES (200234,'Table Direct (UU)','Direct Table Access based on UUID','D',0,0,'Y',TO_TIMESTAMP('2023-03-16 16:12:34','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-16 16:12:34','YYYY-MM-DD HH24:MI:SS'),100,'D','N','52a4c2d4-3afb-47ef-b57c-8c9fc88bedff','N') +; + +-- Mar 16, 2023, 4:12:53 PM CET +INSERT INTO AD_Reference (AD_Reference_ID,Name,Description,ValidationType,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,IsOrderByValue,AD_Reference_UU,ShowInactive) VALUES (200235,'Search (UU)','Search Field based on UUID','D',0,0,'N',TO_TIMESTAMP('2023-03-16 16:12:53','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-16 16:12:53','YYYY-MM-DD HH24:MI:SS'),100,'D','N','f741f1a8-bc99-48cc-80a8-0c5d3bf85dbb','N') +; + +-- Mar 16, 2023, 5:21:52 PM CET +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=18 | @AD_Reference_ID@=21 | @AD_Reference_ID@=25 | @AD_Reference_ID@=31 | @AD_Reference_ID@=35 | @AD_Reference_ID@=33 | @AD_Reference_ID@=32 | @AD_Reference_ID@=53370 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-16 17:21:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202518 +; + +-- Mar 16, 2023, 5:22:02 PM CET +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=18 | @AD_Reference_ID@=21 | @AD_Reference_ID@=25 | @AD_Reference_ID@=31 | @AD_Reference_ID@=35 | @AD_Reference_ID@=33 | @AD_Reference_ID@=32 | @AD_Reference_ID@=53370 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-16 17:22:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202519 +; + +-- Mar 16, 2023, 5:23:17 PM CET +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-16 17:23:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=172 +; + +-- Mar 16, 2023, 5:23:24 PM CET +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-16 17:23:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206091 +; + +-- Mar 16, 2023, 6:38:53 PM CET +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-16 18:38:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=171 +; + +-- Mar 24, 2023, 5:28:41 PM CET +INSERT INTO AD_Reference (AD_Reference_ID,Name,ValidationType,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,IsOrderByValue,AD_Reference_UU,ShowInactive) VALUES (200237,'AD_Table with ID or UU Column','T',0,0,'Y',TO_TIMESTAMP('2023-03-24 17:28:41','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 17:28:41','YYYY-MM-DD HH24:MI:SS'),100,'D','N','23255e3a-0bf4-43f9-afdf-419ab47e21ff','N') +; + +-- Mar 24, 2023, 5:29:41 PM CET +INSERT INTO AD_Ref_Table (AD_Reference_ID,AD_Table_ID,AD_Key,AD_Display,WhereClause,OrderByClause,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsValueDisplayed,EntityType,AD_Ref_Table_UU) VALUES (200237,100,100,100,'AD_Table.IsView=''N'' AND AD_Table.IsActive=''Y'' AND EXISTS (SELECT 1 FROM AD_Column c WHERE c.AD_Table_ID=AD_Table.AD_Table_ID AND (UPPER(c.ColumnName)=UPPER(AD_Table.TableName)||''_ID'' OR UPPER(c.ColumnName)=UPPER(AD_Table.TableName)||''_UU'') AND c.IsActive=''Y'')','AD_Table.TableName',0,0,'Y',TO_TIMESTAMP('2023-03-24 17:29:41','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 17:29:41','YYYY-MM-DD HH24:MI:SS'),100,'N','D','908b6255-4cf4-4d76-9208-acc5e36c6add') +; + +-- Mar 24, 2023, 5:29:58 PM CET +UPDATE AD_Process_Para SET AD_Reference_Value_ID=200237,Updated=TO_TIMESTAMP('2023-03-24 17:29:58','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200264 +; + +-- Mar 24, 2023, 6:49:29 PM CET +INSERT INTO AD_Message (MsgType,MsgText,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Message_ID,Value,EntityType,AD_Message_UU) VALUES ('E','UUID Columns must end with suffix _UU',0,0,'Y',TO_TIMESTAMP('2023-03-24 18:49:28','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 18:49:28','YYYY-MM-DD HH24:MI:SS'),100,200827,'UUColumnsMustEndWithUU','D','183dfdda-b98b-4702-a942-11eaf0d5f816') +; + +-- Mar 29, 2023, 6:40:54 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235 & @AttributeValueType@=''R''',Updated=TO_TIMESTAMP('2023-03-29 18:40:54','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206510 +; + +-- Mar 29, 2023, 6:41:44 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200235 & @AttributeValueType@=''R''',Updated=TO_TIMESTAMP('2023-03-29 18:41:44','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=204144 +; + +-- Mar 29, 2023, 6:42:38 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=10 | @AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 18:42:38','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206409 +; + +-- Mar 29, 2023, 6:43:19 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 18:43:19','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201623 +; + +-- Mar 29, 2023, 6:43:58 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 18:43:58','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201622 +; + +-- Mar 29, 2023, 6:49:50 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 18:49:50','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10223 +; + +-- Mar 29, 2023, 6:50:27 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 18:50:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10225 +; + +-- Mar 29, 2023, 6:51:46 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=10 | @AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 18:51:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206410 +; + +-- Mar 29, 2023, 6:52:53 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=10 | @AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 18:52:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=56279 +; + +-- Mar 29, 2023, 7:08:17 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=30 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:08:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=54403 +; + +-- Mar 29, 2023, 7:09:03 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:09:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201895 +; + +-- Mar 29, 2023, 7:10:02 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=10 | @AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:10:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206408 +; + +-- Mar 29, 2023, 7:10:41 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:10:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=203266 +; + +-- Mar 29, 2023, 7:11:05 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:11:05','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206130 +; + +-- Mar 29, 2023, 7:11:47 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:11:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200855 +; + +-- Mar 29, 2023, 7:12:39 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:12:39','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=54401 +; + +-- Mar 29, 2023, 7:13:00 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012 | @AD_Reference_ID@=31 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200234 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:13:00','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206129 +; + +-- Mar 29, 2023, 7:13:29 PM CEST +UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28 | @AD_Reference_ID@=200152 | @AD_Reference_ID@=200161 | @AD_Reference_ID@=200162 | @AD_Reference_ID@=200163 | @AD_Reference_ID@=200233 | @AD_Reference_ID@=200235',Updated=TO_TIMESTAMP('2023-03-29 19:13:29','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=54402 +; + +-- Mar 29, 2023, 7:38:53 PM CEST +UPDATE AD_Val_Rule SET Code='(AD_Ref_List.Value!=''M'' OR @AD_Reference_ID@ IN (18,19,30,200233,200234,200235))',Updated=TO_TIMESTAMP('2023-03-29 19:38:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=200064 +; + +-- Mar 29, 2023, 7:40:49 PM CEST +UPDATE AD_Val_Rule SET Code='AD_Reference.AD_Reference_ID IN (10,11,12,13,14,15,16,17,18,19,20,22,24,25,27,29,30,31,32,33,34,36,37,38,39,40,200233,200234,200235)',Updated=TO_TIMESTAMP('2023-03-29 19:40:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=200090 +; + diff --git a/migration/iD11/postgresql/202303241637_IDEMPIERE-5567.sql b/migration/iD11/postgresql/202303241637_IDEMPIERE-5567.sql new file mode 100644 index 0000000000..8366c2dd4f --- /dev/null +++ b/migration/iD11/postgresql/202303241637_IDEMPIERE-5567.sql @@ -0,0 +1,444 @@ +-- IDEMPIERE-5567 Support of UUID as Foreign Key (FHCA-4195) +SELECT register_migration_script('202303241637_IDEMPIERE-5567.sql') FROM dual; + +-- Mar 24, 2023, 4:37:27 PM CET +INSERT INTO AD_Table (AD_Table_ID,Name,TableName,AccessLevel,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsSecurityEnabled,IsDeleteable,IsHighVolume,IsView,EntityType,IsChangeLog,ReplicationType,AD_Table_UU,Processing) VALUES (200384,'Test UU Detail','TestUUDet','7',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:26','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:26','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','N','N','D','Y','L','a0dd2706-936b-4520-a38a-5afdccb92ecf','N') +; + +-- Mar 24, 2023, 4:37:27 PM CET +INSERT INTO AD_Sequence (Name,CurrentNext,IsAudited,StartNewYear,Description,IsActive,IsTableID,AD_Client_ID,AD_Org_ID,Created,CreatedBy,Updated,UpdatedBy,AD_Sequence_ID,IsAutoSequence,StartNo,IncrementNo,CurrentNextSys,AD_Sequence_UU) VALUES ('TestUUDet',1000000,'N','N','Table TestUUDet','Y','Y',0,0,TO_TIMESTAMP('2023-03-24 16:37:27','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:27','YYYY-MM-DD HH24:MI:SS'),100,200454,'Y',1000000,1,200000,'24b75e22-fd49-4cd6-87e4-887f915bc660') +; + +-- Mar 24, 2023, 4:37:28 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,DefaultValue,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,ReadOnlyLogic,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215795,0.0,'Tenant','Tenant for this installation.','A Tenant is a company or a legal entity. You cannot share data between Tenants.',200384,'AD_Client_ID','@#AD_Client_ID@',10,'N','N','Y','N','N','N',30,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:27','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:27','YYYY-MM-DD HH24:MI:SS'),100,102,'N','N','1=1','D','N','d91c6d4c-ae37-4257-b99c-6c7bcabc1ccd','N') +; + +-- Mar 24, 2023, 4:37:28 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,DefaultValue,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215796,0.0,'Organization','Organizational entity within tenant','An organization is a unit of your tenant or legal entity - examples are store, department. You can share data between organizations.',200384,'AD_Org_ID','@AD_Org_ID@',10,'N','N','Y','N','N','N',19,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:28','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:28','YYYY-MM-DD HH24:MI:SS'),100,113,'N','N','D','N','34378f01-63d9-47f1-8dbb-6010ea059ac1','N') +; + +-- Mar 24, 2023, 4:37:28 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215797,0.0,'Created','Date this record was created','The Created field indicates the date that this record was created.',200384,'Created',7,'N','N','Y','N','N','N',16,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:28','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:28','YYYY-MM-DD HH24:MI:SS'),100,245,'N','N','D','N','f47ee517-9a13-4587-a204-028580011acf','N') +; + +-- Mar 24, 2023, 4:37:29 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Reference_Value_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215798,0.0,'Created By','User who created this records','The Created By field indicates the user who created this record.',200384,'CreatedBy',10,'N','N','Y','N','N','N',30,110,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:28','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:28','YYYY-MM-DD HH24:MI:SS'),100,246,'N','N','D','N','226b0974-6e82-4f4e-b45f-26dc6d564768','N') +; + +-- Mar 24, 2023, 4:37:29 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215799,0.0,'Updated','Date this record was updated','The Updated field indicates the date that this record was updated.',200384,'Updated',7,'N','N','Y','N','N','N',16,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:29','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:29','YYYY-MM-DD HH24:MI:SS'),100,607,'N','N','D','N','72cc17f9-123a-46b6-b917-9b3346fb6f91','N') +; + +-- Mar 24, 2023, 4:37:30 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Reference_Value_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215800,0.0,'Updated By','User who updated this records','The Updated By field indicates the user who updated this record.',200384,'UpdatedBy',10,'N','N','Y','N','N','N',30,110,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:29','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:29','YYYY-MM-DD HH24:MI:SS'),100,608,'N','N','D','N','f6613f51-004b-436b-965a-fda212908640','N') +; + +-- Mar 24, 2023, 4:37:30 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,DefaultValue,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215801,0.0,'Active','The record is active in the system','There are two methods of making records unavailable in the system: One is to delete the record, the other is to de-activate the record. A de-activated record is not available for selection, but available for reports. +There are two reasons for de-activating and not deleting records: +(1) The system requires the record for audit purposes. +(2) The record is referenced by other records. E.g., you cannot delete a Business Partner, if there are invoices for this partner record existing. You de-activate the Business Partner and prevent that this record is used for future entries.',200384,'IsActive','Y',1,'N','N','Y','N','N','N',20,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:30','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:30','YYYY-MM-DD HH24:MI:SS'),100,348,'Y','N','D','N','89c118cb-eb52-4de6-9978-793091ae23b6','N') +; + +-- Mar 24, 2023, 4:37:30 PM CET +INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,PrintName,EntityType,AD_Element_UU) VALUES (203795,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:30','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:30','YYYY-MM-DD HH24:MI:SS'),100,'TestUUDet_UU','TestUUDet_UU','TestUUDet_UU','D','76076418-4f48-4d5f-862c-a7925a791b32') +; + +-- Mar 24, 2023, 4:37:31 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215802,0.0,'TestUUDet_UU',200384,'TestUUDet_UU',36,'N','N','N','N','N','N',200231,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:30','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:30','YYYY-MM-DD HH24:MI:SS'),100,203795,'Y','N','D','N','bd716d09-9915-4c16-a101-a1b71c4af014','N') +; + +-- Mar 24, 2023, 4:37:31 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,SeqNoSelection,IsToolbarButton) VALUES (215803,0.0,'Name','Alphanumeric identifier of the entity','The name of an entity (record) is used as an default search option in addition to the search key. The name is up to 60 characters in length.',200384,'Name',60,'N','N','Y','N','Y','N',10,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:31','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:31','YYYY-MM-DD HH24:MI:SS'),100,469,'Y','Y','D','N','dfb02d82-8abd-4903-9b0f-aa03acfb8c57',10,'N') +; + +-- Mar 24, 2023, 4:37:31 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Reference_Value_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215804,0.0,'Sales Representative','Sales Representative or Company Agent','The Sales Representative indicates the Sales Rep for this Region. Any Sales Rep must be a valid internal user.',200384,'SalesRep_ID',10,'N','N','Y','N','N','N',30,190,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:31','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:31','YYYY-MM-DD HH24:MI:SS'),100,1063,'Y','N','D','N','125cc090-2a67-4aac-836e-79e1fd939c81','N') +; + +-- Mar 24, 2023, 4:37:32 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Reference_Value_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsAlwaysUpdateable,AD_Column_UU,IsToolbarButton) VALUES (215805,0.0,'User/Contact','User within the system - Internal or Business Partner Contact','The User identifies a unique user in the system. This could be an internal user or a business partner contact',200384,'AD_User_ID',10,'N','N','Y','N','N','N',30,110,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:37:31','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:37:31','YYYY-MM-DD HH24:MI:SS'),100,138,'Y','N','D','N','8539cc97-e3c6-4e40-b5f7-1fc075b4a886','N') +; + +-- Mar 24, 2023, 4:38:56 PM CET +UPDATE AD_Element SET Name='Test UU', PrintName='Test UU',Updated=TO_TIMESTAMP('2023-03-24 16:38:56','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=203793 +; + +-- Mar 24, 2023, 4:38:56 PM CET +UPDATE AD_Column SET ColumnName='TestUU_UU', Name='Test UU', Description=NULL, Help=NULL, Placeholder=NULL WHERE AD_Element_ID=203793 +; + +-- Mar 24, 2023, 4:38:56 PM CET +UPDATE AD_Process_Para SET ColumnName='TestUU_UU', Name='Test UU', Description=NULL, Help=NULL, AD_Element_ID=203793 WHERE UPPER(ColumnName)='TESTUU_UU' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL +; + +-- Mar 24, 2023, 4:38:56 PM CET +UPDATE AD_Process_Para SET ColumnName='TestUU_UU', Name='Test UU', Description=NULL, Help=NULL, Placeholder=NULL WHERE AD_Element_ID=203793 AND IsCentrallyMaintained='Y' +; + +-- Mar 24, 2023, 4:38:56 PM CET +UPDATE AD_InfoColumn SET ColumnName='TestUU_UU', Name='Test UU', Description=NULL, Help=NULL, Placeholder=NULL WHERE AD_Element_ID=203793 AND IsCentrallyMaintained='Y' +; + +-- Mar 24, 2023, 4:38:56 PM CET +UPDATE AD_Field SET Name='Test UU', Description=NULL, Help=NULL, Placeholder=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=203793) AND IsCentrallyMaintained='Y' +; + +-- Mar 24, 2023, 4:38:56 PM CET +UPDATE AD_PrintFormatItem SET PrintName='Test UU', Name='Test UU' WHERE IsCentrallyMaintained='Y' AND EXISTS (SELECT * FROM AD_Column c WHERE c.AD_Column_ID=AD_PrintFormatItem.AD_Column_ID AND c.AD_Element_ID=203793) +; + +-- Mar 24, 2023, 4:39:33 PM CET +UPDATE AD_Column SET Name='Test UU', Description=NULL, Help=NULL, ColumnName='TestUU_UU', FieldLength=36, AD_Reference_ID=200234, AD_Reference_Value_ID=NULL, AD_Element_ID=203793,Updated=TO_TIMESTAMP('2023-03-24 16:39:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215805 +; + +-- Mar 24, 2023, 4:40:40 PM CET +INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,Description,Help,PrintName,EntityType,AD_Element_UU) VALUES (203796,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:40:09','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:40:09','YYYY-MM-DD HH24:MI:SS'),100,'AltTestUU_UU','Alternate Test UU',NULL,NULL,'Alternate Test UU','D','1056f895-a7b0-49c0-b60e-1e5e702a19b1') +; + +-- Mar 24, 2023, 4:41:07 PM CET +INSERT INTO AD_Reference (AD_Reference_ID,Name,ValidationType,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,IsOrderByValue,AD_Reference_UU,ShowInactive) VALUES (200236,'Test UU','T',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:41:07','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:41:07','YYYY-MM-DD HH24:MI:SS'),100,'D','N','3eaddbd9-67d0-4e16-ae0b-4a6acee3a1e6','N') +; + +-- Mar 24, 2023, 4:42:05 PM CET +INSERT INTO AD_Ref_Table (AD_Reference_ID,AD_Table_ID,AD_Key,AD_Display,OrderByClause,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsValueDisplayed,EntityType,AD_Ref_Table_UU) VALUES (200236,200383,215785,215785,'TestUU.Name',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:42:05','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:42:05','YYYY-MM-DD HH24:MI:SS'),100,'N','D','00dc355b-14fe-4a48-aa7f-fb7a7b659ba1') +; + +-- Mar 24, 2023, 4:42:24 PM CET +UPDATE AD_Column SET Name='Alternate Test UU', Description=NULL, Help=NULL, ColumnName='AltTestUU_UU', FieldLength=36, AD_Reference_ID=200235, AD_Reference_Value_ID=200236, AD_Element_ID=203796,Updated=TO_TIMESTAMP('2023-03-24 16:42:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215804 +; + +-- Mar 24, 2023, 4:42:33 PM CET +UPDATE AD_Column SET IsAllowCopy='N', FKConstraintName='ADClient_TestUUDet', FKConstraintType='N',Updated=TO_TIMESTAMP('2023-03-24 16:42:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215795 +; + +-- Mar 24, 2023, 4:42:33 PM CET +UPDATE AD_Column SET IsAllowCopy='N', FKConstraintName='ADOrg_TestUUDet', FKConstraintType='N',Updated=TO_TIMESTAMP('2023-03-24 16:42:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215796 +; + +-- Mar 24, 2023, 4:42:33 PM CET +UPDATE AD_Column SET FKConstraintName='AltTestUUUU_TestUUDet', FKConstraintType='N',Updated=TO_TIMESTAMP('2023-03-24 16:42:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215804 +; + +-- Mar 24, 2023, 4:42:33 PM CET +UPDATE AD_Column SET IsAllowCopy='N', FKConstraintName='CreatedBy_TestUUDet', FKConstraintType='N',Updated=TO_TIMESTAMP('2023-03-24 16:42:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215798 +; + +-- Mar 24, 2023, 4:42:33 PM CET +UPDATE AD_Column SET FKConstraintName='TestUUUU_TestUUDet', FKConstraintType='N',Updated=TO_TIMESTAMP('2023-03-24 16:42:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215805 +; + +-- Mar 24, 2023, 4:42:33 PM CET +UPDATE AD_Column SET IsAllowCopy='N', FKConstraintName='UpdatedBy_TestUUDet', FKConstraintType='N',Updated=TO_TIMESTAMP('2023-03-24 16:42:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215800 +; + +-- Mar 24, 2023, 4:42:33 PM CET +CREATE TABLE TestUUDet (AD_Client_ID NUMERIC(10) NOT NULL, AD_Org_ID NUMERIC(10) NOT NULL, AltTestUU_UU VARCHAR(36) NOT NULL, Created TIMESTAMP NOT NULL, CreatedBy NUMERIC(10) NOT NULL, IsActive CHAR(1) DEFAULT 'Y' CHECK (IsActive IN ('Y','N')) NOT NULL, Name VARCHAR(60) NOT NULL, TestUUDet_UU VARCHAR(36) DEFAULT NULL , TestUU_UU VARCHAR(36) NOT NULL, Updated TIMESTAMP NOT NULL, UpdatedBy NUMERIC(10) NOT NULL, CONSTRAINT TestUUDet_UU_idx PRIMARY KEY (TestUUDet_UU)) +; + +-- Mar 24, 2023, 4:42:33 PM CET +ALTER TABLE TestUUDet ADD CONSTRAINT ADClient_TestUUDet FOREIGN KEY (AD_Client_ID) REFERENCES ad_client(ad_client_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Mar 24, 2023, 4:42:33 PM CET +ALTER TABLE TestUUDet ADD CONSTRAINT ADOrg_TestUUDet FOREIGN KEY (AD_Org_ID) REFERENCES ad_org(ad_org_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Mar 24, 2023, 4:42:33 PM CET +ALTER TABLE TestUUDet ADD CONSTRAINT AltTestUUUU_TestUUDet FOREIGN KEY (AltTestUU_UU) REFERENCES TestUU(TestUU_UU) DEFERRABLE INITIALLY DEFERRED +; + +-- Mar 24, 2023, 4:42:33 PM CET +ALTER TABLE TestUUDet ADD CONSTRAINT CreatedBy_TestUUDet FOREIGN KEY (CreatedBy) REFERENCES ad_user(ad_user_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Mar 24, 2023, 4:42:33 PM CET +ALTER TABLE TestUUDet ADD CONSTRAINT TestUUUU_TestUUDet FOREIGN KEY (TestUU_UU) REFERENCES TestUU(TestUU_UU) DEFERRABLE INITIALLY DEFERRED +; + +-- Mar 24, 2023, 4:42:33 PM CET +ALTER TABLE TestUUDet ADD CONSTRAINT UpdatedBy_TestUUDet FOREIGN KEY (UpdatedBy) REFERENCES ad_user(ad_user_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Mar 24, 2023, 4:43:02 PM CET +INSERT INTO AD_Tab (AD_Tab_ID,Name,AD_Window_ID,SeqNo,IsSingleRow,AD_Table_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,HasTree,IsTranslationTab,IsReadOnly,AD_Column_ID,OrderByClause,Processing,TabLevel,IsSortTab,EntityType,IsInsertRecord,IsAdvancedTab,AD_Tab_UU) VALUES (200349,'Test UU Detail',200138,20,'Y',200384,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:01','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:01','YYYY-MM-DD HH24:MI:SS'),100,'N','N','N',215805,'TestUUDet.Name','N',1,'N','D','Y','N','0c329e35-319d-401f-8be0-50bf1224e93b') +; + +-- Mar 24, 2023, 4:43:02 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,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) VALUES (207582,'Tenant','Tenant for this installation.','A Tenant is a company or a legal entity. You cannot share data between Tenants.',200349,215795,'Y',10,10,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:02','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:02','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','c5d3b3f4-ad2c-4d5f-b389-6ce51b1d967a','Y',10,2) +; + +-- Mar 24, 2023, 4:43:02 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,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,IsAllowCopy,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan) VALUES (207583,'Organization','Organizational entity within tenant','An organization is a unit of your tenant or legal entity - examples are store, department. You can share data between organizations.',200349,215796,'Y',10,20,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:02','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:02','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','7247c80b-0079-4f1d-9f95-3ac8173b11c0','Y','Y',20,4,2) +; + +-- Mar 24, 2023, 4:43:03 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,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) VALUES (207584,'Name','Alphanumeric identifier of the entity','The name of an entity (record) is used as an default search option in addition to the search key. The name is up to 60 characters in length.',200349,215803,'Y',60,30,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:02','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:02','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','db0f229a-b22f-413f-94e7-8564ec05f5e8','Y',30,5) +; + +-- Mar 24, 2023, 4:43:03 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,ColumnSpan) VALUES (207585,'TestUUDet_UU',200349,215802,'N',36,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:03','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:03','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','e305c9af-7e70-4bce-bbdc-8a9822096ec1','N',2) +; + +-- Mar 24, 2023, 4:43:03 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,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) VALUES (207586,'Alternate Test UU',200349,215804,'Y',36,40,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:03','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:03','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','f0cfbddf-17ea-431c-9404-968a68b97f1b','Y',40,2) +; + +-- Mar 24, 2023, 4:43:04 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,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) VALUES (207587,'Test UU',200349,215805,'Y',36,50,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:03','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:03','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','a1ced8df-f59e-4f50-8e98-8ab46781d92e','Y',50,2) +; + +-- Mar 24, 2023, 4:43:04 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,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,XPosition,ColumnSpan) VALUES (207588,'Active','The record is active in the system','There are two methods of making records unavailable in the system: One is to delete the record, the other is to de-activate the record. A de-activated record is not available for selection, but available for reports. +There are two reasons for de-activating and not deleting records: +(1) The system requires the record for audit purposes. +(2) The record is referenced by other records. E.g., you cannot delete a Business Partner, if there are invoices for this partner record existing. You de-activate the Business Partner and prevent that this record is used for future entries.',200349,215801,'Y',1,60,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:04','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:04','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','42acf576-76b4-41d3-8ee1-2683e002308d','Y',60,2,2) +; + +-- Mar 24, 2023, 4:43:04 PM CET +UPDATE AD_Table SET AD_Window_ID=200138,Updated=TO_TIMESTAMP('2023-03-24 16:43:04','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Table_ID=200384 +; + +-- Mar 24, 2023, 4:43:27 PM CET +INSERT INTO AD_Window (AD_Window_ID,Name,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,WindowType,Processing,EntityType,IsSOTrx,IsDefault,IsBetaFunctionality,AD_Window_UU) VALUES (200139,'Test UU Detail',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:27','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:27','YYYY-MM-DD HH24:MI:SS'),100,'M','N','D','Y','N','N','d00d4825-3c3f-4fdb-b9fb-cfde86348020') +; + +-- Mar 24, 2023, 4:43:27 PM CET +INSERT INTO AD_Tab (AD_Tab_ID,Name,AD_Window_ID,SeqNo,IsSingleRow,AD_Table_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,HasTree,IsTranslationTab,IsReadOnly,OrderByClause,Processing,TabLevel,IsSortTab,EntityType,IsInsertRecord,IsAdvancedTab,AD_Tab_UU) VALUES (200350,'Test UU Detail',200139,10,'Y',200384,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:27','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:27','YYYY-MM-DD HH24:MI:SS'),100,'N','N','N','TestUUDet.Name','N',0,'N','D','Y','N','36b10541-db9c-4de4-b4de-2329979f4dff') +; + +-- Mar 24, 2023, 4:43:28 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,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) VALUES (207589,'Tenant','Tenant for this installation.','A Tenant is a company or a legal entity. You cannot share data between Tenants.',200350,215795,'Y',10,10,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:27','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:27','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','19c3b52e-5514-4e95-a30d-5e3bd82ca49a','Y',10,2) +; + +-- Mar 24, 2023, 4:43:28 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,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,IsAllowCopy,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan) VALUES (207590,'Organization','Organizational entity within tenant','An organization is a unit of your tenant or legal entity - examples are store, department. You can share data between organizations.',200350,215796,'Y',10,20,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:28','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:28','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','ffa6d972-4bab-499f-aada-f7770e9e056a','Y','Y',20,4,2) +; + +-- Mar 24, 2023, 4:43:28 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,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) VALUES (207591,'Name','Alphanumeric identifier of the entity','The name of an entity (record) is used as an default search option in addition to the search key. The name is up to 60 characters in length.',200350,215803,'Y',60,30,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:28','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:28','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','7419f61f-5227-4b7a-8ce8-17fbd4beb18b','Y',30,5) +; + +-- Mar 24, 2023, 4:43:29 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,ColumnSpan) VALUES (207592,'TestUUDet_UU',200350,215802,'N',36,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:28','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:28','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','0dd84068-8f30-49ab-a8ee-9e5494e32a82','N',2) +; + +-- Mar 24, 2023, 4:43:29 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,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) VALUES (207593,'Alternate Test UU',200350,215804,'Y',36,40,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:29','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:29','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','19a98247-e893-4dd8-a825-e76ae45576c0','Y',40,2) +; + +-- Mar 24, 2023, 4:43:29 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,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) VALUES (207594,'Test UU',200350,215805,'Y',36,50,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:29','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:29','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','3c5bf017-2dec-4ae3-88e9-b74f25e210f2','Y',50,2) +; + +-- Mar 24, 2023, 4:43:30 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,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,XPosition,ColumnSpan) VALUES (207595,'Active','The record is active in the system','There are two methods of making records unavailable in the system: One is to delete the record, the other is to de-activate the record. A de-activated record is not available for selection, but available for reports. +There are two reasons for de-activating and not deleting records: +(1) The system requires the record for audit purposes. +(2) The record is referenced by other records. E.g., you cannot delete a Business Partner, if there are invoices for this partner record existing. You de-activate the Business Partner and prevent that this record is used for future entries.',200350,215801,'Y',1,60,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:29','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:29','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','c66bb88f-0819-47e4-90d7-1d7542efb934','Y',60,2,2) +; + +-- Mar 24, 2023, 4:43:30 PM CET +INSERT INTO AD_Menu (AD_Menu_ID,Name,"action",AD_Window_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsSummary,IsSOTrx,IsReadOnly,EntityType,AD_Menu_UU) VALUES (200225,'Test UU Detail','W',200139,0,0,'Y',TO_TIMESTAMP('2023-03-24 16:43:30','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:43:30','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','N','D','acf261b2-7b3d-4a6d-8e02-4a9d37e968c1') +; + +-- Mar 24, 2023, 4:43:30 PM CET +INSERT INTO AD_TreeNodeMM (AD_Client_ID,AD_Org_ID, IsActive,Created,CreatedBy,Updated,UpdatedBy, AD_Tree_ID, Node_ID, Parent_ID, SeqNo, AD_TreeNodeMM_UU) SELECT t.AD_Client_ID, 0, 'Y', statement_timestamp(), 100, statement_timestamp(), 100,t.AD_Tree_ID, 200225, 0, 999, Generate_UUID() FROM AD_Tree t WHERE t.AD_Client_ID=0 AND t.IsActive='Y' AND t.IsAllNodes='Y' AND t.TreeType='MM' AND NOT EXISTS (SELECT * FROM AD_TreeNodeMM e WHERE e.AD_Tree_ID=t.AD_Tree_ID AND Node_ID=200225) +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=11,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200225 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=12,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=220 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=13,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=351 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=14,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200218 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=15,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=289 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=16,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=302 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=17,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200168 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=18,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200169 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=19,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200221 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=20,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200222 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=21,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=303 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=22,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200047 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=23,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200048 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=24,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=321 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=25,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=461 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=26,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=53193 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=27,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200161 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=28,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=53322 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=29,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=383 +; + +-- Mar 24, 2023, 4:44:09 PM CET +UPDATE AD_TreeNodeMM SET Parent_ID=155, SeqNo=30,Updated=TO_TIMESTAMP('2023-03-24 16:44:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tree_ID=10 AND Node_ID=200177 +; + +-- Mar 24, 2023, 4:45:47 PM CET +UPDATE AD_Field SET IsDisplayed='Y', SeqNo=30, XPosition=1,Updated=TO_TIMESTAMP('2023-03-24 16:45:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207587 +; + +-- Mar 24, 2023, 4:45:47 PM CET +UPDATE AD_Field SET SeqNo=40,Updated=TO_TIMESTAMP('2023-03-24 16:45:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207584 +; + +-- Mar 24, 2023, 4:45:47 PM CET +UPDATE AD_Field SET SeqNo=50,Updated=TO_TIMESTAMP('2023-03-24 16:45:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207586 +; + +-- Mar 24, 2023, 4:45:47 PM CET +UPDATE AD_Field SET SeqNo=0,Updated=TO_TIMESTAMP('2023-03-24 16:45:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207585 +; + +-- Mar 24, 2023, 4:46:00 PM CET +UPDATE AD_Column SET IsMandatory='N',Updated=TO_TIMESTAMP('2023-03-24 16:46:00','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215804 +; + +-- Mar 24, 2023, 4:46:02 PM CET +INSERT INTO t_alter_column values('testuudet','AltTestUU_UU','VARCHAR(36)',null,'NULL') +; + +-- Mar 24, 2023, 4:46:02 PM CET +INSERT INTO t_alter_column values('testuudet','AltTestUU_UU',null,'NULL',null) +; + +-- Mar 24, 2023, 4:46:41 PM CET +INSERT INTO TestUUDet (AD_Client_ID,AD_Org_ID,Created,CreatedBy,Updated,UpdatedBy,IsActive,TestUUDet_UU,Name,TestUU_UU) VALUES (0,0,TO_TIMESTAMP('2023-03-24 16:46:41','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-24 16:46:41','YYYY-MM-DD HH24:MI:SS'),100,'Y','07218035-18bc-4593-b76d-d498fafc9f0b','Detail Record','4e148b89-bdd9-48a6-8a8a-7609092f965c') +; + +-- Mar 24, 2023, 5:02:33 PM CET +UPDATE AD_Field SET IsDisplayed='Y', SeqNo=30, XPosition=1,Updated=TO_TIMESTAMP('2023-03-24 17:02:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207594 +; + +-- Mar 24, 2023, 5:02:33 PM CET +UPDATE AD_Field SET SeqNo=40,Updated=TO_TIMESTAMP('2023-03-24 17:02:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207591 +; + +-- Mar 24, 2023, 5:02:33 PM CET +UPDATE AD_Field SET SeqNo=50,Updated=TO_TIMESTAMP('2023-03-24 17:02:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207593 +; + +-- Mar 24, 2023, 5:02:33 PM CET +UPDATE AD_Field SET SeqNo=0,Updated=TO_TIMESTAMP('2023-03-24 17:02:33','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207592 +; + +-- Mar 29, 2023, 8:16:07 PM CEST +INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,Description,Help,PrintName,EntityType,AD_Element_UU) VALUES (203799,0,0,'Y',TO_TIMESTAMP('2023-03-29 20:15:52','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-29 20:15:52','YYYY-MM-DD HH24:MI:SS'),100,'TestUU_UUs','Multi TestUU',NULL,NULL,'Multi TestUU','D','fa2ddd35-2dfe-4771-ad64-a276e878427c') +; + +-- Mar 29, 2023, 8:16:45 PM CEST +INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Reference_Value_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,IsToolbarButton,IsSecure,FKConstraintType,IsHtml) VALUES (215809,0.0,'Multi TestUU',200384,'TestUU_UUs',2000,'N','N','Y','N','N',0,'N',200162,200236,0,0,'Y',TO_TIMESTAMP('2023-03-29 20:16:44','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-29 20:16:44','YYYY-MM-DD HH24:MI:SS'),100,203799,'Y','N','D','N','N','N','Y','efa1b7d2-8200-4bba-861b-87725ccf2099','Y','N','N','N','N') +; + +-- Mar 29, 2023, 8:17:07 PM CEST +UPDATE AD_Column SET IsMandatory='N',Updated=TO_TIMESTAMP('2023-03-29 20:17:07','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=215809 +; + +-- Mar 29, 2023, 8:17:09 PM CEST +ALTER TABLE TestUUDet ADD COLUMN TestUU_UUs VARCHAR(2000) DEFAULT NULL +; + +-- Mar 29, 2023, 8:17:31 PM CEST +INSERT INTO AD_Field (AD_Field_ID,Name,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) VALUES (207599,'Multi TestUU',200349,215809,'Y',2000,70,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-29 20:17:31','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-29 20:17:31','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','c1927d34-4a3e-4207-9f0a-e0748be9ad67','Y',70,5) +; + +-- Mar 29, 2023, 8:17:47 PM CEST +UPDATE AD_Field SET IsDisplayed='Y', SeqNo=60, XPosition=1,Updated=TO_TIMESTAMP('2023-03-29 20:17:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207599 +; + +-- Mar 29, 2023, 8:17:47 PM CEST +UPDATE AD_Field SET SeqNo=70,Updated=TO_TIMESTAMP('2023-03-29 20:17:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207588 +; + +-- Mar 29, 2023, 8:18:17 PM CEST +UPDATE AD_Element SET Name='Multi Test UU', PrintName='Multi Test UU',Updated=TO_TIMESTAMP('2023-03-29 20:18:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=203799 +; + +-- Mar 29, 2023, 8:18:17 PM CEST +UPDATE AD_Column SET ColumnName='TestUU_UUs', Name='Multi Test UU', Description=NULL, Help=NULL, Placeholder=NULL WHERE AD_Element_ID=203799 +; + +-- Mar 29, 2023, 8:18:17 PM CEST +UPDATE AD_Process_Para SET ColumnName='TestUU_UUs', Name='Multi Test UU', Description=NULL, Help=NULL, AD_Element_ID=203799 WHERE UPPER(ColumnName)='TESTUU_UUS' AND IsCentrallyMaintained='Y' AND AD_Element_ID IS NULL +; + +-- Mar 29, 2023, 8:18:17 PM CEST +UPDATE AD_Process_Para SET ColumnName='TestUU_UUs', Name='Multi Test UU', Description=NULL, Help=NULL, Placeholder=NULL WHERE AD_Element_ID=203799 AND IsCentrallyMaintained='Y' +; + +-- Mar 29, 2023, 8:18:17 PM CEST +UPDATE AD_InfoColumn SET ColumnName='TestUU_UUs', Name='Multi Test UU', Description=NULL, Help=NULL, Placeholder=NULL WHERE AD_Element_ID=203799 AND IsCentrallyMaintained='Y' +; + +-- Mar 29, 2023, 8:18:17 PM CEST +UPDATE AD_Field SET Name='Multi Test UU', Description=NULL, Help=NULL, Placeholder=NULL WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE AD_Element_ID=203799) AND IsCentrallyMaintained='Y' +; + +-- Mar 29, 2023, 8:18:17 PM CEST +UPDATE AD_PrintFormatItem SET PrintName='Multi Test UU', Name='Multi Test UU' WHERE IsCentrallyMaintained='Y' AND EXISTS (SELECT * FROM AD_Column c WHERE c.AD_Column_ID=AD_PrintFormatItem.AD_Column_ID AND c.AD_Element_ID=203799) +; + +-- Mar 29, 2023, 8:18:34 PM CEST +INSERT INTO AD_Field (AD_Field_ID,Name,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) VALUES (207600,'Multi Test UU',200350,215809,'Y',2000,70,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2023-03-29 20:18:34','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2023-03-29 20:18:34','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','e35c3192-8704-490f-a79a-88b746588d64','Y',70,5) +; + +-- Mar 29, 2023, 8:18:42 PM CEST +UPDATE AD_Field SET IsDisplayed='Y', SeqNo=60, XPosition=1,Updated=TO_TIMESTAMP('2023-03-29 20:18:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207600 +; + +-- Mar 29, 2023, 8:18:42 PM CEST +UPDATE AD_Field SET SeqNo=70,Updated=TO_TIMESTAMP('2023-03-29 20:18:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=207595 +; + diff --git a/org.adempiere.base.callout/src/org/compiere/model/Callout_AD_Column.java b/org.adempiere.base.callout/src/org/compiere/model/Callout_AD_Column.java index 1a75673fed..f04b2bcfde 100644 --- a/org.adempiere.base.callout/src/org/compiere/model/Callout_AD_Column.java +++ b/org.adempiere.base.callout/src/org/compiere/model/Callout_AD_Column.java @@ -40,7 +40,7 @@ public class Callout_AD_Column extends CalloutEngine // IDEMPIERE-1011 if (PO.getUUIDColumnName(column.getAD_Table().getTableName()).equals(column.getColumnName())) { // UUID column - column.setAD_Reference_ID(DisplayType.String); + column.setAD_Reference_ID(DisplayType.UUID); column.setAD_Val_Rule_ID(0); column.setAD_Reference_Value_ID(0); column.setFieldLength(36); diff --git a/org.adempiere.base.process/src/org/compiere/process/ColumnEncryption.java b/org.adempiere.base.process/src/org/compiere/process/ColumnEncryption.java index cd47c72aa1..909429e4e7 100644 --- a/org.adempiere.base.process/src/org/compiere/process/ColumnEncryption.java +++ b/org.adempiere.base.process/src/org/compiere/process/ColumnEncryption.java @@ -109,7 +109,7 @@ public class ColumnEncryption extends SvrProcess { // Can it be enabled? if (column.isKey() || column.isParent() || column.isStandardColumn() || column.isUUIDColumn() || column.isVirtualColumn() || column.isIdentifier() - || column.isTranslated() || DisplayType.isLookup(dt) + || column.isTranslated() || DisplayType.isLookup(dt) || DisplayType.isUUID(dt) || DisplayType.isLOB(dt) || DisplayType.isDate(dt) || DisplayType.isNumeric(dt) || "DocumentNo".equalsIgnoreCase(column.getColumnName()) || "Value".equalsIgnoreCase(column.getColumnName()) diff --git a/org.adempiere.base.process/src/org/idempiere/process/CreateTable.java b/org.adempiere.base.process/src/org/idempiere/process/CreateTable.java index 227a9a4dc3..727631e154 100644 --- a/org.adempiere.base.process/src/org/idempiere/process/CreateTable.java +++ b/org.adempiere.base.process/src/org/idempiere/process/CreateTable.java @@ -29,14 +29,6 @@ import static org.compiere.model.SystemIDs.REFERENCE_AD_LANGUAGE; import static org.compiere.model.SystemIDs.REFERENCE_AD_USER; import static org.compiere.model.SystemIDs.REFERENCE_AD_USER_SALESREP; import static org.compiere.model.SystemIDs.REFERENCE_C_DOCTYPE; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_BUTTON; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_DATE; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_LIST; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_NUMBER; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_STRING; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TABLE; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TABLEDIR; -import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_UUID; import static org.compiere.model.SystemIDs.REFERENCE_DOCUMENTACTION; import static org.compiere.model.SystemIDs.REFERENCE_DOCUMENTSTATUS; import static org.compiere.model.SystemIDs.REFERENCE_POSTED; @@ -50,6 +42,7 @@ import org.compiere.model.MProcessPara; import org.compiere.model.MTable; import org.compiere.model.MTableIndex; import org.compiere.model.M_Element; +import org.compiere.model.PO; import org.compiere.model.Query; import org.compiere.model.X_AD_WF_Node; import org.compiere.model.X_AD_Workflow; @@ -494,7 +487,7 @@ public class CreateTable extends SvrProcess { column.setIsParent(true); } else if (columnName.equals("Value") || columnName.equals("Name") || columnName.equals("DocumentNo")) { - column.setAD_Reference_ID(REFERENCE_DATATYPE_STRING); + column.setAD_Reference_ID(DisplayType.String); column.setIsUpdateable(true); column.setIsSelectionColumn(true); @@ -513,7 +506,7 @@ public class CreateTable extends SvrProcess { column.setFieldLength(length); } else if (columnName.equals("Description") || columnName.equals("Help")) { - column.setAD_Reference_ID(REFERENCE_DATATYPE_STRING); + column.setAD_Reference_ID(DisplayType.String); column.setIsUpdateable(true); int length = LENGTH_0; if (columnName.equals("Description")) @@ -525,21 +518,21 @@ public class CreateTable extends SvrProcess { column.setIsTranslated(true); } else if (columnName.equals("C_Currency_ID")) { - column.setAD_Reference_ID(REFERENCE_DATATYPE_TABLEDIR); + column.setAD_Reference_ID(DisplayType.TableDir); column.setIsMandatory(true); column.setIsUpdateable(true); column.setFieldLength(LENGTH_22); column.setDefaultValue("@C_Currency_ID@"); } else if (columnName.equals("DateAcct") || columnName.equals("DateTrx")) { - column.setAD_Reference_ID(REFERENCE_DATATYPE_DATE); + column.setAD_Reference_ID(DisplayType.Date); column.setIsMandatory(true); column.setIsUpdateable(true); column.setFieldLength(LENGTH_7); column.setDefaultValue("@#Date@"); } else if (columnName.equals("DocAction")) { - column.setAD_Reference_ID(REFERENCE_DATATYPE_BUTTON); + column.setAD_Reference_ID(DisplayType.Button); column.setAD_Reference_Value_ID(REFERENCE_DOCUMENTACTION); column.setIsMandatory(true); column.setIsUpdateable(true); @@ -548,7 +541,7 @@ public class CreateTable extends SvrProcess { column.setIsToolbarButton(MColumn.ISTOOLBARBUTTON_Window); } else if (columnName.equals("DocStatus")) { - column.setAD_Reference_ID(REFERENCE_DATATYPE_LIST); + column.setAD_Reference_ID(DisplayType.List); column.setIsMandatory(true); column.setIsUpdateable(true); column.setFieldLength(LENGTH_2); @@ -556,24 +549,24 @@ public class CreateTable extends SvrProcess { column.setDefaultValue(DocAction.STATUS_Drafted); } else if (columnName.equals("ProcessedOn")) { - column.setAD_Reference_ID(REFERENCE_DATATYPE_NUMBER); + column.setAD_Reference_ID(DisplayType.Number); column.setFieldLength(LENGTH_20); } else if (columnName.equals("C_DocType_ID")) { - column.setAD_Reference_ID(REFERENCE_DATATYPE_TABLEDIR); + column.setAD_Reference_ID(DisplayType.TableDir); column.setIsMandatory(true); column.setIsUpdateable(true); column.setFieldLength(LENGTH_22); } else if (columnName.equals("C_DocTypeTarget_ID")) { - column.setAD_Reference_ID(REFERENCE_DATATYPE_TABLE); + column.setAD_Reference_ID(DisplayType.Table); column.setAD_Reference_Value_ID(REFERENCE_C_DOCTYPE); column.setIsMandatory(true); column.setIsUpdateable(true); column.setFieldLength(LENGTH_22); } else if (columnName.equals("Posted")) { - column.setAD_Reference_ID(REFERENCE_DATATYPE_BUTTON); + column.setAD_Reference_ID(DisplayType.Button); column.setIsMandatory(true); column.setIsUpdateable(true); column.setFieldLength(LENGTH_1); @@ -596,8 +589,8 @@ public class CreateTable extends SvrProcess { column.setIsMandatory(true); column.setFieldLength(LENGTH_22); } - else if (element.getColumnName().equalsIgnoreCase(table.getTableName() + "_UU")) { // UUID column - column.setAD_Reference_ID(REFERENCE_DATATYPE_UUID); + else if (element.getColumnName().equalsIgnoreCase(PO.getUUIDColumnName(table.getTableName()))) { // UUID column + column.setAD_Reference_ID(DisplayType.UUID); column.setFieldLength(LENGTH_36); } else if (element.getColumnName().equalsIgnoreCase((table.getTableName().substring(0, table.getTableName().length()-4)) + "_ID")) { // ID of parent table (for translation tables) diff --git a/org.adempiere.base/src/org/adempiere/base/AbstractModelFactory.java b/org.adempiere.base/src/org/adempiere/base/AbstractModelFactory.java index 2a97585557..8a19033908 100644 --- a/org.adempiere.base/src/org/adempiere/base/AbstractModelFactory.java +++ b/org.adempiere.base/src/org/adempiere/base/AbstractModelFactory.java @@ -50,6 +50,11 @@ public abstract class AbstractModelFactory implements IModelFactory { { return null; } + MTable table = MTable.get(Env.getCtx(), tableName); + if (table != null && table.isUUIDKeyTable()) + { + return null; + } boolean errorLogged = false; try diff --git a/org.adempiere.base/src/org/adempiere/base/IDisplayTypeFactory.java b/org.adempiere.base/src/org/adempiere/base/IDisplayTypeFactory.java index 53b9d7fec2..90dbbec955 100644 --- a/org.adempiere.base/src/org/adempiere/base/IDisplayTypeFactory.java +++ b/org.adempiere.base/src/org/adempiere/base/IDisplayTypeFactory.java @@ -25,6 +25,9 @@ import org.compiere.util.Language; public interface IDisplayTypeFactory { public boolean isID(int displayType); + public default boolean isUUID(int displayType) { + return false; + }; public boolean isNumeric(int displayType); public Integer getDefaultPrecision(int displayType); public boolean isText(int displayType); diff --git a/org.adempiere.base/src/org/adempiere/model/GenericZoomProvider.java b/org.adempiere.base/src/org/adempiere/model/GenericZoomProvider.java index 9aab2ac1c9..695e74b0dc 100644 --- a/org.adempiere.base/src/org/adempiere/model/GenericZoomProvider.java +++ b/org.adempiere.base/src/org/adempiere/model/GenericZoomProvider.java @@ -27,6 +27,7 @@ import org.adempiere.exceptions.AdempiereException; import org.compiere.model.MAccount; import org.compiere.model.MAttributeSetInstance; import org.compiere.model.MChart; +import org.compiere.model.MColumn; import org.compiere.model.MImage; import org.compiere.model.MLocation; import org.compiere.model.MLocator; @@ -106,7 +107,7 @@ public class GenericZoomProvider implements IZoomProvider { + " AND t.IsView='N' "); // not views if (detailedZoom) { sqlb.append( - " AND ( ( c.ColumnName=? AND c.AD_Reference_ID=19) "); + " AND ( ( c.ColumnName=? AND c.AD_Reference_ID IN (?,?)) "); // TableDir/TableDirUU if (MLocation.COLUMNNAME_C_Location_ID.equals(po.get_KeyColumns()[0])) sqlb.append(" OR c.AD_Reference_ID=").append(DisplayType.Location); else if (MAccount.COLUMNNAME_C_ValidCombination_ID.equals(po.get_KeyColumns()[0])) @@ -121,8 +122,8 @@ public class GenericZoomProvider implements IZoomProvider { sqlb.append(" OR c.AD_Reference_ID=").append(DisplayType.PAttribute); else if (MChart.COLUMNNAME_AD_Chart_ID.equals(po.get_KeyColumns()[0])) sqlb.append(" OR c.AD_Reference_ID=").append(DisplayType.Chart); - sqlb.append(" OR ( c.ColumnName=? AND c.AD_Reference_ID=30 AND c.AD_Reference_Value_ID IS NULL ) " - + " OR ( c.AD_Reference_ID IN (18, 30) AND c.AD_Reference_Value_ID=r.AD_Reference_ID AND tr.TableName=? ) ) "); + sqlb.append(" OR ( c.ColumnName=? AND c.AD_Reference_ID IN (?,?) AND c.AD_Reference_Value_ID IS NULL ) " // Search/SearchUU + + " OR ( c.AD_Reference_ID IN (?,?,?,?) AND c.AD_Reference_Value_ID=r.AD_Reference_ID AND tr.TableName=? ) ) "); // Table/Search/Table/SearchUU } else { sqlb.append(" AND c.ColumnName=? "); } @@ -140,7 +141,15 @@ public class GenericZoomProvider implements IZoomProvider { } pstmt.setString(index++, po.get_KeyColumns()[0]); if (detailedZoom) { + pstmt.setInt(index++, DisplayType.TableDir); + pstmt.setInt(index++, DisplayType.TableDirUU); pstmt.setString(index++, po.get_KeyColumns()[0]); + pstmt.setInt(index++, DisplayType.Search); + pstmt.setInt(index++, DisplayType.SearchUU); + pstmt.setInt(index++, DisplayType.Table); + pstmt.setInt(index++, DisplayType.TableUU); + pstmt.setInt(index++, DisplayType.Search); + pstmt.setInt(index++, DisplayType.SearchUU); pstmt.setString(index++, po.get_TableName()); } rs = pstmt.executeQuery(); @@ -226,10 +235,23 @@ public class GenericZoomProvider implements IZoomProvider { break; } - query.addRestriction(targetTableName + "." + targetColumnName + "=" + po.get_ID()); + MColumn column = table.getColumn(targetColumnName); + String refTableName = column.getReferenceTableName(); + MTable refTable = MTable.get(ctx, refTableName); + StringBuilder restriction = new StringBuilder(targetTableName) + .append(".") + .append(targetColumnName) + .append("="); + if (refTable.isUUIDKeyTable()) { + restriction.append(DB.TO_STRING(po.get_UUID())); + query.setZoomValue(po.get_UUID()); + } else { + restriction.append(po.get_ID()); + query.setZoomValue(po.get_ID()); + } + query.addRestriction(restriction.toString()); query.setZoomTableName(targetTableName); query.setZoomColumnName(targetColumnName); - query.setZoomValue(po.get_ID()); String accessLevel = table.getAccessLevel(); if ( clientID != 0 diff --git a/org.adempiere.base/src/org/adempiere/process/UUIDGenerator.java b/org.adempiere.base/src/org/adempiere/process/UUIDGenerator.java index 4894fd815e..98e12f4c16 100644 --- a/org.adempiere.base/src/org/adempiere/process/UUIDGenerator.java +++ b/org.adempiere.base/src/org/adempiere/process/UUIDGenerator.java @@ -121,7 +121,7 @@ public class UUIDGenerator extends SvrProcess { } mColumn.setAD_Element_ID(AD_Element_ID); mColumn.setColumnName(columnName); - mColumn.setAD_Reference_ID(DisplayType.String); + mColumn.setAD_Reference_ID(DisplayType.UUID); mColumn.setEntityType("U"); mColumn.setFieldLength(36); mColumn.setName(columnName); diff --git a/org.adempiere.base/src/org/compiere/model/GridField.java b/org.adempiere.base/src/org/compiere/model/GridField.java index 7fd6c700b5..0bc2afece1 100644 --- a/org.adempiere.base/src/org/compiere/model/GridField.java +++ b/org.adempiere.base/src/org/compiere/model/GridField.java @@ -1858,7 +1858,7 @@ public class GridField { if (m_parentValue != null) return m_parentValue.booleanValue(); - if (!DisplayType.isID(m_vo.displayType) || m_vo.TabNo == 0) + if ( ( !DisplayType.isID(m_vo.displayType) && !DisplayType.isUUID(m_vo.displayType) ) || m_vo.TabNo == 0) m_parentValue = Boolean.FALSE; else { diff --git a/org.adempiere.base/src/org/compiere/model/GridTab.java b/org.adempiere.base/src/org/compiere/model/GridTab.java index 1f75b96317..938e3ed7ad 100644 --- a/org.adempiere.base/src/org/compiere/model/GridTab.java +++ b/org.adempiere.base/src/org/compiere/model/GridTab.java @@ -365,6 +365,8 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable if (m_vo.getFields() == null) return false; + String uuidExpectedCol = PO.getUUIDColumnName(getTableName()); + String uuidColumnName = null; // Add Fields for (int f = 0; f < m_vo.getFields().size(); f++) { @@ -379,6 +381,8 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable if (field.isKey()) { setKeyColumnName(columnName); } + if (uuidExpectedCol.equals(columnName)) + uuidColumnName = columnName; // Parent Column(s) if (field.isParentColumn()) m_parents.add(columnName); @@ -419,6 +423,10 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable } } // for all fields + if (Util.isEmpty(getKeyColumnName()) && getParentColumnNames().size() == 0 && uuidColumnName != null) { + setKeyColumnName(uuidColumnName); + } + if (! m_mTable.getTableName().equals(X_AD_PInstance_Log.Table_Name)) { // globalqss, bug 1662433 // Add Standard Fields if (m_mTable.getField("Created") == null) @@ -795,35 +803,14 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable return query.getWhereClause(true); } - String refColName = null; // Find Reference Column e.g. BillTo_ID -> C_BPartner_Location_ID - String sql = "SELECT cc.ColumnName " + final String sql1 = "SELECT cc.ColumnName " + "FROM AD_Column c" + " INNER JOIN AD_Ref_Table r ON (c.AD_Reference_Value_ID=r.AD_Reference_ID)" + " INNER JOIN AD_Column cc ON (r.AD_Key=cc.AD_Column_ID) " - + "WHERE c.AD_Reference_ID IN (18,30)" // Table/Search + + "WHERE c.AD_Reference_ID IN (?,?,?,?)" + " AND c.ColumnName=?"; - PreparedStatement pstmt = null; - ResultSet rs = null; - try - { - pstmt = DB.prepareStatement(sql, null); - pstmt.setString(1, colName); - rs = pstmt.executeQuery(); - if (rs.next()) - refColName = rs.getString(1); - } - catch (SQLException e) - { - log.log(Level.SEVERE, "(ref) - Column=" + colName, e); - return query.getWhereClause(); - } - finally - { - DB.close(rs, pstmt); - rs = null; - pstmt = null; - } + String refColName = DB.getSQLValueStringEx(null, sql1, DisplayType.Table, DisplayType.Search, DisplayType.TableUU, DisplayType.SearchUU); // Reference Column found if (refColName != null) { @@ -837,41 +824,20 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable } // Column NOT in Tab - create EXISTS subquery - String tableName = null; String tabKeyColumn = getKeyColumnName(); - - sql = "SELECT t.TableName " + final String sql2 = "SELECT t.TableName " + "FROM AD_Column c" + " INNER JOIN AD_Table t ON (c.AD_Table_ID=t.AD_Table_ID) " + "WHERE c.ColumnName=? AND IsKey='Y'" // #1 Link Column + " AND EXISTS (SELECT * FROM AD_Column cc" + " WHERE cc.AD_Table_ID=t.AD_Table_ID AND cc.ColumnName=?)"; // #2 Tab Key Column - try - { - pstmt = DB.prepareStatement(sql, null); - pstmt.setString(1, colName); - pstmt.setString(2, tabKeyColumn); - rs = pstmt.executeQuery(); - if (rs.next()) - tableName = rs.getString(1); - } - catch (SQLException e) - { - log.log(Level.SEVERE, "Column=" + colName + ", Key=" + tabKeyColumn, e); - return null; - } - finally - { - DB.close(rs, pstmt); - rs = null; - pstmt = null; - } + String tableName = DB.getSQLValueStringEx(null, sql2, colName, tabKeyColumn); // Special Reference Handling if (tabKeyColumn.equals("AD_Reference_ID")) { // Column=AccessLevel, Key=AD_Reference_ID, Query=AccessLevel='6' - sql = "SELECT AD_Reference_ID FROM AD_Column WHERE ColumnName=?"; - int AD_Reference_ID = DB.getSQLValue(null, sql, colName); + final String sql3 = "SELECT AD_Reference_ID FROM AD_Column WHERE ColumnName=?"; + int AD_Reference_ID = DB.getSQLValueEx(null, sql3, colName); return "AD_Reference_ID=" + AD_Reference_ID; } diff --git a/org.adempiere.base/src/org/compiere/model/I_TestUUDet.java b/org.adempiere.base/src/org/compiere/model/I_TestUUDet.java new file mode 100644 index 0000000000..8fea32b1ac --- /dev/null +++ b/org.adempiere.base/src/org/compiere/model/I_TestUUDet.java @@ -0,0 +1,149 @@ +/****************************************************************************** + * Product: iDempiere ERP & CRM Smart Business Solution * + * Copyright (C) 1999-2012 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.model; + +import java.math.BigDecimal; +import java.sql.Timestamp; +import org.compiere.util.KeyNamePair; + +/** Generated Interface for TestUUDet + * @author iDempiere (generated) + * @version Release 11 + */ +public interface I_TestUUDet +{ + + /** TableName=TestUUDet */ + public static final String Table_Name = "TestUUDet"; + + /** AD_Table_ID=200384 */ + public static final int Table_ID = 200384; + + KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); + + /** AccessLevel = 7 - System - Client - Org + */ + BigDecimal accessLevel = BigDecimal.valueOf(7); + + /** Load Meta Data */ + + /** Column name AD_Client_ID */ + public static final String COLUMNNAME_AD_Client_ID = "AD_Client_ID"; + + /** Get Tenant. + * Tenant for this installation. + */ + public int getAD_Client_ID(); + + /** Column name AD_Org_ID */ + public static final String COLUMNNAME_AD_Org_ID = "AD_Org_ID"; + + /** Set Organization. + * Organizational entity within tenant + */ + public void setAD_Org_ID (int AD_Org_ID); + + /** Get Organization. + * Organizational entity within tenant + */ + public int getAD_Org_ID(); + + /** Column name AltTestUU_UU */ + public static final String COLUMNNAME_AltTestUU_UU = "AltTestUU_UU"; + + /** Set Alternate Test UU */ + public void setAltTestUU_UU (String AltTestUU_UU); + + /** Get Alternate Test UU */ + public String getAltTestUU_UU(); + + /** Column name Created */ + public static final String COLUMNNAME_Created = "Created"; + + /** Get Created. + * Date this record was created + */ + public Timestamp getCreated(); + + /** Column name CreatedBy */ + public static final String COLUMNNAME_CreatedBy = "CreatedBy"; + + /** Get Created By. + * User who created this records + */ + public int getCreatedBy(); + + /** Column name IsActive */ + public static final String COLUMNNAME_IsActive = "IsActive"; + + /** Set Active. + * The record is active in the system + */ + public void setIsActive (boolean IsActive); + + /** Get Active. + * The record is active in the system + */ + public boolean isActive(); + + /** Column name Name */ + public static final String COLUMNNAME_Name = "Name"; + + /** Set Name. + * Alphanumeric identifier of the entity + */ + public void setName (String Name); + + /** Get Name. + * Alphanumeric identifier of the entity + */ + public String getName(); + + /** Column name TestUUDet_UU */ + public static final String COLUMNNAME_TestUUDet_UU = "TestUUDet_UU"; + + /** Set TestUUDet_UU */ + public void setTestUUDet_UU (String TestUUDet_UU); + + /** Get TestUUDet_UU */ + public String getTestUUDet_UU(); + + /** Column name TestUU_UU */ + public static final String COLUMNNAME_TestUU_UU = "TestUU_UU"; + + /** Set Test UU */ + public void setTestUU_UU (String TestUU_UU); + + /** Get Test UU */ + public String getTestUU_UU(); + + /** Column name Updated */ + public static final String COLUMNNAME_Updated = "Updated"; + + /** Get Updated. + * Date this record was updated + */ + public Timestamp getUpdated(); + + /** Column name UpdatedBy */ + public static final String COLUMNNAME_UpdatedBy = "UpdatedBy"; + + /** Get Updated By. + * User who updated this records + */ + public int getUpdatedBy(); +} diff --git a/org.adempiere.base/src/org/compiere/model/MColumn.java b/org.adempiere.base/src/org/compiere/model/MColumn.java index 649e0caeb3..194c75a19a 100644 --- a/org.adempiere.base/src/org/compiere/model/MColumn.java +++ b/org.adempiere.base/src/org/compiere/model/MColumn.java @@ -371,7 +371,7 @@ public class MColumn extends X_AD_Column implements ImmutablePOSupport } } - if (displayType == DisplayType.Table && getAD_Reference_Value_ID() <= 0) + if ((displayType == DisplayType.Table || displayType == DisplayType.TableUU) && getAD_Reference_Value_ID() <= 0) { log.saveError("FillMandatory", Msg.getElement(getCtx(), "AD_Reference_Value_ID")); return false; @@ -537,7 +537,15 @@ public class MColumn extends X_AD_Column implements ImmutablePOSupport if (getAD_Reference_ID() != DisplayType.Button && get_Value(COLUMNNAME_AD_InfoWindow_ID) != null) { set_Value(COLUMNNAME_AD_InfoWindow_ID, null); } - + + if (DisplayType.isUUID(getAD_Reference_ID())) { + set_Value(COLUMNNAME_FieldLength, 36); + if (! getColumnName().endsWith("_UU")) { + log.saveError("Error", Msg.getMsg(getCtx(), "UUColumnsMustEndWithUU")); + return false; + } + } + return true; } // beforeSave @@ -743,9 +751,9 @@ public class MColumn extends X_AD_Column implements ImmutablePOSupport public String getReferenceTableName() { String foreignTable = null; int refid = getAD_Reference_ID(); - if (DisplayType.TableDir == refid || (DisplayType.Search == refid && getAD_Reference_Value_ID() == 0)) { + if (DisplayType.TableDir == refid || DisplayType.TableDirUU == refid || ((DisplayType.Search == refid || DisplayType.SearchUU == refid) && getAD_Reference_Value_ID() == 0)) { foreignTable = getColumnName().substring(0, getColumnName().length()-3); - } else if (DisplayType.Table == refid || DisplayType.Search == refid) { + } else if (DisplayType.Table == refid || DisplayType.TableUU == refid || DisplayType.Search == refid || DisplayType.SearchUU == refid) { MReference ref = MReference.get(getCtx(), getAD_Reference_Value_ID(), get_TrxName()); if (MReference.VALIDATIONTYPE_TableValidation.equals(ref.getValidationType())) { int cnt = DB.getSQLValueEx(get_TrxName(), "SELECT COUNT(*) FROM AD_Ref_Table WHERE AD_Reference_ID=?", getAD_Reference_Value_ID()); @@ -969,8 +977,15 @@ public class MColumn extends X_AD_Column implements ImmutablePOSupport DatabaseKey dbForeignKey = htForeignKeys.get(key); if (dbForeignKey.getKeyColumns()[0].equalsIgnoreCase(column.getColumnName())) { - DatabaseKey primaryKey = getPrimaryKey(md, referenceTableName); - if (primaryKey != null) + DatabaseKey primaryKey = null; + String uuidKey = null; + if (column.getColumnName().endsWith("_UU")) { + uuidKey = PO.getUUIDColumnName(referenceTableName); + } else { + primaryKey = MColumn.getPrimaryKey(md, referenceTableName); + } + + if (primaryKey != null || uuidKey != null) { fkConstraintSql.append(DB.SQLSTATEMENT_SEPARATOR); fkConstraintSql.append("ALTER TABLE ").append(table.getTableName()); @@ -1006,12 +1021,16 @@ public class MColumn extends X_AD_Column implements ImmutablePOSupport StringBuilder fkConstraint = new StringBuilder(); fkConstraint.append("CONSTRAINT ").append(fkConstraintName); fkConstraint.append(" FOREIGN KEY (").append(column.getColumnName()).append(") REFERENCES "); - fkConstraint.append(primaryKey.getKeyTable()).append("(").append(primaryKey.getKeyColumns()[0]); - for (int i = 1; i < primaryKey.getKeyColumns().length; i++) - { - if (primaryKey.getKeyColumns()[i] == null) - break; - fkConstraint.append(", ").append(primaryKey.getKeyColumns()[i]); + if (uuidKey != null) { + fkConstraint.append(referenceTableName).append("(").append(uuidKey); + } else { + fkConstraint.append(primaryKey.getKeyTable()).append("(").append(primaryKey.getKeyColumns()[0]); + for (int i = 1; i < primaryKey.getKeyColumns().length; i++) + { + if (primaryKey.getKeyColumns()[i] == null) + break; + fkConstraint.append(", ").append(primaryKey.getKeyColumns()[i]); + } } fkConstraint.append(")"); @@ -1124,9 +1143,15 @@ public class MColumn extends X_AD_Column implements ImmutablePOSupport String referenceTableName = column.getReferenceTableName(); if (referenceTableName != null) { - DatabaseKey primaryKey = MColumn.getPrimaryKey(md, referenceTableName); + DatabaseKey primaryKey = null; + String uuidKey = null; + if (column.getColumnName().endsWith("_UU")) { + uuidKey = PO.getUUIDColumnName(referenceTableName); + } else { + primaryKey = MColumn.getPrimaryKey(md, referenceTableName); + } - if (primaryKey != null) + if (primaryKey != null || uuidKey != null) { String fkConstraintName = column.getFKConstraintName(); if (fkConstraintName == null || fkConstraintName.trim().length() == 0) @@ -1147,12 +1172,16 @@ public class MColumn extends X_AD_Column implements ImmutablePOSupport StringBuilder fkConstraint = new StringBuilder(); fkConstraint.append("CONSTRAINT ").append(fkConstraintName); fkConstraint.append(" FOREIGN KEY (").append(column.getColumnName()).append(") REFERENCES "); - fkConstraint.append(primaryKey.getKeyTable()).append("(").append(primaryKey.getKeyColumns()[0]); - for (int i = 1; i < primaryKey.getKeyColumns().length; i++) - { - if (primaryKey.getKeyColumns()[i] == null) - break; - fkConstraint.append(", ").append(primaryKey.getKeyColumns()[i]); + if (uuidKey != null) { + fkConstraint.append(referenceTableName).append("(").append(uuidKey); + } else { + fkConstraint.append(primaryKey.getKeyTable()).append("(").append(primaryKey.getKeyColumns()[0]); + for (int i = 1; i < primaryKey.getKeyColumns().length; i++) + { + if (primaryKey.getKeyColumns()[i] == null) + break; + fkConstraint.append(", ").append(primaryKey.getKeyColumns()[i]); + } } fkConstraint.append(")"); diff --git a/org.adempiere.base/src/org/compiere/model/MLookup.java b/org.adempiere.base/src/org/compiere/model/MLookup.java index 041e92ca86..617275826d 100644 --- a/org.adempiere.base/src/org/compiere/model/MLookup.java +++ b/org.adempiere.base/src/org/compiere/model/MLookup.java @@ -584,7 +584,11 @@ public final class MLookup extends Lookup implements Serializable } else { - String value = rs.getString(2); + String value; + if (m_info.KeyColumn.endsWith("_UU")) + value = rs.getString(1); + else + value = rs.getString(2); ValueNamePair p = new ValueNamePair(value, name.toString()); if (saveInCache) // save if m_lookup.put(value, p); @@ -720,7 +724,11 @@ public final class MLookup extends Lookup implements Serializable } else { - String value = rs.getString(2); + String value; + if (m_info.KeyColumn.endsWith("_UU")) + value = rs.getString(1); + else + value = rs.getString(2); ValueNamePair p = new ValueNamePair(value, name.toString()); vnpCache.put(p.getValue(), p); Integer idx = notInCaches.get(p.getValue()); @@ -1176,7 +1184,11 @@ public final class MLookup extends Lookup implements Serializable } else { - String value = rs.getString(2); + String value; + if (m_info.KeyColumn.endsWith("_UU")) + value = rs.getString(1); + else + value = rs.getString(2); ValueNamePair p = new ValueNamePair(value, name.toString()); m_lookup.put(value, p); vnpCache.add(p); diff --git a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java index 4290fae55b..c10a114d6b 100644 --- a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java +++ b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java @@ -194,7 +194,8 @@ public class MLookupFactory needToAddSecurity = false; } // Table or Search with Reference_Value - else if ((AD_Reference_ID == DisplayType.Table || AD_Reference_ID == DisplayType.Search + else if ((AD_Reference_ID == DisplayType.Table || AD_Reference_ID == DisplayType.TableUU + || AD_Reference_ID == DisplayType.Search || AD_Reference_ID == DisplayType.SearchUU || AD_Reference_ID == DisplayType.ChosenMultipleSelectionTable || AD_Reference_ID == DisplayType.ChosenMultipleSelectionSearch) && AD_Reference_Value_ID != 0) { @@ -462,10 +463,10 @@ public class MLookupFactory } StringBuilder realSQL = new StringBuilder("SELECT "); - if (!KeyColumn.endsWith("_ID")) + if (!KeyColumn.endsWith("_ID") && !KeyColumn.endsWith("_UU")) realSQL.append("NULL,"); - boolean showID = DisplayColumn.equals(TableName+"_ID"); + boolean showID = DisplayColumn.equals(TableName+"_ID") || DisplayColumn.equals(PO.getUUIDColumnName(TableName)); ArrayList list = null; if (showID) { @@ -497,7 +498,7 @@ public class MLookupFactory if (IsTranslated && !Env.isBaseLanguage(language, TableName)) { realSQL.append(TableName).append(".").append(KeyColumn).append(","); - if (KeyColumn.endsWith("_ID")) + if (KeyColumn.endsWith("_ID") || KeyColumn.endsWith("_UU")) realSQL.append("NULL,"); if (isValueDisplayed) realSQL.append("NVL(").append(TableName).append(".Value,'-1') || '").append(separator).append("' || "); @@ -525,7 +526,7 @@ public class MLookupFactory else { realSQL.append(TableName).append(".").append(KeyColumn).append(","); - if (KeyColumn.endsWith("_ID")) + if (KeyColumn.endsWith("_ID") || KeyColumn.endsWith("_UU")) realSQL.append("NULL,"); if (isValueDisplayed) realSQL.append("NVL(").append(TableName).append(".Value,'-1') || '").append(separator).append("' || "); @@ -672,7 +673,7 @@ public class MLookupFactory int Column_ID = MColumn.getColumn_ID(BaseTable, BaseColumn); MColumn column = MColumn.get(Env.getCtx(), Column_ID); - boolean showID = DisplayColumn.equals(TableName+"_ID"); + boolean showID = DisplayColumn.equals(TableName+"_ID") || DisplayColumn.equals(PO.getUUIDColumnName(TableName)); if (showID) { if (column.isVirtualColumn()) return getLookup_TableDirEmbed(language, DisplayColumn, BaseTable, column.getColumnSQL()); @@ -762,9 +763,9 @@ public class MLookupFactory static private MLookupInfo getLookup_TableDir (Properties ctx, Language language, int WindowNo, String ColumnName) { - if (!ColumnName.endsWith("_ID")) + if (!ColumnName.endsWith("_ID") && !ColumnName.endsWith("_UU")) { - String error = "Key does not end with '_ID': " + ColumnName; + String error = "Key does not end with '_ID' or '_UU': " + ColumnName; s_log.log(Level.SEVERE, error, new Exception(error)); return null; } @@ -896,7 +897,8 @@ public class MLookupFactory displayColumn.append(DB.TO_CHAR(columnSQL, ldc.DisplayType, language.getAD_Language())); } // Table - else if ((ldc.DisplayType == DisplayType.Table || ldc.DisplayType == DisplayType.Search) && ldc.AD_Reference_ID != 0) + else if ((ldc.DisplayType == DisplayType.Table || ldc.DisplayType == DisplayType.TableUU + || ldc.DisplayType == DisplayType.Search || ldc.DisplayType == DisplayType.SearchUU) && ldc.AD_Reference_ID != 0) { String embeddedSQL; if (ldc.IsVirtual) @@ -907,8 +909,8 @@ public class MLookupFactory displayColumn.append("(").append(embeddedSQL).append(")"); } // TableDir - else if ((ldc.DisplayType == DisplayType.TableDir || ldc.DisplayType == DisplayType.Search) - && ldc.ColumnName.endsWith("_ID")) + else if ((ldc.DisplayType == DisplayType.TableDir || ldc.DisplayType == DisplayType.Search) && ldc.ColumnName.endsWith("_ID") + || (ldc.DisplayType == DisplayType.TableDirUU || ldc.DisplayType == DisplayType.SearchUU) && ldc.ColumnName.endsWith("_UU")) { String embeddedSQL; if (ldc.IsVirtual) diff --git a/org.adempiere.base/src/org/compiere/model/MProcessPara.java b/org.adempiere.base/src/org/compiere/model/MProcessPara.java index a300153a20..e4be7b5707 100644 --- a/org.adempiere.base/src/org/compiere/model/MProcessPara.java +++ b/org.adempiere.base/src/org/compiere/model/MProcessPara.java @@ -362,17 +362,17 @@ public class MProcessPara extends X_AD_Process_Para implements ImmutablePOSuppor public String getReferenceTableName() { String foreignTable = null; - if (DisplayType.TableDir == getAD_Reference_ID() - || (DisplayType.Search == getAD_Reference_ID() && getAD_Reference_Value_ID() == 0)) { + int refid = getAD_Reference_ID(); + if (DisplayType.TableDir == refid || DisplayType.TableDirUU == refid || ((DisplayType.Search == refid || DisplayType.SearchUU == refid) && getAD_Reference_Value_ID() == 0)) { foreignTable = getColumnName().substring(0, getColumnName().length()-3); - } else if (DisplayType.Table == getAD_Reference_ID() || DisplayType.Search == getAD_Reference_ID()) { + } else if (DisplayType.Table == refid || DisplayType.TableUU == refid || DisplayType.Search == refid || DisplayType.SearchUU == refid) { MReference ref = MReference.get(getCtx(), getAD_Reference_Value_ID(), get_TrxName()); if (MReference.VALIDATIONTYPE_TableValidation.equals(ref.getValidationType())) { MRefTable rt = MRefTable.get(getCtx(), getAD_Reference_Value_ID(), get_TrxName()); if (rt != null) foreignTable = rt.getAD_Table().getTableName(); } - } else if (DisplayType.isList(getAD_Reference_ID())) { + } else if (DisplayType.isList(refid)) { foreignTable = "AD_Ref_List"; } diff --git a/org.adempiere.base/src/org/compiere/model/MQuery.java b/org.adempiere.base/src/org/compiere/model/MQuery.java index cc0070382e..32e0c28d67 100644 --- a/org.adempiere.base/src/org/compiere/model/MQuery.java +++ b/org.adempiere.base/src/org/compiere/model/MQuery.java @@ -407,6 +407,9 @@ public class MQuery implements Serializable, Cloneable { String tableName = getZoomColumnName(columnName); int index = tableName.lastIndexOf("_ID"); + if (index != -1) + return tableName.substring(0, index); + index = tableName.lastIndexOf("_UU"); if (index != -1) return tableName.substring(0, index); return tableName; diff --git a/org.adempiere.base/src/org/compiere/model/MTable.java b/org.adempiere.base/src/org/compiere/model/MTable.java index 1afabb7433..c27518352b 100644 --- a/org.adempiere.base/src/org/compiere/model/MTable.java +++ b/org.adempiere.base/src/org/compiere/model/MTable.java @@ -66,7 +66,7 @@ public class MTable extends X_AD_Table implements ImmutablePOSupport /** * */ - private static final long serialVersionUID = -8036408095622443747L; + private static final long serialVersionUID = -4206879140460545905L; public final static int MAX_OFFICIAL_ID = 999999; @@ -486,13 +486,22 @@ public class MTable extends X_AD_Table implements ImmutablePOSupport return m_KeyColumns; } // getKeyColumns + /** + * @return true if table key is _ID key. + */ + public boolean isIDKeyTable() + { + String idColName = getTableName() + "_ID"; + return (getKeyColumns() != null && getKeyColumns().length == 1 && getKeyColumns()[0].equals(idColName)); + } + /** * @return true if table key is _UU instead of _ID or composite parent key. */ public boolean isUUIDKeyTable() { String uuColName = PO.getUUIDColumnName(getTableName()); - return (getKeyColumns() != null && getKeyColumns()[0].equals(uuColName)); + return (getKeyColumns() != null && getKeyColumns().length == 1 && getKeyColumns()[0].equals(uuColName)); } /** diff --git a/org.adempiere.base/src/org/compiere/model/MZoomCondition.java b/org.adempiere.base/src/org/compiere/model/MZoomCondition.java index 915c5ce7c2..62953336cd 100644 --- a/org.adempiere.base/src/org/compiere/model/MZoomCondition.java +++ b/org.adempiere.base/src/org/compiere/model/MZoomCondition.java @@ -223,10 +223,18 @@ public class MZoomCondition extends X_AD_ZoomCondition implements ImmutablePOSup { window.initTab(gTab.getTabNo()); GridTab parentTab = gTab.getParentTab(); - int parentId = -1; - if (!Util.isEmpty(gTab.getLinkColumnName())) - parentId = DB.getSQLValue(null, "SELECT " + gTab.getLinkColumnName() + " FROM " + gTab.getTableName() + " WHERE " + query.getWhereClause()); - if (parentId <= 0) { + Object parentId = null; + if (!Util.isEmpty(gTab.getLinkColumnName())) { + StringBuilder sql = new StringBuilder("SELECT ").append(gTab.getLinkColumnName()).append(" FROM ").append(gTab.getTableName()).append(" WHERE ").append(query.getWhereClause()); + if (gTab.getLinkColumnName().endsWith("_UU")) { + parentId = DB.getSQLValueString(null, sql.toString()); + } else { + int tmpId = DB.getSQLValue(null, sql.toString()); + if (tmpId > 0) + parentId = Integer.valueOf(tmpId); + } + } + if (parentId == null) { if (Util.isEmpty(parentTab.getKeyColumnName())) parentTab.initTab(false); // no parent link -- search in context of window @@ -235,7 +243,7 @@ public class MZoomCondition extends X_AD_ZoomCondition implements ImmutablePOSup parentId = DB.getSQLValue(null, "SELECT " + parentTab.getKeyColumnName() + " FROM " + parentTab.getTableName() + " WHERE " + parentTab.getKeyColumnName() + "=" + parentctxid); } - if (parentId <= 0) + if (parentId == null) return 0; } @@ -244,16 +252,34 @@ public class MZoomCondition extends X_AD_ZoomCondition implements ImmutablePOSup window.initTab(parentTab.getTabNo()); if (parentTab.getParentTab() != null) { - parentId = DB.getSQLValue(null, "SELECT " + parentTab.getLinkColumnName() + " FROM " + parentTab.getTableName() + " WHERE " - + parentTab.getTableName()+"_ID="+parentId); - if (parentId <= 0) return 0; + StringBuilder sql = new StringBuilder("SELECT ").append(parentTab.getLinkColumnName()) + .append(" FROM ").append(parentTab.getTableName()) + .append(" WHERE "); + MTable parentTable = MTable.get(Env.getCtx(), parentTab.getTableName()); + if (parentTable.isUUIDKeyTable()) { + sql.append(PO.getUUIDColumnName(parentTab.getTableName())).append("=").append(DB.TO_STRING(parentId.toString())); + } else { + sql.append(parentTab.getTableName()).append("_ID=").append(parentId); + } + parentId = null; + if (parentTab.getLinkColumnName().endsWith("_UU")) { + parentId = DB.getSQLValueString(null, sql.toString()); + } else { + int tmpId = DB.getSQLValue(null, sql.toString()); + if (tmpId > 0) + parentId = Integer.valueOf(tmpId); + } + if (parentId == null) return 0; parentTab = parentTab.getParentTab(); } else { if (parentTab == window.getTab(0)) { - return findZoomWindowByTableId(parentTab.getAD_Table_ID(), parentId, windowNo); + if (parentId instanceof String) + return findZoomWindowByTableIdOrUU(parentTab.getAD_Table_ID(), -1, parentId.toString(), windowNo); + else + return findZoomWindowByTableIdOrUU(parentTab.getAD_Table_ID(), ((Integer)parentId).intValue(), null, windowNo); } } } @@ -313,7 +339,7 @@ public class MZoomCondition extends X_AD_ZoomCondition implements ImmutablePOSup }; String whereClause; - if (recordUU != null) + if (table.isUUIDKeyTable()) whereClause = PO.getUUIDColumnName(table.getTableName())+"="+DB.TO_STRING(recordUU); else whereClause = table.getTableName() + "_ID="+recordID; diff --git a/org.adempiere.base/src/org/compiere/model/PO.java b/org.adempiere.base/src/org/compiere/model/PO.java index 3476da8f18..401bf7a69d 100644 --- a/org.adempiere.base/src/org/compiere/model/PO.java +++ b/org.adempiere.base/src/org/compiere/model/PO.java @@ -113,7 +113,7 @@ public abstract class PO /** * */ - private static final long serialVersionUID = 1569541357840608310L; + private static final long serialVersionUID = 1672197562752270736L; /* String key to create a new record based in UUID constructor */ public static final String UUID_NEW_RECORD = ""; @@ -649,13 +649,26 @@ public abstract class PO } // get_ValueE /** - * Get Column Value - * @param variableName name - * @return value or "" + * Get String Value + * @param columnName + * @return String value */ - public String get_ValueAsString (String variableName) + public String get_ValueAsString(String columnName) { - Object value = get_Value (variableName); + int idx = get_ColumnIndex(columnName); + if (idx < 0) + return ""; + return get_ValueAsString(idx); + } + + /** + * Get String Value + * @param idx column index + * @return String value or "" + */ + public String get_ValueAsString(int idx) + { + Object value = get_Value(idx); if (value == null) return ""; return value.toString(); @@ -5632,8 +5645,15 @@ public abstract class PO String fktab = vnp.getName(); int index = get_ColumnIndex(fkcol); if (is_new() || is_ValueChanged(index)) { - int fkval = get_ValueAsInt(index); - if (fkval > 0) { + Object fkval = null; + if (fkcol.endsWith("_UU")) { + fkval = get_ValueAsString(index); + } else { + fkval = Integer.valueOf(get_ValueAsInt(index)); + } + if (fkval != null + && ( (fkval instanceof Integer && ((Integer)fkval).intValue() > 0) + || (fkval instanceof String && ((String)fkval).length() > 0) )) { MTable ft = MTable.get(getCtx(), fktab); boolean systemAccess = false; String accessLevel = ft.getAccessLevel(); @@ -5725,7 +5745,8 @@ public abstract class PO int size = get_ColumnCount(); for (int i = 0; i < size; i++) { int dt = p_info.getColumnDisplayType(i); - if (dt != DisplayType.ID && DisplayType.isID(dt)) { + if ( (dt != DisplayType.ID && DisplayType.isID(dt) ) + || (dt != DisplayType.UUID && DisplayType.isUUID(dt)) ) { MColumn col = MColumn.get(p_info.getColumn(i).AD_Column_ID); if ("AD_Client_ID".equals(col.getColumnName())) { // ad_client_id is verified with checkValidClient diff --git a/org.adempiere.base/src/org/compiere/model/SystemIDs.java b/org.adempiere.base/src/org/compiere/model/SystemIDs.java index c150bc0636..45bdec9863 100644 --- a/org.adempiere.base/src/org/compiere/model/SystemIDs.java +++ b/org.adempiere.base/src/org/compiere/model/SystemIDs.java @@ -135,6 +135,7 @@ public class SystemIDs public final static int REFERENCE_DATATYPE_FILENAME = 39; public final static int REFERENCE_DATATYPE_FILEPATH = 38; public final static int REFERENCE_DATATYPE_ID = 13; + public final static int REFERENCE_DATATYPE_UUID = 200231; public final static int REFERENCE_DATATYPE_IMAGE = 32; public final static int REFERENCE_DATATYPE_INTEGER = 11; public final static int REFERENCE_DATATYPE_LIST = 17; @@ -150,18 +151,21 @@ public class SystemIDs public final static int REFERENCE_DATATYPE_RADIOGROUP_LIST= 200152; public final static int REFERENCE_DATATYPE_RECORD_ID = 200202; public final static int REFERENCE_DATATYPE_ROWID = 26; + public final static int REFERENCE_DATATYPE_SCHEDULER_STATE = 200173; public final static int REFERENCE_DATATYPE_SEARCH = 30; + public final static int REFERENCE_DATATYPE_SEARCH_UU = 200235; public final static int REFERENCE_DATATYPE_SINGLE_SELECTION_GRID = 200127; public final static int REFERENCE_DATATYPE_STRING = 10; public final static int REFERENCE_DATATYPE_TABLE = 18; + public final static int REFERENCE_DATATYPE_TABLE_UU = 200233; public final static int REFERENCE_DATATYPE_TABLEDIR = 19; + public final static int REFERENCE_DATATYPE_TABLEDIR_UU = 200234; public final static int REFERENCE_DATATYPE_TEXT = 14; public final static int REFERENCE_DATATYPE_TEXTLONG = 36; public final static int REFERENCE_DATATYPE_TIME = 24; public final static int REFERENCE_DATATYPE_TIMESTAMP_WITH_TIMEZONE = 200133; public final static int REFERENCE_DATATYPE_TIMEZONE = 200135; public final static int REFERENCE_DATATYPE_URL = 40; - public final static int REFERENCE_DATATYPE_UUID = 200231; public final static int REFERENCE_DATATYPE_YES_NO = 20; public final static int REFERENCE_ACCOUNT = 175; diff --git a/org.adempiere.base/src/org/compiere/model/X_TestUUDet.java b/org.adempiere.base/src/org/compiere/model/X_TestUUDet.java new file mode 100644 index 0000000000..471c85822c --- /dev/null +++ b/org.adempiere.base/src/org/compiere/model/X_TestUUDet.java @@ -0,0 +1,148 @@ +/****************************************************************************** + * Product: iDempiere ERP & CRM Smart Business Solution * + * Copyright (C) 1999-2012 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 * + *****************************************************************************/ +/** Generated Model - DO NOT CHANGE */ +package org.compiere.model; + +import java.sql.ResultSet; +import java.util.Properties; + +/** Generated Model for TestUUDet + * @author iDempiere (generated) + * @version Release 11 - $Id$ */ +@org.adempiere.base.Model(table="TestUUDet") +public class X_TestUUDet extends PO implements I_TestUUDet, I_Persistent +{ + + /** + * + */ + private static final long serialVersionUID = 20230324L; + + /** Standard Constructor */ + public X_TestUUDet (Properties ctx, String TestUUDet_UU, String trxName) + { + super (ctx, TestUUDet_UU, trxName); + /** if (TestUUDet_UU == null) + { + setName (null); + setTestUU_UU (null); + } */ + } + + /** Standard Constructor */ + public X_TestUUDet (Properties ctx, String TestUUDet_UU, String trxName, String ... virtualColumns) + { + super (ctx, TestUUDet_UU, trxName, virtualColumns); + /** if (TestUUDet_UU == null) + { + setName (null); + setTestUU_UU (null); + } */ + } + + /** Load Constructor */ + public X_TestUUDet (Properties ctx, ResultSet rs, String trxName) + { + super (ctx, rs, trxName); + } + + /** AccessLevel + * @return 7 - System - Client - Org + */ + protected int get_AccessLevel() + { + return accessLevel.intValue(); + } + + /** Load Meta Data */ + protected POInfo initPO (Properties ctx) + { + POInfo poi = POInfo.getPOInfo (ctx, Table_ID, get_TrxName()); + return poi; + } + + public String toString() + { + StringBuilder sb = new StringBuilder ("X_TestUUDet[") + .append(get_UUID()).append(",Name=").append(getName()).append("]"); + return sb.toString(); + } + + /** AltTestUU_UU AD_Reference_ID=200236 */ + public static final int ALTTESTUU_UU_AD_Reference_ID=200236; + /** Set Alternate Test UU. + @param AltTestUU_UU Alternate Test UU + */ + public void setAltTestUU_UU (String AltTestUU_UU) + { + + set_Value (COLUMNNAME_AltTestUU_UU, AltTestUU_UU); + } + + /** Get Alternate Test UU. + @return Alternate Test UU */ + public String getAltTestUU_UU() + { + return (String)get_Value(COLUMNNAME_AltTestUU_UU); + } + + /** Set Name. + @param Name Alphanumeric identifier of the entity + */ + public void setName (String Name) + { + set_Value (COLUMNNAME_Name, Name); + } + + /** Get Name. + @return Alphanumeric identifier of the entity + */ + public String getName() + { + return (String)get_Value(COLUMNNAME_Name); + } + + /** Set TestUUDet_UU. + @param TestUUDet_UU TestUUDet_UU + */ + public void setTestUUDet_UU (String TestUUDet_UU) + { + set_Value (COLUMNNAME_TestUUDet_UU, TestUUDet_UU); + } + + /** Get TestUUDet_UU. + @return TestUUDet_UU */ + public String getTestUUDet_UU() + { + return (String)get_Value(COLUMNNAME_TestUUDet_UU); + } + + /** Set Test UU. + @param TestUU_UU Test UU + */ + public void setTestUU_UU (String TestUU_UU) + { + set_Value (COLUMNNAME_TestUU_UU, TestUU_UU); + } + + /** Get Test UU. + @return Test UU */ + public String getTestUU_UU() + { + return (String)get_Value(COLUMNNAME_TestUU_UU); + } +} \ No newline at end of file diff --git a/org.adempiere.base/src/org/compiere/util/DisplayType.java b/org.adempiere.base/src/org/compiere/util/DisplayType.java index 5a82e15a0f..ca44ea4242 100644 --- a/org.adempiere.base/src/org/compiere/util/DisplayType.java +++ b/org.adempiere.base/src/org/compiere/util/DisplayType.java @@ -48,11 +48,15 @@ import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_QUANTITY; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_RADIOGROUP_LIST; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_RECORD_ID; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_ROWID; +import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_SCHEDULER_STATE; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_SEARCH; +import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_SEARCH_UU; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_SINGLE_SELECTION_GRID; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_STRING; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TABLE; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TABLEDIR; +import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TABLEDIR_UU; +import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TABLE_UU; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TEXT; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TEXTLONG; import static org.compiere.model.SystemIDs.REFERENCE_DATATYPE_TIME; @@ -102,6 +106,8 @@ public final class DisplayType public static final int Amount = REFERENCE_DATATYPE_AMOUNT; /** Display Type 13 ID */ public static final int ID = REFERENCE_DATATYPE_ID; + /** Display Type 200231 UUID */ + public static final int UUID = REFERENCE_DATATYPE_UUID; /** Display Type 14 Text */ public static final int Text = REFERENCE_DATATYPE_TEXT; /** Display Type 15 Date */ @@ -112,8 +118,12 @@ public final class DisplayType public static final int List = REFERENCE_DATATYPE_LIST; /** Display Type 18 Table */ public static final int Table = REFERENCE_DATATYPE_TABLE; + /** Display Type 200233 Table */ + public static final int TableUU = REFERENCE_DATATYPE_TABLE_UU; /** Display Type 19 TableDir */ public static final int TableDir = REFERENCE_DATATYPE_TABLEDIR; + /** Display Type 200234 */ + public static final int TableDirUU = REFERENCE_DATATYPE_TABLEDIR_UU; /** Display Type 20 YN */ public static final int YesNo = REFERENCE_DATATYPE_YES_NO; /** Display Type 21 Location */ @@ -136,6 +146,8 @@ public final class DisplayType public static final int Quantity = REFERENCE_DATATYPE_QUANTITY; /** Display Type 30 Search */ public static final int Search = REFERENCE_DATATYPE_SEARCH; + /** Display Type 200235 Search */ + public static final int SearchUU = REFERENCE_DATATYPE_SEARCH_UU; /** Display Type 31 Locator */ public static final int Locator = REFERENCE_DATATYPE_LOCATOR; /** Display Type 32 Image */ @@ -156,8 +168,6 @@ public final class DisplayType public static final int FileName = REFERENCE_DATATYPE_FILENAME; /** Display Type 40 URL */ public static final int URL = REFERENCE_DATATYPE_URL; - /** Display Type 200231 UUID */ - public static final int UUID = REFERENCE_DATATYPE_UUID; /** Display Type 42 PrinterName */ public static final int PrinterName = REFERENCE_DATATYPE_PRINTNAME; // Candidates: @@ -180,6 +190,8 @@ public final class DisplayType public static final int ChosenMultipleSelectionSearch = REFERENCE_DATATYPE_CHOSEN_MULTIPLE_SELECTION_SEARCH; + public static final int SchedulerState = REFERENCE_DATATYPE_SCHEDULER_STATE; + public static final int RecordID = REFERENCE_DATATYPE_RECORD_ID; @@ -262,6 +274,45 @@ public final class DisplayType return false; } // isID + /** + * Returns true if UUID (TableUU, SearchUU, ..). + * (stored as String) + * @param displayType Display Type + * @return true if UUID + */ + public static boolean isUUID (int displayType) + { + if (displayType == UUID || displayType == TableUU || displayType == TableDirUU + || displayType == SearchUU) + return true; + + //not custom type, don't have to check factory + if (displayType <= MTable.MAX_OFFICIAL_ID) + return false; + + IServiceReferenceHolder cache = s_displayTypeFactoryCache.get(displayType); + if (cache != null) { + IDisplayTypeFactory service = cache.getService(); + if (service != null) + return service.isUUID(displayType); + else + s_displayTypeFactoryCache.remove(displayType); + } + String customTypeKey = displayType+"|isUUID"; + if (! s_customDisplayTypeNegativeCache.containsKey(customTypeKey)) { + Optional> found = getDisplayTypeFactories().stream() + .filter(e -> e.getService() != null && e.getService().isUUID(displayType)) + .findFirst(); + if (found.isPresent()) { + s_displayTypeFactoryCache.put(displayType, found.get()); + return true; + } + s_customDisplayTypeNegativeCache.put(customTypeKey, Boolean.TRUE); + } + + return false; + } // isUUID + /** * Returns true, if DisplayType is numeric (Amount, Number, Quantity, Integer). * (stored as BigDecimal) @@ -366,7 +417,8 @@ public final class DisplayType || displayType == ChosenMultipleSelectionTable || displayType == ChosenMultipleSelectionSearch || displayType == TimeZoneId - || displayType == UUID) + || displayType == UUID + || displayType == TableDirUU || displayType == TableUU || displayType == SearchUU) return true; //not custom type, don't have to check factory @@ -487,8 +539,10 @@ public final class DisplayType */ public static boolean isLookup(int displayType) { - if (displayType == List || displayType == Table - || displayType == TableDir || displayType == Search + if (displayType == List + || displayType == Table || displayType == TableUU + || displayType == TableDir || displayType == TableDirUU + || displayType == Search || displayType == SearchUU || displayType == RadiogroupList || displayType == ChosenMultipleSelectionTable || displayType == ChosenMultipleSelectionSearch @@ -1018,79 +1072,107 @@ public final class DisplayType */ public static String getDescription (int displayType) { - if (displayType == String) - return "String"; - if (displayType == Integer) - return "Integer"; - if (displayType == Amount) - return "Amount"; - if (displayType == ID) - return "ID"; - if (displayType == Text) - return "Text"; - if (displayType == Date) - return "Date"; - if (displayType == DateTime) - return "DateTime"; - if (displayType == List) - return "List"; - if (displayType == RadiogroupList) - return "RadiogroupList"; - if (displayType == Table) - return "Table"; - if (displayType == TableDir) - return "TableDir"; - if (displayType == YesNo) - return "YesNo"; - if (displayType == Location) - return "Location"; - if (displayType == Number) - return "Number"; - if (displayType == Binary) - return "Binary"; - if (displayType == Time) - return "Time"; - if (displayType == Account) + switch (displayType) { + case Account: return "Account"; - if (displayType == RowID) - return "RowID"; - if (displayType == Color) - return "Color"; - if (displayType == Button) - return "Button"; - if (displayType == Quantity) - return "Quantity"; - if (displayType == Search) - return "Search"; - if (displayType == Locator) - return "Locator"; - if (displayType == Image) - return "Image"; - if (displayType == Assignment) + case Amount: + return "Amount"; + case Assignment: return "Assignment"; - if (displayType == Memo) - return "Memo"; - if (displayType == PAttribute) - return "PAttribute"; - if (displayType == TextLong) - return "TextLong"; - if (displayType == CostPrice) - return "CostPrice"; - if (displayType == FilePath) - return "FilePath"; - if (displayType == FileName) - return "FileName"; - if (displayType == URL) - return "URL"; - if (displayType == PrinterName) - return "PrinterName"; - if (displayType == Payment) - return "Payment"; - if (displayType == Chart) + case Binary: + return "Binary"; + case Button: + return "Button"; + case Chart: return "Chart"; - if (displayType == UUID) + case ChosenMultipleSelectionList: + return "ChosenMultipleSelectionList"; + case ChosenMultipleSelectionSearch: + return "ChosenMultipleSelectionSearch"; + case ChosenMultipleSelectionTable: + return "ChosenMultipleSelectionTable"; + case Color: + return "Color"; + case CostPrice: + return "CostPrice"; + case DashboardContent: + return "DashboardContent"; + case Date: + return "Date"; + case DateTime: + return "DateTime"; + case FileName: + return "FileName"; + case FilePath: + return "FilePath"; + case ID: + return "ID"; + case Image: + return "Image"; + case Integer: + return "Integer"; + case List: + return "List"; + case Location: + return "Location"; + case Locator: + return "Locator"; + case Memo: + return "Memo"; + case MultipleSelectionGrid: + return "MultipleSelectionGrid"; + case Number: + return "Number"; + case PAttribute: + return "PAttribute"; + case Payment: + return "Payment"; + case PrinterName: + return "PrinterName"; + case Quantity: + return "Quantity"; + case RadiogroupList: + return "RadiogroupList"; + case RecordID: + return "RecordID"; + case RowID: + return "RowID"; + case SchedulerState: + return "SchedulerState"; + case Search: + return "Search"; + case SearchUU: + return "SearchUU"; + case SingleSelectionGrid: + return "SingleSelectionGrid"; + case String: + return "String"; + case Table: + return "Table"; + case TableDir: + return "TableDir"; + case TableDirUU: + return "TableDirUU"; + case TableUU: + return "TableUU"; + case Text: + return "Text"; + case TextLong: + return "TextLong"; + case Time: + return "Time"; + case TimestampWithTimeZone: + return "TimestampWithTimeZone"; + case TimeZoneId: + return "TimeZoneId"; + case URL: + return "URL"; + case UUID: return "UUID"; - + case YesNo: + return "YesNo"; + } + IServiceReferenceHolder cache = s_displayTypeFactoryCache.get(displayType); if (cache != null) { IDisplayTypeFactory service = cache.getService(); diff --git a/org.adempiere.base/src/org/idempiere/process/MigraID.java b/org.adempiere.base/src/org/idempiere/process/MigraID.java index 347acf3f3e..71018b92f3 100644 --- a/org.adempiere.base/src/org/idempiere/process/MigraID.java +++ b/org.adempiere.base/src/org/idempiere/process/MigraID.java @@ -34,12 +34,14 @@ import org.compiere.model.MProcessPara; import org.compiere.model.MSequence; import org.compiere.model.MTable; import org.compiere.model.MTree; +import org.compiere.model.PO; import org.compiere.model.Query; import org.compiere.process.ProcessInfoParameter; import org.compiere.process.SvrProcess; import org.compiere.util.AdempiereUserError; import org.compiere.util.DB; import org.compiere.util.DisplayType; +import org.compiere.util.Trx; import org.compiere.util.Util; @org.adempiere.base.annotation.Process @@ -93,7 +95,7 @@ public class MigraID extends SvrProcess { String msg = ""; if (! Util.isEmpty(p_UUID_From)) { - String uuidCol = MTable.getUUIDColumnName(tableName); + String uuidCol = PO.getUUIDColumnName(tableName); if (Util.isEmpty(p_UUID_To)) { p_UUID_To = UUID.randomUUID().toString(); } @@ -106,14 +108,22 @@ public class MigraID extends SvrProcess { if (cnt <= 0) { msg = "@Error@: UUID " + p_UUID_From + " not found on table " + tableName; } else { + int id = -1; msg = "UUID changed on table " + tableName + " from " + p_UUID_From + " to " + p_UUID_To; - StringBuilder sqlSB = new StringBuilder() - .append("SELECT ").append(tableName).append("_ID") - .append(" FROM ").append(tableName) - .append(" WHERE ").append(uuidCol).append("=?"); - int id = DB.getSQLValueEx(get_TrxName(), sqlSB.toString(), p_UUID_To); - addBufferLog(id, null, null, msg, p_AD_Table_ID, id); + if (table.isIDKeyTable()) { + StringBuilder sqlSB = new StringBuilder() + .append("SELECT ").append(tableName).append("_ID") + .append(" FROM ").append(tableName) + .append(" WHERE ").append(uuidCol).append("=?"); + id = DB.getSQLValueEx(get_TrxName(), sqlSB.toString(), p_UUID_To); + } + addBufferLog(0, null, null, msg, p_AD_Table_ID, id); msg = "@OK@"; + // migrateReferenceUU(tableName); + migrateChildren(tableName, false); + // migrateRecordUU(); + // migrateAD_PreferenceUU(idCol); + // migrateTreesUU(tableName); } } else { boolean seqCheck = false; @@ -130,42 +140,56 @@ public class MigraID extends SvrProcess { } } // convert ID - int cnt = updID(tableName, idCol); + int cnt = updID(tableName, idCol, true); if (cnt <= 0) { msg = "@Error@: ID " + p_ID_From + " not found on table " + tableName; } else { msg = "ID changed on table " + tableName + " from " + p_ID_From + " to " + p_ID_To; addBufferLog(p_ID_From, null, null, msg, p_AD_Table_ID, p_ID_To); msg = "@OK@"; - } - migrateReference(tableName); - migrateChildren(tableName); - migrateRecordID(); - migrateAD_Preference(idCol); - migrateTrees(tableName); - if ("C_DocType_ID".equals(idCol)) { - // special preference C_DocTypeTarget_ID - migrateAD_Preference("C_DocTypeTarget_ID"); - } - // TODO: implement migration for SingleSelectionGrid and MultipleSelectionGrid + migrateReference(tableName); + migrateChildren(tableName, true); + migrateRecordID(); + migrateAD_Preference(idCol); + migrateTrees(tableName); + if ("C_DocType_ID".equals(idCol)) { + // special preference C_DocTypeTarget_ID + migrateAD_Preference("C_DocTypeTarget_ID"); + } + // TODO: implement migration for SingleSelectionGrid and MultipleSelectionGrid - if (seqCheck) { - MSequence seq = MSequence.get(getCtx(), tableName, get_TrxName()); - if (seq != null) { - seq.validateTableIDValue(get_TrxName()); // ignore output messages + if (seqCheck) { + MSequence seq = MSequence.get(getCtx(), tableName, get_TrxName()); + if (seq != null) { + seq.validateTableIDValue(get_TrxName()); // ignore output messages + } } } } + /* Force showing error in commit - for example when violating foreign keys */ + Trx.get(get_TrxName(), false).commit(true); + return msg; } - private int updID(String tableName, String idCol) { + /** + * Update key on table + * @param tableName - table + * @param idCol - id column + * @param idKey - true when migrating ID keys, false when migrating UUID keys + * @return count of records updated + */ + private int updID(String tableName, String idCol, boolean idKey) { StringBuilder updIDSB = new StringBuilder() .append("UPDATE ").append(tableName) .append(" SET ").append(idCol).append("=?") .append(" WHERE ").append(idCol).append("=?"); - int cnt = DB.executeUpdateEx(updIDSB.toString(), new Object[] {p_ID_To, p_ID_From}, get_TrxName()); + int cnt; + if (idKey) + cnt = DB.executeUpdateEx(updIDSB.toString(), new Object[] {p_ID_To, p_ID_From}, get_TrxName()); + else + cnt = DB.executeUpdateEx(updIDSB.toString(), new Object[] {p_UUID_To, p_UUID_From}, get_TrxName()); return cnt; } @@ -194,7 +218,7 @@ public class MigraID extends SvrProcess { for (List row : rows) { String tableRef = (String) row.get(0); String columnRef = (String) row.get(1); - int cnt = updID(tableRef, columnRef); + int cnt = updID(tableRef, columnRef, true); if (cnt > 0) { String msg = cnt + " reference records updated in " + tableRef + "." + columnRef; addBufferLog(p_ID_From, null, null, msg, 0, 0); @@ -205,7 +229,12 @@ public class MigraID extends SvrProcess { } - private void migrateChildren(String tableName) { + /** + * Migrate foreign keys for tableName + * @param tableName - name of parent table to migrate children foreign keys + * @param idKey - true when migrating ID keys, false when migrating UUID keys + */ + private void migrateChildren(String tableName, boolean idKey) { final String sqlFK = "" + "SELECT t.TableName, c.ColumnName " + "FROM AD_Table t, AD_Column c, AD_Reference r " @@ -213,10 +242,10 @@ public class MigraID extends SvrProcess { + " AND t.IsActive = 'Y' AND t.IsView = 'N' " + " AND c.IsActive = 'Y' AND c.ColumnSql IS NULL " + " AND c.AD_Reference_ID = r.AD_Reference_ID " - + " AND ( c.AD_Reference_ID IN ( 19/*Table Direct*/ ) " - + " OR ( c.AD_Reference_ID IN ( 30/*Search*/ ) " + + " AND ( c.AD_Reference_ID=? " + + " OR ( c.AD_Reference_ID=? " + " AND c.AD_Reference_Value_ID IS NULL ) ) " - + " AND UPPER(c.ColumnName) = UPPER(? || '_ID') " + + " AND UPPER(c.ColumnName) = UPPER(?) " + "UNION " + "SELECT t.TableName, c.ColumnName " + "FROM AD_Table t, AD_Column c, AD_Reference r, AD_Ref_Table rt, AD_Table tr " @@ -224,14 +253,29 @@ public class MigraID extends SvrProcess { + " AND t.IsActive = 'Y' AND t.IsView = 'N' " + " AND c.IsActive = 'Y' AND c.ColumnSql IS NULL " + " AND c.AD_Reference_ID = r.AD_Reference_ID " - + " AND ( c.AD_Reference_ID IN ( 18/*Table*/ ) " - + " OR ( c.AD_Reference_ID IN ( 30/*Search*/ ) " + + " AND ( c.AD_Reference_ID=? " + + " OR ( c.AD_Reference_ID=? " + " AND c.AD_Reference_Value_ID IS NOT NULL ) ) " + " AND c.AD_Reference_Value_ID = rt.AD_Reference_ID " + " AND rt.AD_Table_ID = tr.AD_Table_ID " + " AND UPPER(tr.TableName) = UPPER(?) " + "ORDER BY 1, 2"; - List> rows = DB.getSQLArrayObjectsEx(get_TrxName(), sqlFK, tableName, tableName); + int tableDirRefId; + int searchRefId; + int tableRefId; + String foreignColName; + if (idKey) { + tableDirRefId = DisplayType.TableDir; + searchRefId = DisplayType.Search; + tableRefId = DisplayType.Table; + foreignColName = tableName + "_ID"; + } else { + tableDirRefId = DisplayType.TableDirUU; + searchRefId = DisplayType.SearchUU; + tableRefId = DisplayType.TableUU; + foreignColName = PO.getUUIDColumnName(tableName); + } + List> rows = DB.getSQLArrayObjectsEx(get_TrxName(), sqlFK, tableDirRefId, searchRefId, foreignColName, tableRefId, searchRefId, tableName); if (rows != null && rows.size() > 0) { for (List row : rows) { String tableRef = (String) row.get(0); @@ -240,7 +284,7 @@ public class MigraID extends SvrProcess { if ("EntityType".equals(columnRef) || "AD_Language".equals(columnRef)) { continue; } - int cnt = updID(tableRef, columnRef); + int cnt = updID(tableRef, columnRef, idKey); if (cnt > 0) { String msg = cnt + " children records updated in " + tableRef + "." + columnRef; addBufferLog(p_ID_From, null, null, msg, 0, 0); @@ -248,10 +292,10 @@ public class MigraID extends SvrProcess { } } // Special case for C_BPartner.AD_OrgBP_ID defined as Button in dictionary - if ("AD_Org".equalsIgnoreCase(tableName)) { + if (idKey && "AD_Org".equalsIgnoreCase(tableName)) { String tableRef = "C_BPartner"; String columnRef = "AD_OrgBP_ID"; - int cnt = updID(tableRef, columnRef); + int cnt = updID(tableRef, columnRef, idKey); if (cnt > 0) { String msg = cnt + " children records updated in " + tableRef + "." + columnRef; addBufferLog(p_ID_From, null, null, msg, 0, 0); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADTabbox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADTabbox.java index 3774de5996..01a51d1027 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADTabbox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADTabbox.java @@ -293,7 +293,7 @@ public abstract class AbstractADTabbox extends AbstractUIPart implements IADTabb if (oldTabpanel.getRecord_ID() + zeroValid <= 0) canJump = false; // IDEMPIERE-651 Allow navigating to a detail when parent doesn't have ID - if (! canJump && Util.isEmpty(oldTabpanel.getGridTab().getKeyColumnName())) + if (! canJump && (Util.isEmpty(oldTabpanel.getGridTab().getKeyColumnName()) || oldTabpanel.getGridTab().getKeyColumnName().endsWith("_UU"))) canJump = true; } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java index e5b533901f..6c1c6cdd08 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java @@ -107,6 +107,7 @@ import org.compiere.model.MQuery; import org.compiere.model.MRecentItem; import org.compiere.model.MRole; import org.compiere.model.MSysConfig; +import org.compiere.model.MTable; import org.compiere.model.MUserPreference; import org.compiere.model.MWindow; import org.compiere.model.PO; @@ -509,17 +510,18 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements { gridWindow.initTab(tabIndex); //init parent tab by parent ids - int[] parentIds = DB.getIDsEx(null, "SELECT " + gTab.getLinkColumnName() + " FROM " + gTab.getTableName() + " WHERE " + query.getWhereClause()); - if (parentIds.length > 0) + StringBuilder sql = new StringBuilder("SELECT ").append(gTab.getLinkColumnName()).append(" FROM ").append(gTab.getTableName()).append(" WHERE ").append(query.getWhereClause()); + List parentIds = DB.getSQLValueObjectsEx(null, sql.toString()); + if (parentIds.size() > 0) { GridTab parentTab = null; MapqueryMap = new TreeMap(); - for (int parentId : parentIds) + for (Object parentId : parentIds) { MapparentMap = new TreeMap(); int index = tabIndex; - int oldpid = parentId; + Object oldpid = parentId; GridTab currentTab = gTab; while (index > 0) { @@ -617,9 +619,10 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements //set target detail tab as active tab and navigate to target record int count = table.getRowCount(); + MTable tbl = MTable.get(ctx, table.getTableName()); for(int i = 0; i < count; i++) { - int id = -1; + Object id = null; if (zoomColumnIndex >= 0) { Object zoomValue = table.getValueAt(i, zoomColumnIndex); @@ -627,12 +630,19 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements { id = ((Number)zoomValue).intValue(); } + else if (zoomValue != null && zoomValue instanceof String) + { + id = zoomValue.toString(); + } } else { - id = table.getKeyID(i); + if (tbl.isUUIDKeyTable()) + id = table.getUUID(i); + else + id = table.getKeyID(i); } - if (id == ((Integer)query.getZoomValue()).intValue()) + if (id != null && id.equals(query.getZoomValue())) { setActiveTab(gridWindow.getTabIndex(gTab), null); gTab.navigate(i); @@ -3294,8 +3304,11 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements if (toolbar.getEvent() != null) { int record_ID = adTabbox.getSelectedGridTab().getRecord_ID(); - if (record_ID <= 0) - return; + if (record_ID <= 0) { + MTable table = MTable.get(adTabbox.getSelectedGridTab().getAD_Table_ID()); + if (!table.isUUIDKeyTable()) + return; + } // Query MQuery query = new MQuery(); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/AEnv.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/AEnv.java index f05ec0026a..95011dcdcf 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/AEnv.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/AEnv.java @@ -211,6 +211,22 @@ public final class AEnv zoom(AD_Window_ID, query); } // zoom + /************************************************************************* + * Zoom to AD Window by AD_Table_ID and Record_UU. + * @param AD_Table_ID + * @param Record_UU + * @param query initial query for destination AD Window + * @param windowNo + */ + public static void zoomUU(int AD_Table_ID, String Record_UU, MQuery query, int windowNo) + { + int AD_Window_ID = Env.getZoomWindowUU(AD_Table_ID, Record_UU, windowNo); + // Nothing to Zoom to + if (AD_Window_ID == 0) + return; + zoom(AD_Window_ID, query); + } // zoom + /** * Call {@link #zoom(int, int, MQuery, int)} * @param AD_Table_ID @@ -460,13 +476,18 @@ public final class AEnv zoomQuery.setZoomValue(value); zoomQuery.addRestriction(column, MQuery.EQUAL, value); zoomQuery.setRecordCount(1); // guess - if (value instanceof Integer && ((Integer) value).intValue() >= 0 && zoomQuery != null && zoomQuery.getZoomTableName() != null) { - int tableId = MTable.getTable_ID(zoomQuery.getZoomTableName()); - zoom(tableId, ((Integer) value).intValue(), zoomQuery, lookup.getWindowNo()); - } else { + if (zoomQuery.getZoomTableName() != null) { + int tableId = -1; + tableId = MTable.getTable_ID(zoomQuery.getZoomTableName()); + if (value instanceof Integer && ((Integer) value).intValue() >= 0 && zoomQuery != null && zoomQuery.getZoomTableName() != null) { + zoom(tableId, ((Integer) value).intValue(), zoomQuery, lookup.getWindowNo()); + } else { + zoomUU(tableId, value.toString(), zoomQuery, lookup.getWindowNo()); + } + } else { int windowId = lookup.getZoom(zoomQuery); zoom(windowId, zoomQuery, lookup.getWindowNo()); - } + } } /** diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultEditorFactory.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultEditorFactory.java index f15e590118..07b7598cb1 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultEditorFactory.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultEditorFactory.java @@ -158,8 +158,9 @@ public class DefaultEditorFactory implements IEditorFactory { } /** Table Direct */ - else if (displayType == DisplayType.TableDir || - displayType == DisplayType.Table || displayType == DisplayType.List) + else if (displayType == DisplayType.TableDir || displayType == DisplayType.TableDirUU || + displayType == DisplayType.Table || displayType == DisplayType.TableUU || + displayType == DisplayType.List) { editor = new WTableDirEditor(gridField, tableEditor, editorConfiguration); } @@ -174,7 +175,7 @@ public class DefaultEditorFactory implements IEditorFactory { editor = new WUrlEditor(gridField, tableEditor, editorConfiguration); } - else if (displayType == DisplayType.Search) + else if (displayType == DisplayType.Search || displayType == DisplayType.SearchUU) { editor = new WSearchEditor(gridField, tableEditor, editorConfiguration); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/scheduler/SchedulerStateEditorFactory.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/scheduler/SchedulerStateEditorFactory.java index 9e1c6b6584..31db46e33c 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/scheduler/SchedulerStateEditorFactory.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/scheduler/SchedulerStateEditorFactory.java @@ -30,6 +30,7 @@ import org.adempiere.webui.editor.WEditor; import org.adempiere.webui.factory.IEditorFactory; import org.compiere.model.GridField; import org.compiere.model.GridTab; +import org.compiere.util.DisplayType; import org.osgi.service.component.annotations.Component; /** @@ -40,8 +41,6 @@ import org.osgi.service.component.annotations.Component; property = {"service.ranking:Integer=1"}) public class SchedulerStateEditorFactory implements IEditorFactory { - private final static int SCHEDULER_STATE_AD_REFERENCE_ID = 200173; - /** * default constructor */ @@ -56,7 +55,7 @@ public class SchedulerStateEditorFactory implements IEditorFactory { @Override public WEditor getEditor(GridTab gridTab, GridField gridField, boolean tableEditor, IEditorConfiguration editorConfiguration) { - if (gridField != null && gridField.getDisplayType() == SCHEDULER_STATE_AD_REFERENCE_ID) { + if (gridField != null && gridField.getDisplayType() == DisplayType.SchedulerState) { return new SchedulerStateEditor(gridField, tableEditor, editorConfiguration); } return null; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/Dialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/Dialog.java index 170411fe1e..a4c6cd0783 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/Dialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/Dialog.java @@ -350,8 +350,10 @@ public final class Dialog { case DisplayType.Integer: return new WNumberEditor(editorType); case DisplayType.TableDir: + case DisplayType.TableDirUU: return new WTableDirEditor(lookup, "", "", true, false, true); case DisplayType.Search: + case DisplayType.SearchUU: return new WSearchEditor(lookup, "", "", true, false, true); case DisplayType.ChosenMultipleSelectionSearch: return new WChosenboxSearchEditor(lookup, "", "", true, false, true); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FDialog.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FDialog.java index 6fe8536904..2b8dbbb9f0 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FDialog.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FDialog.java @@ -379,9 +379,11 @@ public class FDialog weditor = new WNumberEditor(); break; case DisplayType.TableDir: + case DisplayType.TableDirUU: weditor = new WTableDirEditor(lookup, "", "", true, false, true); break; case DisplayType.Search: + case DisplayType.SearchUU: weditor = new WSearchEditor(lookup, "", "", true, false, true); break; case DisplayType.ChosenMultipleSelectionSearch: diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java index cea62ba0b7..37729ba4dd 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java @@ -100,6 +100,7 @@ import org.compiere.model.MSysConfig; import org.compiere.model.MTab; import org.compiere.model.MTable; import org.compiere.model.MUserQuery; +import org.compiere.model.PO; import org.compiere.model.Query; import org.compiere.model.SystemIDs; import org.compiere.util.AdempiereSystemError; @@ -2212,7 +2213,7 @@ public class FindWindow extends Window implements EventListener, ValueCha // Column ListItem row = (ListItem)rowList.get(rowIndex); Combobox table = (Combobox)row.getFellow("listTable"+row.getId()); - String exists=""; + StringBuilder exists = new StringBuilder(); boolean isExists = false; boolean isExistCondition = false; @@ -2256,8 +2257,15 @@ public class FindWindow extends Window implements EventListener, ValueCha if (table.getSelectedItem() != null && !table.getSelectedItem().getValue().equals(m_AD_Tab_UU)) { if (!isCompositeExists) { - exists ="SELECT 1 FROM "+m_gridTab.getTableName()+" WHERE "+m_gridTab.getTableName()+"."+m_gridTab.getLinkColumnName()+" = "+m_tableName+"."+m_tableName+"_ID ";// "+tab.getTableName()+"."; - ColumnSQL = exists+" AND " + ColumnSQL; + MTable refTable = MTable.get(Env.getCtx(), m_tableName); + exists.append("SELECT 1 FROM ").append(m_gridTab.getTableName()) + .append(" WHERE ").append(m_gridTab.getTableName()).append(".").append(m_gridTab.getLinkColumnName()) + .append(" = ").append(m_tableName).append("."); + if (refTable.isUUIDKeyTable()) + exists.append(PO.getUUIDColumnName(m_tableName)); + else + exists.append(m_tableName).append("_ID "); + ColumnSQL = exists.toString() + " AND " + ColumnSQL; } isExists = true; diff --git a/org.idempiere.test/src/org/idempiere/test/model/MTestUUTest.java b/org.idempiere.test/src/org/idempiere/test/model/MTestUUTest.java index f275e26c2f..e2ff05125e 100644 --- a/org.idempiere.test/src/org/idempiere/test/model/MTestUUTest.java +++ b/org.idempiere.test/src/org/idempiere/test/model/MTestUUTest.java @@ -33,6 +33,7 @@ import java.util.Properties; import org.compiere.model.MTestUU; import org.compiere.model.PO; +import org.compiere.model.X_TestUUDet; import org.compiere.util.Env; import org.compiere.util.Util; import org.idempiere.test.AbstractTestCase; @@ -46,6 +47,7 @@ import org.junit.jupiter.api.Test; public class MTestUUTest extends AbstractTestCase { private static final String TestRecordInGardenWorld = "8858ecc2-cf1d-405f-987f-793536037e76"; + private static final String TestRecordInSystem = "4e148b89-bdd9-48a6-8a8a-7609092f965c"; public MTestUUTest() { } @@ -86,4 +88,24 @@ public class MTestUUTest extends AbstractTestCase { assertFalse(testuu2.get_UUID().equals(TestRecordInGardenWorld)); } + @Test + public void testInsertingTestUUDet() { + Properties ctx = Env.getCtx(); + String trxName = getTrxName(); + X_TestUUDet testuudet = new X_TestUUDet(ctx, PO.UUID_NEW_RECORD, trxName); + testuudet.setName("Test UU Det record created on JUnit test"); + testuudet.setTestUU_UU(TestRecordInGardenWorld); + testuudet.setAltTestUU_UU(TestRecordInSystem); + assertTrue(testuudet.validForeignKeys()); + testuudet.saveEx(); + testuudet.load(trxName); + assertEquals("Test UU Det record created on JUnit test", testuudet.getName()); + String uukey = testuudet.getTestUUDet_UU(); + String uuid = testuudet.get_UUID(); + assertTrue(Util.isUUID(uukey)); + assertEquals(uukey, uuid); + assertEquals(testuudet.getAltTestUU_UU(), TestRecordInSystem); + assertEquals(testuudet.getTestUU_UU(), TestRecordInGardenWorld); + } + }