USP_SMARTFIELD_VALUEBYRECORDID

Get value of a specific record calculated through process smart field.

Parameters

Parameter Parameter Type Mode Description
@SMARTFIELDCATALOGID uniqueidentifier IN
@RECORDID uniqueidentifier IN
@SFINSTANCENAME_ENDWITH nvarchar(10) IN
@result nvarchar(10) INOUT

Definition

Copy


CREATE procedure dbo.USP_SMARTFIELD_VALUEBYRECORDID
(
  @SMARTFIELDCATALOGID uniqueidentifier,
  @RECORDID uniqueidentifier,
  @SFINSTANCENAME_ENDWITH nvarchar(10) = '', --options: TO DATE, LAST WEEK, LAST MONTH

  @result nvarchar(10) = null output
)
as
begin
    declare @SMARTFIELDTABLE nvarchar(50)
  declare @script nvarchar(250)
  declare @paramDefinition nvarchar(50)

  set @result = '0'

  select @SMARTFIELDTABLE = TABLENAME 
  from dbo.SMARTFIELD SF
  join dbo.TABLECATALOG TC on SF.TABLECATALOGID = TC.ID
  where SF.SMARTFIELDCATALOGID = @SMARTFIELDCATALOGID
    and SF.NAME like '%' + @SFINSTANCENAME_ENDWITH

  set @script = 'select @resultVal = cast(Value as nvarchar(10)) from dbo.' + @SMARTFIELDTABLE + ' where ID = ''' + cast(@RECORDID as nvarchar(40)) + ''''
  set @paramDefinition = '@resultVal nvarchar(10) OUTPUT';

  exec sp_executesql @script, @paramDefinition, @resultVal=@result OUTPUT;

end