USP_KPIINSTANCE_CREATEORUPDATE

Adds a KPI instance to the database or update an instance that already exists.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@KPICATALOGID uniqueidentifier IN
@NAME nvarchar(255) IN
@DESCRIPTION nvarchar(1000) IN
@CONTEXTRECORDID nvarchar(100) IN
@GOALVALUE decimal(19, 4) IN
@GOALINDICATORTYPECODE tinyint IN
@GOALAIMTYPECODE tinyint IN
@GOALUPWARDLOWVALUE decimal(19, 4) IN
@GOALUPWARDMIDVALUE decimal(19, 4) IN
@GOALDOWNWARDMIDVALUE decimal(19, 4) IN
@GOALDOWNWARDHIGHVALUE decimal(19, 4) IN
@PARAMETERSXML xml IN
@HISTORYTYPECODE tinyint IN
@NUMBEROFITEMSTOSTORE int IN
@CHANGEAGENTID uniqueidentifier IN
@SITEFILTERENABLEDFORINSTANCE bit IN
@SITESSELECTED xml IN
@FOLDERID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_KPIINSTANCE_CREATEORUPDATE(@ID uniqueidentifier = null output,
    @KPICATALOGID uniqueidentifier,
    @NAME nvarchar(255),
    @DESCRIPTION nvarchar(1000),
    @CONTEXTRECORDID nvarchar(100),
    @GOALVALUE decimal(19, 4) = null,
    @GOALINDICATORTYPECODE tinyint,
    @GOALAIMTYPECODE tinyint,
    @GOALUPWARDLOWVALUE decimal(19, 4),
    @GOALUPWARDMIDVALUE decimal(19, 4),
    @GOALDOWNWARDMIDVALUE decimal(19, 4),
    @GOALDOWNWARDHIGHVALUE decimal(19, 4),
    @PARAMETERSXML xml,
    @HISTORYTYPECODE tinyint,
    @NUMBEROFITEMSTOSTORE int,
    @CHANGEAGENTID uniqueidentifier,
    @SITEFILTERENABLEDFORINSTANCE bit,
    @SITESSELECTED xml = null,
  @FOLDERID uniqueidentifier = null
    )
with execute as caller
as
    set nocount on;

    declare @CURRENTDATE datetime;
    set @CURRENTDATE = getdate();

    -- Null out @SITESSELECTED, just to be safe

    if @SITEFILTERENABLEDFORINSTANCE = 0
        set @SITESSELECTED = null

    if exists (select ID from dbo.KPIINSTANCE where ID = @ID)
    begin
        update dbo.KPIINSTANCE set NAME = @NAME,
            DESCRIPTION = @DESCRIPTION,
            GOALVALUE = @GOALVALUE,
            CONTEXTRECORDID = @CONTEXTRECORDID,
            GOALINDICATORTYPECODE = @GOALINDICATORTYPECODE,
            GOALAIMTYPECODE = @GOALAIMTYPECODE,
            GOALUPWARDLOWVALUE = @GOALUPWARDLOWVALUE,
            GOALUPWARDMIDVALUE = @GOALUPWARDMIDVALUE,
            GOALDOWNWARDMIDVALUE = @GOALDOWNWARDMIDVALUE,
            GOALDOWNWARDHIGHVALUE = @GOALDOWNWARDHIGHVALUE,
            PARAMETERSXML = @PARAMETERSXML,
            HISTORYTYPECODE = @HISTORYTYPECODE,
            NUMBEROFITEMSTOSTORE = @NUMBEROFITEMSTOSTORE,
            SITEFILTERENABLEDFORINSTANCE = @SITEFILTERENABLEDFORINSTANCE,
      FOLDERID = @FOLDERID,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE
        where ID = @ID;

        exec dbo.USP_KPIINSTANCESITES_GET_UPDATEFROMXML @ID, @SITESSELECTED, @CHANGEAGENTID, @CURRENTDATE
    end
    else
    begin    

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

        insert into dbo.KPIINSTANCE (ID,
            KPICATALOGID,
            NAME,
            DESCRIPTION,
            CONTEXTRECORDID,
            GOALVALUE,
            GOALINDICATORTYPECODE,
            GOALAIMTYPECODE,
            GOALUPWARDLOWVALUE,
            GOALUPWARDMIDVALUE,
            GOALDOWNWARDMIDVALUE,
            GOALDOWNWARDHIGHVALUE,
            PARAMETERSXML,
            HISTORYTYPECODE,
            NUMBEROFITEMSTOSTORE,
            SITEFILTERENABLEDFORINSTANCE,
      FOLDERID,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED)
        values (@ID,
            @KPICATALOGID,
            @NAME,
            @DESCRIPTION,
            @CONTEXTRECORDID,
            @GOALVALUE,
            @GOALINDICATORTYPECODE,
            @GOALAIMTYPECODE,
            @GOALUPWARDLOWVALUE,
            @GOALUPWARDMIDVALUE,
            @GOALDOWNWARDMIDVALUE,
            @GOALDOWNWARDHIGHVALUE,
            @PARAMETERSXML,
            @HISTORYTYPECODE,
            @NUMBEROFITEMSTOSTORE,
            @SITEFILTERENABLEDFORINSTANCE,
      @FOLDERID,
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            @CURRENTDATE,
            @CURRENTDATE);

            exec dbo.USP_KPIINSTANCESITES_GET_ADDFROMXML @ID, @SITESSELECTED, @CHANGEAGENTID, @CURRENTDATE
    end;