206 param_compute fixes svc_operation_cfs_param_id

This commit is contained in:
2026-02-05 12:57:57 +03:00
parent b44255dfbd
commit 5d0b718020
4 changed files with 38 additions and 10 deletions
+33 -8
View File
@@ -23,8 +23,8 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
</cfsilent>
<!--- cfproperty использовать не надо, это для веб сервисов --->
<cffunction name="init">
<cffunction name="init">
<!--- *** ---------------- !!! note camelCase in keys naming!!! ----------------- --->
<!--- для нового инстанса нам нужно знать хотя бы его класс (сервис) --->
<cfargument name="keys" type="struct" required=true/>
<cfargument name="params" type="struct" required=true/>
@@ -35,8 +35,8 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
<cfset this.instance_operation_uid = "00000000-0000-0000-0000-000000000000"/><!--- *** костыль default=--->
<cfset this.instance_uid = "00000000-0000-0000-0000-000000000000"/><!--- *** костыль default=--->
<cfif structKeyExists(arguments.keys,"instanceOperationCfsParamUid")>
<cfset this.instance_operation_cfs_param_uid=arguments.keys.instanceOperationCfsParamUid/><!--- *** camelCase!!! --->
<cfif structKeyExists(arguments.keys,"instanceOperationCfsParamUid") AND isValid("guid", arguments.keys.instanceOperationCfsParamUid)>
<cfset this.instance_operation_cfs_param_uid=arguments.keys.instanceOperationCfsParamUid/>
<cfquery name="local.qResolve">
select p.instance_operation_uid, o.instance_uid, p.svc_operation_cfs_param_id
from instance_operation_cfs_param p
@@ -48,7 +48,7 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
<cfset this.svc_operation_cfs_param_id = local.qResolve.svc_operation_cfs_param_id/>
</cfif>
<!--- *** обратить внимание, тут возможны конфликты противоречивых ключей, мы никак не контролируем. но если ресолвить в обратном порядке, они хотя бы будут согласованными (хотя могут отличаться от аргументов... пойми что лучше... или проверять и бросать исключение --->
<cfif structKeyExists(arguments.keys,"instanceOperationUid")>
<cfif structKeyExists(arguments.keys,"instanceOperationUid") AND isValid("guid", arguments.keys.instanceOperationUid)>
<cfset this.instance_operation_uid=arguments.keys.instanceOperationUid/>
<cfquery name="local.qResolve">
select o.instance_uid
@@ -57,7 +57,7 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
</cfquery>
<cfset this.instance_uid=toString(local.qResolve.instance_uid)/>
</cfif>
<cfif structKeyExists(arguments.keys,"instanceUid")>
<cfif structKeyExists(arguments.keys,"instanceUid") AND isValid("guid",arguments.keys.instanceUid)>
<cfset this.instance_uid=arguments.keys.instanceUid/>
</cfif>
<cfif structKeyExists(arguments.keys,"svcOperationCfsParamId")><!--- хотя вот этот ключ известен всегда... но для известного параметра мы же можем его не передавать--->
@@ -66,7 +66,8 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
<cfif structKeyExists(arguments.params,"resourceRealm")>
<cfset this.resourceRealm=arguments.params.resourceRealm/>
</cfif>
<!--- <cfdump var=#this# abort=true/> --->
<!--- <cfdump var=#this# abort=true/> --->
<!--- <cfdump var=#this#/> --->
<cfreturn this>
</cffunction>
@@ -354,7 +355,7 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
</cffunction>
<cffunction name="getInstanceState" returntype="struct">
<!--- <cffunction name="getInstanceState" returntype="struct">
<cfargument name="instanceUid" type="guid" required="true"/>
<cfset var local={}/>
@@ -376,6 +377,30 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
<cfreturn structConfig/>
</cfif>
<cfreturn {}/>
</cffunction> --->
<cffunction name="getInstanceState" returntype="struct">
<cfargument name="instanceUid" type="guid" default=#this.instance_uid#/>
<cfset var local={}/>
<cfquery name="local.qInstance" datasource="cmdb">
select g.instance_state_uid, g.version, g.dt_state, g.instance_data, g.is_test, g.instance_uid
from instance_state g
where g.instance_uid=<cfqueryparam cfsqltype="cf_sql_other" value=#arguments.instanceUid#/>
order by g.version desc
limit 1
</cfquery>
<!--- <cfreturn deserializeJson(local.qInstance.instance_data)/><cfabort/> --->
<cftry>
<cfset var structConfig = deserializeJson(local.qInstance.instance_data)/>
<cfcatch type="ANY">
<cfreturn {"error":"error parsing state"}/>
</cfcatch>
</cftry>
<cfif isEmpty(structConfig)>
<cfreturn {}/>
</cfif>
<cfreturn structConfig/>
</cffunction>