Sp_delete_backwriting.md 1.97 KB

Sp_delete_backwriting (procedure)

删除后数据反写

  • Type: PROCEDURE
  • Deterministic: NO
  • SQL data access: CONTAINS SQL

Parameters

# Mode Name Type
1 IN sGuid longtext
2 IN sFormGuid varchar(100)
3 IN sTableName varchar(255)
4 IN sBrId varchar(100)
5 IN sSuId varchar(100)
6 OUT sCode int
7 OUT sReturn varchar(4000)

Body

Body is not pre-cached. To inspect: mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDURESpdelete_backwriting'._

Narrative

Business context: Generic delete-reversal hub — runs the form-specific Sp_beforeSave_* for the bill being deleted, so that any upstream quantity/status reservations the original save wrote out are reversed before the delete itself commits. Per the dispatcher convention (Sp_delete_backwritingSp_beforeSave_* on delete), this is the cross-module rollback point for document deletes.

What it does: Cleans the leading comma on sGuid, then dispatches on sFormGuid to call the matching Sp_beforeSave_<Code> proc with the same (sGuid, sBrId, sSuId, sCode, sReturn). Covers 销售订单 (Sp_beforeSave_sSod), 采购订单 (Sp_beforeSave_sPod), 送货通知单 (Sp_beforeSave_sDgn), 送货单 (Sp_beforeSave_sDgd), 销售对账单 (Sp_beforeSave_sSck), and a chain of Sp_beforeSave_t* / Sp_beforeSave_sOpc/sOpn/sOpn1 etc. for outsource and toll-process flows. A handful of customer-side hooks (Sp_elematerials_BeforeUpdate) are left commented as historical.

Invocation: Called from Sp_DelMasterSlave_Pro immediately after the master-table identification block — i.e. on every document delete dispatched through BusinessBaseServiceImpl.delMethodPro (the central delete path). The Java side never references the proc directly; it reaches it via the Sp_DelMasterSlave_Pro chain. Install body: script/标版/30100101/Sp_delete_backwriting.sql.