Fun_FormulaReplace (function)
公式计算解析函数
- Type: FUNCTION
-
Returns:
longtext - Deterministic: NO
- SQL data access: CONTAINS SQL
Parameters
| # | Mode | Name | Type |
|---|---|---|---|
| 1 | IN | sFormulaReplace |
longtext |
| 2 | IN | replaceValue |
varchar(255) |
| 3 | IN | toReplaceValue |
varchar(255) |
Body
Body is not pre-cached. To inspect: mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE FUNCTIONFunFormulaReplace'._
Narrative
Business context: Token-substitution helper used by the formula-resolution family of procs (Sp_System_ReplaceField*) when expanding the variable placeholders inside a formula string (e.g. quote-price formulas, work-order calc formulas). One call replaces one [name] placeholder with its concrete value, plus a "concatenated trace" copy [name]value so downstream code can render the audit trail. Header comment is 公式计算解析函数 ("formula calc parsing function").
What it does: if toReplaceValue is purely numeric (regex [^0-9.]=0), it normalizes via ROUND(CONVERT(...)+0,4) to strip trailing zeros. Lowercases both keys. Returns '' for empty input. Then REPLACEs the placeholder (in both [name] and full-width 【name】 forms) with toReplaceValue and with the concatenated nametoReplaceValue trace token.
Invocation: called from Sp_System_ReplaceFieldNew, Sp_System_ReplaceField_Detail, Sp_System_ReplaceField_NEW, Sp_System_ReplaceField_NEW_ACT — the formula-substitution upgrades shipped under script/标版/upgrade/20220111公式解析实际详情 and 20220321计算获取公式解析.