USP_EMAIL_PROCESSINGSCHEDULE_ENABLE

Enables schedule email processing.

Parameters

Parameter Parameter Type Mode Description
@CHANGEAGENTID uniqueidentifier IN
@GLOBALCHANGECATALOGID uniqueidentifier IN

Definition

Copy


        CREATE procedure dbo.USP_EMAIL_PROCESSINGSCHEDULE_ENABLE
          (
              @CHANGEAGENTID uniqueidentifier,
              @GLOBALCHANGECATALOGID uniqueidentifier = null
          )
          as
          begin
            set nocount on;

            -- 1. verify that the default email processes exist

            declare @GCID uniqueidentifier;
            declare @GLOBALCHANGEDATAFORMITEMLOCAL nvarchar(4000);
            declare @SCHEDULEID uniqueidentifier;
            declare @DATE date = getdate();
            declare @PARAMETERSETID uniqueidentifier;

            --Transactional

            if ISNULL(@GLOBALCHANGECATALOGID, 'F79575E5-FE4F-47BD-954C-AB056EF109D9') = 'F79575E5-FE4F-47BD-954C-AB056EF109D9'
            begin
                -- 1. verify that the default email processes exist

                -- add default transactional email process if it does not exist

                if (select count(*) from globalchange where NAME = 'Default transactional email process' and GLOBALCHANGECATALOGID = 'F79575E5-FE4F-47BD-954C-AB056EF109D9') <> 1
                begin


                          set @GCID  = newid();
                          -- Add global change with default settings

                          set @GLOBALCHANGEDATAFORMITEMLOCAL=N'<?xml version="1.0" encoding="utf-16"?>
                          <DataFormItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="bb_appfx_dataforms">
                            <Values>
                              <fv ID="JobInterval"><Value xsi:type="xsd:int">10</Value></fv>
                              <fv ID="JobEnabled"><Value xsi:type="xsd:boolean">false</Value></fv>
                              <fv ID="JobName"><Value xsi:type="xsd:string">Default transactional email process</Value></fv>
                              <fv ID="ScheduleFrequencySubDayType"><Value xsi:type="xsd:int">2</Value></fv>
                            </Values>
                          </DataFormItem>';

                          exec dbo.USP_GLOBALCHANGE_ADDINSTANCE @ID=@GCID,
                                                                @CHANGEAGENTID=@CHANGEAGENTID,
                                                                @GLOBALCHANGECATALOGID='F79575E5-FE4F-47BD-954C-AB056EF109D9',
                                                                @GLOBALCHANGEDATAFORMITEM=@GLOBALCHANGEDATAFORMITEMLOCAL,
                                                                @NAME=N'Default transactional email process',
                                                                @CURRENTAPPUSERID=null
                end

                -- 2. verify that schedules exist and are linked to the default processes

                -- add default transactional schedule if it does not exist

                if (select count(*) from dbo.GLOBALCHANGE GC
                    inner join dbo.BUSINESSPROCESSSCHEDULE BPS on GC.ID = BPS.BUSINESSPROCESSPARAMETERSETID
                    inner join dbo.SCHEDULE S on S.ID = BPS.SCHEDULEID
                    where GC.NAME = 'Default transactional email process' and GC.GLOBALCHANGECATALOGID = 'F79575E5-FE4F-47BD-954C-AB056EF109D9') <> 1
                begin
                    set @SCHEDULEID = newid();
                    insert into dbo.SCHEDULE (ID, TYPECODE, FREQUENCY, SUBDAYFREQUENCYTYPECODE, SUBDAYFREQUENCY, SUBDAYSTARTINGTIME, SUBDAYENDINGTIME, STARTDATE)
                        values (@SCHEDULEID, 4, 1, 2, 60, '00:00:00', '23:59:59', @DATE);

                  delete from dbo.BUSINESSPROCESSSCHEDULE where ID = '148F2DF3-53E1-45D7-9A6D-A7101B616417';
                    set @PARAMETERSETID = (select top 1 ID from dbo.GLOBALCHANGE where GLOBALCHANGECATALOGID='F79575E5-FE4F-47BD-954C-AB056EF109D9' and NAME = 'Default transactional email process');
                    insert into dbo.BUSINESSPROCESSSCHEDULE (ID, BUSINESSPROCESSID, BUSINESSPROCESSPARAMETERSETID, SCHEDULEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                        values ('148F2DF3-53E1-45D7-9A6D-A7101B616417', '3269A1D1-31CB-4D28-945C-B7623A3EFCCA', @PARAMETERSETID,@SCHEDULEID, @CHANGEAGENTID, @CHANGEAGENTID, @DATE, @DATE);
                end

                -- 3. enable transactional schedule

                update dbo.SCHEDULE set ENABLED = 1
                from dbo.SCHEDULE S
                inner join dbo.BUSINESSPROCESSSCHEDULE BPS on BPS.SCHEDULEID = S.ID
                inner join dbo.GLOBALCHANGE GC on BPS.BUSINESSPROCESSPARAMETERSETID = GC.ID
                where GC.GLOBALCHANGECATALOGID in ('F79575E5-FE4F-47BD-954C-AB056EF109D9')
            end

     --General Purpose

            if ISNULL(@GLOBALCHANGECATALOGID, '5066A489-6282-400C-96AF-1ECC1B7F281F') = '5066A489-6282-400C-96AF-1ECC1B7F281F'
            begin
                -- 1. verify that the default email processes exist

                -- add general purpose email process if it does not exist

                if (select count(*) from GLOBALCHANGE where NAME = 'Default general purpose email process' and GLOBALCHANGECATALOGID = '5066A489-6282-400C-96AF-1ECC1B7F281F') <> 1
                begin
                          set @GCID  = newid();
                          -- Add global change with default settings

                          set @GLOBALCHANGEDATAFORMITEMLOCAL = N'<?xml version="1.0" encoding="utf-16"?>
                          <DataFormItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="bb_appfx_dataforms">
                            <Values>
                              <fv ID="ProcessEnterpriseEmails"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessNetCommunityEmails"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessExternalEmails"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessBlasts"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessFundraiserBlasts"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessNewsletters"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessCampaigns"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessChapter"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessPersonalPageBlasts"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessProjectAppealBlasts"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessProjectAppealSeed"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessSignupNotifications"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessDonationNotifications"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessPageSharing"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessSiteNotifications"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessECards"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessDirectMarketing"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="ProcessTest"><Value xsi:type="xsd:boolean">true</Value></fv>
                              <fv ID="JobInterval"><Value xsi:type="xsd:int">10</Value></fv>
                              <fv ID="JobEnabled"><Value xsi:type="xsd:boolean">false</Value></fv>
                              <fv ID="JobName"><Value xsi:type="xsd:string">Default general purpose email process</Value></fv>
                              <fv ID="ScheduleFrequencySubDayType"><Value xsi:type="xsd:int">2</Value></fv>
                            </Values>
                          </DataFormItem>';

                          exec dbo.USP_GLOBALCHANGE_ADDINSTANCE @ID=@GCID,
                                                                @CHANGEAGENTID=@CHANGEAGENTID,
                                                                @GLOBALCHANGECATALOGID='5066A489-6282-400C-96AF-1ECC1B7F281F',
                                                                @GLOBALCHANGEDATAFORMITEM=@GLOBALCHANGEDATAFORMITEMLOCAL,
                                                                @NAME=N'Default general purpose email process',
                                                                @CURRENTAPPUSERID=null
                end

                -- 2. verify that schedules exist and are linked to the default processes

                -- add default general purpose schedule if it does not exist

                if (select count(*) from dbo.GLOBALCHANGE GC
                    inner join dbo.BUSINESSPROCESSSCHEDULE BPS on GC.ID = BPS.BUSINESSPROCESSPARAMETERSETID
                    inner join dbo.SCHEDULE S on S.ID = BPS.SCHEDULEID
                    where GC.NAME = 'Default general purpose email process' and GC.GLOBALCHANGECATALOGID = '5066A489-6282-400C-96AF-1ECC1B7F281F') <> 1
                begin
                    set @SCHEDULEID = newid();
                    insert into dbo.SCHEDULE (ID, TYPECODE, FREQUENCY, SUBDAYFREQUENCYTYPECODE, SUBDAYFREQUENCY, SUBDAYSTARTINGTIME, SUBDAYENDINGTIME, STARTDATE)
                        values (@SCHEDULEID, 4, 1, 2, 60, '00:00:00', '23:59:59', @DATE);

                    delete from dbo.BUSINESSPROCESSSCHEDULE where ID = 'C5A7E136-5F56-43EF-B4D8-D30DF710DA14';
                  set @PARAMETERSETID = (select top 1 ID from dbo.GLOBALCHANGE where GLOBALCHANGECATALOGID='5066A489-6282-400C-96AF-1ECC1B7F281F' and NAME = 'Default general purpose email process');
                    insert into dbo.BUSINESSPROCESSSCHEDULE (ID, BUSINESSPROCESSID, BUSINESSPROCESSPARAMETERSETID, SCHEDULEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                        values ('C5A7E136-5F56-43EF-B4D8-D30DF710DA14', '3269A1D1-31CB-4D28-945C-B7623A3EFCCA', @PARAMETERSETID,@SCHEDULEID, @CHANGEAGENTID, @CHANGEAGENTID, @DATE, @DATE);
                end

                -- 3. enable general purpose schedule

                update dbo.SCHEDULE set ENABLED = 1
                from dbo.SCHEDULE S
                inner join dbo.BUSINESSPROCESSSCHEDULE BPS on BPS.SCHEDULEID = S.ID
                inner join dbo.GLOBALCHANGE GC on BPS.BUSINESSPROCESSPARAMETERSETID = GC.ID
                where GC.GLOBALCHANGECATALOGID in ('5066A489-6282-400C-96AF-1ECC1B7F281F')
            end

            --Status

            if ISNULL(@GLOBALCHANGECATALOGID,'8C3ECDB1-BE50-4898-AD1B-98ECB6D07812') = '8C3ECDB1-BE50-4898-AD1B-98ECB6D07812'
            begin
                -- 1. verify that the default email processes exist

                -- add email status process if it does not exist

                if (select count(*) from GLOBALCHANGE where NAME = 'Default status process' and GLOBALCHANGECATALOGID = '8C3ECDB1-BE50-4898-AD1B-98ECB6D07812') <> 1
                begin
                          set @GCID = newid();
                          -- Add global change with default settings

                          set @GLOBALCHANGEDATAFORMITEMLOCAL=N'<?xml version="1.0" encoding="utf-16"?>
                          <DataFormItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="bb_appfx_dataforms">
                            <Values>
                              <fv ID="JobInterval"><Value xsi:type="xsd:int">1</Value></fv>
                              <fv ID="JobEnabled"><Value xsi:type="xsd:boolean">false</Value></fv>
                              <fv ID="JobName"><Value xsi:type="xsd:string">Default status process</Value></fv>
                              <fv ID="ScheduleFrequencySubDayType"><Value xsi:type="xsd:int">4</Value></fv>
                              <fv ID="DeleteGeneralPurposeStatusOlderThan"><Value xsi:type="xsd:int">1</Value></fv>
                              <fv ID="DeleteGeneralPurposeIntervalType"><Value xsi:type="xsd:int">0</Value></fv>
                              <fv ID="DeleteTransactionalStatusOlderThan"><Value xsi:type="xsd:int">1</Value></fv>
                              <fv ID="DeleteTransactionalIntervalType"><Value xsi:type="xsd:int">0</Value></fv>
                            </Values>
                          </DataFormItem>';

                          exec dbo.USP_GLOBALCHANGE_ADDINSTANCE @ID=@GCID,
                                                                @CHANGEAGENTID=@CHANGEAGENTID,
                                                                @GLOBALCHANGECATALOGID='8C3ECDB1-BE50-4898-AD1B-98ECB6D07812',
                                                                @GLOBALCHANGEDATAFORMITEM=@GLOBALCHANGEDATAFORMITEMLOCAL,
                                                                @NAME=N'Default status process',
                                                                @CURRENTAPPUSERID=null
                end

                -- 2. verify that schedules exist and are linked to the default processes

                -- add default email status schedule if it does not exist

                if (select count(*) from GLOBALCHANGE GC
                    inner join dbo.BUSINESSPROCESSSCHEDULE BPS on GC.ID = BPS.BUSINESSPROCESSPARAMETERSETID
                    inner join dbo.SCHEDULE S on S.ID = BPS.SCHEDULEID
                    where GC.NAME = 'Default status process' and GC.GLOBALCHANGECATALOGID = '8C3ECDB1-BE50-4898-AD1B-98ECB6D07812') <> 1
                begin
                    set @SCHEDULEID = newid();
                    insert into dbo.SCHEDULE (ID, TYPECODE, FREQUENCY, SUBDAYFREQUENCYTYPECODE, SUBDAYFREQUENCY, SUBDAYSTARTINGTIME, SUBDAYENDINGTIME, STARTDATE)
                    values (@SCHEDULEID, 4, 1, 2, 60, '00:00:00', '23:59:59', @DATE);

                  delete from dbo.BUSINESSPROCESSSCHEDULE where ID = 'F24E3368-008D-47DA-967C-6F01FF07AB5F';
                    set @PARAMETERSETID = (select top 1 ID from dbo.GLOBALCHANGE where GLOBALCHANGECATALOGID='8C3ECDB1-BE50-4898-AD1B-98ECB6D07812' and NAME = 'Default status process');
                    insert into dbo.BUSINESSPROCESSSCHEDULE (ID, BUSINESSPROCESSID, BUSINESSPROCESSPARAMETERSETID, SCHEDULEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                    values ('F24E3368-008D-47DA-967C-6F01FF07AB5F', '3269A1D1-31CB-4D28-945C-B7623A3EFCCA', @PARAMETERSETID, @SCHEDULEID, @CHANGEAGENTID, @CHANGEAGENTID, @DATE, @DATE);
                end

                -- 3. enable status process schedule

                update dbo.SCHEDULE set ENABLED = 1
                from dbo.SCHEDULE S
                inner join dbo.BUSINESSPROCESSSCHEDULE BPS on BPS.SCHEDULEID = S.ID
                inner join dbo.GLOBALCHANGE GC on BPS.BUSINESSPROCESSPARAMETERSETID = GC.ID
                where GC.GLOBALCHANGECATALOGID in ('8C3ECDB1-BE50-4898-AD1B-98ECB6D07812')

            end
    end