Stored Procedures [dbo].[ujo_sendevent]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Parameters
NameData TypeMax Length (Bytes)
@eventtxtvarchar(20)20
@job_namevarchar(100)100
@statustxtvarchar(20)20
@alarmtxtvarchar(30)30
@event_timedatetime8
@textvarchar(255)255
Permissions
TypeActionOwning Principal
GrantExecuteujoadmin
SQL Script

/****** Object:  Stored Procedure dbo.ujo_sendevent    Script Date: 12/1/2005 11:50:13 PM ******/

create proc ujo_sendevent
    @eventtxt       varchar(20),
    @job_name       varchar(100), /* Bigger cuz SET_GLOBAL over-loads it */
    @statustxt      varchar(20),
    @alarmtxt       varchar(30),
    @event_time     datetime,
    @text           varchar(255)
AS
declare
    @eoid           varchar(22),
    @seq_num        int,
    @event          int,
    @status         int,
    @alarm          int,
    @joid           int,
    @event_time_gmt int,
    @gmt_offset     int,
    @box_name       varchar(65),
    @box_joid       int,
    @AUTOSERV       varchar(3),
    @i              int

select @event=code from ujo_intcodes where fld='event' and text=@eventtxt

if @@rowcount = 0
begin
    print 'Invalid EVENT'
    return 0
end

select @alarm = 0

if @eventtxt='ALARM'
begin
    select @alarm=code from ujo_intcodes where fld='alarm' and text=@alarmtxt
    if @@rowcount=0
    begin
        print 'Invalid ALARM'
        return 0
    end
end

select @status = 0

if @eventtxt='CHANGE_STATUS'
begin
    select @status=code from ujo_intcodes where fld='status' and text=@statustxt
    if @@rowcount=0
    begin
        print 'Invalid STATUS'
        return 0
    end
end

select @joid = 0
select @box_name = ''

if @eventtxt='SET_GLOBAL'
begin
    select @i = charindex( '=', @job_name )
    if @i = 0
    begin
        print 'SET_GLOBAL Syntax:  Global=Value'
        return 0
    end

    select @box_name=substring( @job_name,@i+1,100 )
    select @job_name=substring( @job_name, 1, @i-1 )
end

ELSE
begin
    if @job_name!=''
    begin
        select @joid=joid,@box_joid=box_joid from ujo_job where job_name=@job_name
        if @@rowcount=0
        begin
            print 'Invalid Job Name'
            return 0
        end

        if @box_joid > 0
        begin
            select @box_name=job_name from ujo_job where joid=@box_joid
        end
    end
end


if @joid = 0
begin
    if @eventtxt='CHANGE_STATUS' or @eventtxt='STARTJOB'
    or @eventtxt='FORCE_STARTJOB' or @eventtxt='KILLOB'
    or @eventtxt='JOB_ON_ICE' or @eventtxt='JOB_OFF_ICE'
    or @eventtxt='JOB_ON_HOLD' or @eventtxt='JOB_OFF_HOLD'
    or @eventtxt='DELETEJOB'
    begin
        print 'Job Name Required'
        return 0
    end
end

/* Now do the time stuff */

if @event_time is NULL or @event_time=''
begin
    select @event_time=getdate()
end

select @event_time_gmt = datediff( ss, '1/1/1970', @event_time )
select @gmt_offset = int_val from ujo_alamode where type = 'gmt_offset'

select @event_time_gmt = @event_time_gmt + @gmt_offset


select @AUTOSERV = str_val FROM ujo_alamode where type='AUTOSERV'


/* get the eoid */

begin tran
UPDATE ujo_next_oid set oid=oid+1 where field='eoid'
SELECT @seq_num=oid-1 from ujo_next_oid WHERE field = 'eoid'
commit tran

select @eoid = @AUTOSERV + 'z' + convert(varchar(10),@seq_num)


/* Send it off */

exec ujo_send_event @eoid,@joid,@job_name,@box_name,
    @AUTOSERV, 10, @event,@status,@alarm,@event_time_gmt,
    -656,'',0,0,0,0,@text,0


return 1



GO
GRANT EXECUTE ON  [dbo].[ujo_sendevent] TO [ujoadmin]
GO
Uses