076 instance_operation.resource_realm_id
This commit is contained in:
@@ -291,32 +291,7 @@
|
||||
<cfreturn noData().withStatus(204, "No Content") />
|
||||
</cffunction>
|
||||
|
||||
<!--- <cffunction name="checkDisplayName" access="public" hint="возвращает пустую строку при успешной проверке, иначе описание ошибки">
|
||||
<cfargument name="display_name"/>
|
||||
<cfargument name="usr_id"/>
|
||||
<cfargument name="instance_uid"/>
|
||||
|
||||
<cfif len(arguments.display_name) LT 3>
|
||||
<cfthrow type="invalidParamValue" message="Имя должно быть не короче 3 символов"/>/>
|
||||
<cfelseif len(arguments.display_name) GT 80>
|
||||
<cfthrow type="invalidParamValue" message="Имя должно быть не длиннее 80 символов"/>/>
|
||||
<cfelse>
|
||||
<cfquery name="qUniqueDisplayName">
|
||||
select count(*) as cnt from instance e
|
||||
join specification_item i on (e.specification_item_id=i.specification_item_id)
|
||||
join specification s on (i.specification_id=s.specification_id)
|
||||
join contract d on (s.contract_id=d.contract_id)
|
||||
join contragent k on (d.contragent_id=k.contragent_id)
|
||||
join usr u on (k.contragent_id=u.contragent_id)
|
||||
where u.usr_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#arguments.usr_id#/>
|
||||
AND lower(e.display_name)=lower(<cfqueryparam cfsqltype="cf_sql_varchar" value=#arguments.display_name#/>)
|
||||
AND e.instance_uid <> <cfqueryparam cfsqltype="cf_sql_other" value=#arguments.instance_uid#/>
|
||||
</cfquery>
|
||||
<cfif qUniqueDisplayName.cnt GT 0>
|
||||
<cfthrow type="invalidParamValue" message="Имя должно быть уникальным"/><!--- *** в пределах контракта/спецификации --->
|
||||
</cfif>
|
||||
</cfif>
|
||||
</cffunction> ---><!--- *** оказывается, я независимо реализовал почти точно такую же функцию для POST, и забыл --->
|
||||
|
||||
|
||||
<!--- неудобно бегать из одного компонента в соседний при том, что разделение ответственности между ними получается довольно странное
|
||||
Решил, что логичнее повесить проверки уникальности и генерацию дефолтов на коллекцию, тем более и связей так меньше --->
|
||||
@@ -329,11 +304,4 @@
|
||||
<cfset CreateObject("component", "instance_ls").checkDisplayName(arguments.displayName, arguments.usrId, arguments.instanceUid)/>
|
||||
</cffunction>
|
||||
|
||||
|
||||
<!--- <cffunction name="generateDefaultName">
|
||||
<cfargument name="service_id" type="numeric"/>
|
||||
|
||||
<cfreturn CreateObject("component", "instance_ls").generateDefaultName(arguments.service_id)/>
|
||||
</cffunction> --->
|
||||
|
||||
</cfcomponent>
|
||||
@@ -22,6 +22,8 @@
|
||||
<m:field_set titleMapOut="local.titleMap" lengthOut="local.fieldCount">
|
||||
<m:field>o.instance_operation_uid::text as instance_operation_uid</m:field>
|
||||
<m:field>o.operation</m:field>
|
||||
<m:field>o.resource_realm_id</m:field>
|
||||
<m:field>r.resource_realm</m:field>
|
||||
<m:field>o.instance_uid::text as instance_uid</m:field>
|
||||
<m:field>to_char(o.dt_submit, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_submit</m:field>
|
||||
<m:field>o.submit_result</m:field>
|
||||
@@ -49,6 +51,7 @@
|
||||
join contragent k on (d.contragent_id=k.contragent_id)
|
||||
join svc v on (e.service_id=v.svc_id)
|
||||
join svc_operation so on (v.svc_id=so.svc_id AND o.operation=so.operation)
|
||||
join resource_realm r on (o.resource_realm_id=r.resource_realm_id)
|
||||
left outer join usr u on (o.updater_id=u.usr_id)
|
||||
where <!--- u.usr_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#arguments.usrId#/> AND--->
|
||||
o.instance_operation_uid=<cfqueryparam cfsqltype="cf_sql_other" value="#arguments.instanceOperationUid#" null=#!isValid('guid',arguments.instanceOperationUid)#/>
|
||||
|
||||
@@ -186,12 +186,15 @@
|
||||
/>
|
||||
</cffunction>
|
||||
|
||||
<cffunction name="checkParam">
|
||||
<cffunction name="checkParam" returnType="void">
|
||||
<!--- проверка параметров по метаданным, независимо от семантики самого параметра --->
|
||||
<cfargument name="svcOperationCfsParamId" type="numeric" required = true/>
|
||||
<cfargument name="paramValue" required = true/>
|
||||
<cfargument name="instanceOperationCfsParamUid" type="guid" required = false/><!--- передавать для существующего параметра - используется при проверке уникальности --->
|
||||
<cfargument name="instanceOperationCfsParamUid" type="guid" default="00000000-0000-0000-0000-000000000000"/><!--- используется при проверке уникальности, чтобы не сравнивать с собой --->
|
||||
<!--- *** Вероятно, стоит возвращать конкретную ругань --->
|
||||
<!--- принадлежит ли параметр к данному сервису, проверяется выше --->
|
||||
<!--- принадлежит ли параметр данному сервису, проверяется выше --->
|
||||
|
||||
<!--- получаем метаданные параметра --->
|
||||
<cfquery name="qSvcOperationCfsParam">
|
||||
select sop.svc_operation_cfs_param_id
|
||||
,sop.svc_operation_cfs_param
|
||||
@@ -211,7 +214,7 @@
|
||||
<cfif qSvcOperationCfsParam.is_required GT 0 AND len(arguments.paramValue) EQ 0>
|
||||
<!--- <cfreturn "Missing required parameter (#qSvcOperationCfsParam.svc_operation_cfs_param#)"/> --->
|
||||
<cfthrow type="invalidParamValue" message="Missing required parameter (#qSvcOperationCfsParam.svc_operation_cfs_param#)"/>
|
||||
<cfelseif len(arguments.paramValue) AND NOT checkValue(arguments.paramValue,qSvcOperationCfsParam.data_type)>
|
||||
<cfelseif len(arguments.paramValue) AND NOT validateDataType(arguments.paramValue,qSvcOperationCfsParam.data_type)>
|
||||
<!--- <cfreturn "Invalid format (#qSvcOperationCfsParam.svc_operation_cfs_param#)"/> --->
|
||||
<cfthrow type="invalidParamValue" message="Invalid format (#qSvcOperationCfsParam.svc_operation_cfs_param#)"/>
|
||||
</cfif>
|
||||
@@ -244,7 +247,25 @@
|
||||
|
||||
<!--- ****** Внимание! Этот код сравнивает параметры одноименных операций, но уникальность должна быть и между create-modify и т.п. --->
|
||||
|
||||
<!--- *** при этом мы не исключаем уделенные инстансы, что неудобно --->
|
||||
<cfset checkUniqueness(
|
||||
qSvcOperationCfsParam.svc_operation_cfs_param_id, <!--- *** есть в аргументах, но было так - пока не меняю --->
|
||||
arguments.svcOperationCfsParamId,
|
||||
arguments.paramValue,
|
||||
qSvcOperationCfsParam.unique_scope,
|
||||
arguments.instanceOperationCfsParamUid
|
||||
)/>
|
||||
|
||||
</cffunction>
|
||||
|
||||
<cffunction name="checkUniqueness" returnType="void">
|
||||
<!--- использую void, потому что с исключением проще передавать информацию о конкретном характере ошибки. Чем возвращать объект ошибки - проше бросить исключение --->
|
||||
<cfargument name="svcOperationCfsParamId" type="integer"/>
|
||||
<cfargument name="svcOperationCfsParamName" type="string"/><!--- нужен только для формирования текста сообщения об ошибке --->
|
||||
<cfargument name="paramValue" type="string"/>
|
||||
<cfargument name="scope" type="string"/>
|
||||
<cfargument name="instanceOperationCfsParamUid" type="guid"/>
|
||||
<!--- request.usr_id passed implicitly --->
|
||||
|
||||
<cfswitch expression=#qSvcOperationCfsParam.unique_scope#>
|
||||
<cfcase value="provider">
|
||||
<cfquery name="qUnique">
|
||||
@@ -253,18 +274,19 @@
|
||||
join instance_operation o on (p.instance_operation_uid=o.instance_operation_uid)
|
||||
join instance e on (o.instance_uid=e.instance_uid)
|
||||
where p.param_value=<cfqueryparam cfsqltype="cf_sql_varchar" value=#arguments.paramValue#/>
|
||||
AND p.svc_operation_cfs_param_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#qSvcOperationCfsParam.svc_operation_cfs_param_id#/>
|
||||
<cfif structKeyExists(arguments,"instanceOperationCfsParamUid")>
|
||||
AND p.instance_operation_cfs_param_uid <> <cfqueryparam cfsqltype="cf_sql_other" value=#arguments.instanceOperationCfsParamUid#/><!--- null=#!isValid("guid",arguments.instanceOperationCfsParamUid)# --->
|
||||
AND p.svc_operation_cfs_param_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#arguments.svcOperationCfsParamId#/>/*limit to the current svc param*/
|
||||
<cfif arguments.instanceOperationCfsParamUid NEQ "00000000-0000-0000-0000-000000000000">
|
||||
<!--- не решаюсь оставить эту проверку на БД, потому что наличие записи с 00000000-0000-0000-0000-000000000000 может все сломать --->
|
||||
AND p.instance_operation_cfs_param_uid <> <cfqueryparam cfsqltype="cf_sql_other" value=#arguments.instanceOperationCfsParamUid#/>/*exclude itself*/
|
||||
</cfif>
|
||||
AND (select cast(st.instance_data->>'isDeleted' as boolean) from instance_state st where st.instance_uid=e.instance_uid order by version desc limit 1) IS NOT TRUE
|
||||
</cfquery>
|
||||
AND (select cast(st.instance_data->>'isDeleted' as boolean) from instance_state st where st.instance_uid=e.instance_uid order by version desc limit 1) IS NOT TRUE /*ignore deleted instances*/
|
||||
</cfquery><!--- ****** здесь может таиться трудно понимаемый баг с отсутствием записи --->
|
||||
<!--- <cfdump var=#qUnique#/><cfabort/> --->
|
||||
<cfif qUnique.cnt GT 0>
|
||||
<!--- <cfreturn '#qSvcOperationCfsParam.svc_operation_cfs_param# = "#arguments.paramValue#" is not unique in the provider scope'/> --->
|
||||
<cfthrow type="invalidParamValue" message='#qSvcOperationCfsParam.svc_operation_cfs_param# = "#arguments.paramValue#" is not unique in the provider scope'/>
|
||||
<cfthrow type="invalidParamValue" message='#arguments.svcOperationCfsParamName# = "#arguments.paramValue#" is not unique in the provider scope'/>
|
||||
</cfif>
|
||||
</cfcase>
|
||||
|
||||
<cfcase value="tenant">
|
||||
<cfquery name="qUnique">
|
||||
select count(*) as cnt
|
||||
@@ -277,29 +299,31 @@
|
||||
join contragent k on (d.contragent_id=k.contragent_id)
|
||||
join usr u on (k.contragent_id=u.contragent_id)
|
||||
where p.param_value=<cfqueryparam cfsqltype="cf_sql_varchar" value=#arguments.paramValue#/>
|
||||
AND svc_operation_cfs_param_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#qSvcOperationCfsParam.svc_operation_cfs_param_id#/>
|
||||
AND u.usr_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#request.usr_id#/>
|
||||
<cfif structKeyExists(arguments,"instanceOperationCfsParamUid")>
|
||||
AND p.instance_operation_cfs_param_uid <> <cfqueryparam cfsqltype="cf_sql_other" value=#arguments.instanceOperationCfsParamUid#/> <!--- null=#!isValid("guid",arguments.instanceOperationCfsParamUid)# --->
|
||||
AND svc_operation_cfs_param_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#arguments.svcOperationCfsParamId#/>/*limit to the current svc param*/
|
||||
AND u.usr_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#request.usr_id#/>/*limit to the contragent of current user*/
|
||||
<cfif arguments.instanceOperationCfsParamUid NEQ "00000000-0000-0000-0000-000000000000">
|
||||
<!--- не решаюсь оставить эту проверку на БД, потому что наличие записи с 00000000-0000-0000-0000-000000000000 может все сломать --->
|
||||
AND p.instance_operation_cfs_param_uid <> <cfqueryparam cfsqltype="cf_sql_other" value=#arguments.instanceOperationCfsParamUid#/>/*exclude itself*/
|
||||
</cfif>
|
||||
AND (select cast(st.instance_data->>'isDeleted' as boolean) from instance_state st where st.instance_uid=e.instance_uid order by version desc limit 1) IS NOT TRUE
|
||||
/*to ignore deleted instances*/
|
||||
</cfquery>
|
||||
AND (select cast(st.instance_data->>'isDeleted' as boolean) from instance_state st where st.instance_uid=e.instance_uid order by version desc limit 1) IS NOT TRUE /*ignore deleted instances*/
|
||||
</cfquery><!--- ****** здесь может таиться трудно понимаемый баг с отсутствием записи --->
|
||||
<!--- <cfdump var=#qUnique#/> --->
|
||||
<cfif qUnique.cnt GT 0>
|
||||
<!--- <cfreturn '#qSvcOperationCfsParam.svc_operation_cfs_param# = "#arguments.paramValue#" is not unique in the tenant scope'/> --->
|
||||
<cfthrow type="invalidParamValue" message='#qSvcOperationCfsParam.svc_operation_cfs_param# = "#arguments.paramValue#" is not unique in the tenant scope'/>
|
||||
<cfthrow type="invalidParamValue" message='#arguments.svcOperationCfsParamName# = "#arguments.paramValue#" is not unique in the tenant scope'/>
|
||||
</cfif>
|
||||
</cfcase>
|
||||
|
||||
<cfdefaultcase></cfdefaultcase>
|
||||
|
||||
</cfswitch>
|
||||
<!--- <cfreturn ""/> --->
|
||||
|
||||
</cffunction>
|
||||
|
||||
<cffunction name="checkValue" returnType="boolean">
|
||||
<cffunction name="validateDataType" returnType="boolean">
|
||||
<cfargument name="value" type="string"/>
|
||||
<cfargument name="dataType" type="string"/>
|
||||
<!--- Что возвращать-то?
|
||||
|
||||
<!--- Что возвращать-то?
|
||||
Идею бросать исключение при некорректном вводе надо отринуть. Все введенные параметры надо обработать и не терять --->
|
||||
|
||||
<cfswitch expression=#arguments.dataType#>
|
||||
@@ -322,7 +346,7 @@
|
||||
<cfreturn isNumeric(arguments.value)/>
|
||||
</cfcase>
|
||||
<cfcase value="uuid">
|
||||
<cfreturn isValid("guid",arguments.value)/><!--- *** или GUID? Или принимать оба формата и приводить к одному? А как быть с БД--->
|
||||
<cfreturn isValid("guid",arguments.value)/><!--- *** или GUID? Или принимать оба формата GUID UUID и приводить к одному? А как быть с БД--->
|
||||
</cfcase>
|
||||
<cfdefaultcase><cfreturn true/>
|
||||
<cfthrow type="custom" detail="unsupported CFS parameter value type (#arguments.dataType#)"/>
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
<cffunction name="post" hint="Создание новой операции. Отдельно загружаются CFS параметры, генерируются RFS параметры. Запускается операция отдельным вызовом. До запуска CFS параметры могут корректироваться (а надо?). Запущенная операция вместе с параметрами навсегда становится Read Only (при желании можем реализовать ее клонирование). Можем реализовать корректировку параметров, но непонятно, зачем. Когда мы конфигурируем инстанс, на самом деле мы задаем CFS параметры операции create. Можно править параметры, а можно пересоздать операцию с новыми параметрами. Предусмотреть удаление (метод DELETE) незапущенной операции?">
|
||||
<cfargument name="instanceUid" type="string" required=true hint="type:guid"/>
|
||||
<cfargument name="operation" type="string" required=true hint="type:string decsiption: operation name, e.g. create"/>
|
||||
<cfargument name="resourceRealmId" type="string" default=-1 hint="type:integer decsiption: идентификатор ресурсной платформы"/>
|
||||
<!--- *** полноценная валидация операции предполагает проверку, что операция поддерживается для данного сервиса и текущего состояния инстанса. Можно представить себе зависимость этого от параметров, но хотелось бы избежать такого усложнения --->
|
||||
<!--- Можно отметить, что, например, допустимость операции delete зависит от контекста - сколько времени сервис остановлен --->
|
||||
<cftry>
|
||||
@@ -40,7 +41,7 @@
|
||||
<cftry>
|
||||
<cfquery name="local.qSave">
|
||||
insert into instance_operation
|
||||
(instance_uid, instance_operation_uid, operation, dt_created, creator_id, dt_updated, updater_id)
|
||||
(instance_uid, instance_operation_uid, operation, dt_created, creator_id, dt_updated, updater_id,resource_realm_id)
|
||||
values
|
||||
(
|
||||
<cfqueryparam cfsqltype="cf_sql_other" value="#arguments.instanceUid#" />
|
||||
@@ -50,6 +51,7 @@
|
||||
,<cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.usrId#" />
|
||||
,<cfqueryparam cfsqltype="cf_sql_timestamp" value="#Now()#" />
|
||||
,<cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.usrId#" />
|
||||
,<cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.resourceRealmId#" />
|
||||
);
|
||||
</cfquery>
|
||||
|
||||
|
||||
@@ -63,13 +63,15 @@
|
||||
left outer join instance_operation_cfs_param iop on (sop.svc_operation_cfs_param_id=iop.svc_operation_cfs_param_id AND iop.instance_operation_uid=<cfqueryparam cfsqltype="cf_sql_other" value="#arguments.instanceOperationUid#" null=#!isValid('guid',arguments.instanceOperationUid)#/>)
|
||||
where sop.svc_operation_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#local.qSvcOperation.svc_operation_id#"/>
|
||||
</cfquery><!--- <cfdump var=#local.qCheckCfsParams#/><cfabort/> --->
|
||||
|
||||
<cfset local.cfsParamChecker = CreateObject("component", "instance_operation_cfs_param_ls")/>
|
||||
|
||||
<!--- we could check existence of required parameters right in the query,
|
||||
but for possible value chech and verbosity do it in the loop --->
|
||||
<cfloop query=#local.qCheckCfsParams#>
|
||||
<cfif (local.qCheckCfsParams.is_required GT 0 AND NOT len(local.qCheckCfsParams.instance_operation_cfs_param_uid) GT 0)>
|
||||
<cfif (local.qCheckCfsParams.is_required GT 0 AND NOT len(local.qCheckCfsParams.instance_operation_cfs_param_uid) GT 0)><!--- check CFS param existence --->
|
||||
<cfreturn representationOf(this.helper.formatMessage("required CFS parameter #local.qCheckCfsParams.svc_operation_cfs_param# (#local.qCheckCfsParams.svc_operation_cfs_param_id#) is missing", "Missing required CFS parameter")).withStatus(409)/>
|
||||
<cfelse>
|
||||
<cfelse><!--- validate CFS param--->
|
||||
<cfset local.cfsParamChecker.checkParam(local.qCheckCfsParams.svc_operation_cfs_param_id, qCheckCfsParams.param_value, qCheckCfsParams.instance_operation_cfs_param_uid)/>
|
||||
</cfif>
|
||||
</cfloop><!--- <cfdump var=#local.qCheckCfsParams#/><cfabort/> --->
|
||||
@@ -77,7 +79,10 @@
|
||||
<!--- ***** тут должен быть контроль доступа на уровне параметров. Желательно по максимуму параноидальный --->
|
||||
<!--- ***** или при сабмите. Может быть, и на уровне RFS параметров тоже --->
|
||||
<cfset generateRfsParams(arguments.instanceOperationUid, arguments.usrId, arguments.contragentId, arguments.contractId)/>
|
||||
|
||||
<!--- **************************** --->
|
||||
<cfset submitJob(arguments.instanceOperationUid)/>
|
||||
<!--- **************************** --->
|
||||
|
||||
<cfcatch type="invalidParamValue">
|
||||
<cfreturn representationOf(this.helper.formatBadRequestError(cfcatch)).withStatus(400)/>
|
||||
@@ -102,16 +107,18 @@
|
||||
<cfargument name="contractId" type="numeric"/>
|
||||
|
||||
<cfquery name="qSvcOperation">
|
||||
select so.svc_operation_id, io.instance_uid, so.operation
|
||||
select so.svc_operation_id, io.instance_uid, so.operation, r.resource_realm
|
||||
from instance_operation io
|
||||
join instance e on (io.instance_uid=e.instance_uid)
|
||||
join svc_operation so on (e.service_id=so.svc_id AND io.operation=so.operation)
|
||||
left outer join resource_realm r on so.resource_realm_id=r.resource_realm_id
|
||||
where io.instance_operation_uid=<cfqueryparam cfsqltype="cf_sql_other" value=#arguments.instanceOperationUid# null=#!isValid("guid",arguments.instanceOperationUid)#/>
|
||||
</cfquery>
|
||||
<!--- поступим проще, по engine/generate_rfs_12.cfm --->
|
||||
<cfset setInstanceOperationRfsParam(arguments.instanceOperationUid, "instanceUid", qSvcOperation.instance_uid)/>
|
||||
<cfset setInstanceOperationRfsParam(arguments.instanceOperationUid, "operationUid", arguments.instanceOperationUid)/>
|
||||
<cfset setInstanceOperationRfsParam(arguments.instanceOperationUid, "modifierId", arguments.usrId)/>
|
||||
<cfset setInstanceOperationRfsParam(arguments.instanceOperationUid, "resourceRealm", qSvcOperation.resource_realm)/>
|
||||
|
||||
<cfif qSvcOperation.operation EQ "create"><!--- несколько костыльно --->
|
||||
<cfset setInstanceOperationRfsParam(arguments.instanceOperationUid, "billingObject", "underconstruction")/>
|
||||
@@ -148,24 +155,24 @@
|
||||
</cfquery>
|
||||
</cffunction>
|
||||
|
||||
<!---
|
||||
-- полезный селект, не выбрасывать
|
||||
<cfquery name="qSvcOperationCfsParam">
|
||||
select sop.svc_operation_cfs_param_id
|
||||
,iop.instance_operation_cfs_param_uid::text as instance_operation_cfs_param_uid /*pgjdbc issue fix*/
|
||||
,iop.param_value
|
||||
,sop.svc_operation_cfs_param
|
||||
,sop.data_type
|
||||
,sop.is_required
|
||||
,sop.maxlength,sop.minlength,sop.regex,sop.unique_scope
|
||||
from instance_operation io
|
||||
join instance e on (io.instance_uid=e.instance_uid)
|
||||
join svc_operation so on (e.service_id=so.svc_id AND io.operation=so.operation)
|
||||
join svc_operation_cfs_param sop on (so.svc_operation_id=sop.svc_operation_id)
|
||||
left outer join instance_operation_cfs_param iop
|
||||
on (sop.svc_operation_cfs_param_id=iop.svc_operation_cfs_param_id AND io.instance_operation_uid=iop.instance_operation_uid)
|
||||
where iop.instance_operation_uid=<cfqueryparam cfsqltype="cf_sql_other" value=#arguments.instanceOperationUid# null=#!isValid("guid",arguments.instanceOperationUid)#/>)
|
||||
</cfquery>
|
||||
<!---
|
||||
-- полезный селект, не выбрасывать
|
||||
<cfquery name="qSvcOperationCfsParam">
|
||||
select sop.svc_operation_cfs_param_id
|
||||
,iop.instance_operation_cfs_param_uid::text as instance_operation_cfs_param_uid /*pgjdbc issue fix*/
|
||||
,iop.param_value
|
||||
,sop.svc_operation_cfs_param
|
||||
,sop.data_type
|
||||
,sop.is_required
|
||||
,sop.maxlength,sop.minlength,sop.regex,sop.unique_scope
|
||||
from instance_operation io
|
||||
join instance e on (io.instance_uid=e.instance_uid)
|
||||
join svc_operation so on (e.service_id=so.svc_id AND io.operation=so.operation)
|
||||
join svc_operation_cfs_param sop on (so.svc_operation_id=sop.svc_operation_id)
|
||||
left outer join instance_operation_cfs_param iop
|
||||
on (sop.svc_operation_cfs_param_id=iop.svc_operation_cfs_param_id AND io.instance_operation_uid=iop.instance_operation_uid)
|
||||
where iop.instance_operation_uid=<cfqueryparam cfsqltype="cf_sql_other" value=#arguments.instanceOperationUid# null=#!isValid("guid",arguments.instanceOperationUid)#/>)
|
||||
</cfquery>
|
||||
--->
|
||||
|
||||
<cffunction name="submitJob">
|
||||
@@ -192,8 +199,7 @@
|
||||
set dt_submit=<cfqueryparam cfsqltype="cf_sql_timestamp" value=#now()#/>
|
||||
,dt_start=null, dt_finish=null, submit_result='0'
|
||||
where instance_operation_uid=<cfqueryparam cfsqltype="cf_sql_other" value=#arguments.instanceOperationUid#/>
|
||||
</cfquery>
|
||||
|
||||
</cfquery>
|
||||
|
||||
<cftry>
|
||||
<cfhttp method="post"
|
||||
|
||||
Reference in New Issue
Block a user