USP_CUSTOMFORM_BULKPUTINTRASHBIN
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@XML | xml | IN | |
@NUMBEROFSUCCESSFUL | int | INOUT | |
@NUMBEROFINUSE | int | INOUT | |
@NUMBEROFHASFORMENTRIES | int | INOUT |
Definition
Copy
CREATE procedure [dbo].[USP_CUSTOMFORM_BULKPUTINTRASHBIN]
(@XML xml,
@NUMBEROFSUCCESSFUL int output,
@NUMBEROFINUSE int output,
@NUMBEROFHASFORMENTRIES int output
)
AS
BEGIN
BEGIN TRAN
set nocount on
declare @CustomFormGuids table (formGuid uniqueidentifier)
insert into @CustomFormGuids select GUIDS.GUID.value('formGuid[1]', 'uniqueidentifier') from @XML.nodes('/CustomForms/CustomForm') GUIDS(GUID)
declare @FormsInUse table (formGuid uniqueidentifier)
--fdf entries that don't link to part instances, or link to deleted instances are not considered 'in use'.
insert into @FormsInUse
SELECT distinct fdf.FormGuid
FROM dbo.FormDisplayForms fdf
INNER JOIN dbo.SiteContent sc on sc.ID = fdf.ContentID and sc.InTrashBin=0
INNER JOIN @CustomFormGuids cfg ON fdf.FormGuid = cfg.formGuid
set @NUMBEROFINUSE = (select count(1) from @FormsInUse)
delete @CustomFormGuids
from @CustomFormGuids CFG
inner join @FormsInUse FIU on FIU.formGuid = CFG.formGuid
declare @FormsWithEntries table (formGuid uniqueidentifier)
insert into @FormsWithEntries
SELECT distinct cfe.FormGuid
FROM dbo.CustomFormEntry cfe
INNER JOIN @CustomFormGuids cfg ON cfe.FormGuid = cfg.formGuid
set @NUMBEROFHASFORMENTRIES = (select count(1) from @FormsWithEntries)
delete @CustomFormGuids
from @CustomFormGuids CFG
inner join @FormsWithEntries FWE on FWE.formGuid = CFG.formGuid
update CustomFormSettings
set InTrashBin=1
from dbo.CustomFormSettings
inner join @CustomFormGuids CF on CustomFormSettings.FormGuid = CF.formGuid
delete dbo.CustomFormFolder
from dbo.CustomFormFolder cff
inner join dbo.CustomFormelement cfe on cff.CustomFormElementID = cfe.ID
inner join @CustomFormGuids CF on cfe.Guid = CF.formGuid
set @NUMBEROFSUCCESSFUL = (select count(1) from @CustomFormGuids);
COMMIT TRAN
END