# `Sp_SalOrder_BtnEventClaim` (procedure) > 研发任务认领 - **Type:** PROCEDURE - **Deterministic:** NO - **SQL data access:** CONTAINS SQL ## Parameters | # | Mode | Name | Type | |---|---|---|---| | 1 | IN | `sProInParam` | `varchar(10000)` | | 2 | IN | `sMakePerson` | `varchar(100)` | | 3 | IN | `sBrId` | `varchar(100)` | | 4 | IN | `sSuId` | `varchar(100)` | | 5 | OUT | `sReturn` | `varchar(1000)` | | 6 | OUT | `sCode` | `int` | ## Body _Body is not pre-cached. To inspect: `mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDURE `Sp_SalOrder_BtnEventClaim`'`._ ## Narrative **Business context:** 销售管理 → 销售订单管理 → 销售订单 (`salsalesorderslave`) — 研发任务认领 (R&D task claim) button. When a sales order has lines that need new-product development (NPI), an engineer presses 认领 on the grid to take ownership: the proc flips `bClaim=1`, stamps `sClaimPerson=sMakePerson` and `tClaimDate=NOW()`. The commented-out guard "该任务已被认领" suggests the original spec was to refuse re-claim; in the current body the row is overwritten unconditionally. Naming variant in `script/客户/千彩/`: `Sp_Zld_BtnEventClaim` (customer-specific override). **What it does:** Validates `sProInParam`, parses `$.params[0].value[*].sSlaveId`. For each line first reads the current `bClaim` (the result `p_bClaimed` is captured but the check is commented out), then unconditionally runs `UPDATE salsalesorderslave SET bClaim=1, sClaimPerson=sMakePerson, tClaimDate=NOW() WHERE sId=p_sTmpId AND sBrandsId=sBrId AND sSubsidiaryId=sSuId`. **Invocation:** Generic-dispatch button signature `(sProInParam, sMakePerson, sBrId, sSuId, OUT sReturn, OUT sCode)` — dispatched by `GenericProcedureCallServiceImpl.doGenericProcedureCall()` from the 销售订单 grid's 认领 line-toolbar button. No xly-src reference for the base proc; the 千彩 customer ships an `Sp_Zld_BtnEventClaim.sql` override. No gdsmodule row, no other proc references it — binding lives in the grid-button metadata.