core-jgi/db/maintain/Maintenance/0_CleanUpAD.sql

551 lines
19 KiB
MySQL
Raw Normal View History

2006-11-17 10:06:54 +07:00
/*************************************************************************
* The contents of this file are subject to the Adempiere License. You may
* obtain a copy of the License at http://www.adempiere.org/license.html
* Software is on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
* express or implied. See the License for details. Code: Adempiere ERP+CRM
* Copyright (C) 1999-2001 Jorg Janke, ComPiere, Inc. All Rights Reserved.
*************************************************************************
* $Id: 0_CleanUpAD.sql,v 1.2 2006/06/18 00:44:13 jjanke Exp $
***
* Title: Clean up Application Dictionary
* Description:
* => Run TempTables_Create/Drop <= first
* otherwise you'll delete all views
* Please check EVERY statement before execution.
* This is a script desiged for the reference database not extensions.
* (e.g. assigns ownership to system, etc.)
************************************************************************/
SELECT (SELECT COUNT(*) FROM USER_Procedures) "Procedures",
(SELECT COUNT(*) FROM USER_Triggers) "Triggers" FROM DUAL;
SELECT 'Clean up Application Dictionary' FROM DUAL;
-- Create temp table of all colums in AD and DB
SELECT '<<< Create temp table of all colums in AD and DB >>>' FROM DUAL;
CREATE OR REPLACE VIEW temp_db_columns AS
SELECT t.TableName, c.ColumnName, t.AD_Table_ID, c.AD_Column_ID,
uc.Data_Type, COALESCE(uc.Char_Col_Decl_Length,uc.Data_Length) AS DataLength,
uc.Data_Precision, uc.Data_Scale, uc.Nullable, c.ColumnSQL,
CASE WHEN uc.Data_Type IS NULL AND c.ColumnSQL IS NULL THEN 'Y' ELSE 'N' END AS IsNotInDB
FROM AD_Table t
INNER JOIN AD_Column c ON (t.AD_Table_ID=c.AD_Table_ID)
LEFT JOIN User_Tab_Columns uc ON (uc.Table_Name=UPPER(t.TableName)
AND uc.Column_Name=UPPER(c.ColumnName));
-- Delete columns not in DB = translated fields
SELECT Name "Delete fields not in DB", AD_Field_ID
FROM AD_Field f
WHERE NOT EXISTS
(SELECT * FROM temp_db_columns db WHERE db.AD_Column_ID=f.AD_Column_ID AND db.IsNotInDB='N');
DELETE AD_Field_Trl
WHERE AD_Field_ID IN
(SELECT AD_Field_ID FROM AD_Field f WHERE NOT EXISTS
(SELECT * FROM temp_db_columns db WHERE db.AD_Column_ID=f.AD_Column_ID AND db.IsNotInDB='N'));
-- Delete fields not in DB
DELETE AD_Field
WHERE AD_Field_ID IN
(SELECT AD_Field_ID FROM AD_Field f WHERE NOT EXISTS
(SELECT * FROM temp_db_columns db WHERE db.AD_Column_ID=f.AD_Column_ID AND db.IsNotInDB='N'));
-- Delete columns not in DB
SELECT Name "Delete columns not in DB", AD_Column_ID
FROM AD_Column c
WHERE NOT EXISTS
(SELECT * FROM temp_db_columns db WHERE db.AD_Column_ID=c.AD_Column_ID AND db.IsNotInDB='N');
-- column used in table reference
DELETE AD_Ref_Table
WHERE AD_Key IN
(SELECT AD_Column_ID FROM AD_Column c WHERE NOT EXISTS
(SELECT * FROM temp_db_columns db WHERE db.AD_Column_ID=c.AD_Column_ID AND db.IsNotInDB='N'));
DELETE AD_Ref_Table
WHERE AD_Display IN
(SELECT AD_Column_ID FROM AD_Column c WHERE NOT EXISTS
(SELECT * FROM temp_db_columns db WHERE db.AD_Column_ID=c.AD_Column_ID AND db.IsNotInDB='N'));
-- remove references
UPDATE AD_Tab
SET AD_Column_ID = NULL
WHERE AD_Column_ID IN
(SELECT AD_Column_ID FROM AD_Column c WHERE NOT EXISTS
(SELECT * FROM temp_db_columns db WHERE db.AD_Column_ID=c.AD_Column_ID AND db.IsNotInDB='N'));
DELETE AD_PrintFormatItem
WHERE AD_Column_ID IN
(SELECT AD_Column_ID FROM AD_Column c WHERE NOT EXISTS
(SELECT * FROM temp_db_columns db WHERE db.AD_Column_ID=c.AD_Column_ID AND db.IsNotInDB='N'));
DELETE AD_Column
WHERE AD_Column_ID IN
(SELECT AD_Column_ID FROM AD_Column c WHERE NOT EXISTS
(SELECT * FROM temp_db_columns db WHERE db.AD_Column_ID=c.AD_Column_ID AND db.IsNotInDB='N'));
-- Delete all AD_Tab rows of tables not in DB = translated tabs
SELECT Name "Delete Tabs w tables not in DB", AD_Tab_ID
FROM AD_Tab
WHERE AD_Table_ID IN
(SELECT AD_Table_ID FROM AD_Table t WHERE NOT EXISTS
(SELECT * FROM temp_db_columns db WHERE db.AD_Table_ID=t.AD_Table_ID AND db.IsNotInDB='N'));
DELETE AD_Tab_Trl
WHERE AD_Tab_ID IN
(SELECT AD_Tab_ID FROM AD_Tab
WHERE AD_Table_ID IN
(SELECT AD_Table_ID FROM AD_Table t WHERE NOT EXISTS
(SELECT * FROM temp_db_columns db WHERE db.AD_Table_ID=t.AD_Table_ID AND db.IsNotInDB='N')));
DELETE AD_Tab
WHERE AD_Table_ID IN
(SELECT AD_Table_ID FROM AD_Table t WHERE NOT EXISTS
(SELECT * FROM temp_db_columns db WHERE db.AD_Table_ID=t.AD_Table_ID AND db.IsNotInDB='N'));
-- Delete all AD_Table rows of tables not in DB
SELECT Name "Delete Tables not in DB", AD_Table_ID
FROM AD_Table t
WHERE NOT EXISTS
(SELECT * FROM temp_db_columns db WHERE db.AD_Table_ID=t.AD_Table_ID AND db.IsNotInDB='N');
DELETE AD_Table t
WHERE NOT EXISTS
(SELECT * FROM temp_db_columns db WHERE db.AD_Table_ID=t.AD_Table_ID AND db.IsNotInDB='N');
-- Update: IsMandatory
SELECT '<<< Update: IsMandatory >>>' FROM DUAL;
UPDATE AD_Column c
SET IsMandatory = 'Y'
WHERE IsMandatory = 'N'
AND EXISTS
(SELECT * FROM temp_db_columns db
WHERE c.AD_Column_ID=db.AD_Column_ID AND Nullable='N');
-- set AD_Client_ID/AD_Org_ID to TableDirect
SELECT '<<< set AD_Client_ID, AD_Org_ID to TableDir >>>' FROM DUAL;
UPDATE AD_Column
SET AD_Reference_ID = 19
WHERE (UPPER(ColumnName) = 'AD_CLIENT_ID' OR UPPER(ColumnName) = 'AD_ORG_ID')
AND AD_Reference_ID NOT IN (13, 18, 19);
-- set _ID to Type ID (DisplayType)
SELECT '<<< set _ID to Type ID >>>' FROM DUAL;
Update AD_Column
Set AD_Reference_ID = 13 -- ID
WHERE ColumnName LIKE '%\_ID' ESCAPE '\'
AND AD_Reference_ID not in (13, 17, 18, 19, 21, 25, 27, 30, 31, 32, 33, 35)
AND ColumnName NOT IN ('Record_ID', 'Find_ID')
-- Buttons with Process
AND NOT (AD_Reference_ID=28 AND AD_Process_ID IS NOT NULL);
-- set Record_ID/Find_ID
UPDATE AD_Column
SET AD_Reference_ID = 22 -- Number
WHERE ColumnName = 'Find_ID'
AND AD_Reference_ID <> 22;
UPDATE AD_Column
SET AD_Reference_ID = 28 -- Button
WHERE AD_Reference_ID NOT IN (28, 11) -- Integer
AND ColumnName = 'Record_ID';
-- set UpdatedBy, CreatedBy to Table
SELECT '<<< set UpdatedBy, CreatedBy to Table & User >>>' FROM DUAL;
UPDATE AD_Column
SET AD_Reference_ID = 18, -- Table
AD_Reference_Value_ID = 110
WHERE UPPER(ColumnName) IN ('CREATEDBY', 'UPDATEDBY')
AND AD_Reference_ID != 18;
-- set Updated, Created to DateTime
SELECT '<<< set Updated, Created to DateTime >>>' FROM DUAL;
UPDATE AD_Column
SET AD_Reference_ID = 16 -- DateTime
WHERE ColumnName IN ('Created', 'Updated')
AND AD_Reference_ID != 16;
-- set Updated, Created to not updateable
SELECT '<<< set Updated, Created to not updateable >>>' FROM DUAL;
UPDATE AD_Column
SET IsUpdateable = 'N'
WHERE UPPER(ColumnName) IN ('CREATEDBY', 'UPDATEDBY','CREATED', 'UPDATED')
AND IsUpdateable != 'N';
-- set _Acct
SELECT '<<< set _Acct >>>' FROM DUAL;
UPDATE AD_Column
SET AD_Reference_ID = 25,
AD_Reference_Value_ID = NULL
WHERE ColumnName LIKE '%\_Acct' ESCAPE '\'
AND AD_Reference_ID != 25;
-- set IsActive
SELECT '<<< set IsActive >>>' FROM DUAL;
UPDATE AD_Column
SET DefaultValue = 'Y'
WHERE ColumnName = 'IsActive' and DefaultValue IS Null;
-- Set Replication Strategy
SELECT '<<< Set Replication Strategy to Local >>>' FROM DUAL;
UPDATE AD_Table
SET ReplicationType = 'L'
WHERE ReplicationType IS Null;
-- Clean up Field SortNo
SELECT '<<< Clean up Field SortNo >>>' FROM DUAL;
UPDATE AD_Field
SET SortNo = Null
WHERE SortNo = 0;
--
SELECT '<<< Create Identifiers for Column Name for tables w/o identifier >>>' FROM DUAL;
UPDATE AD_Column c
SET IsIdentifier = 'Y',
SeqNo = 1
WHERE ColumnName = 'Name'
AND NOT EXISTS
(SELECT * FROM AD_Table t, AD_Column c2
WHERE t.AD_Table_ID=c2.AD_Table_ID
AND c2.IsIdentifier='Y');
SELECT '<<< Create Identifiers for Column DocumentNo for tables w/o identifier >>>' FROM DUAL;
UPDATE AD_Column c
SET IsIdentifier = 'Y',
SeqNo = 1
WHERE ColumnName = 'DocumentNo'
AND NOT EXISTS
(SELECT * FROM AD_Table t, AD_Column c2
WHERE t.AD_Table_ID=c2.AD_Table_ID
AND c2.IsIdentifier='Y');
SELECT '<<< Create Identifiers for Column Line for tables w/o identifier >>>' FROM DUAL;
UPDATE AD_Column c
SET IsIdentifier = 'Y',
SeqNo = 1
WHERE ColumnName = 'Line'
AND NOT EXISTS
(SELECT * FROM AD_Table t, AD_Column c2
WHERE t.AD_Table_ID=c2.AD_Table_ID
AND c2.IsIdentifier='Y');
-- tables w/o Key
SELECT ColumnName "<<< Create KeyCol >>>"
FROM AD_Column c
WHERE UPPER(ColumnName) = (Select UPPER(TableName) || '_ID' from ad_table t
where c.ad_table_id=t.ad_table_id)
AND NOT EXISTS
(SELECT * FROM AD_Table t INNER JOIN AD_Column c2 ON (t.AD_Table_ID=c2.AD_Table_ID)
WHERE c.AD_Column_ID=c2.AD_Column_ID AND c2.IsKey='Y')
AND c.ColumnName<>'AD_ChangeLog_ID';
UPDATE AD_Column c
SET Iskey = 'Y', AD_Reference_ID=13
WHERE UPPER(ColumnName) = (Select UPPER(TableName) || '_ID' from ad_table t
where c.ad_table_id=t.ad_table_id)
AND NOT EXISTS
(SELECT * FROM AD_Table t INNER JOIN AD_Column c2 ON (t.AD_Table_ID=c2.AD_Table_ID)
WHERE c.AD_Column_ID=c2.AD_Column_ID AND c2.IsKey='Y')
AND c.ColumnName<>'AD_ChangeLog_ID';
SELECT '<<< Key Columns not updateable >>>' FROM DUAL;
UPDATE AD_Column
SET IsUpdateable = 'N'
WHERE IsUpdateable='Y' AND (IsKey='Y' OR IsParent='Y');
SELECT '<<< Parent Fields Read/Only >>>' FROM DUAL;
-- Make Parent Fields r/o for tabs with two parents
UPDATE AD_Field
SET IsReadOnly='Y'
WHERE IsReadOnly='N'
AND AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE IsParent='Y');
-- Make Parent Fields r/w for tabs with two parents and the defined actual parent column
UPDATE AD_Field f
SET IsReadOnly='N'
WHERE IsReadOnly='Y'
AND EXISTS
(SELECT * FROM AD_Column c WHERE c.AD_Column_ID=f.AD_Column_ID AND c.IsParent='Y')
AND AD_Tab_ID IN
(SELECT AD_Tab_ID
FROM AD_Tab
WHERE AD_Column_ID IS NOT NULL
-- tables with two parent fields
AND AD_Table_ID IN
(SELECT AD_Table_ID FROM AD_Table t
WHERE (SELECT COUNT(*) FROM AD_Column c WHERE c.AD_Table_ID=t.AD_Table_ID AND IsParent='Y')>1)
);
-- Make Actual Parent fields r/o in tabs with two parent fields
UPDATE AD_Field f
SET IsReadOnly='Y'
WHERE IsReadOnly='N'
AND (AD_Tab_ID, AD_Column_ID) IN
(SELECT AD_Tab_ID, AD_Column_ID
FROM AD_Tab
WHERE AD_Column_ID IS NOT NULL
-- tables with two parent fields
AND AD_Table_ID IN
(SELECT AD_Table_ID FROM AD_Table t
WHERE (SELECT COUNT(*) FROM AD_Column c WHERE c.AD_Table_ID=t.AD_Table_ID AND IsParent='Y')>1)
);
-- Exceptions
UPDATE AD_Field
SET IsReadOnly='N'
WHERE IsReadOnly='Y' AND AD_Field_ID IN (
4394, -- role/org
6523 -- cycle/phase
);
-- Set Client R/O in subsequent tabs
UPDATE AD_Field
SET IsReadOnly='Y'
WHERE AD_Field_ID IN
(SELECT AD_Field_ID
FROM AD_Field f
INNER JOIN AD_Tab t on (f.AD_Tab_ID=t.AD_Tab_ID)
INNER JOIN AD_Column c on (f.AD_Column_ID=c.AD_Column_ID)
WHERE f.IsReadOnly='N'
AND t.TabLevel > 0
AND c.ColumnName='AD_Client_ID');
SELECT '<<< COMMIT >>>' FROM DUAL;
COMMIT;
--
SELECT '<<< Set Validation Rules for TableDir Client & Org >>>' FROM DUAL;
UPDATE AD_Column
SET AD_Val_Rule_ID=104
WHERE UPPER(ColumnName)='AD_ORG_ID' AND AD_Val_Rule_ID IS NULL AND AD_Reference_ID=19;
UPDATE AD_Column
SET IsUpdateable='Y'
WHERE IsUpdateable IS NULL;
UPDATE AD_Column
SET IsUpdateable = 'N'
WHERE (UPPER(ColumnName)='AD_CLIENT_ID' OR UPPER(ColumnName)='AD_ORG_ID')
AND IsUpdateable <> 'N';
---
SELECT '<<< Set Client/Org Login default of primary Tab >>>' FROM DUAL;
UPDATE AD_Column
SET DefaultValue='@#AD_Client_ID@'
WHERE ColumnName = 'AD_Client_ID' AND DefaultValue IS NULL
AND AD_Table_ID IN (SELECT AD_Table_ID FROM AD_Tab WHERE TabLevel = 0);
UPDATE AD_Column
SET DefaultValue='@#AD_Org_ID@'
WHERE ColumnName = 'AD_Org_ID' AND DefaultValue IS NULL
AND AD_Table_ID IN (SELECT AD_Table_ID FROM AD_Tab WHERE TabLevel = 0);
SELECT '<<< Set Client/Org default of dependent Tabs >>>' FROM DUAL;
UPDATE AD_Column
SET DefaultValue='@AD_Client_ID@'
WHERE ColumnName = 'AD_Client_ID' AND DefaultValue IS NULL
AND AD_Table_ID IN (SELECT AD_Table_ID FROM AD_Tab WHERE TabLevel > 0);
UPDATE AD_Column
SET DefaultValue='@AD_Org_ID@'
WHERE ColumnName = 'AD_Org_ID' AND DefaultValue IS NULL
AND AD_Table_ID IN (SELECT AD_Table_ID FROM AD_Tab WHERE TabLevel > 0);
--
SELECT '<<< Set Updateable if Views >>>' FROM DUAL;
UPDATE AD_Column
SET IsUpdateable='N'
WHERE IsUpdateable='Y'
AND AD_Table_ID IN (SELECT AD_Table_ID FROM AD_Table WHERE IsView='Y');
UPDATE AD_Column c
SET IsAlwaysUpdateable='N'
WHERE IsUpdateable='N' AND (IsAlwaysUpdateable='Y' OR IsAlwaysUpdateable IS NULL);
--
SELECT '<<< Set System ownership >>>' FROM DUAL;
UPDATE AD_Table SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
UPDATE AD_Column SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
--
UPDATE AD_Window SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
UPDATE AD_Tab SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
UPDATE AD_Field SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
UPDATE AD_Window_Trl SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
UPDATE AD_Tab_Trl SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
UPDATE AD_Field_Trl SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
--
UPDATE AD_Reference SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
UPDATE AD_Ref_List SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
UPDATE AD_Ref_Table SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
UPDATE AD_Reference_Trl SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
UPDATE AD_Ref_List_Trl SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
UPDATE AD_Val_Rule SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
--
UPDATE AD_Element SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
UPDATE AD_Element_Trl SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
--
UPDATE AD_Menu SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
UPDATE AD_Menu_Trl SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID!=0 OR AD_Org_ID!=0;
--
SELECT '<<< COMMIT >>>' FROM DUAL;
COMMIT;
--
SELECT '<<< Sync ColumnName & TableName_ID for TableDir >>>' FROM DUAL;
UPDATE AD_Element e
SET ColumnName = (SELECT t.TableName||'_ID' FROM AD_Table t
WHERE UPPER(e.ColumnName)=UPPER(t.TableName)||'_ID'
AND NOT e.ColumnName=t.TableName||'_ID')
WHERE EXISTS (SELECT * FROM AD_Table t
WHERE UPPER(e.ColumnName)=UPPER(t.TableName)||'_ID'
AND NOT e.ColumnName=t.TableName||'_ID');
SELECT '<<< COMMIT >>>' FROM DUAL;
COMMIT;
--
-- Update all: String length
SELECT '<<< Update Field length >>>' FROM DUAL;
-- sets all numeric to 22 and date to 7
UPDATE AD_Column c
SET FieldLength = (SELECT DataLength FROM temp_db_columns db
WHERE c.ad_column_id=db.ad_column_id)
WHERE FieldLength <> (SELECT DataLength FROM temp_db_columns db
WHERE c.ad_column_id=db.ad_column_id);
SELECT '<<< Set Display Length >>>' FROM DUAL;
update ad_field set displaylength = 1 -- Checks, Radio
where ad_column_id in (select ad_column_id from ad_column where ad_reference_id in (20, 24))
and displaylength != 1;
update ad_field set displaylength = 11 -- integer
where ad_column_id in (select ad_column_id from ad_column where ad_reference_id = 11)
and displaylength != 11;
update ad_field set displaylength = 14 -- date fields
where ad_column_id in (select ad_column_id from ad_column where ad_reference_id = 15)
and displaylength != 14;
update ad_field set displaylength = 20 -- datetime
where ad_column_id in (select ad_column_id from ad_column where ad_reference_id = 16)
and displaylength != 20;
update ad_field set displaylength = 26 -- amount, number, quantity
where ad_column_id in (select ad_column_id from ad_column where ad_reference_id in (12, 22, 29, 37))
and displaylength != 26;
update ad_field set displaylength = 26 -- account, location, search
where ad_column_id in (select ad_column_id from ad_column where ad_reference_id in (25, 21, 30, 35))
and displaylength != 26;
update ad_field set displaylength = 14 -- starting point for picks
where ad_column_id in (select ad_column_id from ad_column where ad_reference_id in (13,17,18,19,26,27))
and displaylength != 14;
update ad_field set displaylength = 60 -- Text /Long
where ad_column_id in (select ad_column_id from ad_column where ad_reference_id IN (14,36))
and displaylength NOT IN (20,60);
update ad_field set displaylength = 60 -- Long Strings
where ad_column_id in (select ad_column_id from ad_column where ad_reference_id = 10)
and displaylength > 60;
update ad_field set displaylength = 23 -- starting point for button
where ad_column_id in (select ad_column_id from ad_column where ad_reference_id = 28)
and displaylength != 23;
update ad_field set displaylength = 20 -- document no
where name = 'Document No' and displaylength != 20;
update ad_field set displaylength = 20 -- value, password, alias
where (name like 'Value%' or name = 'Password' or name = 'Alias')
and displaylength > 20;
-- Normalize Length
update ad_field set displaylength = 5
where displaylength != 5 and (displaylength > 1 and displaylength < 6);
update ad_field set displaylength = 11 -- integers = 11
where displaylength is null or displaylength = 0 or displaylength = 10 or displaylength = 12;
update ad_field set displaylength = 17
where displaylength = 16 or displaylength = 18;
update ad_field set displaylength = 20
where displaylength = 19 or displaylength = 21;
update ad_field set displaylength = 23
where displaylength = 22 or displaylength = 24;
update ad_field set displaylength = 26 -- numbers = 26
where displaylength = 25 or displaylength = 27;
update ad_field set displaylength = 29
where displaylength > 29 and displaylength < 35;
select DisplayLength "Odd DisplayLength", Name from ad_field
where displaylength not in (1, 5, 6, 8, 11,14,15,17,20,23,26,29, 40, 60, 2000,4000)
order by 1;
--
-- Set to List where not list/button
UPDATE AD_Column SET AD_Reference_ID=17
WHERE AD_Reference_ID NOT IN (17,28) AND ColumnName IN ('Posted','DocAction');
-- Set to _Posted Status
UPDATE AD_Column SET AD_Reference_Value_ID=234
WHERE AD_Reference_Value_ID IS NULL AND ColumnName='Posted';
-- Set parameters to empty selection
UPDATE AD_Process_Para
SET DefaultValue = '-1'
WHERE ColumnName = 'AD_User_ID'
AND DefaultValue IS NULL;
UPDATE AD_Process_Para
SET DefaultValue = '0'
WHERE ColumnName IN ('C_BP_Group_ID','M_Product_Category_ID','M_Locator_ID')
AND DefaultValue IS NULL;
UPDATE AD_Column
SET DefaultValue='U'
WHERE ColumnName='EntityType' AND (DefaultValue<>'U' OR DefaultValue IS NULL);
UPDATE AD_Column
SET ReadOnlyLogic='@EntityType@=D'
WHERE ColumnName='EntityType' AND ReadOnlyLogic IS NULL;
SELECT '<<< COMMIT >>>' FROM DUAL;
COMMIT;
-- Fini
SELECT '<<< FINI - Dropping Views >>>' FROM DUAL;
DROP VIEW Temp_db_columns;
--
COMMIT;