USP_BUSINESSPROCESSOUTPUT_SAVELETTERTEMPLATE
Associates a letter template with a business process output.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@BUSINESSPROCESSSTATUSID | uniqueidentifier | IN | |
@BUSINESSPROCESSOUTPUTTABLEKEY | nvarchar(50) | IN | |
@WORDTEMPLATETABLENAME | nvarchar(255) | IN | |
@WORDTEMPLATECOLUMNNAME | nvarchar(255) | IN | |
@WORDTEMPLATEID | uniqueidentifier | IN | |
@LETTERTEMPLATENAME | nvarchar(255) | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.[USP_BUSINESSPROCESSOUTPUT_SAVELETTERTEMPLATE]
(
@BUSINESSPROCESSSTATUSID uniqueidentifier,
@BUSINESSPROCESSOUTPUTTABLEKEY nvarchar(50),
@WORDTEMPLATETABLENAME nvarchar(255),
@WORDTEMPLATECOLUMNNAME nvarchar(255),
@WORDTEMPLATEID uniqueidentifier,
@LETTERTEMPLATENAME nvarchar(255),
@CHANGEAGENTID uniqueidentifier
)
with execute as caller
as
set nocount on;
declare @SQL nvarchar(1024);
declare @FILE varbinary(max);
declare @EXISTS bit;
declare @CURRENTDATE datetime;
set @EXISTS = 0;
set @SQL = 'if exists (select [TABLE_NAME] from [INFORMATION_SCHEMA].[TABLES] where [TABLE_NAME] = @TABLENAME) set @EXISTS = 1;';
exec sp_executesql @SQL, N'@TABLENAME nvarchar(255), @EXISTS bit output', @TABLENAME = @WORDTEMPLATETABLENAME, @EXISTS = @EXISTS output;
if @EXISTS = 0
begin
raiserror(N'%s is not a valid table name.', 16, 1, @WORDTEMPLATETABLENAME);
return 1;
end;
set @EXISTS = 0;
set @SQL = 'if exists (select [COLUMN_NAME] from [INFORMATION_SCHEMA].[COLUMNS] where [TABLE_NAME] = @TABLENAME and [COLUMN_NAME] = @COLUMNNAME) set @EXISTS = 1;';
exec sp_executesql @SQL, N'@TABLENAME nvarchar(255), @COLUMNNAME nvarchar(255), @EXISTS bit output', @TABLENAME = @WORDTEMPLATETABLENAME, @COLUMNNAME = @WORDTEMPLATECOLUMNNAME, @EXISTS = @EXISTS output;
if @EXISTS = 0
begin
raiserror(N'%s is not a valid column name.', 16, 1, @WORDTEMPLATECOLUMNNAME);
return 1;
end;
set @SQL = 'select @FILE = [' + @WORDTEMPLATECOLUMNNAME + '] from dbo.[' + @WORDTEMPLATETABLENAME + '] where [ID] = @WORDTEMPLATEID;';
exec sp_executesql @SQL, N'@WORDTEMPLATEID uniqueidentifier, @FILE varbinary(max) output', @WORDTEMPLATEID = @WORDTEMPLATEID, @FILE = @FILE output;
set @CURRENTDATE = getdate();
if exists (select * from dbo.[BUSINESSPROCESSOUTPUTTEMPLATE] where [BUSINESSPROCESSSTATUSID] = @BUSINESSPROCESSSTATUSID and [BUSINESSPROCESSOUTPUTTABLEKEY] = @BUSINESSPROCESSOUTPUTTABLEKEY and [WORDTEMPLATEID] = @WORDTEMPLATEID)
update dbo.[BUSINESSPROCESSOUTPUTTEMPLATE] set
[LETTERTEMPLATE] = @FILE,
[LETTERTEMPLATENAME] = @LETTERTEMPLATENAME,
[DATECHANGED] = @CURRENTDATE,
[CHANGEDBYID] = @CHANGEAGENTID
where [BUSINESSPROCESSSTATUSID] = @BUSINESSPROCESSSTATUSID
and [BUSINESSPROCESSOUTPUTTABLEKEY] = @BUSINESSPROCESSOUTPUTTABLEKEY
and [WORDTEMPLATEID] = @WORDTEMPLATEID
else
insert into dbo.[BUSINESSPROCESSOUTPUTTEMPLATE]
(
[ID],
[BUSINESSPROCESSSTATUSID],
[BUSINESSPROCESSOUTPUTTABLEKEY],
[WORDTEMPLATEID],
[LETTERTEMPLATE],
[LETTERTEMPLATENAME],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
) values (
newid(),
@BUSINESSPROCESSSTATUSID,
@BUSINESSPROCESSOUTPUTTABLEKEY,
@WORDTEMPLATEID,
@FILE,
@LETTERTEMPLATENAME,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);