USP_ATTRIBUTECATEGORY_GETATTRIBUTEFORMEXTENSIONINFO

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN

Definition

Copy


create procedure dbo.USP_ATTRIBUTECATEGORY_GETATTRIBUTEFORMEXTENSIONINFO
(
  @ID uniqueidentifier
)
as
  set nocount on;

  declare @attributeName nvarchar(100);
  declare @likeClause nvarchar(50);
  declare @isCurrency bit;

  select @likeClause = TABLENAME,
  @attributeName = NAME,
  @isCurrency = case DATATYPECODE when 3 then 1 else 0 end 
  from dbo.ATTRIBUTECATEGORY
  inner join dbo.TABLECATALOG on ATTRIBUTECATEGORY.TABLECATALOGID = TABLECATALOG.ID
  where ATTRIBUTECATEGORY.ID = @ID

  declare @addClause1 nvarchar(75) = 'exec dbo.[USP_' + @likeClause;
  declare @addClause2 nvarchar(10) = '@VALUE=@';
  declare @editViewClause1 nvarchar(75) = 'from dbo.[' + @likeClause;
  declare @editViewClause2 nvarchar(10) = '@ tceles';
  set @likeClause = '%' + @likeClause + '%';

  with xmlnamespaces ('bb_appfx_adddataformtemplate' as addspec, 'bb_appfx_editdataformtemplate' as editspec, 'bb_appfx_viewdataformtemplate' as viewspec, 'bb_appfx_commontypes' as common)
  select DATAFORMTEMPLATECATALOG.ID ATTRIBUTEFORMEXTENSIONID,
  case DATAFORMTEMPLATECATALOG.MODE
  when 0 then 
      SUBSTRING(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)'),
      LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause2, REVERSE(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')), LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)'))) + 2,
      CHARINDEX(' =', DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause2, REVERSE(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')), LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)'))) + 2) - (LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause2, REVERSE(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')), LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)'))) + 2))
  when 1 then 
      SUBSTRING(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'),
      LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause2, REVERSE(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')), LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'))) + 2,
      CHARINDEX(' =', DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause2, REVERSE(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')), LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'))) + 2) - (LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause2, REVERSE(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')), LEN(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)')) - CHARINDEX(@editViewClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'))) + 2))
  when 2 then 
      SUBSTRING(DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'),
      CHARINDEX(@addClause2, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), CHARINDEX(@addClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), 0)) + 8,
      CHARINDEX(',', DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), CHARINDEX(@addClause2, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), CHARINDEX(@addClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), 0)) + 8) - (CHARINDEX(@addClause2, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), CHARINDEX(@addClause1, DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)'), 0)) + 8))
end FIELDID,
  DATAFORMTEMPLATECATALOG.MODE,
  DATAFORMTEMPLATECATALOG.TEMPLATESPECXML,
  @attributeName ATTRIBUTENAME,
  @isCurrency ISCURRENCY
  from dbo.ATTRIBUTEFORMEXTENSION
  inner join dbo.DATAFORMINSTANCECATALOG on ATTRIBUTEFORMEXTENSION.EXTENSIONDATAFORMINSTANCECATALOGID = DATAFORMINSTANCECATALOG.ID
  inner join dbo.DATAFORMTEMPLATECATALOG on DATAFORMINSTANCECATALOG.DATAFORMTEMPLATECATALOGID = DATAFORMTEMPLATECATALOG.ID
  where (DATAFORMTEMPLATECATALOG.MODE = 0 and DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(viewspec:ViewDataFormTemplateSpec/viewspec:SPDataForm/common:CreateProcedureSQL)[1]', 'nvarchar(max)') like @likeClause)
  or (DATAFORMTEMPLATECATALOG.MODE = 1 and DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(editspec:EditDataFormTemplateSpec/editspec:SPDataForm/editspec:LoadImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)') like @likeClause)
  or (DATAFORMTEMPLATECATALOG.MODE = 2 and DATAFORMTEMPLATECATALOG.TEMPLATESPECXML.value('(addspec:AddDataFormTemplateSpec/addspec:SPDataForm/addspec:SaveImplementation/common:CreateProcedureSQL)[1]', 'nvarchar(max)') like @likeClause)