Adempiere 360LTS Delete Client
来源:互联网 发布:如何做销售数据分析 编辑:程序博客网 时间:2024/06/05 05:23
本文是系统上线前,实施过程中产生疑惑,面临的问题,进行的思考和讨论的日常工作记录,供日后参考。
1.备份数据库;
2.删除 AD_ORGINFO 下的 两个外键约束 cbank_adorginfo ,ccashbook_adorginfo。(运行删除程序时提示此两个约束没法禁用);
3.
以下步骤不是必须的,也有可能需要增加,视具体情况而定(根据运行删除程序错误Log调整,谨慎 勿删核心数据)。
--delete FROM AD_changelog
--WHERE AD_SESSION_ID NOT IN
--(SELECT AD_SESSION_ID FROM AD_SESSION);COMMIT;
--DELETE FROM AD_PREFERENCE
--WHERE AD_USER_ID NOT IN
--(SELECT AD_USER_ID FROM AD_USER);COMMIT;
--DELETE FROM AD_WF_NODE_TRL
--WHERE AD_WF_NODE_ID NOT IN
--(SELECT AD_WF_NODE_ID FROM AD_WF_NODE );COMMIT;
--DELETE FROM T_REPORTSTATEMENT
--WHERE AD_PINSTANCE_ID NOT IN
--(SELECT AD_PINSTANCE_ID FROM AD_PINSTANCE);COMMIT;
--DELETE FROM AD_PINSTANCE_LOG
--WHERE AD_PINSTANCE_ID NOT IN
--(SELECT AD_PINSTANCE_ID FROM AD_PINSTANCE);COMMIT;
--DELETE FROM T_TRIALBALANCE
--WHERE AD_PINSTANCE_ID NOT IN
--(SELECT AD_PINSTANCE_ID FROM AD_PINSTANCE);COMMIT;
4. 运行RUN_DELETECLIENT.bat,执行Oracle目录下相应的 DELETECLIENT.sql
5. 报错转第3步
6.更新AD_SEQUENCE
以下代码根据实际情况调整(慎用)
============================================================
DECLARE
v_AD_SEQUENCE_ID NUMBER;
v_NAME VARCHAR2(60);
v_sql1 VARCHAR2(100);
v_sql2 VARCHAR2(100);
CURSOR cur_ad_sequence
IS
SELECT AD_SEQUENCE_ID,NAME
FROM AD_SEQUENCE
WHERE NAME NOT LIKE 'DocumentNo%'
AND AD_CLIENT_ID =0
AND NAME NOTIN('T_BOMLine_Costs','AD_Document_Action_Access')
AND CURRENTNEXT >1000000;
BEGIN
FOR p IN cur_ad_sequence
LOOP
v_sql1 := 'SELECTMAX('||p.NAME||'_ID) FROM '||p.NAME;
--DBMS_OUTPUT.put_line(v_sql1);
EXECUTE IMMEDIATEv_sql1 INTO V_AD_SEQUENCE_ID;
--DBMS_OUTPUT.put_line(v_AD_SEQUENCE_ID);
IF V_AD_SEQUENCE_IDIS NULL THEN
V_AD_SEQUENCE_ID:=0;
END IF;
IF V_AD_SEQUENCE_ID< 1000000 THEN
V_AD_SEQUENCE_ID:=1000000;
ELSE
V_AD_SEQUENCE_ID:=V_AD_SEQUENCE_ID+1;
END IF;
v_sql2 :='UPDATEAD_SEQUENCE SET CURRENTNEXT='||V_AD_SEQUENCE_ID||' WHEREAD_SEQUENCE_ID='||p.AD_SEQUENCE_ID;
EXECUTE IMMEDIATEv_sql2;
--DBMS_OUTPUT.put_line(v_sql2);
END LOOP;
COMMIT;
END;
/
EXIT
可能存在的问题:
DELETECLIENT.sql 执行时可能出现字符集不匹配的情况,
修改部分SQL如下
========================================================================================
SELECT N'delete from '
|| tablename
|| ' where AD_Client_ID='
|| v_client_id AS v_sql
, a.TableName
FROM AD_TABLE a
WHERE a.isview = 'N'
AND EXISTS (
SELECT ad_column_id
FROM AD_COLUMN c
WHERE a.ad_table_id = c.ad_table_id
AND UPPER (c.columnname) = 'AD_CLIENT_ID')
-- Assure that the table is really a table in database
AND EXISTS (SELECT 1 FROM user_objects dbo WHERE UPPER(dbo.object_name)=UPPER(a.TableName) AND dbo.object_type='TABLE')
UNION
SELECT N'delete from '
|| t.tablename
|| ' where '
|| columnname
|| '='
|| v_client_id AS v_sql
, t.TableName
FROM AD_COLUMN c, AD_TABLE t
===========================================================================================
- Adempiere 360LTS Delete Client
- Adempiere/AD 360 源码如何下载?
- Adempiere配置安装和汉化(Window 7 && Postgres SQL && ubuntu 12.04lts)【一】
- HBase Client: Delete Method
- ADempiere Project
- Adempiere安装
- Adempiere编译
- Delete Rows On Client-Side
- delete client and reorg tablespaces
- Cisco VPN client under Ubuntu 6.06 (LTS) Linux
- ubuntu 14.04lts 安装Cisco Anyconnect Secure Mobility Client
- adempiere - 订单类型说明
- ADempiere服务器的启动
- 如何安装Adempiere?
- adempiere/compiere的应用字典
- ADempiere 3.4 ERP Solutions中文翻译
- ADempiere 3.4 ERP Solutions中文翻译第二章
- Adempiere 打印报表 打印格式 遇到问题解决!
- Camara 自定义预览效果 PreviewCallBack 的使用
- PHP时间戳
- 中小企业网站建设
- PLSQL常用脚本2
- 吐槽不好的交互设计1——申通/豆瓣
- Adempiere 360LTS Delete Client
- <转>SY-SUBRC 的含义
- configure命令
- linux中的yum
- Linux下crontab命令的用法
- 你真的了解VMWare虚拟化网络吗?
- 使用SpringSide 3.1.4.3开发Web项目的全过程(三)
- 项目管理相关
- 什么是Objective-C,Xcode,IB,Cocoa,Foundation,UIKit,AppKit