USP_DATAFORMTEMPLATE_ADD_MKTSOURCECODELAYOUTPART

The save procedure used by the add dataform template "Source Code Layout Part Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@SOURCECODEID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@MKTSOURCECODEPARTDEFINITION uniqueidentifier IN Source code part
@MKTSOURCECODEPARTDEFINITIONVALUES xml IN Source code part values
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@LENGTH tinyint IN Length
@SEQUENCE tinyint IN Sequence

Definition

Copy

CREATE procedure dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSOURCECODELAYOUTPART]
(
  @ID uniqueidentifier = null output,
  @SOURCECODEID uniqueidentifier,
  @MKTSOURCECODEPARTDEFINITION uniqueidentifier = null,
  @MKTSOURCECODEPARTDEFINITIONVALUES xml = null,
  @CHANGEAGENTID uniqueidentifier = null,    
  @LENGTH tinyint = 0,
  @SEQUENCE tinyint = 0
)
as
  set nocount on;

  declare @CURRENTDATE datetime;
  declare @SELECTEDITEMS table
  (
    [ID] uniqueidentifier,
    [MKTSOURCECODEPARTDEFINITIONVALUESID] uniqueidentifier
  );

  begin try

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

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

    set @CURRENTDATE = getdate();

    select 
      @SEQUENCE = coalesce(max(sequence) + 1, 1)
    from dbo.[MKTSOURCECODEITEM]
    where [MKTSOURCECODEITEM].[SOURCECODEID] = @SOURCECODEID;

    insert into dbo.[MKTSOURCECODEITEM] 
    (
      [ID],
      [SOURCECODEID],
      [LENGTH],
      [SEQUENCE],
      [MKTSOURCECODEPARTDEFINITIONID],
      [ADDEDBYID],
      [CHANGEDBYID],
      [DATEADDED],
      [DATECHANGED]
    ) 
    values 
    (
      @ID,
      @SOURCECODEID,
      @LENGTH,
      @SEQUENCE,
      @MKTSOURCECODEPARTDEFINITION,
      @CHANGEAGENTID,
      @CHANGEAGENTID,
      @CURRENTDATE,
      @CURRENTDATE
    );

    -- insert only selected part values
    insert into  @SELECTEDITEMS
      select
        T.c.value('(ID)[1]','uniqueidentifier') AS 'ID',
        T.c.value('(MKTSOURCECODEPARTDEFINITIONVALUESID)[1]','uniqueidentifier') AS 'MKTSOURCECODEPARTDEFINITIONVALUESID'
      from @MKTSOURCECODEPARTDEFINITIONVALUES.nodes('/MKTSOURCECODEPARTDEFINITIONVALUES/ITEM') T(c)
      where T.c.value('(VALUESELECTED)[1]','nvarchar(5)') = 'True';

    set @MKTSOURCECODEPARTDEFINITIONVALUES = (
      select 
      [ID],
      [MKTSOURCECODEPARTDEFINITIONVALUESID]
    from @SELECTEDITEMS 
    for xml raw('ITEM'),type,elements,root('MKTSOURCECODEPARTDEFINITIONVALUES'),BINARY BASE64);  

    if @MKTSOURCECODEPARTDEFINITIONVALUES is not null
      exec dbo.[USP_MKTSOURCECODEVALIDPARTVALUES_GETITEMLIST_ADDFROMXML] @ID, @MKTSOURCECODEPARTDEFINITIONVALUES, @CHANGEAGENTID, @CURRENTDATE;

  end try

  begin catch
    exec dbo.[USP_RAISE_ERROR]
    return 1;
  end catch

  return 0;