USP_BUSINESSPROCESS_CREATEORUPDATE
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@NAME | nvarchar(100) | IN | |
@DESCRIPTION | nvarchar(1000) | IN | |
@BUSINESSPROCESSSPECXML | xml | IN | |
@RECORDTYPE | nvarchar(100) | IN | |
@PARAMETERTABLENAME | nvarchar(100) | IN | |
@PARAMETERLABELFIELD | nvarchar(100) | IN | |
@ALLOWSIMULTANEOUSEXECUTION | bit | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@ALLOWENQUEUE | bit | IN | |
@ENQUEUEGROUP | nvarchar(255) | IN |
Definition
Copy
CREATE procedure [dbo].[USP_BUSINESSPROCESS_CREATEORUPDATE]
@ID uniqueidentifier = null output,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(1000),
@BUSINESSPROCESSSPECXML xml,
@RECORDTYPE nvarchar(100),
@PARAMETERTABLENAME nvarchar(100),
@PARAMETERLABELFIELD nvarchar(100),
@ALLOWSIMULTANEOUSEXECUTION bit,
@CHANGEAGENTID uniqueidentifier=null,
@ALLOWENQUEUE bit = 0,
@ENQUEUEGROUP nvarchar(255) = null
as
set nocount on;
if @NAME is null or @NAME = ''
begin
raiserror ('Name was missing or blank', 16,1);
return 5;
end
if @DESCRIPTION is null or @DESCRIPTION = ''
begin
raiserror ('Description was missing or blank', 16,1);
return 5;
end
if @RECORDTYPE is null or @RECORDTYPE = ''
begin
raiserror ('RecordType was missing or blank', 16,1);
return 5;
end
declare @ExistingID uniqueidentifier;
if @ID is null
begin
select @ExistingID = ID from dbo.BUSINESSPROCESSCATALOG where NAME = @NAME;
set @ID = @ExistingID;
end
else
select @ExistingID = ID from dbo.BUSINESSPROCESSCATALOG where ID = @ID;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @date datetime;
set @date = getDate();
--Add record type if it does not exist.
declare @RecordTypeID uniqueidentifier;
exec dbo.USP_RECORDTYPE_GETID_OR_CREATE_FROMNAME @NAME=@RECORDTYPE,@CHANGEAGENTID=@CHANGEAGENTID,@RECORDTYPEID=@RecordTypeID output;
declare @SECURITYUIFOLDER nvarchar(255);
set @SECURITYUIFOLDER=
coalesce(
@BUSINESSPROCESSSPECXML.value(
'
declare namespace bbfa="bb_appfx_businessprocess";
declare namespace c="bb_appfx_commontypes";
/bbfa:BusinessProcessSpec[1]/@c:SecurityUIFolder
'
,'nvarchar(255)')
,'');
if @ExistingID is null
begin
if @ID is null
set @ID = NewID();
insert into dbo.BUSINESSPROCESSCATALOG
(ID, NAME, DESCRIPTION, BUSINESSPROCESSSPECXML, PARAMETERTABLENAME, PARAMETERLABELFIELD, RECORDTYPEID, ALLOWSIMULTANEOUSEXECUTION, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, SECURITYUIFOLDER, ALLOWENQUEUE, ENQUEUEGROUP)
values
(@ID, @NAME, @DESCRIPTION, @BUSINESSPROCESSSPECXML, @PARAMETERTABLENAME, @PARAMETERLABELFIELD, @RECORDTYPEID, @ALLOWSIMULTANEOUSEXECUTION, @CHANGEAGENTID, @CHANGEAGENTID, @date, @date, @SECURITYUIFOLDER, @ALLOWENQUEUE, @ENQUEUEGROUP);
end
else
begin
update
dbo.BUSINESSPROCESSCATALOG
set
NAME = @NAME,
DESCRIPTION = @DESCRIPTION,
BUSINESSPROCESSSPECXML = @BUSINESSPROCESSSPECXML,
RECORDTYPEID = @RECORDTYPEID,
PARAMETERTABLENAME = @PARAMETERTABLENAME,
PARAMETERLABELFIELD = @PARAMETERLABELFIELD,
ALLOWSIMULTANEOUSEXECUTION = @ALLOWSIMULTANEOUSEXECUTION,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @date,
SECURITYUIFOLDER = @SECURITYUIFOLDER,
[ALLOWENQUEUE] = @ALLOWENQUEUE,
[ENQUEUEGROUP] = @ENQUEUEGROUP
where
ID = @ID;
end
if @@ROWCOUNT=0
return 3;
return 0;