USP_DATAFORMTEMPLATE_EDIT_NETCOMMUNITYPROCESSOR

The save procedure used by the edit dataform template "NetCommunity Processor Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@NAME nvarchar(256) IN Transaction type
@DESCRIPTION nvarchar(1000) IN Description
@BATCHTEMPLATEID uniqueidentifier IN Batch design
@SPLITTRANSACTIONS bit IN Split transactions
@DOWNLOADSPLITS xml IN Download splits

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_NETCOMMUNITYPROCESSOR
                (
                    @ID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @NAME nvarchar(256),
                    @DESCRIPTION nvarchar(1000),
                    @BATCHTEMPLATEID uniqueidentifier,
                    @SPLITTRANSACTIONS bit,
                    @DOWNLOADSPLITS xml
                )
                as
                    set nocount on;

                    declare @CURRENTDATE datetime;

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

                    set @CURRENTDATE = getdate();

                    declare    @ASSEMBLYNAME nvarchar(128);
                    declare    @CLASSNAME nvarchar(128);
                    with xmlnamespaces (default 'bb_appfx_batchtype')
                    select top 1 
                        @ASSEMBLYNAME = T.c.value('@AssemblyName','nvarchar(max)'),
                        @CLASSNAME = T.c.value('@ClassName','nvarchar(max)')
                    from 
                        dbo.BATCHTEMPLATE
                    inner join
                        dbo.BATCHTYPECATALOG on BATCHTEMPLATE.BATCHTYPECATALOGID = BATCHTYPECATALOG.ID
                    cross apply 
                        specxml.nodes('/BatchTypeSpec/NetCommunityProcessor') T(c)    
                    where 
                        BATCHTEMPLATE.ID = @BATCHTEMPLATEID;

                    if @ASSEMBLYNAME is null
                        set @ASSEMBLYNAME = '';

                    if @CLASSNAME is null
                        set @CLASSNAME = '';

                    if len(@ASSEMBLYNAME) > 4 and right(upper(@ASSEMBLYNAME),4) = '.DLL'
                        set @ASSEMBLYNAME = left(@ASSEMBLYNAME, len(@ASSEMBLYNAME) - 4);

                    -- If they haven't selected any owners we'll download all

                    -- transactions into a single batch

                    if @DOWNLOADSPLITS is null
                        set @SPLITTRANSACTIONS = 0;

                    begin try
                        update
                            dbo.NETCOMMUNITYTRANSACTIONPROCESSOR
                        set
                            NAME = @NAME,
                            DESCRIPTION = @DESCRIPTION,
                            BATCHTEMPLATEID = @BATCHTEMPLATEID,
                            ASSEMBLYNAME = @ASSEMBLYNAME,
                            CLASSNAME = @CLASSNAME,
                            SPLITTRANSACTIONS = @SPLITTRANSACTIONS,
                            DATECHANGED = @CURRENTDATE,
                            CHANGEDBYID = @CHANGEAGENTID
                        where 
                            ID = @ID;

                        delete from 
                            dbo.NETCOMMUNITYPROCESSORSPLIT 
                        where 
                            NETCOMMUNITYTRANSACTIONPROCESSORID = @ID;

                        if @SPLITTRANSACTIONS = 1 and @DOWNLOADSPLITS is not null
                            insert into dbo.NETCOMMUNITYPROCESSORSPLIT(ID, NETCOMMUNITYTRANSACTIONPROCESSORID, OWNERID, SEQUENCE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                                select
                                    coalesce(ID, newid()),
                                    @ID,
                                    OWNERID,
                                    SEQUENCE,
                                    @CHANGEAGENTID,
                                    @CHANGEAGENTID,
                                    @CURRENTDATE,
                                    @CURRENTDATE
                                from dbo.UFN_BBNC_GETDOWNLOADSPLITS_FROMITEMLISTXML(@DOWNLOADSPLITS);

                    end try
                    begin catch
                        exec dbo.USP_RAISE_ERROR;
                        return 1;
                    end catch

                    return 0;