select
o.instance_operation_uid::text as instance_operation_uid
o.operation
o.instance_uid::text as instance_uid
to_char(o.dt_submit, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_submit
o.submit_result
o.error_log
o.note
to_char(o.dt_start, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_start
to_char(o.dt_finish, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_finish
extract('epoch' from coalesce(o.dt_finish,CURRENT_TIMESTAMP)- o.dt_start) as duration
o.is_successful
e.display_name
e.service_id
e.specification_item_id
to_char(o.dt_created, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_created
to_char(o.dt_updated, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_updated
o.updater_id
u.login as updater_login
u.shortname as updater_shortname
v.svc
so.man
so.svc_operation_id
coalesce((o.dt_start IS NOT NULL AND o.dt_finish IS NULL AND o.submit_result='201'),false) as is_in_progress
coalesce((o.dt_start IS NULL AND o.submit_result='201'),false) as is_pending
from instance_operation o
join instance e on (o.instance_uid=e.instance_uid)
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 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)
left outer join usr u on (o.updater_id=u.usr_id)
where
o.instance_operation_uid=
AND s.specification_id=
select
ios.instance_operation_stage_uid::text as instance_operation_stage_uid
ios.stage
ios.is_successful
to_char(ios.dt_start, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_start
to_char(ios.dt_finish, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_finish
round(extract('epoch' from coalesce(ios.dt_finish,CURRENT_TIMESTAMP)- ios.dt_start),1) as duration
ios.stage_msg
from instance_operation_stage ios
where ios.instance_operation_uid=
order by dt_start asc
select
st.instance_state_uid::text as instance_state_uid
st.version
st.creator_id
to_char(st.dt_state, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_state
st.is_test
st.instance_operation_uid::text as instance_operation_uid
st.instance_data::text as instance_data
from instance_state st
where st.instance_operation_uid=
order by st.version desc limit 1
select
st.instance_state_uid::text as instance_state_uid
st.version
st.creator_id
to_char(st.dt_state, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_state
st.is_test
st.instance_operation_uid::text as instance_operation_uid
st.instance_data::text as instance_data
from instance_state st
where st.instance_uid=
order by st.version desc limit 1
select
iop.instance_operation_cfs_param_uid::text as instance_operation_cfs_param_uid
sop.svc_operation_cfs_param_id
case when sop.is_sensitive then '********' else iop.param_value end as param_value
to_char(iop.dt_created, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_created
iop.creator_id
sop.svc_operation_cfs_param
sop.label
sop.data_type
null as data_descriptor
((isArray(x) OR isEmpty(x))? x : listToArray(x))#>sop.value_list
sop.ref_svc_id
sop.func
sop.nested_ref
sop.state_path
sop.expression
sop.depends_on_cfs_params
sop.is_required
sop.default_value
sop.regex
sop.unique_scope
sop.maxlength
sop.minlength
sop.maxvalue
sop.minvalue
sop.descr
sop.man
sop.sort
iop.note
sop.config::text as config
null as nested_ref_data
sop.is_sensitive
from svc_operation_cfs_param sop
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 =
)
where sop.svc_operation_id =
order by sop.sort, sop.svc_operation_cfs_param_id
select sop.svc_operation_cfs_param_id, sop.svc_operation_cfs_param, sop.unique_scope
from svc_operation_cfs_param sop
join instance_operation_cfs_param iop on (sop.svc_operation_cfs_param_id=iop.svc_operation_cfs_param_id)
where iop.instance_operation_uid =
select io.instance_uid
from instance_operation io
join instance_operation_cfs_param iop on (io.instance_operation_uid=iop.instance_operation_uid)
where iop.instance_operation_uid =
SELECT p.param_value, sp.svc_operation_cfs_param, re.display_name
FROM instance_operation o
JOIN instance_operation_cfs_param p on (o.instance_operation_uid=p.instance_operation_uid)
--JOIN svc s on (e.service_id=s.svc_id)
-- svc_operation_cfs_param нужен, чтобы убрать совпадение параметра с самим собой, это не является ошибкой
-- остается непонятным, будет ли работать проверка между create/modify, у них разные id, а в параметрах инстанса одно и то же
-- возможно, следует сравнивать просто по имени
--join instance_operation_cfs_param op on (p.instance_operation_cfs_param_uid=op.instance_operation_cfs_param_uid)
join svc_operation_cfs_param sp on (p.svc_operation_cfs_param_id=sp.svc_operation_cfs_param_id)
JOIN instance_operation_cfs_param p2 on (p.instance_operation_uid=p2.instance_operation_uid) -- sibling params
JOIN instance re on (p2.param_value=re.instance_uid::text /*не проверяем тип параметра - ссылка, не проверяем соответствие теп*/) -- referenced instance
-- down back
LEFT OUTER JOIN instance_cfs_param p3 on (re.instance_uid::text=p3.param_value /*добавить селективности*/) -- referencing params from sibling instance
LEFT OUTER JOIN instance_cfs_param p4 on (p3.instance_uid=p4.instance_uid AND sp.svc_operation_cfs_param=p4.param) -- same param names from sibling instance
WHERE p.param_value=p4.param_value
AND p.instance_operation_uid=
AND p.svc_operation_cfs_param_id=
AND p4.instance_uid <>
AND (select cast(st.instance_data->>'isDeleted' as boolean) from instance_state st where st.instance_uid=p4.instance_uid order by version desc limit 1) IS NOT TRUE