UFN_SIMPLEACKNOWLEDGEMENT_SCHEDULEMODIFIED

Determines whether or not the job schedule for the acknowledgement process has been modified by the user.

Return

Return Type
bit

Parameters

Parameter Parameter Type Mode Description
@BUSINESSPROCESSPARAMETERSID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_SIMPLEACKNOWLEDGEMENT_SCHEDULEMODIFIED
(
    @BUSINESSPROCESSPARAMETERSID uniqueidentifier
)
returns bit
with execute as caller
as begin    
    declare @FREQ_TYPE int
    declare @FREQ_SUBDAY_TYPE int
    declare @FREQ_INTERVAL int
    declare @FREQ_RECURRENCE_FACTOR int
    declare @ACTIVE_END_DATE int
    declare @JOB_ID uniqueidentifier
    declare @ACTIVE_START_TIME int

    select 
        @JOB_ID = sysjobschedules.job_id,
        @FREQ_TYPE = sysschedules.freq_type,
        @FREQ_INTERVAL = sysschedules.freq_interval,
        @FREQ_SUBDAY_TYPE = sysschedules.freq_subday_type,
        @FREQ_RECURRENCE_FACTOR = sysschedules.freq_recurrence_factor,
        @ACTIVE_END_DATE = sysschedules.active_end_date,
        @ACTIVE_START_TIME = sysschedules.active_start_time
    from 
        msdb.dbo.sysschedules 
        inner join msdb.dbo.sysjobschedules on sysschedules.schedule_id = sysjobschedules.schedule_id
        inner join msdb.dbo.sysjobsteps on sysjobschedules.job_id = sysjobsteps.job_id
        inner join msdb.dbo.sysjobs on sysjobschedules.job_id = sysjobs.job_id
        inner join msdb.dbo.sysproxies on sysjobsteps.proxy_id = sysproxies.proxy_id
    where 
        sysproxies.name like 'Blackbaud % Proxy - ' + db_name() and 
        sysjobsteps.step_name = 'Business process invoke' and 
        sysjobsteps.command like '%' + cast(@BUSINESSPROCESSPARAMETERSID as nvarchar(36)) + '%';

    if @JOB_ID is not null begin
        if @FREQ_TYPE = 4 begin
            if @FREQ_SUBDAY_TYPE <> 1 OR @FREQ_INTERVAL <> 1 OR @ACTIVE_END_DATE <> 99991231 or @ACTIVE_START_TIME <> 30000 begin
                return 1;
            end
        end 

        if @FREQ_TYPE = 8 begin
            if @FREQ_SUBDAY_TYPE <> 1 OR @FREQ_INTERVAL <> 1 OR @FREQ_RECURRENCE_FACTOR <> 1 OR @ACTIVE_END_DATE <> 99991231 or @ACTIVE_START_TIME <> 30000 begin
                return 1;
            end
        end

        if @FREQ_TYPE <> 4 and @FREQ_TYPE <> 8 begin
            return 1;
        end            
    end

    return 0;
end