|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
有时需要在IFS系统中开发一次性完整删除一个文档相关所有数据的功能,而文档模块后台表很多,关系错综复杂,所以整理出如下代码。
/* 删除及修改文档记录
*/
/*
ROWSTATE
------------------------------
Approval In Progress
Approved
Archived
Obsolete
Preliminary
Released
*/
/*
_select* FROM doc_issue_tab
WHERE doc_no IN ('2005328880002');
--查找文档对应的状态(ROWSTATE字段)
*/
DEFINE DOC_NO_ = ('2005328880005')
DEFINE ROWSTATE_ = 'Archived->Approved'
--STEP 1:
_deleteFROM doc_dist_list_history_tab t
WHERE doc_no IN &DOC_NO_;
--STEP 2:
--_select* from doc_issue_tab t where doc_no = '&DOC_NO_'
_updatedoc_issue_tab
SET rowstate = SUBSTR('&ROWSTATE_',INSTR('&ROWSTATE_','>')+1)
WHERE doc_no IN &DOC_NO_
AND rowstate = SUBSTR('&ROWSTATE_',1,INSTR('&ROWSTATE_','>')-2);
--STEP 3:
PROMPT 从客户端"设置作废"文档,然后"删除文档文件",最后"删除文档"
/*用于检查信息是否删除干净
--文档档案
_selectCOUNT(*) from document_issue_history_tab t WHERE doc_no IN &DOC_NO_;
--访问
_selectCOUNT(*) from document_issue_access_tab t WHERE doc_no IN &DOC_NO_;
--审批
_selectCOUNT(*) from approval_routing_tab t
WHERE SUBSTR(key_ref,INSTR(key_ref,'DOC_NO=')+7,INSTR(key_ref,'DOC_REV')-INSTR(key_ref,'DOC_NO=')-8) IN %&DOC_NO_%;
--标题
_selectCOUNT(*) from doc_title_tab t where doc_no IN &DOC_NO_;
*/
/*
_selectCOUNT(*) FROM DOC_DIST_LIST WHERE doc_class = :value1_ AND doc_no = :value2_ AND DOC_REV = :value3_
_selectCOUNT(*) FROM DOC_PACKAGE_TEMPLATE WHERE doc_class = :value1_ AND doc_no = :value2_ AND DOC_REV = :value3_
_selectCOUNT(*) FROM DOC_PACKAGE_TEMPLATE_EXTRA WHERE doc_class = :value1_ AND doc_no = :value2_ AND DOC_REV = :value3_
_selectCOUNT(*) FROM DOC_REFERENCE_OBJECT WHERE doc_class = :value1_ AND doc_no = :value2_ AND DOC_REV = :value3_
_selectCOUNT(*) FROM DOC_STRUCTURE WHERE Doc_Class = :value1_ AND Doc_No = :value2_ AND DOC_REV = :value3_
_selectCOUNT(*) FROM EDM_FILE WHERE doc_class = :value1_ AND doc_no = :value2_ AND DOC_REV = :value3_
_selectCOUNT(*) FROM EDM_FILE_TEMPLATE WHERE doc_class = :value1_ AND doc_no = :value2_ AND DOC_REV = :value3_
_selectCOUNT(*) FROM DOC_STRUCTURE WHERE sub_doc_class = :value1_ AND sub_doc_no = :value2_ AND SUB_DOC_REV = :value3_
_selectCOUNT(*) FROM DOC_DIST_LIST WHERE doc_class = :value1_ AND DOC_NO = :value2_
_selectCOUNT(*) FROM DOC_ISSUE WHERE doc_class = :value1_ AND DOC_NO = :value2_
_selectCOUNT(*) FROM DOC_ISSUE_ORIGINAL WHERE doc_class = :value1_ AND DOC_NO = :value2_
_selectCOUNT(*) FROM DOC_ISSUE_SHEET WHERE doc_class = :value1_ AND DOC_NO = :value2_
_selectCOUNT(*) FROM DOC_PACKAGE WHERE doc_class = :value1_ AND DOC_NO = :value2_
_selectCOUNT(*) FROM DOC_PACKAGE_TEMPLATE WHERE doc_class = :value1_ AND DOC_NO = :value2_
_selectCOUNT(*) FROM DOC_PACKAGE_TEMPLATE_EXTRA WHERE doc_class = :value1_ AND DOC_NO = :value2_
_selectCOUNT(*) FROM DOC_REFERENCE_OBJECT WHERE doc_class = :value1_ AND DOC_NO = :value2_
_selectCOUNT(*) FROM DOC_STRUCTURE WHERE Doc_Class = :value1_ AND DOC_NO = :value2_
_selectCOUNT(*) FROM EDM_FILE_TEMPLATE WHERE doc_class = :value1_ AND DOC_NO = :value2_
_selectCOUNT(*) FROM DOC_STRUCTURE WHERE sub_doc_class = :value1_ AND SUB_DOC_NO = :value2_
*/
UNDEFINE DOC_NO_
UNDEFINE ROWSTATE_ |
|