USP_PERFORMANCECATEGORYLEVELGRADE_ADDGRADESBYLEVEL_FROMXML
Used to save different grade levels for a performance category.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PERFORMANCECATEGORYLEVELID | uniqueidentifier | IN | |
@NODENAME | nvarchar(64) | IN | |
@GRADES | xml | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_PERFORMANCECATEGORYLEVELGRADE_ADDGRADESBYLEVEL_FROMXML(
@PERFORMANCECATEGORYLEVELID uniqueidentifier,
@NODENAME nvarchar(64),
@GRADES xml,
@CHANGEAGENTID uniqueidentifier = null
)
as
begin
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
-- used to add multiple grade level collections from one form; normalize the collection node name
-- rename level node to PERFORMANCECATEGORYLEVELGRADES
if @NODENAME <> 'PERFORMANCECATEGORYLEVELGRADES' and @GRADES is not null
begin
-- 'rename' by copying existing node to new name...
set @GRADES.modify('
insert <PERFORMANCECATEGORYLEVELGRADES>{/*[local-name()=sql:variable("@NODENAME")]/node()}</PERFORMANCECATEGORYLEVELGRADES>
before (/*[local-name()=sql:variable("@NODENAME")])[1]');
-- ...and deleting old node
set @GRADES.modify('
delete (/*[local-name()=sql:variable("@NODENAME")])');
end
-- add grades
exec dbo.USP_PERFORMANCECATEGORYLEVELGRADE_GETGRADES_ADDFROMXML
@PERFORMANCECATEGORYLEVELID,
@GRADES,
@CHANGEAGENTID,
@CURRENTDATE;
end