224 subparam compute fix
This commit is contained in:
@@ -260,13 +260,20 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
|
||||
<!--- Секретность игнорируется. Все секреты доступны, как есть --->
|
||||
<!--- правда, мы тут можем работать только с сохраненными параметрами. Можем попробовать полагаться на правило: зависимые параметры всегда позже (не факт, что это получится при конкурентном сохранении) --->
|
||||
<!--- проблема: нам нужен тут instance_operation_uid, но таскать его в аргументах по всей цепочке вызовов неудобно. Если бы это у нас был метод CFS параметра, все было бы просто - это у нас поле параметра --->
|
||||
<cfif structKeyExists(this.params,arguments.param)><!--- AND len(this.params[arguments.param]) --->
|
||||
<!--- ошибка: в строке параметров у нас ключ param.subparam, а в аргументах он разобран по частям
|
||||
при этом мы ожидаем в параметрах структуру paramName:{subparamName:subparamValue}
|
||||
но почему не находим в сохраненных? возможно такое совпадение, что в сценарии у нас как раз надо выбрать svcId а они не --->
|
||||
<!--- {"startupConfiguration":{"vdcUid":"ea81db31-2197-407d-b32b-e60577c2671c"}} --->
|
||||
<!--- this.params <cfdump var=#this.params#/>
|
||||
arguments <cfdump var=#arguments# /> --->
|
||||
<cfif structKeyExists(this.params,arguments.param)><!--- AND len(this.params[arguments.param]) --->
|
||||
<cfif structKeyExists(arguments,"subparam")><!--- *** не изящно, но просто и понятно --->
|
||||
<cfreturn deserializeJson(this.params[arguments.param])[arguments.subparam]/>
|
||||
<cfelse>
|
||||
<cfreturn (this.params[arguments.param])[arguments.subparam]/>
|
||||
<cfelse>this.params[arguments.param] <!--- <cfdump var=#this.params[arguments.param]#/> --->
|
||||
<cfreturn this.params[arguments.param]/>
|
||||
</cfif>
|
||||
</cfif>
|
||||
<!--- не нашли параметра в запросе, ищем в сохраненных --->
|
||||
<cfquery name="local.qCfsParam">
|
||||
select p.param_value
|
||||
from instance_operation_cfs_param p
|
||||
@@ -274,6 +281,7 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
|
||||
where p.instance_operation_uid = <cfqueryparam cfsqltype="cf_sql_other" value=#this.instance_operation_uid# null=#!isValid('guid',this.instance_operation_uid)#/>
|
||||
AND s.svc_operation_cfs_param = <cfqueryparam cfsqltype="cf_sql_varchar" value=#arguments.param#/>
|
||||
</cfquery>
|
||||
<!--- <cfdump var=#this.keys#/> --->
|
||||
<cfif structKeyExists(arguments,"subparam")><!--- *** не изящно, но просто и понятно --->
|
||||
<cfset var value = deserializeJson(local.qCfsParam.param_value)/>
|
||||
<cfif isStruct(value) AND structKeyExists(value, arguments.subparam)>
|
||||
|
||||
Reference in New Issue
Block a user