USP_SAVE_EXTERNALSERVICECONFIGURATION

Saves the external service configuration form.

Parameters

Parameter Parameter Type Mode Description
@CHANGEAGENTID uniqueidentifier IN
@HOST nvarchar(2048) IN
@USER nvarchar(2048) IN
@PASS nvarchar(2048) IN
@USESECURE nvarchar(2048) IN
@TRANSACTIONALPATH nvarchar(2048) INOUT
@GENERALPURPOSEPATH nvarchar(2048) INOUT
@STATUSPATH nvarchar(2048) INOUT
@BINDING nvarchar(256) INOUT
@USESHAREDSERVICESCOMMSERVICE nvarchar(2048) INOUT

Definition

Copy


      CREATE procedure dbo.USP_SAVE_EXTERNALSERVICECONFIGURATION
      (
          @CHANGEAGENTID uniqueidentifier = null,
        @HOST nvarchar(2048),
        @USER nvarchar(2048),
        @PASS nvarchar(2048),
        @USESECURE nvarchar(2048),
        @TRANSACTIONALPATH nvarchar(2048) = '' output,
        @GENERALPURPOSEPATH nvarchar(2048) = '' output,
        @STATUSPATH nvarchar(2048) = '' output,
        @BINDING nvarchar(256) = '0' output,
        @USESHAREDSERVICESCOMMSERVICE nvarchar(2048) = 0 output--,

        --@CHUNKSIZE nvarchar(2048)

      )
          as
          begin
              set nocount on;

            exec dbo.USP_GET_KEY_ACCESS;

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

             begin try

            --Enable BBCS

                      set @TRANSACTIONALPATH = 'Transactional/EmailSubmission/blackbaud/services/EmailSubmissionService.svc'
                      set @GENERALPURPOSEPATH = 'GeneralPurpose/EmailSubmission/blackbaud/services/EmailSubmissionService.svc'
                      set @STATUSPATH = 'EmailStatus/blackbaud/services/EmailStatusService.svc' 
                      set @BINDING = '0'
                      set @USESHAREDSERVICESCOMMSERVICE = 'true'

             MERGE dbo.EXTERNALSERVICECONFIGURATION  AS target
                USING (SELECT 'BlackbaudServiceHost') AS source (NAME)
                ON (target.NAME = source.NAME)
                WHEN MATCHED THEN 
                    update set VALUE = @Host
                WHEN NOT MATCHED THEN    
                    Insert (ID,NAME,VALUE,SITEID,ADDEDBYID, CHANGEDBYID)
                    values(NEWID(),'BlackbaudServiceHost', @Host, 1, @CHANGEAGENTID, @CHANGEAGENTID);

              MERGE dbo.EXTERNALSERVICECONFIGURATION  AS target
                USING (SELECT 'BlackbaudServiceUser') AS source (NAME)
                ON (target.NAME = source.NAME)
                WHEN MATCHED THEN 
                    update set VALUE = encryptbykey(key_guid('sym_BBInfinity'), @USER)
                WHEN NOT MATCHED THEN    
                    Insert (ID,NAME,VALUE,SITEID,ADDEDBYID, CHANGEDBYID)
                    values(NEWID(),'BlackbaudServiceUser', encryptbykey(key_guid('sym_BBInfinity'), @USER), 1, @CHANGEAGENTID, @CHANGEAGENTID);

               MERGE dbo.EXTERNALSERVICECONFIGURATION  AS target
                USING (SELECT 'BlackbaudServicePassword') AS source (NAME)
                ON (target.NAME = source.NAME)
                WHEN MATCHED THEN 
                    update set VALUE = encryptbykey(key_guid('sym_BBInfinity'), @PASS)
                WHEN NOT MATCHED THEN    
                    Insert (ID,NAME,VALUE,SITEID,ADDEDBYID, CHANGEDBYID)
                    values(NEWID(),'BlackbaudServicePassword', encryptbykey(key_guid('sym_BBInfinity'), @PASS), 1, @CHANGEAGENTID, @CHANGEAGENTID);

               MERGE dbo.EXTERNALSERVICECONFIGURATION  AS target
                USING (SELECT 'BlackbaudServiceUseSecureServices') AS source (NAME)
                ON (target.NAME = source.NAME)
                WHEN MATCHED THEN 
                    update set VALUE = @USESECURE
                WHEN NOT MATCHED THEN    
                    Insert (ID,NAME,VALUE,SITEID,ADDEDBYID, CHANGEDBYID)
                    values(NEWID(),'BlackbaudServiceUseSecureServices', @USESECURE, 1, @CHANGEAGENTID, @CHANGEAGENTID);

               MERGE dbo.EXTERNALSERVICECONFIGURATION  AS target
                USING (SELECT 'EmailServiceBinding') AS source (NAME)
                ON (target.NAME = source.NAME)
                WHEN MATCHED THEN 
                    update set VALUE = @BINDING
                WHEN NOT MATCHED THEN    
                    Insert (ID,NAME,VALUE,SITEID,ADDEDBYID, CHANGEDBYID)
                    values(NEWID(),'EmailServiceBinding', @BINDING, 1, @CHANGEAGENTID, @CHANGEAGENTID);

               MERGE dbo.EXTERNALSERVICECONFIGURATION  AS target
                USING (SELECT 'UseSharedServicesCommunicationService') AS source (NAME)
                ON (target.NAME = source.NAME)
                WHEN MATCHED THEN 
                    update set VALUE = @USESHAREDSERVICESCOMMSERVICE
                WHEN NOT MATCHED THEN    
                    Insert (ID,NAME,VALUE,SITEID,ADDEDBYID, CHANGEDBYID)
                    values(NEWID(),'UseSharedServicesCommunicationService', @USESHAREDSERVICESCOMMSERVICE, 1, @CHANGEAGENTID, @CHANGEAGENTID);

               MERGE dbo.EXTERNALSERVICECONFIGURATION  AS target
                USING (SELECT 'EmailServiceTransactionalPath') AS source (NAME)
                ON (target.NAME = source.NAME)
                WHEN MATCHED THEN 
                    update set VALUE = @TRANSACTIONALPATH
                WHEN NOT MATCHED THEN    
                    Insert (ID,NAME,VALUE,SITEID,ADDEDBYID, CHANGEDBYID)
                    values(NEWID(),'EmailServiceTransactionalPath', @TRANSACTIONALPATH, 1, @CHANGEAGENTID, @CHANGEAGENTID);

              MERGE dbo.EXTERNALSERVICECONFIGURATION  AS target
                USING (SELECT 'EmailServiceGeneralPurposePath') AS source (NAME)
                ON (target.NAME = source.NAME)
                WHEN MATCHED THEN 
                    update set VALUE = @GENERALPURPOSEPATH
                WHEN NOT MATCHED THEN    
                    Insert (ID,NAME,VALUE,SITEID,ADDEDBYID, CHANGEDBYID)
                    values(NEWID(),'EmailServiceGeneralPurposePath', @GENERALPURPOSEPATH, 1, @CHANGEAGENTID, @CHANGEAGENTID);

               MERGE dbo.EXTERNALSERVICECONFIGURATION  AS target
                USING (SELECT 'EmailServiceStatusPath') AS source (NAME)
                ON (target.NAME = source.NAME)
                WHEN MATCHED THEN 
                    update set VALUE = @STATUSPATH
                WHEN NOT MATCHED THEN    
                    Insert (ID,NAME,VALUE,SITEID,ADDEDBYID, CHANGEDBYID)
                    values(NEWID(),'EmailServiceStatusPath', @STATUSPATH, 1, @CHANGEAGENTID, @CHANGEAGENTID);

              close symmetric key sym_BBInfinity;
            end try
              begin catch
              close symmetric key sym_BBInfinity;
                  exec dbo.USP_RAISE_ERROR;
                  return 1;
              end catch

          return 0;
        end