USP_BUSINESSPROCESSSTATUS_GETLIST
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@BUSINESSPROCESSCATALOGID | uniqueidentifier | IN | |
@SELECTIONID | uniqueidentifier | IN | |
@DATEPART | tinyint | IN | |
@DATEINTERVAL | int | IN | |
@NUMBERTOKEEP | int | IN |
Definition
Copy
CREATE procedure dbo.USP_BUSINESSPROCESSSTATUS_GETLIST
(
@BUSINESSPROCESSCATALOGID uniqueidentifier = null,
@SELECTIONID uniqueidentifier = null,
@DATEPART tinyint = 3,
@DATEINTERVAL integer = 1,
@NUMBERTOKEEP integer = 0
)
as
begin
set nocount on;
declare @CUTOFF datetime;
begin try
if isnull(@NUMBERTOKEEP, 0) < 0
raiserror('BBERR_INVALIDNUMBERTOKEEP', 13, 1);
if isnull(@DATEINTERVAL, 0) < 0
raiserror('BBERR_INVALIDDATEINTERVAL', 13, 1);
if isnull(@NUMBERTOKEEP, 0) = 0
begin
select @CUTOFF = dbo.[UFN_PURGEGLOBALCHANGE_RESOLVEDATEFILTER](@DATEPART, @DATEINTERVAL, getdate());
if @CUTOFF is null
raiserror('BBERR_COULDNOTRESOLVEINTERVAL', 13, 1);
end
declare @STATUSES table ([BUSINESSPROCESSSTATUSID] uniqueidentifier);
if (@SELECTIONID is null or exists (select [ID] from dbo.[UFN_IDSETREADER_GETRESULTS_GUID](@SELECTIONID) where ID = @BUSINESSPROCESSCATALOGID))
begin
if @NUMBERTOKEEP > 0 begin
insert into @STATUSES
select [BUSINESSPROCESSSTATUSID] from
(select [BUSINESSPROCESSSTATUS].[ID] as [BUSINESSPROCESSSTATUSID], row_number() over(partition by BUSINESSPROCESSPARAMETERSETID order by [ENDEDON] desc) as [ROWNUMBER]
from dbo.[BUSINESSPROCESSSTATUS]
where ENDEDON is not null
and BUSINESSPROCESSCATALOGID = @BUSINESSPROCESSCATALOGID) [STATUS]
where [ROWNUMBER] > @NUMBERTOKEEP;
end
else begin
insert into @STATUSES
select [BUSINESSPROCESSSTATUS].[ID] as [BUSINESSPROCESSSTATUSID]
from dbo.[BUSINESSPROCESSSTATUS]
where [BUSINESSPROCESSSTATUS].[ENDEDON] < @CUTOFF
and BUSINESSPROCESSCATALOGID = @BUSINESSPROCESSCATALOGID;
end
end
if (@BUSINESSPROCESSCATALOGID = '83048DED-208E-45C9-852C-E7D5C7317882')
begin
-- Remove business processes from temp table for "Receipting Process" business process which are not allowed to delete from UI. The receipt process with Receipt date are not allowed to delete from UI
delete @STATUSES
from dbo.[REVENUERECEIPT]
inner join @STATUSES on RECEIPTINGPROCESSSTATUSID = [BUSINESSPROCESSSTATUSID] and RECEIPTDATE is not null;
end
if (@BUSINESSPROCESSCATALOGID = 'B4184ABE-C618-466F-90A2-B96B88644A17')
begin
--Return ID from STEWARDSHIPPACKAGEPROCESSHISTORY that is expected by StewardshipPackageProcessStatusDelete.RecordOperation.xml as parameter
select ID
from dbo.[STEWARDSHIPPACKAGEPROCESSHISTORY]
inner join @STATUSES STATUSES on BUSINESSPROCESSSTATUSGUID = STATUSES.BUSINESSPROCESSSTATUSID;
end
else
begin
select BUSINESSPROCESSSTATUSID as ID from @STATUSES
end
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
end catch
end