You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
587 lines
16 KiB
587 lines
16 KiB
-- Script: uddi.v2.update_rc1_to_rc2.sql
|
|
-- Description: Updates a UDDI Services RC1 database to RC2
|
|
-- Note: This file is best viewed and edited with a tab width of 2.
|
|
|
|
-- =============================================
|
|
-- Section: Stored Procedure fixes
|
|
-- =============================================
|
|
|
|
-- =============================================
|
|
-- Name: net_serviceProjection_repl_save
|
|
-- Fix: uddi bug 2454
|
|
-- =============================================
|
|
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_serviceProjection_repl_save' and type = 'P')
|
|
DROP PROCEDURE net_serviceProjection_repl_save
|
|
GO
|
|
|
|
CREATE PROCEDURE net_serviceProjection_repl_save
|
|
@serviceKey uniqueidentifier,
|
|
@businessKey uniqueidentifier,
|
|
@businessKey2 uniqueidentifier,
|
|
@lastChange bigint
|
|
WITH ENCRYPTION
|
|
AS
|
|
BEGIN
|
|
DECLARE
|
|
@RC int,
|
|
@error int,
|
|
@context nvarchar(4000)
|
|
|
|
SET @RC = 0
|
|
|
|
-- IMPORTANT: This sproc should only ever be called for replication. As per IN 60, we have to process service projection
|
|
-- change records even if they refer to business services that no longer exist. Both businesses referenced
|
|
-- by the service projection must exist.
|
|
|
|
-- businessKey validation must occur during save since its not always known at validate time
|
|
IF NOT EXISTS(SELECT * FROM [UDC_businessEntities] WHERE [businessKey] = @businessKey)
|
|
BEGIN
|
|
SET @error = 60210 -- E_invalidKey
|
|
SET @context = 'businessKey = ' + dbo.UUIDSTR(@businessKey)
|
|
GOTO errorLabel
|
|
END
|
|
|
|
--
|
|
-- Commenting out the following check to comply with IN60 as per UDDI bug 2454
|
|
-- Which states that service projections that refer to a deleted service must be successfully saved
|
|
-- From this we can imply that service projections that refer to a deleted business must also be successfully saved
|
|
--
|
|
|
|
--IF NOT EXISTS(SELECT * FROM [UDC_businessEntities] WHERE [businessKey] = @businessKey2)
|
|
--BEGIN
|
|
--SET @error = 60210 -- E_invalidKey
|
|
--SET @context = 'businessKey = ' + dbo.UUIDSTR(@businessKey2)
|
|
--GOTO errorLabel
|
|
--END
|
|
|
|
-- Add service projection if it doesn't already exist
|
|
IF NOT EXISTS(SELECT * FROM [UDC_serviceProjections] WHERE ([businessKey] = @businessKey) AND ([serviceKey] = @serviceKey))
|
|
BEGIN
|
|
INSERT [UDC_serviceProjections](
|
|
[businessKey],
|
|
[serviceKey],
|
|
[businessKey2],
|
|
[lastChange])
|
|
VALUES(
|
|
@businessKey,
|
|
@serviceKey,
|
|
@businessKey2,
|
|
@lastChange)
|
|
END
|
|
|
|
RETURN 0
|
|
|
|
errorLabel:
|
|
RAISERROR (@error, 16, 1, @context)
|
|
RETURN 1
|
|
END -- net_serviceProjection_repl_save
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Name: VS_AWR_businesses_get
|
|
-- =============================================
|
|
|
|
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'VS_AWR_businesses_get' AND type = 'P')
|
|
DROP PROCEDURE VS_AWR_businesses_get
|
|
GO
|
|
|
|
CREATE PROCEDURE VS_AWR_businesses_get
|
|
@businessName nvarchar(450)
|
|
WITH ENCRYPTION
|
|
AS
|
|
BEGIN
|
|
DECLARE
|
|
@typesTModelKey uniqueidentifier,
|
|
@wsdlKeyValue nvarchar(255),
|
|
@services cursor,
|
|
@serviceID bigint,
|
|
@serviceKey uniqueidentifier,
|
|
@businessID bigint,
|
|
@businessName2 nvarchar(450),
|
|
@businessKey uniqueidentifier,
|
|
@serviceName nvarchar(450)
|
|
|
|
--
|
|
-- Get a list of tModel keys for tModels categorized as a wsdlSpec
|
|
--
|
|
|
|
SET @typesTModelKey = 'C1ACF26D-9672-4404-9D70-39B756E62AB4'
|
|
SET @wsdlKeyValue = 'wsdlSpec'
|
|
|
|
DECLARE @wsdlTModelKeys TABLE (
|
|
[tModelKey] uniqueidentifier)
|
|
|
|
INSERT @wsdlTModelKeys
|
|
SELECT DISTINCT
|
|
TM.[tModelKey]
|
|
FROM
|
|
[UDC_tModels] TM
|
|
JOIN [UDC_categoryBag_TM] CB ON TM.[tModelID] = CB.[tModelID]
|
|
WHERE
|
|
(CB.[tModelKey] = @typesTModelKey) AND
|
|
(CB.[keyValue] = @wsdlKeyValue)
|
|
|
|
--
|
|
-- Setup temporary table for staging results
|
|
--
|
|
|
|
DECLARE @results TABLE(
|
|
[businessName] nvarchar(450),
|
|
[businessKey] uniqueidentifier,
|
|
[serviceName] nvarchar(450),
|
|
[serviceKey] uniqueidentifier)
|
|
|
|
--
|
|
-- Cursor through every service that:
|
|
-- 1. Has a tModelInstance that references a wsdlTModelKey
|
|
-- 2. Is owned by a business that meets the name search criteria
|
|
-- Build results from this list of services
|
|
--
|
|
|
|
SET @services = CURSOR LOCAL READ_ONLY FORWARD_ONLY FOR
|
|
SELECT
|
|
BS.[serviceID],
|
|
BS.[serviceKey],
|
|
BS.[businessID]
|
|
FROM
|
|
[UDC_businessServices] BS
|
|
JOIN [UDC_bindingTemplates] BT ON BS.[serviceID] = BT.[serviceID]
|
|
JOIN [UDC_tModelInstances] TMI ON BT.[bindingID] = TMI.[bindingID]
|
|
WHERE
|
|
(TMI.[tModelKey] IN (SELECT [tModelKey] FROM @wsdlTModelKeys)) AND
|
|
(BS.[businessID] IN (SELECT DISTINCT BN.[businessID] FROM [UDC_names_BE] BN WHERE (BN.[name] LIKE @businessName + '%')))
|
|
|
|
OPEN @services
|
|
|
|
FETCH NEXT FROM @services INTO
|
|
@serviceID,
|
|
@serviceKey,
|
|
@businessID
|
|
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
--
|
|
-- Retrieve the name of the business that owns the service
|
|
--
|
|
|
|
SET @businessName2 = (SELECT TOP 1 BN.[name] FROM [UDC_names_BE] BN WHERE (BN.[businessID] = @businessID))
|
|
|
|
--
|
|
-- Retrieve the key of the business that owns the service
|
|
--
|
|
|
|
SET @businessKey = dbo.businessKey(@businessID)
|
|
|
|
--
|
|
-- Retrieve the name of the service
|
|
--
|
|
|
|
SET @serviceName = (SELECT TOP 1 SN.[name] FROM [UDC_names_BS] SN WHERE (SN.[serviceID] = @serviceID))
|
|
|
|
--
|
|
-- Add results to results table
|
|
--
|
|
|
|
INSERT @results VALUES(
|
|
@businessName2,
|
|
@businessKey,
|
|
@serviceName,
|
|
@serviceKey)
|
|
|
|
FETCH NEXT FROM @services INTO
|
|
@serviceID,
|
|
@serviceKey,
|
|
@businessID
|
|
END
|
|
|
|
CLOSE @services
|
|
|
|
--
|
|
-- Return results
|
|
--
|
|
|
|
SELECT * FROM @results
|
|
|
|
END
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Section: New Stored Procedures
|
|
-- =============================================
|
|
|
|
-- =============================================
|
|
-- Name: net_taxonomyValues_get
|
|
-- =============================================
|
|
|
|
IF EXISTS (SELECT name FROM sysobjects WHERE name = N'net_taxonomyValues_get' AND type = 'P')
|
|
DROP PROCEDURE net_taxonomyValues_get
|
|
GO
|
|
|
|
CREATE PROCEDURE net_taxonomyValues_get
|
|
@tModelKey uniqueidentifier
|
|
AS
|
|
BEGIN
|
|
DECLARE
|
|
@error int,
|
|
@context nvarchar(4000),
|
|
@taxonomyID bigint
|
|
|
|
SET @taxonomyID = dbo.taxonomyID(@tModelKey)
|
|
|
|
IF @taxonomyID IS NULL
|
|
BEGIN
|
|
SET @error = 60210
|
|
SET @context = 'uuid:' + dbo.UUIDSTR(@tModelKey)
|
|
GOTO errorLabel
|
|
END
|
|
|
|
SELECT
|
|
[keyValue],
|
|
[parentKeyValue],
|
|
[keyName],
|
|
[valid]
|
|
FROM
|
|
[UDT_taxonomyValues]
|
|
WHERE
|
|
([taxonomyID] = @taxonomyID)
|
|
ORDER BY
|
|
[parentKeyValue],
|
|
[keyValue]
|
|
|
|
RETURN 0
|
|
errorLabel:
|
|
RAISERROR (@error, 16, 1, @context)
|
|
RETURN 1
|
|
END
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Name: net_bindingTemplate_get_batch
|
|
-- =============================================
|
|
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_bindingTemplate_get_batch' and type = 'P')
|
|
DROP PROCEDURE net_bindingTemplate_get_batch
|
|
GO
|
|
|
|
CREATE PROCEDURE net_bindingTemplate_get_batch
|
|
@bindingKey uniqueidentifier,
|
|
@serviceKey uniqueidentifier OUTPUT,
|
|
@URLTypeID tinyint OUTPUT,
|
|
@accessPoint nvarchar(4000) OUTPUT,
|
|
@hostingRedirector uniqueidentifier OUTPUT
|
|
WITH ENCRYPTION
|
|
AS
|
|
BEGIN
|
|
DECLARE
|
|
@error int,
|
|
@context nvarchar(4000)
|
|
|
|
SELECT
|
|
@serviceKey = dbo.serviceKey([serviceID]),
|
|
@URLTypeID = [URLTypeID],
|
|
@accessPoint = [accessPoint],
|
|
@hostingRedirector = [hostingRedirector]
|
|
FROM
|
|
[UDC_bindingTemplates]
|
|
WHERE
|
|
([bindingID] = dbo.bindingID(@bindingKey))
|
|
|
|
IF @@ROWCOUNT = 0
|
|
BEGIN
|
|
SET @error = 60210 -- E_invalidKey
|
|
SET @context = 'bindingKey = ' + dbo.UUIDSTR(@bindingKey)
|
|
GOTO errorLabel
|
|
END
|
|
|
|
-- Retrieve the contained objects
|
|
EXEC net_bindingTemplate_descriptions_get @bindingKey
|
|
EXEC net_bindingTemplate_tModelInstanceInfos_get @bindingKey
|
|
|
|
RETURN 0
|
|
|
|
errorLabel:
|
|
RAISERROR (@error, 16, 1, @context)
|
|
RETURN 1
|
|
END -- net_bindingTemplate_get_batch
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Name: net_bindingTemplate_tModelInstanceInfo_get_batch
|
|
-- =============================================
|
|
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_bindingTemplate_tModelInstanceInfo_get_batch' and type = 'P')
|
|
DROP PROCEDURE net_bindingTemplate_tModelInstanceInfo_get_batch
|
|
GO
|
|
|
|
CREATE PROCEDURE net_bindingTemplate_tModelInstanceInfo_get_batch
|
|
@instanceID bigint
|
|
WITH ENCRYPTION
|
|
AS
|
|
BEGIN
|
|
EXEC net_bindingTemplate_tModelInstanceInfo_descriptions_get @instanceID
|
|
EXEC net_bindingTemplate_instanceDetails_descriptions_get @instanceID
|
|
EXEC net_bindingTemplate_instanceDetails_overviewDoc_descriptions_get @instanceID
|
|
|
|
RETURN 0
|
|
END -- net_bindingTemplate_tModelInstanceInfo_get_batch
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Name: net_businessEntity_get_batch
|
|
-- =============================================
|
|
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_get_batch' and type = 'P')
|
|
DROP PROCEDURE net_businessEntity_get_batch
|
|
GO
|
|
|
|
CREATE PROCEDURE net_businessEntity_get_batch
|
|
@businessKey uniqueidentifier,
|
|
@operatorName nvarchar(450) OUTPUT,
|
|
@authorizedName nvarchar(4000) OUTPUT
|
|
WITH ENCRYPTION
|
|
AS
|
|
BEGIN
|
|
DECLARE
|
|
@error int,
|
|
@context nvarchar(4000)
|
|
|
|
SELECT
|
|
@operatorName = dbo.publisherOperatorName([publisherID]),
|
|
@authorizedName = ISNULL([authorizedName],dbo.publisherName([publisherID]))
|
|
FROM
|
|
[UDC_businessEntities]
|
|
WHERE
|
|
[businessKey] = @businessKey
|
|
|
|
IF @@ROWCOUNT = 0
|
|
BEGIN
|
|
SET @error = 60210
|
|
SET @context = 'businessKey = ' + dbo.UUIDSTR(@businessKey)
|
|
GOTO errorLabel
|
|
END
|
|
|
|
-- Retrieve the contained objects
|
|
EXEC net_businessEntity_descriptions_get @businessKey
|
|
EXEC net_businessEntity_names_get @businessKey
|
|
EXEC net_businessEntity_discoveryURLs_get @businessKey
|
|
EXEC net_businessEntity_contacts_get @businessKey
|
|
EXEC net_businessEntity_IdentifierBag_get @businessKey
|
|
EXEC net_businessEntity_CategoryBag_get @businessKey
|
|
EXEC net_businessEntity_BusinessServices_get @businessKey
|
|
|
|
RETURN 0
|
|
|
|
errorLabel:
|
|
RAISERROR (@error, 16, 1, @context)
|
|
RETURN 1
|
|
END -- net_businessEntity_get_batch
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Name: net_businessInfo_get_batch
|
|
-- =============================================
|
|
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessInfo_get_batch' and type = 'P')
|
|
DROP PROCEDURE net_businessInfo_get_batch
|
|
GO
|
|
|
|
CREATE PROCEDURE net_businessInfo_get_batch
|
|
@businessKey uniqueidentifier,
|
|
@getServiceInfos bit
|
|
|
|
WITH ENCRYPTION
|
|
AS
|
|
BEGIN
|
|
-- Retrieve the contained objects needed for a BusinessInfo
|
|
EXEC net_businessEntity_descriptions_get @businessKey
|
|
EXEC net_businessEntity_names_get @businessKey
|
|
|
|
IF @getServiceInfos = 1
|
|
BEGIN
|
|
EXEC net_businessEntity_BusinessServices_get @businessKey
|
|
END
|
|
|
|
RETURN 0
|
|
|
|
END -- net_businessEntity_get_batch
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Name: net_businessEntity_contact_get_batch
|
|
-- =============================================
|
|
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_contact_get_batch' and type = 'P')
|
|
DROP PROCEDURE net_businessEntity_contact_get_batch
|
|
GO
|
|
|
|
CREATE PROCEDURE net_businessEntity_contact_get_batch
|
|
@contactID bigint
|
|
WITH ENCRYPTION
|
|
AS
|
|
BEGIN
|
|
-- Get all contained objects in a contact
|
|
EXEC net_contact_descriptions_get @contactID
|
|
EXEC net_contact_phones_get @contactID
|
|
EXEC net_contact_emails_get @contactID
|
|
EXEC net_contact_addresses_get @contactID
|
|
|
|
END -- net_businessEntity_contact_get_batch
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Name: net_businessService_get_batch
|
|
-- =============================================
|
|
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessService_get_batch' and type = 'P')
|
|
DROP PROCEDURE net_businessService_get_batch
|
|
GO
|
|
|
|
CREATE PROCEDURE net_businessService_get_batch
|
|
@serviceKey uniqueidentifier,
|
|
@businessKey uniqueidentifier OUTPUT
|
|
WITH ENCRYPTION
|
|
AS
|
|
BEGIN
|
|
DECLARE
|
|
@error int,
|
|
@context nvarchar(4000)
|
|
|
|
SELECT
|
|
@businessKey = dbo.businessKey([businessID])
|
|
FROM
|
|
[UDC_businessServices]
|
|
WHERE
|
|
[serviceKey] = @serviceKey
|
|
|
|
IF @@ROWCOUNT = 0
|
|
BEGIN
|
|
SET @error = 60210 -- E_invalidKey
|
|
SET @context = 'serviceKey = ' + dbo.UUIDSTR(@serviceKey)
|
|
GOTO errorLabel
|
|
END
|
|
|
|
-- Retrieve the contained objects
|
|
EXEC net_businessService_descriptions_get @serviceKey
|
|
EXEC net_businessService_names_get @serviceKey
|
|
EXEC net_businessService_bindingTemplates_get @serviceKey
|
|
EXEC net_businessService_categoryBag_get @serviceKey
|
|
|
|
RETURN 0
|
|
|
|
errorLabel:
|
|
RAISERROR (@error, 16, 1, @context)
|
|
RETURN 1
|
|
END -- net_businessService_get_batch
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Name: net_serviceInfo_get_batch
|
|
-- =============================================
|
|
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_serviceInfo_get_batch' and type = 'P')
|
|
DROP PROCEDURE net_serviceInfo_get_batch
|
|
GO
|
|
|
|
CREATE PROCEDURE net_serviceInfo_get_batch
|
|
@serviceKey uniqueidentifier,
|
|
@businessKey uniqueidentifier OUTPUT
|
|
WITH ENCRYPTION
|
|
AS
|
|
BEGIN
|
|
DECLARE
|
|
@error int,
|
|
@context nvarchar(4000)
|
|
|
|
SELECT
|
|
@businessKey = dbo.businessKey([businessID])
|
|
FROM
|
|
[UDC_businessServices]
|
|
WHERE
|
|
[serviceKey] = @serviceKey
|
|
|
|
IF @@ROWCOUNT = 0
|
|
BEGIN
|
|
SET @error = 60210 -- E_invalidKey
|
|
SET @context = 'serviceKey = ' + dbo.UUIDSTR(@serviceKey)
|
|
GOTO errorLabel
|
|
END
|
|
|
|
-- Retrieve the contained objects
|
|
EXEC net_businessService_names_get @serviceKey
|
|
|
|
RETURN 0
|
|
|
|
errorLabel:
|
|
RAISERROR (@error, 16, 1, @context)
|
|
RETURN 1
|
|
END -- net_businessService_get_batch
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Name: net_tModel_get_batch
|
|
-- =============================================
|
|
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_tModel_get_batch' and type = 'P')
|
|
DROP PROCEDURE net_tModel_get_batch
|
|
GO
|
|
|
|
CREATE PROCEDURE net_tModel_get_batch
|
|
@tModelKey uniqueidentifier,
|
|
@operatorName nvarchar(450) OUTPUT,
|
|
@authorizedName nvarchar(4000) OUTPUT,
|
|
@name nvarchar(450) OUTPUT,
|
|
@overviewURL nvarchar(4000) OUTPUT
|
|
WITH ENCRYPTION
|
|
AS
|
|
BEGIN
|
|
DECLARE
|
|
@error int,
|
|
@context nvarchar(4000)
|
|
|
|
SELECT
|
|
@operatorName = dbo.publisherOperatorName([publisherID]),
|
|
@authorizedName = ISNULL([authorizedName],dbo.publisherName([publisherID])),
|
|
@name = [name],
|
|
@overviewURL = [overviewURL]
|
|
FROM
|
|
[UDC_tModels]
|
|
WHERE
|
|
([tModelKey] = @tModelKey)
|
|
|
|
IF @@ROWCOUNT = 0
|
|
BEGIN
|
|
SET @error = 60210 -- E_invalidKey
|
|
SET @context = 'tModelKey = ' + dbo.addURN(@tModelKey)
|
|
GOTO errorLabel
|
|
END
|
|
|
|
-- Get contained objects
|
|
EXEC net_tModel_descriptions_get @tModelKey
|
|
EXEC net_tModel_overviewDoc_descriptions_get @tModelKey
|
|
EXEC net_tModel_identifierBag_get @tModelKey
|
|
EXEC net_tModel_categoryBag_get @tModelKey
|
|
|
|
RETURN 0
|
|
|
|
errorLabel:
|
|
RAISERROR (@error, 16, 1, @context)
|
|
RETURN 1
|
|
END -- net_tModel_get_batch
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Section: Security
|
|
-- =============================================
|
|
|
|
GRANT EXEC ON net_taxonomyValues_get to UDDIAdmin, UDDIService
|
|
GRANT EXEC ON net_bindingTemplate_get_batch TO UDDIAdmin, UDDIService
|
|
GRANT EXEC ON net_bindingTemplate_tModelInstanceInfo_get_batch TO UDDIAdmin, UDDIService
|
|
GRANT EXEC ON net_businessEntity_get_batch TO UDDIAdmin, UDDIService
|
|
GRANT EXEC ON net_businessInfo_get_batch TO UDDIAdmin, UDDIService
|
|
GRANT EXEC ON net_businessEntity_contact_get_batch TO UDDIAdmin, UDDIService
|
|
GRANT EXEC ON net_businessService_get_batch TO UDDIAdmin, UDDIService
|
|
GRANT EXEC ON net_serviceInfo_get_batch TO UDDIAdmin, UDDIService
|
|
GRANT EXEC ON net_serviceProjection_repl_save TO UDDIAdmin, UDDIService
|
|
GRANT EXEC ON net_tModel_get_batch TO UDDIAdmin, UDDIService
|
|
GRANT EXEC ON VS_AWR_businesses_get TO UDDIAdmin, UDDIService
|
|
GO
|
|
|
|
-- =============================================
|
|
-- Section: Update Version(s)
|
|
-- =============================================
|
|
|
|
EXEC net_config_save 'Site.Version', '5.2.3664.0' -- TODO: Update this to proper RC2 site.version
|
|
EXEC net_config_save 'Database.Version', '2.0.0001.2'
|
|
GO
|