USP_TRANSLATIONFUNCTION_CREATEORUPDATE

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@NAME nvarchar(60) IN
@DESCRIPTION nvarchar(1000) IN
@RECORDTYPE nvarchar(50) IN
@FUNCTION nvarchar(128) IN
@PARAMETERXML xml IN
@SPECXML xml IN
@CHANGEAGENTID uniqueidentifier IN
@IMPLEMENTATIONTYPE tinyint IN
@ASSEMBLYNAME nvarchar(128) IN
@CLASSNAME nvarchar(128) IN

Definition

Copy

CREATE procedure dbo.USP_TRANSLATIONFUNCTION_CREATEORUPDATE
    @ID uniqueidentifier = null output,
    @NAME nvarchar(60),
    @DESCRIPTION nvarchar(1000) = '',
    @RECORDTYPE nvarchar(50) = '',
    @FUNCTION nvarchar(128),
    @PARAMETERXML xml = null,
    @SPECXML xml,    
    @CHANGEAGENTID uniqueidentifier = null,
    @IMPLEMENTATIONTYPE tinyint=0,
    @ASSEMBLYNAME nvarchar(128)='',
    @CLASSNAME nvarchar(128)=''

as

set nocount on;

declare @ExistingID uniqueidentifier;
declare @RecTypeID uniqueidentifier;
declare @OBJID int

if @ID is null
    begin
      select @ExistingID = ID from dbo.TRANSLATIONFUNCTIONCATALOG where [NAME] = @NAME;
      set @ID = @ExistingID;
    end
else
    select @ExistingID = ID from dbo.TRANSLATIONFUNCTIONCATALOG where ID = @ID;

if @CHANGEAGENTID is null  exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

if @IMPLEMENTATIONTYPE =0
begin

    -- make sure this is a valid function
    select @OBJID = id from dbo.sysobjects where type in ('FN', 'FS') and name = @FUNCTION;

    if @OBJID is null
        begin
            raiserror ('Scalar function ''%s'' does not exist or you do not have security access.', 16, 1, @FUNCTION)
            return 1;
        end
end


if len(@RECORDTYPE) > 0 
    --Add record type if it does not exist.        
    exec dbo.USP_RECORDTYPE_GETID_OR_CREATE_FROMNAME @NAME=@RECORDTYPE,@CHANGEAGENTID=@CHANGEAGENTID,@RECORDTYPEID=@RecTypeID output;
else
    set @RecTypeID = null

declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()

if @ExistingID is null 

    begin
        if @ID is null set @ID = NewID()

        insert into dbo.TRANSLATIONFUNCTIONCATALOG (ID, [NAME], DESCRIPTION, FUNCTIONNAME, RECORDTYPEID, PARAMETERDEFINITION, TRANSLATIONFUNCTIONSPEC, ADDEDBYID, CHANGEDBYID,IMPLEMENTATIONTYPE,ASSEMBLYNAME,CLASSNAME, DATEADDED, DATECHANGED)
            values (@ID, @NAME, @DESCRIPTION, @FUNCTION, @RecTypeID, @PARAMETERXML, @SPECXML, @CHANGEAGENTID, @CHANGEAGENTID,@IMPLEMENTATIONTYPE,@ASSEMBLYNAME,@CLASSNAME, @CURRENTDATE, @CURRENTDATE)
    end

else

    update dbo.TRANSLATIONFUNCTIONCATALOG 
    set [NAME] = @NAME,
        DESCRIPTION = @DESCRIPTION
        FUNCTIONNAME = @FUNCTION,
        RECORDTYPEID = @RecTypeID,
        PARAMETERDEFINITION = @PARAMETERXML,
        TRANSLATIONFUNCTIONSPEC = @SPECXML,
        CHANGEDBYID = @CHANGEAGENTID,
        IMPLEMENTATIONTYPE=@IMPLEMENTATIONTYPE,
        ASSEMBLYNAME=@ASSEMBLYNAME,
        CLASSNAME=@CLASSNAME,
        DATECHANGED = @CURRENTDATE

    where ID = @ExistingID;

return 0;