Merge
This commit is contained in:
commit
14eb9aa172
155 changed files with 13952 additions and 2570 deletions
|
@ -450,10 +450,996 @@ INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName]
|
|||
VALUES (1401, 41, N'Lync2013', N'Microsoft Lync Server 2013 Multitenant Hosting Pack', N'WebsitePanel.Providers.HostedSolution.Lync2013, WebsitePanel.Providers.HostedSolution.Lync2013', N'Lync', NULL)
|
||||
END
|
||||
GO
|
||||
|
||||
-- add Application Pools Restart Quota
|
||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (411, 2, 13, N'Web.AppPoolsRestart', N'Application Pools Restart', 1, 0, NULL, NULL)
|
||||
GO
|
||||
-------------------------------- Scheduler Service------------------------------------------------------
|
||||
|
||||
IF EXISTS( SELECT * FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_NAME = 'Schedule'
|
||||
AND COLUMN_NAME = 'LastFinish')
|
||||
ALTER TABLE Schedule
|
||||
DROP COLUMN LastFinish
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[GetSchedule]
|
||||
(
|
||||
@ActorID int,
|
||||
@ScheduleID int
|
||||
)
|
||||
AS
|
||||
|
||||
-- select schedule
|
||||
SELECT TOP 1
|
||||
S.ScheduleID,
|
||||
S.TaskID,
|
||||
S.PackageID,
|
||||
S.ScheduleName,
|
||||
S.ScheduleTypeID,
|
||||
S.Interval,
|
||||
S.FromTime,
|
||||
S.ToTime,
|
||||
S.StartTime,
|
||||
S.LastRun,
|
||||
S.NextRun,
|
||||
S.Enabled,
|
||||
S.HistoriesNumber,
|
||||
S.PriorityID,
|
||||
S.MaxExecutionTime,
|
||||
S.WeekMonthDay,
|
||||
1 AS StatusID
|
||||
FROM Schedule AS S
|
||||
WHERE
|
||||
S.ScheduleID = @ScheduleID
|
||||
AND dbo.CheckActorPackageRights(@ActorID, S.PackageID) = 1
|
||||
|
||||
-- select task
|
||||
SELECT
|
||||
ST.TaskID,
|
||||
ST.TaskType,
|
||||
ST.RoleID
|
||||
FROM Schedule AS S
|
||||
INNER JOIN ScheduleTasks AS ST ON S.TaskID = ST.TaskID
|
||||
WHERE
|
||||
S.ScheduleID = @ScheduleID
|
||||
AND dbo.CheckActorPackageRights(@ActorID, S.PackageID) = 1
|
||||
|
||||
-- select schedule parameters
|
||||
SELECT
|
||||
S.ScheduleID,
|
||||
STP.ParameterID,
|
||||
STP.DataTypeID,
|
||||
ISNULL(SP.ParameterValue, STP.DefaultValue) AS ParameterValue
|
||||
FROM Schedule AS S
|
||||
INNER JOIN ScheduleTaskParameters AS STP ON S.TaskID = STP.TaskID
|
||||
LEFT OUTER JOIN ScheduleParameters AS SP ON STP.ParameterID = SP.ParameterID AND SP.ScheduleID = S.ScheduleID
|
||||
WHERE
|
||||
S.ScheduleID = @ScheduleID
|
||||
AND dbo.CheckActorPackageRights(@ActorID, S.PackageID) = 1
|
||||
|
||||
RETURN
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[GetScheduleInternal]
|
||||
(
|
||||
@ScheduleID int
|
||||
)
|
||||
AS
|
||||
|
||||
-- select schedule
|
||||
SELECT
|
||||
S.ScheduleID,
|
||||
S.TaskID,
|
||||
ST.TaskType,
|
||||
ST.RoleID,
|
||||
S.PackageID,
|
||||
S.ScheduleName,
|
||||
S.ScheduleTypeID,
|
||||
S.Interval,
|
||||
S.FromTime,
|
||||
S.ToTime,
|
||||
S.StartTime,
|
||||
S.LastRun,
|
||||
S.NextRun,
|
||||
S.Enabled,
|
||||
1 AS StatusID,
|
||||
S.PriorityID,
|
||||
S.HistoriesNumber,
|
||||
S.MaxExecutionTime,
|
||||
S.WeekMonthDay
|
||||
FROM Schedule AS S
|
||||
INNER JOIN ScheduleTasks AS ST ON S.TaskID = ST.TaskID
|
||||
WHERE ScheduleID = @ScheduleID
|
||||
RETURN
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[GetSchedules]
|
||||
(
|
||||
@ActorID int,
|
||||
@PackageID int,
|
||||
@Recursive bit
|
||||
)
|
||||
AS
|
||||
|
||||
-- check rights
|
||||
IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
|
||||
RAISERROR('You are not allowed to access this package', 16, 1)
|
||||
|
||||
DECLARE @Schedules TABLE
|
||||
(
|
||||
ScheduleID int
|
||||
)
|
||||
|
||||
INSERT INTO @Schedules (ScheduleID)
|
||||
SELECT
|
||||
S.ScheduleID
|
||||
FROM Schedule AS S
|
||||
INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON S.PackageID = PT.PackageID
|
||||
ORDER BY S.Enabled DESC, S.NextRun
|
||||
|
||||
|
||||
-- select schedules
|
||||
SELECT
|
||||
S.ScheduleID,
|
||||
S.TaskID,
|
||||
ST.TaskType,
|
||||
ST.RoleID,
|
||||
S.PackageID,
|
||||
S.ScheduleName,
|
||||
S.ScheduleTypeID,
|
||||
S.Interval,
|
||||
S.FromTime,
|
||||
S.ToTime,
|
||||
S.StartTime,
|
||||
S.LastRun,
|
||||
S.NextRun,
|
||||
S.Enabled,
|
||||
1 AS StatusID,
|
||||
S.PriorityID,
|
||||
S.MaxExecutionTime,
|
||||
S.WeekMonthDay,
|
||||
ISNULL(0, (SELECT TOP 1 SeverityID FROM AuditLog WHERE ItemID = S.ScheduleID AND SourceName = 'SCHEDULER' ORDER BY StartDate DESC)) AS LastResult,
|
||||
|
||||
U.Username,
|
||||
U.FirstName,
|
||||
U.LastName,
|
||||
U.FullName,
|
||||
U.RoleID,
|
||||
U.Email
|
||||
FROM @Schedules AS STEMP
|
||||
INNER JOIN Schedule AS S ON STEMP.ScheduleID = S.ScheduleID
|
||||
INNER JOIN Packages AS P ON S.PackageID = P.PackageID
|
||||
INNER JOIN ScheduleTasks AS ST ON S.TaskID = ST.TaskID
|
||||
INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
|
||||
|
||||
-- select schedule parameters
|
||||
SELECT
|
||||
S.ScheduleID,
|
||||
STP.ParameterID,
|
||||
STP.DataTypeID,
|
||||
ISNULL(SP.ParameterValue, STP.DefaultValue) AS ParameterValue
|
||||
FROM @Schedules AS STEMP
|
||||
INNER JOIN Schedule AS S ON STEMP.ScheduleID = S.ScheduleID
|
||||
INNER JOIN ScheduleTaskParameters AS STP ON S.TaskID = STP.TaskID
|
||||
LEFT OUTER JOIN ScheduleParameters AS SP ON STP.ParameterID = SP.ParameterID AND SP.ScheduleID = S.ScheduleID
|
||||
RETURN
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[GetSchedulesPaged]
|
||||
(
|
||||
@ActorID int,
|
||||
@PackageID int,
|
||||
@Recursive bit,
|
||||
@FilterColumn nvarchar(50) = '',
|
||||
@FilterValue nvarchar(50) = '',
|
||||
@SortColumn nvarchar(50),
|
||||
@StartRow int,
|
||||
@MaximumRows int
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
|
||||
-- check rights
|
||||
IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
|
||||
RAISERROR('You are not allowed to access this package', 16, 1)
|
||||
|
||||
DECLARE @condition nvarchar(400)
|
||||
SET @condition = ' 1 = 1 '
|
||||
|
||||
IF @FilterColumn <> '' AND @FilterColumn IS NOT NULL
|
||||
AND @FilterValue <> '' AND @FilterValue IS NOT NULL
|
||||
SET @condition = @condition + ' AND ' + @FilterColumn + ' LIKE ''' + @FilterValue + ''''
|
||||
|
||||
IF @SortColumn IS NULL OR @SortColumn = ''
|
||||
SET @SortColumn = 'S.ScheduleName ASC'
|
||||
|
||||
DECLARE @sql nvarchar(3500)
|
||||
|
||||
set @sql = '
|
||||
SELECT COUNT(S.ScheduleID) FROM Schedule AS S
|
||||
INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON S.PackageID = PT.PackageID
|
||||
INNER JOIN Packages AS P ON S.PackageID = P.PackageID
|
||||
INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
|
||||
WHERE ' + @condition + '
|
||||
|
||||
DECLARE @Schedules AS TABLE
|
||||
(
|
||||
ScheduleID int
|
||||
);
|
||||
|
||||
WITH TempSchedules AS (
|
||||
SELECT ROW_NUMBER() OVER (ORDER BY ' + @SortColumn + ') as Row,
|
||||
S.ScheduleID
|
||||
FROM Schedule AS S
|
||||
INNER JOIN Packages AS P ON S.PackageID = P.PackageID
|
||||
INNER JOIN PackagesTree(@PackageID, @Recursive) AS PT ON S.PackageID = PT.PackageID
|
||||
INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
|
||||
WHERE ' + @condition + '
|
||||
)
|
||||
|
||||
INSERT INTO @Schedules
|
||||
SELECT ScheduleID FROM TempSchedules
|
||||
WHERE TempSchedules.Row BETWEEN @StartRow and @StartRow + @MaximumRows - 1
|
||||
|
||||
SELECT
|
||||
S.ScheduleID,
|
||||
S.TaskID,
|
||||
ST.TaskType,
|
||||
ST.RoleID,
|
||||
S.ScheduleName,
|
||||
S.ScheduleTypeID,
|
||||
S.Interval,
|
||||
S.FromTime,
|
||||
S.ToTime,
|
||||
S.StartTime,
|
||||
S.LastRun,
|
||||
S.NextRun,
|
||||
S.Enabled,
|
||||
1 AS StatusID,
|
||||
S.PriorityID,
|
||||
S.MaxExecutionTime,
|
||||
S.WeekMonthDay,
|
||||
ISNULL(0, (SELECT TOP 1 SeverityID FROM AuditLog WHERE ItemID = S.ScheduleID AND SourceName = ''SCHEDULER'' ORDER BY StartDate DESC)) AS LastResult,
|
||||
|
||||
-- packages
|
||||
P.PackageID,
|
||||
P.PackageName,
|
||||
|
||||
-- user
|
||||
P.UserID,
|
||||
U.Username,
|
||||
U.FirstName,
|
||||
U.LastName,
|
||||
U.FullName,
|
||||
U.RoleID,
|
||||
U.Email
|
||||
FROM @Schedules AS STEMP
|
||||
INNER JOIN Schedule AS S ON STEMP.ScheduleID = S.ScheduleID
|
||||
INNER JOIN ScheduleTasks AS ST ON S.TaskID = ST.TaskID
|
||||
INNER JOIN Packages AS P ON S.PackageID = P.PackageID
|
||||
INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID'
|
||||
|
||||
exec sp_executesql @sql, N'@PackageID int, @StartRow int, @MaximumRows int, @Recursive bit',
|
||||
@PackageID, @StartRow, @MaximumRows, @Recursive
|
||||
|
||||
END
|
||||
RETURN
|
||||
GO
|
||||
|
||||
ALTER PROCEDURE [dbo].[UpdateSchedule]
|
||||
(
|
||||
@ActorID int,
|
||||
@ScheduleID int,
|
||||
@TaskID nvarchar(100),
|
||||
@ScheduleName nvarchar(100),
|
||||
@ScheduleTypeID nvarchar(50),
|
||||
@Interval int,
|
||||
@FromTime datetime,
|
||||
@ToTime datetime,
|
||||
@StartTime datetime,
|
||||
@LastRun datetime,
|
||||
@NextRun datetime,
|
||||
@Enabled bit,
|
||||
@PriorityID nvarchar(50),
|
||||
@HistoriesNumber int,
|
||||
@MaxExecutionTime int,
|
||||
@WeekMonthDay int,
|
||||
@XmlParameters ntext
|
||||
)
|
||||
AS
|
||||
|
||||
-- check rights
|
||||
DECLARE @PackageID int
|
||||
SELECT @PackageID = PackageID FROM Schedule
|
||||
WHERE ScheduleID = @ScheduleID
|
||||
|
||||
IF dbo.CheckActorPackageRights(@ActorID, @PackageID) = 0
|
||||
RAISERROR('You are not allowed to access this package', 16, 1)
|
||||
|
||||
BEGIN TRAN
|
||||
|
||||
UPDATE Schedule
|
||||
SET
|
||||
TaskID = @TaskID,
|
||||
ScheduleName = @ScheduleName,
|
||||
ScheduleTypeID = @ScheduleTypeID,
|
||||
Interval = @Interval,
|
||||
FromTime = @FromTime,
|
||||
ToTime = @ToTime,
|
||||
StartTime = @StartTime,
|
||||
LastRun = @LastRun,
|
||||
NextRun = @NextRun,
|
||||
Enabled = @Enabled,
|
||||
PriorityID = @PriorityID,
|
||||
HistoriesNumber = @HistoriesNumber,
|
||||
MaxExecutionTime = @MaxExecutionTime,
|
||||
WeekMonthDay = @WeekMonthDay
|
||||
WHERE
|
||||
ScheduleID = @ScheduleID
|
||||
|
||||
DECLARE @idoc int
|
||||
--Create an internal representation of the XML document.
|
||||
EXEC sp_xml_preparedocument @idoc OUTPUT, @XmlParameters
|
||||
|
||||
-- Execute a SELECT statement that uses the OPENXML rowset provider.
|
||||
DELETE FROM ScheduleParameters
|
||||
WHERE ScheduleID = @ScheduleID
|
||||
|
||||
INSERT INTO ScheduleParameters
|
||||
(
|
||||
ScheduleID,
|
||||
ParameterID,
|
||||
ParameterValue
|
||||
)
|
||||
SELECT
|
||||
@ScheduleID,
|
||||
ParameterID,
|
||||
ParameterValue
|
||||
FROM OPENXML(@idoc, '/parameters/parameter',1) WITH
|
||||
(
|
||||
ParameterID nvarchar(50) '@id',
|
||||
ParameterValue nvarchar(3000) '@value'
|
||||
) as PV
|
||||
|
||||
-- remove document
|
||||
exec sp_xml_removedocument @idoc
|
||||
|
||||
COMMIT TRAN
|
||||
RETURN
|
||||
GO
|
||||
|
||||
UPDATE ScheduleTasks SET TaskType = RTRIM(TaskType) + '.Code'
|
||||
WHERE SUBSTRING(RTRIM(TaskType), LEN(RTRIM(TaskType)) - 3, 4) <> 'Code'
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetRunningSchedules')
|
||||
DROP PROCEDURE GetRunningSchedules
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'BackgroundTaskStack')
|
||||
DROP TABLE BackgroundTaskStack
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'BackgroundTaskLogs')
|
||||
DROP TABLE BackgroundTaskLogs
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'BackgroundTaskParameters')
|
||||
DROP TABLE BackgroundTaskParameters
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.TABLES WHERE name = 'BackgroundTasks')
|
||||
DROP TABLE BackgroundTasks
|
||||
GO
|
||||
|
||||
CREATE TABLE BackgroundTasks
|
||||
(
|
||||
ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
|
||||
Guid UNIQUEIDENTIFIER NOT NULL,
|
||||
TaskID NVARCHAR(255),
|
||||
ScheduleID INT NOT NULL,
|
||||
PackageID INT NOT NULL,
|
||||
UserID INT NOT NULL,
|
||||
EffectiveUserID INT NOT NULL,
|
||||
TaskName NVARCHAR(255),
|
||||
ItemID INT,
|
||||
ItemName NVARCHAR(255),
|
||||
StartDate DATETIME NOT NULL,
|
||||
FinishDate DATETIME,
|
||||
IndicatorCurrent INT NOT NULL,
|
||||
IndicatorMaximum INT NOT NULL,
|
||||
MaximumExecutionTime INT NOT NULL,
|
||||
Source NVARCHAR(MAX),
|
||||
Severity INT NOT NULL,
|
||||
Completed BIT,
|
||||
NotifyOnComplete BIT,
|
||||
Status INT NOT NULL
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TABLE BackgroundTaskParameters
|
||||
(
|
||||
ParameterID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
|
||||
TaskID INT NOT NULL,
|
||||
Name NVARCHAR(255),
|
||||
SerializerValue NTEXT,
|
||||
TypeName NVARCHAR(255),
|
||||
FOREIGN KEY (TaskID) REFERENCES BackgroundTasks (ID)
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TABLE BackgroundTaskLogs
|
||||
(
|
||||
LogID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
|
||||
TaskID INT NOT NULL,
|
||||
Date DATETIME,
|
||||
ExceptionStackTrace NTEXT,
|
||||
InnerTaskStart INT,
|
||||
Severity INT,
|
||||
Text NTEXT,
|
||||
TextIdent INT,
|
||||
XmlParameters NTEXT,
|
||||
FOREIGN KEY (TaskID) REFERENCES BackgroundTasks (ID)
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TABLE BackgroundTaskStack
|
||||
(
|
||||
TaskStackID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
|
||||
TaskID INT NOT NULL,
|
||||
FOREIGN KEY (TaskID) REFERENCES BackgroundTasks (ID)
|
||||
)
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddBackgroundTask')
|
||||
DROP PROCEDURE AddBackgroundTask
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[AddBackgroundTask]
|
||||
(
|
||||
@BackgroundTaskID INT OUTPUT,
|
||||
@Guid UNIQUEIDENTIFIER,
|
||||
@TaskID NVARCHAR(255),
|
||||
@ScheduleID INT,
|
||||
@PackageID INT,
|
||||
@UserID INT,
|
||||
@EffectiveUserID INT,
|
||||
@TaskName NVARCHAR(255),
|
||||
@ItemID INT,
|
||||
@ItemName NVARCHAR(255),
|
||||
@StartDate DATETIME,
|
||||
@IndicatorCurrent INT,
|
||||
@IndicatorMaximum INT,
|
||||
@MaximumExecutionTime INT,
|
||||
@Source NVARCHAR(MAX),
|
||||
@Severity INT,
|
||||
@Completed BIT,
|
||||
@NotifyOnComplete BIT,
|
||||
@Status INT
|
||||
)
|
||||
AS
|
||||
|
||||
INSERT INTO BackgroundTasks
|
||||
(
|
||||
Guid,
|
||||
TaskID,
|
||||
ScheduleID,
|
||||
PackageID,
|
||||
UserID,
|
||||
EffectiveUserID,
|
||||
TaskName,
|
||||
ItemID,
|
||||
ItemName,
|
||||
StartDate,
|
||||
IndicatorCurrent,
|
||||
IndicatorMaximum,
|
||||
MaximumExecutionTime,
|
||||
Source,
|
||||
Severity,
|
||||
Completed,
|
||||
NotifyOnComplete,
|
||||
Status
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
@Guid,
|
||||
@TaskID,
|
||||
@ScheduleID,
|
||||
@PackageID,
|
||||
@UserID,
|
||||
@EffectiveUserID,
|
||||
@TaskName,
|
||||
@ItemID,
|
||||
@ItemName,
|
||||
@StartDate,
|
||||
@IndicatorCurrent,
|
||||
@IndicatorMaximum,
|
||||
@MaximumExecutionTime,
|
||||
@Source,
|
||||
@Severity,
|
||||
@Completed,
|
||||
@NotifyOnComplete,
|
||||
@Status
|
||||
)
|
||||
|
||||
SET @BackgroundTaskID = SCOPE_IDENTITY()
|
||||
|
||||
RETURN
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetBackgroundTask')
|
||||
DROP PROCEDURE GetBackgroundTask
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[GetBackgroundTask]
|
||||
(
|
||||
@TaskID NVARCHAR(255)
|
||||
)
|
||||
AS
|
||||
|
||||
SELECT TOP 1
|
||||
T.ID,
|
||||
T.Guid,
|
||||
T.TaskID,
|
||||
T.ScheduleID,
|
||||
T.PackageID,
|
||||
T.UserID,
|
||||
T.EffectiveUserID,
|
||||
T.TaskName,
|
||||
T.ItemID,
|
||||
T.ItemName,
|
||||
T.StartDate,
|
||||
T.FinishDate,
|
||||
T.IndicatorCurrent,
|
||||
T.IndicatorMaximum,
|
||||
T.MaximumExecutionTime,
|
||||
T.Source,
|
||||
T.Severity,
|
||||
T.Completed,
|
||||
T.NotifyOnComplete,
|
||||
T.Status
|
||||
FROM BackgroundTasks AS T
|
||||
INNER JOIN BackgroundTaskStack AS TS
|
||||
ON TS.TaskId = T.ID
|
||||
WHERE T.TaskID = @TaskID
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetBackgroundTasks')
|
||||
DROP PROCEDURE GetBackgroundTasks
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[GetBackgroundTasks]
|
||||
(
|
||||
@ActorID INT
|
||||
)
|
||||
AS
|
||||
|
||||
with GetChildUsersId(id) as (
|
||||
select UserID
|
||||
from Users
|
||||
where UserID = @ActorID
|
||||
union all
|
||||
select C.UserId
|
||||
from GetChildUsersId P
|
||||
inner join Users C on P.id = C.OwnerID
|
||||
)
|
||||
|
||||
SELECT
|
||||
T.ID,
|
||||
T.Guid,
|
||||
T.TaskID,
|
||||
T.ScheduleId,
|
||||
T.PackageId,
|
||||
T.UserId,
|
||||
T.EffectiveUserId,
|
||||
T.TaskName,
|
||||
T.ItemId,
|
||||
T.ItemName,
|
||||
T.StartDate,
|
||||
T.FinishDate,
|
||||
T.IndicatorCurrent,
|
||||
T.IndicatorMaximum,
|
||||
T.MaximumExecutionTime,
|
||||
T.Source,
|
||||
T.Severity,
|
||||
T.Completed,
|
||||
T.NotifyOnComplete,
|
||||
T.Status
|
||||
FROM BackgroundTasks AS T
|
||||
INNER JOIN (SELECT T.Guid, MIN(T.StartDate) AS Date
|
||||
FROM BackgroundTasks AS T
|
||||
INNER JOIN BackgroundTaskStack AS TS
|
||||
ON TS.TaskId = T.ID
|
||||
WHERE T.UserID in (select id from GetChildUsersId)
|
||||
GROUP BY T.Guid) AS TT ON TT.Guid = T.Guid AND TT.Date = T.StartDate
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetThreadBackgroundTasks')
|
||||
DROP PROCEDURE GetThreadBackgroundTasks
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].GetThreadBackgroundTasks
|
||||
(
|
||||
@Guid UNIQUEIDENTIFIER
|
||||
)
|
||||
AS
|
||||
|
||||
SELECT
|
||||
T.ID,
|
||||
T.Guid,
|
||||
T.TaskID,
|
||||
T.ScheduleId,
|
||||
T.PackageId,
|
||||
T.UserId,
|
||||
T.EffectiveUserId,
|
||||
T.TaskName,
|
||||
T.ItemId,
|
||||
T.ItemName,
|
||||
T.StartDate,
|
||||
T.FinishDate,
|
||||
T.IndicatorCurrent,
|
||||
T.IndicatorMaximum,
|
||||
T.MaximumExecutionTime,
|
||||
T.Source,
|
||||
T.Severity,
|
||||
T.Completed,
|
||||
T.NotifyOnComplete,
|
||||
T.Status
|
||||
FROM BackgroundTasks AS T
|
||||
INNER JOIN BackgroundTaskStack AS TS
|
||||
ON TS.TaskId = T.ID
|
||||
WHERE T.Guid = @Guid
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetBackgroundTopTask')
|
||||
DROP PROCEDURE GetBackgroundTopTask
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[GetBackgroundTopTask]
|
||||
(
|
||||
@Guid UNIQUEIDENTIFIER
|
||||
)
|
||||
AS
|
||||
|
||||
SELECT TOP 1
|
||||
T.ID,
|
||||
T.Guid,
|
||||
T.TaskID,
|
||||
T.ScheduleId,
|
||||
T.PackageId,
|
||||
T.UserId,
|
||||
T.EffectiveUserId,
|
||||
T.TaskName,
|
||||
T.ItemId,
|
||||
T.ItemName,
|
||||
T.StartDate,
|
||||
T.FinishDate,
|
||||
T.IndicatorCurrent,
|
||||
T.IndicatorMaximum,
|
||||
T.MaximumExecutionTime,
|
||||
T.Source,
|
||||
T.Severity,
|
||||
T.Completed,
|
||||
T.NotifyOnComplete,
|
||||
T.Status
|
||||
FROM BackgroundTasks AS T
|
||||
INNER JOIN BackgroundTaskStack AS TS
|
||||
ON TS.TaskId = T.ID
|
||||
WHERE T.Guid = @Guid
|
||||
ORDER BY T.StartDate ASC
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddBackgroundTaskLog')
|
||||
DROP PROCEDURE AddBackgroundTaskLog
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[AddBackgroundTaskLog]
|
||||
(
|
||||
@TaskID INT,
|
||||
@Date DATETIME,
|
||||
@ExceptionStackTrace NTEXT,
|
||||
@InnerTaskStart INT,
|
||||
@Severity INT,
|
||||
@Text NTEXT,
|
||||
@TextIdent INT,
|
||||
@XmlParameters NTEXT
|
||||
)
|
||||
AS
|
||||
|
||||
INSERT INTO BackgroundTaskLogs
|
||||
(
|
||||
TaskID,
|
||||
Date,
|
||||
ExceptionStackTrace,
|
||||
InnerTaskStart,
|
||||
Severity,
|
||||
Text,
|
||||
TextIdent,
|
||||
XmlParameters
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
@TaskID,
|
||||
@Date,
|
||||
@ExceptionStackTrace,
|
||||
@InnerTaskStart,
|
||||
@Severity,
|
||||
@Text,
|
||||
@TextIdent,
|
||||
@XmlParameters
|
||||
)
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetBackgroundTaskLogs')
|
||||
DROP PROCEDURE GetBackgroundTaskLogs
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[GetBackgroundTaskLogs]
|
||||
(
|
||||
@TaskID INT,
|
||||
@StartLogTime DATETIME
|
||||
)
|
||||
AS
|
||||
|
||||
SELECT
|
||||
L.LogID,
|
||||
L.TaskID,
|
||||
L.Date,
|
||||
L.ExceptionStackTrace,
|
||||
L.InnerTaskStart,
|
||||
L.Severity,
|
||||
L.Text,
|
||||
L.XmlParameters
|
||||
FROM BackgroundTaskLogs AS L
|
||||
WHERE L.TaskID = @TaskID AND L.Date >= @StartLogTime
|
||||
ORDER BY L.Date
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'UpdateBackgroundTask')
|
||||
DROP PROCEDURE UpdateBackgroundTask
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[UpdateBackgroundTask]
|
||||
(
|
||||
@Guid UNIQUEIDENTIFIER,
|
||||
@TaskID INT,
|
||||
@ScheduleID INT,
|
||||
@PackageID INT,
|
||||
@TaskName NVARCHAR(255),
|
||||
@ItemID INT,
|
||||
@ItemName NVARCHAR(255),
|
||||
@FinishDate DATETIME,
|
||||
@IndicatorCurrent INT,
|
||||
@IndicatorMaximum INT,
|
||||
@MaximumExecutionTime INT,
|
||||
@Source NVARCHAR(MAX),
|
||||
@Severity INT,
|
||||
@Completed BIT,
|
||||
@NotifyOnComplete BIT,
|
||||
@Status INT
|
||||
)
|
||||
AS
|
||||
|
||||
UPDATE BackgroundTasks
|
||||
SET
|
||||
Guid = @Guid,
|
||||
ScheduleID = @ScheduleID,
|
||||
PackageID = @PackageID,
|
||||
TaskName = @TaskName,
|
||||
ItemID = @ItemID,
|
||||
ItemName = @ItemName,
|
||||
FinishDate = @FinishDate,
|
||||
IndicatorCurrent = @IndicatorCurrent,
|
||||
IndicatorMaximum = @IndicatorMaximum,
|
||||
MaximumExecutionTime = @MaximumExecutionTime,
|
||||
Source = @Source,
|
||||
Severity = @Severity,
|
||||
Completed = @Completed,
|
||||
NotifyOnComplete = @NotifyOnComplete,
|
||||
Status = @Status
|
||||
WHERE ID = @TaskID
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetBackgroundTaskParams')
|
||||
DROP PROCEDURE GetBackgroundTaskParams
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[GetBackgroundTaskParams]
|
||||
(
|
||||
@TaskID INT
|
||||
)
|
||||
AS
|
||||
|
||||
SELECT
|
||||
P.ParameterID,
|
||||
P.TaskID,
|
||||
P.Name,
|
||||
P.SerializerValue,
|
||||
P.TypeName
|
||||
FROM BackgroundTaskParameters AS P
|
||||
WHERE P.TaskID = @TaskID
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddBackgroundTaskParam')
|
||||
DROP PROCEDURE AddBackgroundTaskParam
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[AddBackgroundTaskParam]
|
||||
(
|
||||
@TaskID INT,
|
||||
@Name NVARCHAR(255),
|
||||
@Value NTEXT,
|
||||
@TypeName NVARCHAR(255)
|
||||
)
|
||||
AS
|
||||
|
||||
INSERT INTO BackgroundTaskParameters
|
||||
(
|
||||
TaskID,
|
||||
Name,
|
||||
SerializerValue,
|
||||
TypeName
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
@TaskID,
|
||||
@Name,
|
||||
@Value,
|
||||
@TypeName
|
||||
)
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'DeleteBackgroundTaskParams')
|
||||
DROP PROCEDURE DeleteBackgroundTaskParams
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[DeleteBackgroundTaskParams]
|
||||
(
|
||||
@TaskID INT
|
||||
)
|
||||
AS
|
||||
|
||||
DELETE FROM BackgroundTaskParameters
|
||||
WHERE TaskID = @TaskID
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'AddBackgroundTaskStack')
|
||||
DROP PROCEDURE AddBackgroundTaskStack
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[AddBackgroundTaskStack]
|
||||
(
|
||||
@TaskID INT
|
||||
)
|
||||
AS
|
||||
|
||||
INSERT INTO BackgroundTaskStack
|
||||
(
|
||||
TaskID
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
@TaskID
|
||||
)
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'DeleteBackgroundTasks')
|
||||
DROP PROCEDURE DeleteBackgroundTasks
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[DeleteBackgroundTasks]
|
||||
(
|
||||
@Guid UNIQUEIDENTIFIER
|
||||
)
|
||||
AS
|
||||
|
||||
DELETE FROM BackgroundTaskStack
|
||||
WHERE TaskID IN (SELECT ID FROM BackgroundTasks WHERE Guid = @Guid)
|
||||
|
||||
DELETE FROM BackgroundTaskLogs
|
||||
WHERE TaskID IN (SELECT ID FROM BackgroundTasks WHERE Guid = @Guid)
|
||||
|
||||
DELETE FROM BackgroundTaskParameters
|
||||
WHERE TaskID IN (SELECT ID FROM BackgroundTasks WHERE Guid = @Guid)
|
||||
|
||||
DELETE FROM BackgroundTasks
|
||||
WHERE ID IN (SELECT ID FROM BackgroundTasks WHERE Guid = @Guid)
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'DeleteBackgroundTask')
|
||||
DROP PROCEDURE DeleteBackgroundTask
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[DeleteBackgroundTask]
|
||||
(
|
||||
@ID INT
|
||||
)
|
||||
AS
|
||||
|
||||
DELETE FROM BackgroundTaskStack
|
||||
WHERE TaskID = @ID
|
||||
|
||||
DELETE FROM BackgroundTaskLogs
|
||||
WHERE TaskID = @ID
|
||||
|
||||
DELETE FROM BackgroundTaskParameters
|
||||
WHERE TaskID = @ID
|
||||
|
||||
DELETE FROM BackgroundTasks
|
||||
WHERE ID = @ID
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetProcessBackgroundTasks')
|
||||
DROP PROCEDURE GetProcessBackgroundTasks
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[GetProcessBackgroundTasks]
|
||||
(
|
||||
@Status INT
|
||||
)
|
||||
AS
|
||||
|
||||
SELECT
|
||||
T.ID,
|
||||
T.TaskID,
|
||||
T.ScheduleId,
|
||||
T.PackageId,
|
||||
T.UserId,
|
||||
T.EffectiveUserId,
|
||||
T.TaskName,
|
||||
T.ItemId,
|
||||
T.ItemName,
|
||||
T.StartDate,
|
||||
T.FinishDate,
|
||||
T.IndicatorCurrent,
|
||||
T.IndicatorMaximum,
|
||||
T.MaximumExecutionTime,
|
||||
T.Source,
|
||||
T.Severity,
|
||||
T.Completed,
|
||||
T.NotifyOnComplete,
|
||||
T.Status
|
||||
FROM BackgroundTasks AS T
|
||||
WHERE T.Completed = 0 AND T.Status = @Status
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetScheduleBackgroundTasks')
|
||||
DROP PROCEDURE GetScheduleBackgroundTasks
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE [dbo].[GetScheduleBackgroundTasks]
|
||||
(
|
||||
@ScheduleID INT
|
||||
)
|
||||
AS
|
||||
|
||||
SELECT
|
||||
T.ID,
|
||||
T.Guid,
|
||||
T.TaskID,
|
||||
T.ScheduleId,
|
||||
T.PackageId,
|
||||
T.UserId,
|
||||
T.EffectiveUserId,
|
||||
T.TaskName,
|
||||
T.ItemId,
|
||||
T.ItemName,
|
||||
T.StartDate,
|
||||
T.FinishDate,
|
||||
T.IndicatorCurrent,
|
||||
T.IndicatorMaximum,
|
||||
T.MaximumExecutionTime,
|
||||
T.Source,
|
||||
T.Severity,
|
||||
T.Completed,
|
||||
T.NotifyOnComplete,
|
||||
T.Status
|
||||
FROM BackgroundTasks AS T
|
||||
WHERE T.Guid = (
|
||||
SELECT Guid FROM BackgroundTasks
|
||||
WHERE ScheduleID = @ScheduleID
|
||||
AND Completed = 0 AND Status IN (1, 3))
|
||||
GO
|
||||
|
||||
-- Disclaimers
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue