spAddUpdate_DataSources
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PKID | int | INOUT | |
@BackOfficeSystemID | int | IN | |
@Name | nvarchar(255) | IN | |
@FieldNames | xml | IN |
Definition
Copy
CREATE PROC [dbo].[spAddUpdate_DataSources]
@PKID int OUTPUT,
@BackOfficeSystemID int,
@Name nvarchar(255),
@FieldNames xml
as
DECLARE @NewDataSourceID int
IF @PKID <= 0
BEGIN
-- generate next uploaded datasource id available
SELECT @NewDataSourceID=coalesce(max([DataSourceID])+1, 1001)
FROM dbo.DataSources
WHERE [DataSourceID]>1000
INSERT INTO [dbo].[DataSources]
([DataSourceID]
,[Name]
,[TypeNamespace]
,[TypeName]
,[IsEmailListSource]
,[BackOfficeSystemId]
,[Available]
,[SubscriberProviderForSystemID]
,[ImportListID]
,[UploadOrigin])
VALUES(
@NewDataSourceID,
@Name,
'Blackbaud.Web.Content.Core',
'Blackbaud.Web.Content.Core.DataSourceBBDM',
0,
@BackOfficeSystemID,
1,
-1,
NULL,
1)
INSERT INTO dbo.BBDM_Fields (DataSourceID,[Name],IsEmailAddress,IsEmailDisplay, IsUnique, IsFinderNumber)
SELECT @NewDataSourceID, X.Fields.value('Name[1]', 'nvarchar(255)') [Name],
X.Fields.value('IsEmailAddress[1]', 'bit') IsEmailAddress,
X.Fields.value('IsEmailDisplay[1]', 'bit') IsEmailDisplay,
X.Fields.value('IsUniqueIdentifier[1]', 'bit') IsUnique,
X.Fields.value('IsFinderNumber[1]', 'bit') IsFinderNumber
FROM @FieldNames.nodes('/ArrayOfFieldInfo/FieldInfo') X(fields)
SET @PKID = @NewDataSourceID
END
ELSE
BEGIN
UPDATE DataSources
SET [Name] = @Name
WHERE DataSourceID = @PKID
INSERT INTO dbo.BBDM_Fields (DataSourceID,[Name],IsEmailAddress,IsEmailDisplay, IsUnique, IsFinderNumber)
SELECT @PKID, X.Fields.value('Name[1]', 'nvarchar(255)') [Name],
X.Fields.value('IsEmailAddress[1]', 'bit') IsEmailAddress,
X.Fields.value('IsEmailDisplay[1]', 'bit') IsEmailDisplay,
X.Fields.value('IsUniqueIdentifier[1]', 'bit') IsUnique,
X.Fields.value('IsFinderNumber[1]', 'bit') IsFinderNumber
FROM @FieldNames.nodes('/ArrayOfFieldInfo/FieldInfo') X(fields)
WHERE NOT EXISTS (SELECT NULL FROM BBDM_Fields WHERE [Name] = X.Fields.value('Name[1]', 'nvarchar(255)') AND DataSourceID = @PKID)
END