USP_QUEUEPROCESS_GETBUSINESSPROCESSDELETEPROMPTINFO
Provides information used to prompt for confirmation before deleting a business process parameter set used as a queue process step.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PARAMETERSETID | uniqueidentifier | IN | |
@BUSINESSPROCESSID | uniqueidentifier | IN | |
@PROMPTRESOURCEKEY | nvarchar(100) | INOUT | |
@QUEUEPROCESSCOUNT | int | INOUT | |
@QUEUEPROCESSCOUNTTEXT | nvarchar(10) | INOUT | |
@FIRSTQUEUEPROCESSNAME | nvarchar(255) | INOUT | |
@QUEUEPROCESSCOUNTEXCLUDINGFIRST | int | INOUT | |
@QUEUEPROCESSCOUNTEXCLUDINGFIRSTTEXT | nvarchar(10) | INOUT |
Definition
Copy
CREATE procedure dbo.USP_QUEUEPROCESS_GETBUSINESSPROCESSDELETEPROMPTINFO
(
@PARAMETERSETID uniqueidentifier,
@BUSINESSPROCESSID uniqueidentifier,
@PROMPTRESOURCEKEY nvarchar(100) output,
@QUEUEPROCESSCOUNT int = null output,
@QUEUEPROCESSCOUNTTEXT nvarchar(10) = null output,
@FIRSTQUEUEPROCESSNAME nvarchar(255) = null output,
@QUEUEPROCESSCOUNTEXCLUDINGFIRST int = null output,
@QUEUEPROCESSCOUNTEXCLUDINGFIRSTTEXT nvarchar(10) = null output
)
with execute as caller
as
set @PROMPTRESOURCEKEY = null;
set @QUEUEPROCESSCOUNT = null;
set @FIRSTQUEUEPROCESSNAME = null;
select
@QUEUEPROCESSCOUNT = count(*)
from
dbo.QUEUEPROCESS
where
@PARAMETERSETID in
(
select
QUEUEPROCESSSTEP.ELEMENT.value('@ParameterSetID', 'uniqueidentifier')
from
QUEUEPROCESS.STEPLISTXML.nodes('/ArrayOfQueueProcessStep/QueueProcessStep') QUEUEPROCESSSTEP(ELEMENT)
where
@BUSINESSPROCESSID = QUEUEPROCESSSTEP.ELEMENT.value('@BusinessProcessID', 'uniqueidentifier')
);
/* subtact one because the message is like "in use by {queue} and {count} others" */
set @QUEUEPROCESSCOUNTEXCLUDINGFIRST = @QUEUEPROCESSCOUNT - 1;
set @QUEUEPROCESSCOUNTEXCLUDINGFIRSTTEXT = convert(nvarchar(10), @QUEUEPROCESSCOUNTEXCLUDINGFIRST);
set @QUEUEPROCESSCOUNTTEXT = convert(nvarchar(10), @QUEUEPROCESSCOUNT);
if @QUEUEPROCESSCOUNT >= 1
select top (1)
@FIRSTQUEUEPROCESSNAME = QUEUEPROCESS.NAME
from
dbo.QUEUEPROCESS
where
@PARAMETERSETID in
(
select
QUEUEPROCESSSTEP.ELEMENT.value('@ParameterSetID', 'uniqueidentifier')
from
QUEUEPROCESS.STEPLISTXML.nodes('/ArrayOfQueueProcessStep/QueueProcessStep') QUEUEPROCESSSTEP(ELEMENT)
where
@BUSINESSPROCESSID = QUEUEPROCESSSTEP.ELEMENT.value('@BusinessProcessID', 'uniqueidentifier')
)
order by
QUEUEPROCESS.NAME;
set @PROMPTRESOURCEKEY =
case
when @QUEUEPROCESSCOUNT = 1 then N'DeletePromptInSingleQueue'
when @QUEUEPROCESSCOUNT = 2 then N'DeletePromptInTwoQueues'
when @QUEUEPROCESSCOUNT > 2 then N'DeletePromptInMoreThanTwoQueues'
else N'DeletePromptNotInQueue'
end;
return 0;