Sp_ReplaceField_Calc.md 1.98 KB

Sp_ReplaceField_Calc (procedure)

公式语言转换成sql

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

Parameters

# Mode Name Type
1 IN sGuid varchar(100)
2 IN sSlaveGuid varchar(100)
3 IN sDetail longtext
4 IN sFormulaGuid varchar(100)
5 OUT sReturn longtext
6 IN sLoginId varchar(100)
7 IN sBrId varchar(100)
8 IN sSuId varchar(100)
9 IN sCode int

Body

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

Narrative

Business context: Formula-engine support — given a master/slave row and a formula sId from sisformula, parses each set @rN_xxx := value statement out of sisformula.sFormulaSet and persists the named parameter+value into mftcalcparam so downstream calculators (报价/工艺成本) can look it up. COMMENT '公式语言转换成sql' ("formula language → SQL").

What it does: Loads sFormulaSet and Chinese name map sColTitleName from sisformula for the brand/sub. Splits sFormulaSet by ;, and for each set @rN_<jsonName> := <value> clause: extracts p_sName and p_sValue, looks up p_sChineseName from the JSON column-title map, then either INSERT INTO mftcalcparam (sSrcId=sGuid, sSrcSlaveId=sSlaveGuid, sParamName, sChineseName, sParamValue) when the name still appears in sDetail, or DELETE FROM mftcalcparam for that key when the name is no longer referenced. Surfaces any externally-set @sReturn to the OUT.

Invocation: Called as CALL Sp_ReplaceField_Calc(...) from the quotation/work-order parts-standard calculators — Sp_Quotation__CalcDataPackPartsStd and Sp_WorkOrder_CalcDataPackPartsStd_child. Install scripts ship in script/标版/30100101/Sp_ReplaceField_Calc_.sql (with the patch under script/标版/upgrade/20220321计算获取公式解析/).