# `Sp_change_BtnEventbEnable` (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_change_BtnEventbEnable`'`._

## Narrative

**Business context:** 制造管理 / 产品工艺卡 — button handler for "启用版本号" (enable a 产品工艺更改/product-tech-change version). Flips the linked product-tech slave row to `bEnable=1`, marking the new technology version as the active one for production use.

**What it does:** Parses the standard `sProInParam` JSON envelope (`$.params[*].value[*].sId`). For each master id, executes `UPDATE mftproductchange M JOIN mftproductslave N ON M.sSrcslaveId = N.sId SET N.bEnable = 1 WHERE M.sId = p_sId` (tenant-scoped via `sBrandsId`/`sSubsidiaryId`). Nested loops walk both the `params` array and each value's `value` array, so a batch selection of change rows can be activated in a single call.

**Invocation:** Status: appears orphaned. No form-master binding, gdsmodule hook, other-routine caller, or xly-src caller. Naming follows the `Sp_BtnEvent_*` toolbar-button family (lower-case `change` instead of `BtnEvent` prefix), so it is most likely an early-draft or rename-stranded variant of a button action that today is reached through `GenericProcedureCallServiceImpl.doGenericProcedureCall()`. Candidate for maintainer audit — verify whether a toolbar/menu entry still names this proc as `sProcName`.
