Acumatica中删除Canceled状态服务合同的优选方案咨询
Acumatica 已取消服务合同合规删除方案
现有操作的问题
- 在Service Contracts GI中直接添加删除按钮触发
Error: The record cannot be deleted报错,原因是系统默认对状态为Canceled(状态值X)的服务合同设置了删除拦截,GI的通用删除逻辑不会自动处理该状态下的特殊校验、关联数据清理逻辑。 - 直接在数据库执行
DELETE FROM [FSServiceContract] WHERE Status = 'X'的方式禁止在生产环境使用:该操作完全绕过服务合同模块的所有内置业务规则,会残留关联的服务日程、计费明细、工单关联、审计日志等大量脏数据,后续会引发对账异常、报表统计错误、关联单据报错等不可追溯的隐性问题。
合规落地方案(覆盖全部需求)
单条自主删除实现
针对用户自主删除单条已取消合同的需求,扩展服务合同维护页面(页面IDFS300100)的业务图逻辑即可:
- 编写
FSServiceContractMaint的图扩展,重写行删除事件,仅放开Canceled状态的删除限制,同时触发系统内置的关联数据清理逻辑,避免脏数据,参考代码如下:public class FSServiceContractMaint_Ext : PXGraphExtension<FSServiceContractMaint> { public void FSServiceContract_RowDeleting(PXCache sender, PXRowDeletingEventArgs e) { var contract = e.Row as FSServiceContract; if (contract?.Status != FSServiceContract.status.Canceled) return; e.Cancel = false; // 触发系统原生关联记录清理逻辑 Base.ServiceContractRelatedRecords.DeleteAll(); } } - 配置页面删除按钮的角色权限,开放给对应岗位的用户即可。用户打开单条已取消服务合同点击删除时,系统会自动走完所有内置校验、数据清理、审计留痕流程,不会触发报错。
批量删除实现
针对批量删除所有已取消合同的需求,不要直接使用GI的批量删除功能,在服务合同列表页新增自定义批量操作按钮,基于系统原生业务图实现删除逻辑:
- 筛选所有状态为Canceled的服务合同记录
- 循环为每条记录实例化独立的
FSServiceContractMaint图实例,调用图原生的Delete方法执行删除,全程由系统控制业务规则校验和关联数据处理 - 整个批量操作包裹在事务中,单条记录删除失败时记录错误日志、跳过该条,不影响其他记录的正常处理
核心处理逻辑参考:var canceledContracts = PXSelect<FSServiceContract, Where<FSServiceContract.status, Equal<FSServiceContract.status.Canceled>>>.Select(Base); foreach (FSServiceContract contract in canceledContracts) { try { var graph = PXGraph.CreateInstance<FSServiceContractMaint>(); graph.ServiceContract.Current = graph.ServiceContract .Search<FSServiceContract.serviceContractID>(contract.ServiceContractID); if (graph.ServiceContract.Current == null) continue; graph.ServiceContract.Delete(graph.ServiceContract.Current); graph.Actions.PressSave(); } catch (Exception ex) { PXTrace.WriteError($"删除已取消合同[{contract.ContractNbr}]失败:{ex.Message}"); } }
上线注意事项
- 所有逻辑上线前必须在测试环境完成全流程验证,确认关联的服务计划、计费记录、历史工单关联数据的处理符合业务预期
- 执行批量删除前必须完成全实例数据备份,避免误操作导致数据丢失
- 批量删除权限仅开放给管理员角色,建议增加待删除清单核对、操作审批环节,避免误删
内容的提问来源于stack exchange,提问作者Ken S.
相关产品推荐
相关产品推荐

