USP_DATAFORMTEMPLATE_ADD_PDACCOUNTSTRUCTURE2
The save procedure used by the add dataform template "Account Structure Add Form 2".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SYSTEMID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@DESCRIPTION | nvarchar(100) | IN | Segment name |
@SEQUENCE | int | IN | Sequence |
@LENGTH | tinyint | IN | Length |
@PDACCOUNTTABLESAVAILABLEFORSEGMENTID | uniqueidentifier | IN | Calculated using |
@SEGMENTTYPE | tinyint | IN | Segment type |
@SEPARATORCODE | tinyint | IN | Separator |
@PDACCOUNTSYSTEMID | uniqueidentifier | IN | |
@ISPROJECTSEGMENT | bit | IN | Associate this segment with 'Project' |
@FENXT | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_PDACCOUNTSTRUCTURE2
(
@SYSTEMID uniqueidentifier,
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@DESCRIPTION nvarchar(100) = null,
@SEQUENCE int = 0,
@LENGTH tinyint = 0,
@PDACCOUNTTABLESAVAILABLEFORSEGMENTID uniqueidentifier = null,
@SEGMENTTYPE tinyint = 3,
@SEPARATORCODE tinyint = 1,
@PDACCOUNTSYSTEMID uniqueidentifier = null,
@ISPROJECTSEGMENT bit = 0,
@FENXT bit = 0
)
as
set nocount on;
if @ID is null
set @ID = newid()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
declare @ISCONSTANTVALUE bit = 0
set @CURRENTDATE = getdate()
select
@SEQUENCE = dbo.UFN_PDACCOUNTSTRUCTURE_GETTABLENUMBER()
select
@SEQUENCE = count(ID) from dbo.PDACCOUNTSTRUCTURE
where
PDACCOUNTSYSTEMID=@PDACCOUNTSYSTEMID
set
@SEQUENCE = @SEQUENCE + 1
select
@SEGMENTTYPE = case when ISCODETABLE < 3 then 3 else 4 end
from
PDACCOUNTTABLESAVAILABLEFORSEGMENT
where
ID = @PDACCOUNTTABLESAVAILABLEFORSEGMENTID
if @SEPARATORCODE is null
set @SEPARATORCODE = 1
declare @MAXCOLUMN int;
select
@MAXCOLUMN = isnull(max(SEGMENTCOLUMN) + 1,1)
from
dbo.PDACCOUNTSTRUCTURE;
begin try
-- Only one system can be set to default.
if @ISPROJECTSEGMENT = 1
update dbo.PDACCOUNTSTRUCTURE set ISPROJECTSEGMENT = 0 where ISPROJECTSEGMENT = 1 and PDACCOUNTSYSTEMID = @PDACCOUNTSYSTEMID;
if @PDACCOUNTTABLESAVAILABLEFORSEGMENTID = '1BA6F27F-8454-4FC4-A830-3FDA8CD35D04'
set @ISCONSTANTVALUE = 1
-- handle inserting the data
insert into dbo.PDACCOUNTSTRUCTURE
(ID, DESCRIPTION, SEQUENCE, LENGTH, PDACCOUNTTABLESAVAILABLEFORSEGMENTID, SEGMENTTYPE, SEPARATORCODE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, PDACCOUNTSYSTEMID, ISPROJECTSEGMENT, ISCONSTANTVALUE,SEGMENTCOLUMN, SEGMENTSEQUENCE)
values
(@ID, @DESCRIPTION, @SEQUENCE, @LENGTH, @PDACCOUNTTABLESAVAILABLEFORSEGMENTID,@SEGMENTTYPE,@SEPARATORCODE, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE, @SYSTEMID, @ISPROJECTSEGMENT, @ISCONSTANTVALUE,@MAXCOLUMN, @SEQUENCE)
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0