
GO

DECLARE @name nvarchar(255)
DECLARE @displayName nvarchar(255)
DECLARE @description nvarchar(MAX)
DECLARE @class nvarchar(255)
DECLARE @icon nvarchar(MAX)
DECLARE @cellClass nvarchar(255)
DECLARE @inputEditor nvarchar(255)
DECLARE @activitySet nvarchar(255)
DECLARE @outbound tinyint
DECLARE @inbound tinyint
DECLARE @flags int
DECLARE @namespace nvarchar(255)
DECLARE @schemaId int
DECLARE @activitySchema XML
DECLARE @definition nvarchar(MAX)

SET @name = %s
SET @displayName = %s
SET @description = %s
SET @class = %s
%s
SET @cellClass = %s
SET @inputEditor = %s
SET @activitySet = %s
SET @outbound = %s
SET @inbound = %s
SET @flags = %s
SET @activitySchema = %s
Select @schemaId = SchemaId From WF_Schema Where [Namespace] = %s
SET @definition = %s

IF not exists (select * from WF_Activity where Name = @name AND SchemaId = @schemaId)
BEGIN
	insert into WF_Activity(Name, DisplayName, Description, Class, CellClass, InputEditor, SchemaId, Icon, Outbound, Inbound, flags, ActivitySchema, Definition)
	values (@name, @displayName, @description, @class, @cellClass, @inputEditor, @schemaId, @icon, @outbound, @inbound, @flags, @activitySchema, @definition)

	insert into WF_ActivityGroup(ActivitySetId, ActivityId)
	Select (Select ActivitySetId From WF_ActivitySet Where Name = @activitySet), 
		   (Select ActivityId From WF_Activity Where Name = @name AND SchemaId = @schemaId)
END
ELSE
BEGIN
	update WF_Activity
	set DisplayName = @displayName, description = @description, Class = @class, CellClass = @cellClass, 
		InputEditor = @inputEditor, Icon = @icon, Outbound = @outbound, Inbound = @inbound, flags = @flags, ActivitySchema = @activitySchema,
		Definition = @definition
	where Name = @name AND SchemaId = @schemaId
END


