create proc ujo_sendevent
@eventtxt varchar(20),
@job_name varchar(100),
@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
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'
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)
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