206 param_compute fixes svc_operation_cfs_param_id
This commit is contained in:
+1
-1
@@ -57,7 +57,7 @@
|
||||
|
||||
//variables.framework.docs={};
|
||||
variables.framework.docs.APIName="svc-api";
|
||||
variables.framework.docs.APIVersion="0.205"; /*$ git config --global --unset user.password*/
|
||||
variables.framework.docs.APIVersion="0.206"; /*$ git config --global --unset user.password*/
|
||||
|
||||
variables.framework.globalHeaders = structNew();
|
||||
variables.framework.globalHeaders["Access-Control-Expose-Headers"] = "Location";
|
||||
|
||||
@@ -23,8 +23,8 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
|
||||
</cfsilent>
|
||||
<!--- cfproperty использовать не надо, это для веб сервисов --->
|
||||
|
||||
|
||||
<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")><!--- хотя вот этот ключ известен всегда... но для известного параметра мы же можем его не передавать--->
|
||||
@@ -67,6 +67,7 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
|
||||
<cfset this.resourceRealm=arguments.params.resourceRealm/>
|
||||
</cfif>
|
||||
<!--- <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>
|
||||
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
|
||||
<cfset local.expression = ""/> <!--- нет смысла выносить это в поля класса, оно нужно только локально --->
|
||||
<cfset local.calculatedValueList = ""/>
|
||||
<cfset local.keys = deserializeJson(arguments.keys)/>
|
||||
<cfset local.keys.svcOperationCfsParamId=arguments.svcOperationCfsParamId/><!--- дополняем --->
|
||||
<cfset local.params = deserializeJson(arguments.params)/>
|
||||
|
||||
<cfset local.keys.svcOperationCfsParamId = arguments.svcOperationCfsParamId/> <!--- *** сомнительное дело гонять аргументы туда-сюда --->
|
||||
|
||||
@@ -50,11 +50,12 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
|
||||
<cfset local.keys = deserializeJson(arguments.keys)/>
|
||||
<cfset local.params = deserializeJson(arguments.params)/>
|
||||
|
||||
<cfset local.keys.svcOperationCfsSubparamId = arguments.svcOperationCfsSubparamId/> <!--- *** сомнительное дело гонять аргументы туда-сюда --->
|
||||
<cfset local.keys.svcOperationCfsSubparamId = arguments.svcOperationCfsSubparamId/> <!--- *** сомнительное дело гонять аргументы туда-сюда ---><!--- *** по-моему, не используется, поэтому достанем svcOperationCfsParamId прямо тут --->
|
||||
|
||||
<cfquery name="local.qCfsSubparam" result="local.result">
|
||||
select
|
||||
<m:field_set titleMapOut="local.titleMap" lengthOut="fieldCount">
|
||||
<m:field>sop.svc_operation_cfs_param_id</m:field>
|
||||
<m:field>sop.data_type</m:field>
|
||||
<m:field>sop.svc_operation_cfs_subparam</m:field>
|
||||
<m:field>sop.expression</m:field>
|
||||
@@ -69,6 +70,7 @@ arguments.requestArguments.specificationId=usrCustomerInfo.specificationId; //In
|
||||
</cfif>
|
||||
|
||||
<cfset local.expression=local.qCfsSubparam.expression/>
|
||||
<cfset local.keys.svcOperationCfsParamId = local.qCfsSubparam.svc_operation_cfs_param_id/>
|
||||
|
||||
<!--- *** можно обратить внимание, что мы инстанциируем не субпараметр, а параметр (цинично пользуясь их функциональной идентичностью... но некрасиво) --->
|
||||
<cfif len(local.expression)>
|
||||
|
||||
Reference in New Issue
Block a user