USP_DATAFORMTEMPLATE_VIEW_QUEUEPROCESS
The load procedure used by the view dataform template "Queue Process View Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@NAME | nvarchar(255) | INOUT | Name |
@DESCRIPTION | nvarchar(1000) | INOUT | Description |
@BUSINESSPROCESSCATALOGID | uniqueidentifier | INOUT | Business process catalog ID |
@LASTBUSINESSPROCESSSTATUSID | uniqueidentifier | INOUT | Last business process status ID |
@PARAMETERSID | uniqueidentifier | INOUT | Parameters ID |
@LASTRUNHASENDED | bit | INOUT | Has ended |
@STEPPARAMETERSETSDONOTEXIST | bit | INOUT | For some steps the parameter set does not exist |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_QUEUEPROCESS(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@NAME nvarchar(255) = null output,
@DESCRIPTION nvarchar(1000) = null output,
@BUSINESSPROCESSCATALOGID uniqueidentifier = null output,
@LASTBUSINESSPROCESSSTATUSID uniqueidentifier = null output,
@PARAMETERSID uniqueidentifier = null output,
@LASTRUNHASENDED bit = null output,
@STEPPARAMETERSETSDONOTEXIST bit = null output
)
with execute as caller
as
set nocount on;
begin try
set @DATALOADED = 0
select @DATALOADED = 1,
@NAME = QUEUEPROCESS.NAME,
@DESCRIPTION = QUEUEPROCESS.DESCRIPTION,
@PARAMETERSID = QUEUEPROCESS.ID
from dbo.QUEUEPROCESS
where QUEUEPROCESS.ID = @ID;
set @STEPPARAMETERSETSDONOTEXIST = 0;
if @DATALOADED = 1 and exists
(
select
1
from
dbo.QUEUEPROCESS
cross apply QUEUEPROCESS.STEPLISTXML.nodes('/ArrayOfQueueProcessStep/QueueProcessStep') QUEUEPROCESSSTEP(ELEMENT)
left join dbo.V_BUSINESSPROCESSPARAMETERSETS on
QUEUEPROCESSSTEP.ELEMENT.value('@ParameterSetID', 'uniqueidentifier') = V_BUSINESSPROCESSPARAMETERSETS.PARAMETERSETID
and QUEUEPROCESSSTEP.ELEMENT.value('@BusinessProcessID', 'uniqueidentifier') = V_BUSINESSPROCESSPARAMETERSETS.BUSINESSPROCESSID
where
QUEUEPROCESS.ID = @ID
and V_BUSINESSPROCESSPARAMETERSETS.PARAMETERSETID is null
)
set @STEPPARAMETERSETSDONOTEXIST = 1;
set @BUSINESSPROCESSCATALOGID = '1b4480fc-b7ab-4edb-a0bf-c897eded1f58';
select top(1) @LASTBUSINESSPROCESSSTATUSID = BUSINESSPROCESSSTATUS.ID,
@LASTRUNHASENDED = case when BUSINESSPROCESSSTATUS.ENDEDON is null then convert(bit, 0) else convert(bit, 1) end
from dbo.BUSINESSPROCESSSTATUS
inner join dbo.QUEUEPROCESSSTATUS on BUSINESSPROCESSSTATUS.ID = QUEUEPROCESSSTATUS.ID
inner join dbo.QUEUEPROCESS on QUEUEPROCESSSTATUS.PARAMETERSETID = QUEUEPROCESS.ID
where BUSINESSPROCESSCATALOGID = '1b4480fc-b7ab-4edb-a0bf-c897eded1f58'
and QUEUEPROCESS.ID = @ID order by STARTEDON desc;
if @LASTBUSINESSPROCESSSTATUSID is null
begin
set @LASTBUSINESSPROCESSSTATUSID = '00000000-0000-0000-0000-000000000000'
end;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch;
return 0;