USP_IDMAPPER_CREATEORUPDATE_SP
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@NAME | nvarchar(60) | IN | |
@DESCRIPTION | nvarchar(1000) | IN | |
@PROCEDURE | nvarchar(128) | IN | |
@SPECXML | xml | IN | |
@SOURCERECORDTYPE | nvarchar(50) | IN | |
@TARGETRECORDTYPE | nvarchar(50) | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure [dbo].[USP_IDMAPPER_CREATEORUPDATE_SP]
@ID uniqueidentifier = null output,
@NAME nvarchar(60),
@DESCRIPTION nvarchar(1000) = '',
@PROCEDURE nvarchar(128),
@SPECXML xml,
@SOURCERECORDTYPE nvarchar(50)= null,
@TARGETRECORDTYPE nvarchar(50)= null,
@CHANGEAGENTID uniqueidentifier = null
as
set nocount on
declare @ExistingID uniqueidentifier
declare @OBJID int
if @ID is null
begin
select @ExistingID = ID from dbo.IDMAPPERCATALOG where [NAME] = @NAME
set @ID = @ExistingID
end
else
select @ExistingID = ID from dbo.IDMAPPERCATALOG where ID = @ID
if @CHANGEAGENTID is null exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
-- make sure this is a valid procedure
select @OBJID = id from dbo.sysobjects where type in ('P', 'PC') and name = @PROCEDURE
if @OBJID is null
begin
raiserror ('Procedure ''%s'' does not exist or you do not have security access.', 16, 1, @PROCEDURE)
return 1;
end
declare @SOURCERECORDTYPEID uniqueidentifier;
if coalesce(@SOURCERECORDTYPE,'') <> ''
begin
exec dbo.USP_RECORDTYPE_GETID_OR_CREATE_FROMNAME
@NAME=@SOURCERECORDTYPE,
@CHANGEAGENTID=@CHANGEAGENTID,
@RECORDTYPEID=@SOURCERECORDTYPEID output;
end
declare @TARGETRECORDTYPEID uniqueidentifier;
if coalesce(@TARGETRECORDTYPE,'') <> ''
begin
exec dbo.USP_RECORDTYPE_GETID_OR_CREATE_FROMNAME
@NAME=@TARGETRECORDTYPE,
@CHANGEAGENTID=@CHANGEAGENTID,
@RECORDTYPEID=@TARGETRECORDTYPEID output;
end
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
if @ExistingID is null
begin
if @ID is null set @ID = NewID()
insert into dbo.IDMAPPERCATALOG (IMPLEMENTATIONTYPE,ID, [NAME], DESCRIPTION, PROCEDURENAME, IDMAPPERSPECXML, SOURCERECORDTYPEID,TARGETRECORDTYPEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (0,@ID, @NAME, @DESCRIPTION, @PROCEDURE, @SPECXML, @SOURCERECORDTYPEID, @TARGETRECORDTYPEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
end
else
update dbo.IDMAPPERCATALOG
set [NAME] = @NAME,
IMPLEMENTATIONTYPE=0,
DESCRIPTION = @DESCRIPTION,
PROCEDURENAME = @PROCEDURE,
STATICPARAMETERDEFINITION = null,
IDMAPPERSPECXML = @SPECXML,
SOURCERECORDTYPEID=@SOURCERECORDTYPEID,
TARGETRECORDTYPEID=@TARGETRECORDTYPEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ExistingID
return 0;