USP_UDM_OLAPDATASOURCE_CREATEORUPDATE

Inserts or updates a row in OLAPDATASOURCE. Used by the Report Mart deployment utility.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@SOURCENAME nvarchar(255) IN
@SOURCEDESCRIPTION nvarchar(2048) IN
@MARTKEY nvarchar(255) IN
@CONNECTIONSTRING nvarchar(2048) IN
@IMPERSONATE bit IN
@IMPERSONATEUSERACCOUNTSID varbinary IN
@IMPERSONATEUSERPWD nvarchar(128) IN
@CHANGEAGENTID uniqueidentifier IN
@IMPERSONATELOCALUSERNAME nvarchar(255) IN
@UDMDEPLOYMENTMANIFEST xml IN
@ETLSERVERNAME nvarchar(128) IN
@ETLJOBNAME nvarchar(255) IN
@ETLJOBSTEPNAME nvarchar(255) IN
@MARTMANIFEST xml IN
@ETLDATABASENAME nvarchar(128) IN
@ISOLAP bit IN
@INCLUDESELECTIONS bit IN
@VALIDATIONPROCESSID uniqueidentifier IN
@ETLMAXPARALLELISM tinyint IN
@DATEQUERYNAME nvarchar(128) IN
@DATEQUERYKEYCOLUMN nvarchar(128) IN
@SUPPORTSROLLINGDATES bit IN

Definition

Copy


CREATE procedure dbo.[USP_UDM_OLAPDATASOURCE_CREATEORUPDATE]

/* Used by the OLAP Report Deployment utility */

@ID uniqueidentifier = null output,
@SOURCENAME nvarchar(255) ,
@SOURCEDESCRIPTION nvarchar(2048)='' ,
@MARTKEY nvarchar(255) ='',
@CONNECTIONSTRING nvarchar(2048),
@IMPERSONATE bit=0,
@IMPERSONATEUSERACCOUNTSID varbinary(85) = null,
@IMPERSONATEUSERPWD nvarchar(128)=null,
@CHANGEAGENTID uniqueidentifier = null,
@IMPERSONATELOCALUSERNAME nvarchar(255) = null,
@UDMDEPLOYMENTMANIFEST xml = null,
@ETLSERVERNAME nvarchar(128)='',
@ETLJOBNAME nvarchar(255)='',
@ETLJOBSTEPNAME nvarchar(255)='',
@MARTMANIFEST xml,
@ETLDATABASENAME nvarchar(128)='',
@ISOLAP bit=1,
@INCLUDESELECTIONS bit = 0,
@VALIDATIONPROCESSID uniqueidentifier=null,
@ETLMAXPARALLELISM tinyint = 1,
@DATEQUERYNAME nvarchar(128)='',
@DATEQUERYKEYCOLUMN nvarchar(128)='',
@SUPPORTSROLLINGDATES bit=0

as

set nocount on;

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

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

if @IMPERSONATE =1 and (
            (coalesce(@IMPERSONATEUSERPWD,'') = '')
            or
            (@IMPERSONATEUSERACCOUNTSID is null and @IMPERSONATELOCALUSERNAME is null)
            )
  begin

    raiserror('Calling sp dbo.USP_UDM_OLAPDATASOURCE_CREATEORUPDATE with @IMPERSONATE =1 requires a non-blank @IMPERSONATEUSERPWD and @IMPERSONATEUSERACCOUNTSID OR @IMPERSONATELOCALUSERNAME',16,10);
    return 10;

  end

if @IMPERSONATE =0
  set    @IMPERSONATEUSERPWD='';
else
begin

    exec dbo.USP_GET_KEY_ACCESS;  

  set @IMPERSONATEUSERPWD = EncryptByKey(Key_GUID('sym_BBInfinity'), @IMPERSONATEUSERPWD);

  close symmetric key sym_BBInfinity;

end


if exists (select [ID] from dbo.[OLAPDATASOURCE] where [ID] = @ID)
  begin

  update dbo.[OLAPDATASOURCE]
    set    
    [SOURCENAME] = @SOURCENAME,
    [SOURCEDESCRIPTION] = @SOURCEDESCRIPTION,        
    [MARTKEY] = @MARTKEY,
    [CONNECTIONSTRING] = @CONNECTIONSTRING,
    [IMPERSONATE] = @IMPERSONATE,        
    [IMPERSONATEUSERACCOUNTSID] = @IMPERSONATEUSERACCOUNTSID,
    [IMPERSONATEUSERPWD] = @IMPERSONATEUSERPWD,        
    [IMPERSONATELOCALUSERNAME] = @IMPERSONATELOCALUSERNAME,
    [CHANGEDBYID] = @CHANGEAGENTID,
    [UDMDEPLOYMENTMANIFEST] = @UDMDEPLOYMENTMANIFEST,
    [ETLSERVERNAME] = @ETLSERVERNAME,
    [ETLJOBNAME] = @ETLJOBNAME,
    [ETLJOBSTEPNAME] = @ETLJOBSTEPNAME,
    [MARTMANIFEST] = @MARTMANIFEST,
    [ETLDATABASENAME] = @ETLDATABASENAME,
    [ISOLAP] = @ISOLAP,
    [INCLUDESELECTIONS] = @INCLUDESELECTIONS,
    [VALIDATIONPROCESSID] = @VALIDATIONPROCESSID,
    [ETLMAXPARALLELISM] = @ETLMAXPARALLELISM,
    [DATEQUERYNAME] = @DATEQUERYNAME,
    [DATEQUERYKEYCOLUMN] = @DATEQUERYKEYCOLUMN,
    [SUPPORTSROLLINGDATES] = @SUPPORTSROLLINGDATES
    where [ID] = @ID;

  end
else 
  begin

    insert into dbo.[OLAPDATASOURCE]
    ([ID],[SOURCENAME],[SOURCEDESCRIPTION],[MARTKEY],[CONNECTIONSTRING],[IMPERSONATE],[IMPERSONATEUSERACCOUNTSID],[IMPERSONATEUSERPWD],[ADDEDBYID],[CHANGEDBYID],[IMPERSONATELOCALUSERNAME],[UDMDEPLOYMENTMANIFEST],[ETLSERVERNAME],[ETLJOBNAME],[ETLJOBSTEPNAME],[MARTMANIFEST],[ETLDATABASENAME],[ISOLAP],[INCLUDESELECTIONS], [VALIDATIONPROCESSID], [ETLMAXPARALLELISM], [DATEQUERYNAME], [DATEQUERYKEYCOLUMN], [SUPPORTSROLLINGDATES])
    values
    (@ID,@SOURCENAME,@SOURCEDESCRIPTION,@MARTKEY,@CONNECTIONSTRING,@IMPERSONATE,@IMPERSONATEUSERACCOUNTSID,@IMPERSONATEUSERPWD,@CHANGEAGENTID,@CHANGEAGENTID,@IMPERSONATELOCALUSERNAME,@UDMDEPLOYMENTMANIFEST,@ETLSERVERNAME,@ETLJOBNAME,@ETLJOBSTEPNAME,@MARTMANIFEST,@ETLDATABASENAME,@ISOLAP,@INCLUDESELECTIONS,@VALIDATIONPROCESSID,@ETLMAXPARALLELISM,@DATEQUERYNAME,@DATEQUERYKEYCOLUMN,@SUPPORTSROLLINGDATES);

  end

  --Populate tables used by OLAP and ETL business processes


  exec dbo.[USP_ADDETLREFRESHPARAMETERS] @ID, @CHANGEAGENTID;

  if @ISOLAP = 1
  begin
    exec dbo.[USP_ADDOLAPREFRESHPARAMETERS] @ID, @CHANGEAGENTID;
  end

  --Populate tables for validation parameters

  exec dbo.[USP_ADDOLAPDATASOURCEVALIDATIONPARAMETERS] @ID, @CHANGEAGENTID;

return 0;