|
|
-- Script: uddi.v2.businessEntity.sql
-- Description: Stored procedures associated with a businessEntity object.
-- Note: This file is best viewed and edited with a tab width of 2.
-- =============================================
-- Section: Get stored procedures
-- =============================================
-- =============================================
-- Name: net_businessEntity_get
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_get' and type = 'P') DROP PROCEDURE net_businessEntity_get GO
CREATE PROCEDURE net_businessEntity_get @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 RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_businessEntity_get
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_names_get
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_names_get' and type = 'P') DROP PROCEDURE net_businessEntity_names_get GO
CREATE PROCEDURE net_businessEntity_names_get @businessKey uniqueidentifier WITH ENCRYPTION AS BEGIN SELECT [isoLangCode], [name] FROM [UDC_names_BE] WHERE [businessID] = dbo.businessID(@businessKey) RETURN 0 END -- net_businessEntity_names_get
GO
-- =============================================
-- Name: net_businessEntity_descriptions_get
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_descriptions_get' and type = 'P') DROP PROCEDURE net_businessEntity_descriptions_get GO
CREATE PROCEDURE net_businessEntity_descriptions_get @businessKey uniqueidentifier WITH ENCRYPTION AS BEGIN SELECT [isoLangCode], [description] FROM [UDC_businessDesc] WHERE [businessID] = dbo.businessID(@businessKey) RETURN 0 END -- net_businessEntity_descriptions_get
GO
-- =============================================
-- Name: net_businessEntity_discoveryURLs_get
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_discoveryURLs_get' and type = 'P') DROP PROCEDURE net_businessEntity_discoveryURLs_get GO
CREATE PROCEDURE net_businessEntity_discoveryURLs_get @businessKey uniqueidentifier WITH ENCRYPTION AS BEGIN SELECT [useType], [discoveryURL] FROM [UDC_discoveryURLs] WHERE [businessID] = dbo.businessID(@businessKey)
RETURN 0 END -- net_businessEntity_discoveryURLs_get
GO
-- =============================================
-- Name: net_businessEntity_businessServices_get
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_businessServices_get' and type = 'P') DROP PROCEDURE net_businessEntity_businessServices_get GO
CREATE PROCEDURE net_businessEntity_businessServices_get @businessKey uniqueidentifier WITH ENCRYPTION AS BEGIN DECLARE @error int, @context nvarchar(4000), @maxBigInt bigint
SET @maxBigInt = 9223372036854775807
IF NOT EXISTS(SELECT * FROM [UDC_businessEntities] WHERE [businessKey] = @businessKey) BEGIN SET @error = 60210 -- E_invalidKeyPassed
SET @context = 'businessKey = ' + dbo.UUIDSTR(@businessKey) GOTO errorLabel END
SELECT [serviceKey], NULL AS [businessKey], [lastChange], [serviceID] FROM [UDC_businessServices] WHERE ([businessID] = dbo.businessID(@businessKey))
UNION
SELECT SP.[serviceKey], SP.[businessKey2], -- businessKey of true parent business of a projected service
SP.[lastChange], ISNULL(BS.[serviceID],@maxBigInt) FROM [UDC_serviceProjections] SP LEFT JOIN [UDC_businessServices] BS ON SP.[serviceKey] = BS.[serviceKey] WHERE (SP.[businessKey] = @businessKey)
ORDER BY 3 ASC, -- [lastChange]
4 ASC -- [serviceID]
RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_businessEntity_businessServices_get
GO
-- =============================================
-- Name: net_businessEntity_contacts_get
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_contacts_get' and type = 'P') DROP PROCEDURE net_businessEntity_contacts_get GO
CREATE PROCEDURE net_businessEntity_contacts_get @businessKey uniqueidentifier WITH ENCRYPTION AS BEGIN SELECT [contactID], [useType], [personName] FROM [UDC_contacts] WHERE [businessID] = dbo.businessID(@businessKey)
RETURN 0 END -- net_businessEntity_contacts_get
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_contact_descriptions_get
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_contact_descriptions_get' and type = 'P') DROP PROCEDURE net_contact_descriptions_get GO
CREATE PROCEDURE net_contact_descriptions_get @contactID bigint
WITH ENCRYPTION AS BEGIN SELECT [isoLangCode], [description] FROM [UDC_contactDesc] WHERE [contactID] = @contactID RETURN 0 END -- net_contact_descriptions_get
GO
-- =============================================
-- Name: net_businessEntity_categoryBag_get
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_categoryBag_get' and type = 'P') DROP PROCEDURE net_businessEntity_categoryBag_get GO
CREATE PROCEDURE net_businessEntity_categoryBag_get @businessKey uniqueidentifier WITH ENCRYPTION AS BEGIN SELECT [keyName], [keyValue], [tModelKey] FROM [UDC_categoryBag_BE] WHERE [businessID] = dbo.businessID(@businessKey)
RETURN 0 END -- net_businessEntity_categoryBag_get
GO
-- =============================================
-- Name: net_businessEntity_identifierBag_get
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_identifierBag_get' and type = 'P') DROP PROCEDURE net_businessEntity_identifierBag_get GO
CREATE PROCEDURE net_businessEntity_identifierBag_get @businessKey uniqueidentifier WITH ENCRYPTION AS BEGIN SELECT [keyName], [keyValue], [tModelKey] FROM [UDC_identifierBag_BE] WHERE [businessID] = dbo.businessID(@businessKey)
RETURN 0 END -- net_businessEntity_identifierBag_get
GO
-- =============================================
-- Name: net_contact_emails_get
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_contact_emails_get' and type = 'P') DROP PROCEDURE net_contact_emails_get GO
CREATE PROCEDURE net_contact_emails_get @contactID bigint
WITH ENCRYPTION AS BEGIN SELECT [useType], [email] FROM [UDC_emails] WHERE [contactID] = @contactID
RETURN 0 END -- net_contact_emails_get
GO
-- =============================================
-- Name: net_contact_phones_get
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_contact_phones_get' and type = 'P') DROP PROCEDURE net_contact_phones_get GO
CREATE PROCEDURE net_contact_phones_get @contactID bigint
WITH ENCRYPTION AS BEGIN SELECT [useType], [phone] FROM [UDC_phones] WHERE [contactID] = @contactID
RETURN 0 END -- net_contact_phones_get
GO
-- =============================================
-- Name: net_contact_addresses_get
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_contact_addresses_get' and type = 'P') DROP PROCEDURE net_contact_addresses_get GO
CREATE PROCEDURE net_contact_addresses_get @contactID bigint
WITH ENCRYPTION AS BEGIN SELECT [addressID], [sortCode], [useType], [tModelKey] FROM [UDC_addresses] WHERE [contactID] = @contactID RETURN 0 END -- net_contact_addresses_get
GO
-- =============================================
-- Name: net_address_addressLines_get
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_address_addressLines_get' and type = 'P') DROP PROCEDURE net_address_addressLines_get GO
CREATE PROCEDURE net_address_addressLines_get @addressID bigint
WITH ENCRYPTION AS BEGIN SELECT [addressLine], [keyName], [keyValue] FROM [UDC_addressLines] WHERE [addressID] = @addressID RETURN 0 END -- net_address_addressLines_get
GO
-- =============================================
-- Section: Save stored procedures
-- =============================================
-- =============================================
-- Name: net_businessEntity_save
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_save' and type = 'P') DROP PROCEDURE net_businessEntity_save GO
CREATE PROCEDURE net_businessEntity_save @businessKey uniqueidentifier, @PUID nvarchar(450), @generic varchar(20), @contextID uniqueidentifier, @lastChange bigint, @authorizedName nvarchar(4000) OUTPUT, @operatorName nvarchar(450) OUTPUT WITH ENCRYPTION AS BEGIN DECLARE @RC int, @error int, @context nvarchar(4000), @publisherID bigint, @isReplPublisher bit
SET @RC = 0
SET @publisherID = dbo.publisherID(@PUID)
IF (@publisherID IS NULL) BEGIN SET @error = 60150 -- E_unknownUser
SET @context = 'Invalid publisherID.' GOTO errorLabel END
SET @isReplPublisher = dbo.isReplPublisher(@PUID)
IF @isReplPublisher = 0 SET @authorizedName = NULL
IF EXISTS(SELECT * FROM [UDC_businessEntities] WHERE [businessKey] = @businessKey) BEGIN DELETE [UDC_businessEntities] WHERE [businessKey] = @businessKey END ELSE BEGIN IF (@isReplPublisher = 1) BEGIN -- perform this check only for replication publishers
IF (dbo.isUuidUnique(@businessKey) = 0) BEGIN SET @error = 60210 -- E_invalidKeyPassed
SET @context = 'Key is not unique. businessKey = ' + dbo.UUIDSTR(@businessKey) GOTO errorLabel END END END
INSERT [UDC_businessEntities]( [publisherID], [generic], [authorizedName], [businessKey], [lastChange]) VALUES( @publisherID, ISNULL(@generic,dbo.configValue('CurrentAPIVersion')), @authorizedName, @businessKey, @lastChange)
SET @authorizedName = dbo.publisherName(@publisherID) SET @operatorName = dbo.publisherOperatorName(@publisherID)
RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_businessEntity_save
GO
-- =============================================
-- Name: net_businessEntity_name_save
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_name_save' and type = 'P') DROP PROCEDURE net_businessEntity_name_save GO
CREATE PROCEDURE net_businessEntity_name_save @businessKey uniqueidentifier, @isoLangCode varchar(17) = 'en', @name nvarchar(450) WITH ENCRYPTION AS BEGIN DECLARE @RC int, @error int, @context nvarchar(4000)
-- Check for valid name
IF (@name IS NULL) OR (LEN(@name) = 0) BEGIN SET @error = 60500 -- E_fatalError
SET @context = 'name cannot be blank.' GOTO errorLabel END
INSERT [UDC_names_BE]( [businessID], [isoLangCode], [name]) VALUES( dbo.businessID(@businessKey), @isoLangCode, @name)
RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_businessEntity_name_save
GO
-- =============================================
-- Name: net_businessEntity_description_save
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_description_save' and type = 'P') DROP PROCEDURE net_businessEntity_description_save GO
CREATE PROCEDURE net_businessEntity_description_save @businessKey uniqueidentifier, @isoLangCode varchar(17) = 'en', @description nvarchar(4000) WITH ENCRYPTION AS BEGIN INSERT [UDC_businessDesc]( [businessID], [isoLangCode], [description]) VALUES( dbo.businessID(@businessKey), @isoLangCode, @description)
RETURN 0 END -- net_businessEntity_description_save
GO
-- =============================================
-- Name: net_businessEntity_discoveryURL_save
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_discoveryURL_save' and type = 'P') DROP PROCEDURE net_businessEntity_discoveryURL_save GO
CREATE PROCEDURE net_businessEntity_discoveryURL_save @businessKey uniqueidentifier, @useType nvarchar(4000), @discoveryURL nvarchar(4000) WITH ENCRYPTION AS BEGIN INSERT [UDC_discoveryURLs]( [businessID], [useType], [discoveryURL]) VALUES( dbo.businessID(@businessKey), @useType, @discoveryURL)
RETURN 0 END -- net_businessEntity_discoveryURL_save
GO
-- =============================================
-- Name: net_businessEntity_categoryBag_save
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_categoryBag_save' and type = 'P') DROP PROCEDURE net_businessEntity_categoryBag_save GO
CREATE PROCEDURE net_businessEntity_categoryBag_save @businessKey uniqueidentifier, @keyName nvarchar(255), @keyValue nvarchar(255), @tModelKey uniqueidentifier WITH ENCRYPTION AS BEGIN INSERT [UDC_categoryBag_BE]( [businessID], [keyName], [keyValue], [tModelKey]) VALUES( dbo.businessID(@businessKey), @keyName, @keyValue, @tModelKey)
RETURN 0 END -- net_businessEntity_categoryBag_save
GO
-- =============================================
-- Name: net_businessEntity_identifierBag_save
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_identifierBag_save' and type = 'P') DROP PROCEDURE net_businessEntity_identifierBag_save GO
CREATE PROCEDURE net_businessEntity_identifierBag_save @businessKey uniqueidentifier, @keyName nvarchar(255), @keyValue nvarchar(255), @tModelKey uniqueidentifier WITH ENCRYPTION AS BEGIN INSERT [UDC_identifierBag_BE]( [businessID], [keyName], [keyValue], [tModelKey]) VALUES( dbo.businessID(@businessKey), @keyName, @keyValue, @tModelKey)
RETURN 0 END -- net_businessEntity_categoryBag_save
GO
-- =============================================
-- Name: net_businessEntity_contact_save
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_contact_save' and type = 'P') DROP PROCEDURE net_businessEntity_contact_save GO
CREATE PROCEDURE net_businessEntity_contact_save @businessKey uniqueidentifier, @useType nvarchar(4000), @personName nvarchar(4000), @contactID bigint OUTPUT WITH ENCRYPTION AS BEGIN DECLARE @error int, @context nvarchar(4000)
INSERT [UDC_contacts]( [businessID], [useType], [personName]) VALUES( dbo.businessID(@businessKey), @useType, @personName)
SET @contactID = @@IDENTITY
RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_businessEntity_contact_save
GO
-- =============================================
-- Name: net_contact_description_save
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_contact_description_save' and type = 'P') DROP PROCEDURE net_contact_description_save GO
CREATE PROCEDURE net_contact_description_save @contactID bigint, @isoLangCode varchar(17) = 'en', @description nvarchar(4000) WITH ENCRYPTION AS BEGIN INSERT [UDC_contactDesc]( [contactID], [isoLangCode], [description]) VALUES( @contactID, @isoLangCode, @description)
RETURN 0 END -- net_contact_description_save
GO
-- =============================================
-- Name: net_contact_email_save
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_contact_email_save' and type = 'P') DROP PROCEDURE net_contact_email_save GO
CREATE PROCEDURE net_contact_email_save @contactID bigint, @useType nvarchar(4000), @email nvarchar(4000) WITH ENCRYPTION AS BEGIN INSERT [UDC_emails]( [contactID], [useType], [email]) VALUES( @contactID, @useType, @email)
RETURN 0 END -- net_contact_email_save
GO
-- =============================================
-- Name: net_contact_phone_save
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_contact_phone_save' and type = 'P') DROP PROCEDURE net_contact_phone_save GO
CREATE PROCEDURE net_contact_phone_save @contactID bigint, @useType nvarchar(4000), @phone nvarchar(4000) WITH ENCRYPTION AS BEGIN INSERT [UDC_phones]( [contactID], [useType], [phone]) VALUES( @contactID, @useType, @phone)
RETURN 0 END -- net_contact_phone_save
GO
-- =============================================
-- Name: net_contact_address_save
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_contact_address_save' and type = 'P') DROP PROCEDURE net_contact_address_save GO
CREATE PROCEDURE net_contact_address_save @contactID bigint, @sortCode nvarchar(4000), @useType nvarchar(4000), @tModelKey uniqueidentifier = NULL, @addressID bigint OUTPUT WITH ENCRYPTION AS BEGIN DECLARE @numRows int
INSERT [UDC_addresses]( [contactID], [sortCode], [useType], [tModelKey]) VALUES( @contactID, @sortCode, @useType, @tModelKey)
SET @addressID = @@IDENTITY
RETURN 0 END -- net_contact_address_save
GO
-- =============================================
-- Name: net_address_addressLine_save
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_address_addressLine_save' and type = 'P') DROP PROCEDURE net_address_addressLine_save GO
CREATE PROCEDURE net_address_addressLine_save @addressID bigint, @addressLine nvarchar(4000), @keyName nvarchar(255) = NULL, @keyValue nvarchar(255) = NULL WITH ENCRYPTION AS BEGIN INSERT [UDC_addressLines]( [addressID], [addressLine], [keyName], [keyValue]) VALUES( @addressID, @addressLine, @keyName, @keyValue)
RETURN 0 END -- net_address_addressLine_save
GO
-- =============================================
-- Section: Delete stored procedures
-- =============================================
-- =============================================
-- Name: net_businessEntity_delete
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_delete' and type = 'P') DROP PROCEDURE net_businessEntity_delete GO
CREATE PROCEDURE net_businessEntity_delete @PUID nvarchar(450), @businessKey uniqueidentifier, @contextID uniqueidentifier WITH ENCRYPTION AS BEGIN DECLARE @RC int, @error int, @context nvarchar(4000), @operatorID bigint, @publisherID bigint
SET @RC = 0
--
-- Validate parameters
--
IF @businessKey IS NULL BEGIN SET @error = 60210 -- E_invalidKey
SET @context = '@businessKey is required.' GOTO errorLabel END -- Validate publisher
SET @publisherID = dbo.publisherID(@PUID)
IF @publisherID IS NULL BEGIN SET @error = 60150 -- E_unknownUser
SET @context = 'PUID = ' + ISNULL(@PUID, 'NULL') GOTO errorLabel END
-- Validate operator
EXEC @RC=net_pubOperator_get @publisherID, @operatorID OUTPUT
IF @RC <> 0 BEGIN SET @error = 50006 -- E_subProcFailure
SET @context = '' GOTO errorLabel END
-- Check to see if businessKey exists
IF EXISTS(SELECT * FROM [UDC_businessEntities] WHERE ([businessKey] = @businessKey)) BEGIN -- businessKey exists. Make sure it belongs to current publisher
IF NOT EXISTS(SELECT * FROM [UDC_businessEntities] WHERE ([businessKey] = @businessKey) AND (publisherID = @publisherID)) BEGIN SET @error = 60140 -- E_userMismatch
SET @context = 'businessKey = ' + dbo.UUIDSTR(@businessKey) GOTO errorLabel END END ELSE BEGIN SET @error = 60210 -- E_invalidKey
SET @context = 'businessKey = ' + dbo.UUIDSTR(@businessKey) GOTO errorLabel END
-- Delete business
DELETE [UDC_businessEntities] WHERE [businessKey] = @businessKey
-- Delete assertions
DELETE [UDC_assertions_BE] WHERE [fromKey] = @businessKey
DELETE [UDC_assertions_BE] WHERE [toKey] = @businessKey RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_businessEntity_delete
GO
-- =============================================
-- Section: Validation stored procedures
-- =============================================
-- =============================================
-- Name: net_businessEntity_validate
-- =============================================
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'net_businessEntity_validate' AND type = 'P') DROP PROCEDURE net_businessEntity_validate GO
CREATE PROCEDURE net_businessEntity_validate @PUID nvarchar(450), @businessKey uniqueidentifier, @flag int = 0 WITH ENCRYPTION AS BEGIN DECLARE @RC int, @error int, @context nvarchar(4000), @operatorID bigint, @publisherID bigint, @replActive bit
SET @RC = 0 SET @replActive = 0
IF @flag IS NULL SET @flag = 0
--
-- Validate parameters
--
IF @businessKey IS NULL BEGIN SET @error = 60210 -- E_invalidKey
SET @context = '@businessKey is required.' GOTO errorLabel END -- Validate publisher
SET @publisherID = dbo.publisherID(@PUID)
IF @publisherID IS NULL BEGIN SET @error = 60150 -- E_unknownUser
SET @context = 'PUID = ' + ISNULL(@PUID, 'NULL') GOTO errorLabel END
-- Validate operator / publisher association (replication only)
EXEC @RC=net_pubOperator_get @publisherID, @operatorID OUTPUT, @replActive OUTPUT
IF @RC <> 0 BEGIN SET @error = 50006 -- E_subProcFailure
SET @context = '' GOTO errorLabel END
--
-- Validate businessEntity
--
-- Check to see if businessKey exists
IF EXISTS(SELECT * FROM [UDC_businessEntities] WHERE ([businessKey] = @businessKey)) BEGIN -- businessKey exists. Make sure it belongs to current publisher
IF NOT EXISTS(SELECT * FROM [UDC_businessEntities] WHERE ([businessKey] = @businessKey) AND (publisherID = @publisherID)) BEGIN SET @error = 60140 -- E_userMismatch
SET @context = 'businessKey = ' + dbo.UUIDSTR(@businessKey) GOTO errorLabel END
IF @replActive = 0 BEGIN IF @operatorID <> dbo.currentOperatorID() BEGIN SET @error = 60130 -- E_operatorMismatch
SET @context = 'Operator ' + dbo.operatorName(@operatorID) + ' is not the local operator.' GOTO errorLabel END END END ELSE BEGIN -- businessKey doesn't exist
IF (@replActive = 0) AND (@flag & 0x1 <> 0x1) BEGIN -- save isn't coming from replication and pre-assigned keys flag is not set so throw an error
SET @error = 60210 -- E_invalidKey
SET @context = 'businessKey = ' + dbo.UUIDSTR(@businessKey) GOTO errorLabel END END
RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_businessEntity_validate
GO
-- =============================================
-- Section: Publisher assertions
-- =============================================
-- =============================================
-- Name: net_businessEntity_assertions_get
-- =============================================
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'net_businessEntity_assertions_get' and type = 'P') DROP PROCEDURE net_businessEntity_assertions_get GO
CREATE PROCEDURE net_businessEntity_assertions_get @fromKey uniqueidentifier, @toKey uniqueidentifier, @completionStatus int
WITH ENCRYPTION AS BEGIN DECLARE @error int, @context nvarchar(4000) SELECT PA.[fromKey], PA.[toKey], PA.[keyName], PA.[keyValue], PA.[tModelKey] FROM [UDC_assertions_BE] PA WHERE (PA.[fromKey] = @fromKey) AND (PA.[toKey] = @toKey) AND (PA.[flag] = @completionStatus) RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_businessEntity_assertions_get
GO
-- =============================================
-- Section: Find stored procedures
-- =============================================
-- =============================================
-- Name: net_find_businessEntity_name
-- =============================================
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'net_find_businessEntity_name' AND type = 'P') DROP PROCEDURE net_find_businessEntity_name GO
CREATE PROCEDURE net_find_businessEntity_name @contextID uniqueidentifier, @isoLangCode varchar(17) = '%', @name nvarchar(450), @exactNameMatch bit, @caseSensitiveMatch bit, @rows int OUTPUT WITH ENCRYPTION AS BEGIN -- Adds name search arguments for a find_business
DECLARE @error int, @context nvarchar(4000), @contextRows int, @wildCardSarg nvarchar(451)
DECLARE @tempKeys TABLE( [entityKey] uniqueidentifier, [name] nvarchar(450))
SET @contextRows = dbo.contextRows(@contextID)
IF dbo.containsWildcard(@isoLangCode) = 0 SET @isoLangCode = @isoLangCode + N'%'
--
-- Do a wildcard search (default)
--
IF (@exactNameMatch = 0) BEGIN SET @wildCardSarg = @name
IF dbo.containsWildcard(@name) = 0 SET @wildCardSarg = @wildCardSarg + N'%'
IF @contextRows = 0 BEGIN INSERT INTO @tempKeys( [entityKey], [name]) SELECT BE.[businessKey], BN.[name] FROM [UDC_businessEntities] BE JOIN [UDC_names_BE] BN ON BE.[businessID] = BN.[businessID] WHERE (BN.[name] LIKE @wildCardSarg) AND (BN.[isoLangCode] LIKE @isoLangCode) END ELSE BEGIN INSERT INTO @tempKeys( [entityKey], [name]) SELECT BE.[businessKey], BN.[name] FROM [UDC_businessEntities] BE JOIN [UDC_names_BE] BN ON BE.[businessID] = BN.[businessID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND (BN.[name] LIKE @wildCardSarg) AND (BN.[isoLangCode] LIKE @isoLangCode) END END
--
-- Do an exactNameMatch search
--
IF (@exactNameMatch = 1) BEGIN IF @contextRows = 0 BEGIN INSERT INTO @tempKeys( [entityKey], [name]) SELECT BE.[businessKey], BN.[name] FROM [UDC_businessEntities] BE JOIN [UDC_names_BE] BN ON BE.[businessID] = BN.[businessID] WHERE (BN.[name] = @name) AND (BN.[isoLangCode] LIKE @isoLangCode) END ELSE BEGIN INSERT INTO @tempKeys( [entityKey], [name]) SELECT BE.[businessKey], BN.[name] FROM [UDC_businessEntities] BE JOIN [UDC_names_BE] BN ON BE.[businessID] = BN.[businessID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND (BN.[name] = @name) AND (BN.[isoLangCode] LIKE @isoLangCode) END END
IF (@caseSensitiveMatch = 1) DELETE @tempKeys WHERE (dbo.caseSensitiveMatch(@name, [name], @exactNameMatch) = 0)
-- name search arguments are combined using a logical OR by default
INSERT [UDS_findScratch] ( [contextID], [entityKey]) SELECT DISTINCT @contextID, [entityKey] FROM @tempKeys WHERE ([entityKey] NOT IN (SELECT [entityKey] FROM [UDS_findScratch] WHERE [contextID] = @contextID))
SET @rows = @@ROWCOUNT
RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_find_businessEntity_name
GO
-- =============================================
-- Name: net_find_businessEntity_discoveryURL
-- =============================================
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'net_find_businessEntity_discoveryURL' AND type = 'P') DROP PROCEDURE net_find_businessEntity_discoveryURL GO
CREATE PROCEDURE net_find_businessEntity_discoveryURL @contextID uniqueidentifier, @useType nvarchar(4000), @discoveryURL nvarchar(4000), @rows int OUTPUT WITH ENCRYPTION AS BEGIN -- Adds discoveryURL search arguments for a find_business
DECLARE @error int, @context nvarchar(4000), @contextRows int, @defaultPattern nvarchar(4000), @businessKeyStr char(36), @businessKey uniqueidentifier
DECLARE @tempKeys TABLE( [entityKey] uniqueidentifier)
-- Perform special check for default discoveryURL
IF @useType = N'businessEntity' BEGIN SET @defaultPattern = UPPER(dbo.configValue('DefaultDiscoveryURL') + '[0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F]-[0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F]-[0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F]-[0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F]-[0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F][0-9,A-F]')
-- Check to see if the discoveryURL looks like a default discoveryURL
IF @discoveryURL NOT LIKE @defaultPattern GOTO continueSearch
-- Extract the businessKey from the discoveryURL
SET @businessKeyStr = RIGHT(@discoveryURL, 36)
IF dbo.ISGUID(@businessKeyStr) = 0 GOTO continueSearch
SET @businessKey = CAST(@businessKeyStr AS uniqueidentifier)
-- Check to see if the businessKey exists
IF NOT EXISTS(SELECT * FROM [UDC_businessEntities] WHERE [businessKey] = @businessKey) GOTO continueSearch
-- businessKey exists. See if any existing discoveryURLs exist for useType = businessEntity
SELECT @rows = COUNT(*) FROM [UDC_discoveryURLs] DU JOIN [UDC_businessEntities] BE ON DU.[businessID] = BE.[businessID] WHERE (BE.[businessKey] = @businessKey) AND (DU.[useType] = N'businessEntity')
IF @rows > 0 BEGIN SET @rows = 0 GOTO continueSearch END -- No existing discoveryURLs exist for useType = businessEntity for this business.
-- Since search argument matches default discoveryURL, add businessKey to list of keys
INSERT @tempKeys( [entityKey]) VALUES( @businessKey)
-- Continue search, since other businesses could possibly have the same discoveryURL
END -- default discoveryURL logic
continueSearch: SET @contextRows = dbo.contextRows(@contextID)
IF LEN(@useType) = 0 OR @useType IS NULL BEGIN SET @useType = '%' END
IF @contextRows = 0 BEGIN INSERT INTO @tempKeys( [entityKey]) SELECT BE.[businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_discoveryURLs] DU ON BE.[businessID] = DU.[businessID] WHERE (DU.[discoveryURL] = @discoveryURL) AND ((ISNULL(DU.[useType],'[[NULL]]')) LIKE @useType) END ELSE BEGIN INSERT INTO @tempKeys( [entityKey]) SELECT BE.[businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_discoveryURLs] DU ON BE.[businessID] = DU.[businessID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND (DU.[discoveryURL] = @discoveryURL) AND ((ISNULL(DU.[useType],'[[NULL]]')) LIKE @useType) END
-- All keys are combined using logical OR for discoveryURL search arguments
INSERT [UDS_findScratch] ( [contextID], [entityKey]) SELECT DISTINCT @contextID, [entityKey] FROM @tempKeys WHERE ([entityKey] NOT IN (SELECT [entityKey] FROM [UDS_findScratch] WHERE [contextID] = @contextID)) SET @rows = @@ROWCOUNT
RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_find_businessEntity_discoveryURL
GO
-- =============================================
-- Name: net_find_businessEntity_identifierBag
-- =============================================
IF EXISTS (SELECT name FROM sysobjects WHERE name = N'net_find_businessEntity_identifierBag' AND type = 'P') DROP PROCEDURE net_find_businessEntity_identifierBag GO
CREATE PROCEDURE net_find_businessEntity_identifierBag @contextID uniqueidentifier, @keyName nvarchar(4000), @keyValue nvarchar(4000), @tModelKey uniqueidentifier, @orKeys bit = 0, @rows int OUTPUT WITH ENCRYPTION AS BEGIN DECLARE @error int, @context nvarchar(4000), @contextRows int
DECLARE @tempKeys TABLE( [entityKey] uniqueidentifier)
SET @contextRows = dbo.contextRows(@contextID)
IF @contextRows = 0 BEGIN INSERT @tempKeys( [entityKey]) SELECT DISTINCT [businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_identifierBag_BE] IB ON BE.[businessID] = IB.[businessID] WHERE ([tModelKey] = @tModelKey) AND ([keyValue] = @keyValue) END ELSE BEGIN INSERT @tempKeys( [entityKey]) SELECT DISTINCT [businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_identifierBag_BE] IB ON BE.[businessID] = IB.[businessID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND ([tModelKey] = @tModelKey) AND ([keyValue] = @keyValue) END
IF @orKeys = 1 BEGIN INSERT [UDS_findScratch] ( [contextID], [entityKey]) SELECT DISTINCT @contextID, [entityKey] FROM @tempKeys WHERE ([entityKey] NOT IN (SELECT [entityKey] FROM [UDS_findScratch] WHERE [contextID] = @contextID)) END ELSE BEGIN IF EXISTS(SELECT * FROM [UDS_findScratch] WHERE [contextID] = @contextID) BEGIN DELETE [UDS_findScratch] WHERE ([entityKey] NOT IN (SELECT [entityKey] FROM @tempKeys WHERE [contextID] = @contextID)) END ELSE BEGIN INSERT [UDS_findScratch] ( [contextID], [entityKey]) SELECT DISTINCT @contextID, [entityKey] FROM @tempKeys END END SELECT @rows = COUNT(*) FROM [UDS_findScratch] WHERE ([contextID] = @contextID)
RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_find_businessEntity_identifierBag
GO
-- =============================================
-- Name: net_find_businessEntity_categoryBag
-- =============================================
IF EXISTS (SELECT name FROM sysobjects WHERE name = N'net_find_businessEntity_categoryBag' AND type = 'P') DROP PROCEDURE net_find_businessEntity_categoryBag GO
CREATE PROCEDURE net_find_businessEntity_categoryBag @contextID uniqueidentifier, @keyName nvarchar(4000), @keyValue nvarchar(4000), @tModelKey uniqueidentifier, @orKeys bit = 0, @rows int OUTPUT WITH ENCRYPTION AS BEGIN DECLARE @error int, @context nvarchar(4000), @contextRows int, @genKeywordsMatch bit
DECLARE @tempKeys TABLE( [entityKey] uniqueidentifier)
SET @contextRows = dbo.contextRows(@contextID) SET @genKeywordsMatch = 0
IF @tModelKey = dbo.genKeywordsKey() SET @genKeywordsMatch = 1
IF @contextRows = 0 BEGIN IF @genKeywordsMatch = 0 BEGIN -- Ignore keyName
INSERT @tempKeys( [entityKey]) SELECT DISTINCT [businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_categoryBag_BE] CB ON BE.[businessID] = CB.[businessID] WHERE ([tModelKey] = @tModelKey) AND ([keyValue] = @keyValue) END ELSE BEGIN -- Include keyName
INSERT @tempKeys( [entityKey]) SELECT DISTINCT [businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_categoryBag_BE] CB ON BE.[businessID] = CB.[businessID] WHERE ([tModelKey] = @tModelKey) AND ([keyValue] = @keyValue) AND (ISNULL([keyName],'') = ISNULL(@keyName,'')) END END ELSE BEGIN IF @genKeywordsMatch = 0 BEGIN -- Ignore keyName
INSERT @tempKeys( [entityKey]) SELECT DISTINCT [businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_categoryBag_BE] CB ON BE.[businessID] = CB.[businessID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND ([tModelKey] = @tModelKey) AND ([keyValue] = @keyValue) END ELSE BEGIN -- Include keyName
INSERT @tempKeys( [entityKey]) SELECT DISTINCT [businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_categoryBag_BE] CB ON BE.[businessID] = CB.[businessID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND ([tModelKey] = @tModelKey) AND ([keyValue] = @keyValue) AND (ISNULL([keyName],'') = ISNULL(@keyName,'')) END END
IF @orKeys = 1 BEGIN INSERT [UDS_findScratch] ( [contextID], [entityKey]) SELECT DISTINCT @contextID, [entityKey] FROM @tempKeys WHERE ([entityKey] NOT IN (SELECT [entityKey] FROM [UDS_findScratch] WHERE [contextID] = @contextID)) END ELSE BEGIN IF EXISTS(SELECT * FROM [UDS_findScratch] WHERE [contextID] = @contextID) BEGIN DELETE [UDS_findScratch] WHERE ([entityKey] NOT IN (SELECT [entityKey] FROM @tempKeys WHERE [contextID] = @contextID)) END ELSE BEGIN INSERT [UDS_findScratch] ( [contextID], [entityKey]) SELECT DISTINCT @contextID, [entityKey] FROM @tempKeys END END SELECT @rows = COUNT(*) FROM [UDS_findScratch] WHERE ([contextID] = @contextID)
RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_find_businessEntity_categoryBag
GO
-- =============================================
-- Name: net_find_businessEntity_serviceSubset
-- =============================================
IF EXISTS (SELECT name FROM sysobjects WHERE name = N'net_find_businessEntity_serviceSubset' AND type = 'P') DROP PROCEDURE net_find_businessEntity_serviceSubset GO
CREATE PROCEDURE net_find_businessEntity_serviceSubset @contextID uniqueidentifier, @keyName nvarchar(4000), @keyValue nvarchar(4000), @tModelKey uniqueidentifier, @orKeys bit = 0, @rows int OUTPUT WITH ENCRYPTION AS BEGIN DECLARE @error int, @context nvarchar(4000), @contextRows int, @genKeywordsMatch bit
DECLARE @tempKeys TABLE( [entityKey] uniqueidentifier, [subEntityKey] uniqueidentifier)
SET @contextRows = dbo.contextRows(@contextID)
SET @genKeywordsMatch = 0
IF @tModelKey = dbo.genKeywordsKey() SET @genKeywordsMatch = 1
IF @contextRows = 0 BEGIN IF @genKeywordsMatch = 1 BEGIN -- Ignore keyName
-- Standard services
INSERT @tempKeys( [entityKey], [subEntityKey]) SELECT DISTINCT BE.[businessKey], BS.[serviceKey] FROM [UDC_businessEntities] BE JOIN [UDC_businessServices] BS ON BE.[businessID] = BS.[businessID] JOIN [UDC_categoryBag_BS] CB ON BS.[serviceID] = CB.[serviceID] WHERE (CB.[tModelKey] = @tModelKey) AND (CB.[keyValue] = @keyValue) -- Projected services
INSERT @tempKeys( [entityKey], [subEntityKey]) SELECT DISTINCT BE.[businessKey], BS.[serviceKey] FROM [UDC_businessEntities] BE JOIN [UDC_serviceProjections] SP ON BE.[businessKey] = SP.[businessKey] JOIN [UDC_businessServices] BS ON SP.[serviceKey] = BS.[serviceKey] JOIN [UDC_categoryBag_BS] CB ON BS.[serviceID] = CB.[serviceID] WHERE (CB.[tModelKey] = @tModelKey) AND (CB.[keyValue] = @keyValue) END ELSE BEGIN -- Include keyName
INSERT @tempKeys( [entityKey], [subEntityKey]) SELECT DISTINCT BE.[businessKey], BS.[serviceKey] FROM [UDC_businessEntities] BE JOIN [UDC_businessServices] BS ON BE.[businessID] = BS.[businessID] JOIN [UDC_categoryBag_BS] CB ON BS.[serviceID] = CB.[serviceID] WHERE (CB.[tModelKey] = @tModelKey) AND (CB.[keyValue] = @keyValue) AND (ISNULL([keyName],'') = ISNULL(@keyName,'')) -- Projected services
INSERT @tempKeys( [entityKey], [subEntityKey]) SELECT DISTINCT BE.[businessKey], BS.[serviceKey] FROM [UDC_businessEntities] BE JOIN [UDC_serviceProjections] SP ON BE.[businessKey] = SP.[businessKey] JOIN [UDC_businessServices] BS ON SP.[serviceKey] = BS.[serviceKey] JOIN [UDC_categoryBag_BS] CB ON BS.[serviceID] = CB.[serviceID] WHERE (CB.[tModelKey] = @tModelKey) AND (CB.[keyValue] = @keyValue) AND (ISNULL([keyName],'') = ISNULL(@keyName,'')) END END ELSE BEGIN IF @genKeywordsMatch = 1 BEGIN -- Ignore keyName
-- Standard services
INSERT @tempKeys( [entityKey], [subEntityKey]) SELECT DISTINCT BE.[businessKey], BS.[serviceKey] FROM [UDC_businessEntities] BE JOIN [UDC_businessServices] BS ON BE.[businessID] = BS.[businessID] JOIN [UDC_categoryBag_BS] CB ON BS.[serviceID] = CB.[serviceID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND (CB.[tModelKey] = @tModelKey) AND (CB.[keyValue] = @keyValue) -- Projected services
INSERT @tempKeys( [entityKey], [subEntityKey]) SELECT DISTINCT BE.[businessKey], BS.[serviceKey] FROM [UDC_businessEntities] BE JOIN [UDC_serviceProjections] SP ON BE.[businessKey] = SP.[businessKey] JOIN [UDC_businessServices] BS ON SP.[serviceKey] = BS.[serviceKey] JOIN [UDC_categoryBag_BS] CB ON BS.[serviceID] = CB.[serviceID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND (CB.[tModelKey] = @tModelKey) AND (CB.[keyValue] = @keyValue) END ELSE BEGIN -- Include keyName
-- Standard services
INSERT @tempKeys( [entityKey], [subEntityKey]) SELECT DISTINCT BE.[businessKey], BS.[serviceKey] FROM [UDC_businessEntities] BE JOIN [UDC_businessServices] BS ON BE.[businessID] = BS.[businessID] JOIN [UDC_categoryBag_BS] CB ON BS.[serviceID] = CB.[serviceID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND (CB.[tModelKey] = @tModelKey) AND (CB.[keyValue] = @keyValue) AND (ISNULL([keyName],'') = ISNULL(@keyName,'')) -- Projected services
INSERT @tempKeys( [entityKey], [subEntityKey]) SELECT DISTINCT BE.[businessKey], BS.[serviceKey] FROM [UDC_businessEntities] BE JOIN [UDC_serviceProjections] SP ON BE.[businessKey] = SP.[businessKey] JOIN [UDC_businessServices] BS ON SP.[serviceKey] = BS.[serviceKey] JOIN [UDC_categoryBag_BS] CB ON BS.[serviceID] = CB.[serviceID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND (CB.[tModelKey] = @tModelKey) AND (CB.[keyValue] = @keyValue) AND (ISNULL([keyName],'') = ISNULL(@keyName,'')) END END
IF @orKeys = 1 BEGIN INSERT [UDS_findScratch] ( [contextID], [entityKey], [subEntityKey]) SELECT DISTINCT @contextID, [entityKey], [subEntityKey] FROM @tempKeys WHERE ([entityKey] NOT IN (SELECT [entityKey] FROM [UDS_findScratch] WHERE [contextID] = @contextID)) END ELSE BEGIN IF EXISTS(SELECT * FROM [UDS_findScratch] WHERE [contextID] = @contextID) BEGIN DELETE [UDS_findScratch] WHERE ([entityKey] NOT IN (SELECT [entityKey] FROM @tempKeys WHERE [contextID] = @contextID)) END ELSE BEGIN INSERT [UDS_findScratch] ( [contextID], [entityKey], [subEntityKey]) SELECT DISTINCT @contextID, [entityKey], [subEntityKey] FROM @tempKeys END END SELECT @rows = COUNT(*) FROM [UDS_findScratch] WHERE ([contextID] = @contextID)
RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_find_businessEntity_serviceSubset
GO
-- =============================================
-- Name: net_find_businessEntity_combineCategoryBags
-- =============================================
IF EXISTS (SELECT name FROM sysobjects WHERE name = N'net_find_businessEntity_combineCategoryBags' AND type = 'P') DROP PROCEDURE net_find_businessEntity_combineCategoryBags GO
CREATE PROCEDURE net_find_businessEntity_combineCategoryBags @contextID uniqueidentifier, @keyName nvarchar(4000), @keyValue nvarchar(4000), @tModelKey uniqueidentifier, @orKeys bit = 0, @rows int OUTPUT WITH ENCRYPTION AS BEGIN DECLARE @error int, @context nvarchar(4000), @contextRows int, @genKeywordsMatch bit
DECLARE @tempKeys TABLE( [entityKey] uniqueidentifier)
SET @contextRows = dbo.contextRows(@contextID)
SET @genKeywordsMatch = 0
IF @tModelKey = dbo.genKeywordsKey() SET @genKeywordsMatch = 1
IF @contextRows = 0 BEGIN IF @genKeywordsMatch = 0 BEGIN -- Ignore keyName
-- businessEntity
INSERT @tempKeys( [entityKey]) SELECT DISTINCT [businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_categoryBag_BE] CB ON BE.[businessID] = CB.[businessID] WHERE ([tModelKey] = @tModelKey) AND ([keyValue] = @keyValue) -- Standard services
INSERT @tempKeys( [entityKey]) SELECT DISTINCT [businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_businessServices] BS ON BE.[businessID] = BS.[businessID] JOIN [UDC_categoryBag_BS] CB ON BS.[serviceID] = CB.[serviceID] WHERE ([tModelKey] = @tModelKey) AND ([keyValue] = @keyValue) -- Projected services
INSERT @tempKeys( [entityKey]) SELECT DISTINCT BE.[businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_serviceProjections] SP ON BE.[businessKey] = SP.[businessKey] JOIN [UDC_businessServices] BS ON SP.[serviceKey] = BS.[serviceKey] JOIN [UDC_categoryBag_BS] CB ON BS.[serviceID] = CB.[serviceID] WHERE (CB.[tModelKey] = @tModelKey) AND (CB.[keyValue] = @keyValue) END ELSE BEGIN -- Include keyName
-- businessEntity
INSERT @tempKeys( [entityKey]) SELECT DISTINCT [businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_categoryBag_BE] CB ON BE.[businessID] = CB.[businessID] WHERE ([tModelKey] = @tModelKey) AND ([keyValue] = @keyValue) AND (ISNULL([keyName],'') = ISNULL(@keyName,'')) -- Standard services
INSERT @tempKeys( [entityKey]) SELECT DISTINCT [businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_businessServices] BS ON BE.[businessID] = BS.[businessID] JOIN [UDC_categoryBag_BS] CB ON BS.[serviceID] = CB.[serviceID] WHERE ([tModelKey] = @tModelKey) AND ([keyValue] = @keyValue) AND (ISNULL([keyName],'') = ISNULL(@keyName,'')) -- Projected services
INSERT @tempKeys( [entityKey]) SELECT DISTINCT BE.[businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_serviceProjections] SP ON BE.[businessKey] = SP.[businessKey] JOIN [UDC_businessServices] BS ON SP.[serviceKey] = BS.[serviceKey] JOIN [UDC_categoryBag_BS] CB ON BS.[serviceID] = CB.[serviceID] WHERE (CB.[tModelKey] = @tModelKey) AND (CB.[keyValue] = @keyValue) AND (ISNULL([keyName],'') = ISNULL(@keyName,'')) END END ELSE BEGIN IF @genKeywordsMatch = 0 BEGIN -- Ignore keyName
-- businessEntity
INSERT @tempKeys( [entityKey]) SELECT DISTINCT [businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_categoryBag_BE] CB ON BE.[businessID] = CB.[businessID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND ([tModelKey] = @tModelKey) AND ([keyValue] = @keyValue) -- Standard services
INSERT @tempKeys( [entityKey]) SELECT DISTINCT [businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_businessServices] BS ON BE.[businessID] = BS.[businessID] JOIN [UDC_categoryBag_BS] CB ON BS.[serviceID] = CB.[serviceID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND ([tModelKey] = @tModelKey) AND ([keyValue] = @keyValue) -- Projected services
INSERT @tempKeys( [entityKey]) SELECT DISTINCT BE.[businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_serviceProjections] SP ON BE.[businessKey] = SP.[businessKey] JOIN [UDC_businessServices] BS ON SP.[serviceKey] = BS.[serviceKey] JOIN [UDC_categoryBag_BS] CB ON BS.[serviceID] = CB.[serviceID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND (CB.[tModelKey] = @tModelKey) AND (CB.[keyValue] = @keyValue) END ELSE BEGIN -- Include keyName
-- businessEntity
INSERT @tempKeys( [entityKey]) SELECT DISTINCT [businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_categoryBag_BE] CB ON BE.[businessID] = CB.[businessID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND ([tModelKey] = @tModelKey) AND ([keyValue] = @keyValue) AND (ISNULL([keyName],'') = ISNULL(@keyName,'')) -- Standard services
INSERT @tempKeys( [entityKey]) SELECT DISTINCT [businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_businessServices] BS ON BE.[businessID] = BS.[businessID] JOIN [UDC_categoryBag_BS] CB ON BS.[serviceID] = CB.[serviceID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND ([tModelKey] = @tModelKey) AND ([keyValue] = @keyValue) AND (ISNULL([keyName],'') = ISNULL(@keyName,'')) -- Projected services
INSERT @tempKeys( [entityKey]) SELECT DISTINCT BE.[businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_serviceProjections] SP ON BE.[businessKey] = SP.[businessKey] JOIN [UDC_businessServices] BS ON SP.[serviceKey] = BS.[serviceKey] JOIN [UDC_categoryBag_BS] CB ON BS.[serviceID] = CB.[serviceID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND (CB.[tModelKey] = @tModelKey) AND (CB.[keyValue] = @keyValue) AND (ISNULL([keyName],'') = ISNULL(@keyName,'')) END END
IF @orKeys = 1 BEGIN INSERT [UDS_findScratch] ( [contextID], [entityKey]) SELECT DISTINCT @contextID, [entityKey] FROM @tempKeys WHERE ([entityKey] NOT IN (SELECT [entityKey] FROM [UDS_findScratch] WHERE [contextID] = @contextID)) END ELSE BEGIN IF EXISTS(SELECT * FROM [UDS_findScratch] WHERE [contextID] = @contextID) BEGIN DELETE [UDS_findScratch] WHERE ([entityKey] NOT IN (SELECT [entityKey] FROM @tempKeys WHERE [contextID] = @contextID)) END ELSE BEGIN INSERT [UDS_findScratch] ( [contextID], [entityKey]) SELECT DISTINCT @contextID, [entityKey] FROM @tempKeys END END SELECT @rows = COUNT(*) FROM [UDS_findScratch] WHERE ([contextID] = @contextID)
RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_find_businessEntity_combineCategoryBags
GO
-- =============================================
-- Name: net_find_businessEntity_tModelBag
-- =============================================
IF EXISTS (SELECT name FROM sysobjects WHERE name = N'net_find_businessEntity_tModelBag' AND type = 'P') DROP PROCEDURE net_find_businessEntity_tModelBag GO
CREATE PROCEDURE net_find_businessEntity_tModelBag @contextID uniqueidentifier, @tModelKey uniqueidentifier, @orKeys bit = 0, @rows int OUTPUT WITH ENCRYPTION AS BEGIN DECLARE @error int, @context nvarchar(4000), @contextRows int
DECLARE @tempKeys TABLE( [entityKey] uniqueidentifier)
-- See if we have any results from a search against another bag (ie. categoryBag or identifierBag)
SET @contextRows = dbo.contextRows(@contextID)
IF @contextRows = 0
-- If there are no previous results we can just query and insert into @tempKeys
BEGIN --
-- First check contained services
--
-- check tModelInstances
INSERT @tempKeys( [entityKey]) SELECT DISTINCT BE.[businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_businessServices] BS ON BE.[businessID] = BS.[businessID] JOIN [UDC_bindingTemplates] BT ON BS.[serviceID] = BT.[serviceID] JOIN [UDC_tModelInstances] TI ON BT.[bindingID] = TI.[bindingID] WHERE (TI.[tModelKey] = @tModelKey)
-- Check hostingRedirectors
INSERT @tempKeys( [entityKey]) SELECT DISTINCT BE.[businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_businessServices] BS ON BE.[businessID] = BS.[businessID] JOIN [UDC_bindingTemplates] BT ON BS.[serviceID] = BT.[serviceID] JOIN [UDC_bindingTemplates] BT2 ON BT.[hostingRedirector] = BT2.[bindingKey] JOIN [UDC_tModelInstances] TI ON BT2.[bindingID] = TI.[bindingID] WHERE (TI.[tModelKey] = @tModelKey)
--
-- Next check projected services
--
-- check tModelInstances
INSERT @tempKeys( [entityKey]) SELECT DISTINCT BE.[businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_serviceProjections] SP ON BE.[businessKey] = SP.[businessKey] JOIN [UDC_businessServices] BS ON SP.[serviceKey] = BS.[serviceKey] JOIN [UDC_bindingTemplates] BT ON BS.[serviceID] = BT.[serviceID] JOIN [UDC_tModelInstances] TI ON BT.[bindingID] = TI.[bindingID] WHERE (TI.[tModelKey] = @tModelKey)
-- Check hostingRedirectors
INSERT @tempKeys( [entityKey]) SELECT DISTINCT BE.[businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_serviceProjections] SP ON BE.[businessKey] = SP.[businessKey] JOIN [UDC_businessServices] BS ON SP.[serviceKey] = BS.[serviceKey] JOIN [UDC_bindingTemplates] BT ON BS.[serviceID] = BT.[serviceID] JOIN [UDC_bindingTemplates] BT2 ON BT.[hostingRedirector] = BT2.[bindingKey] JOIN [UDC_tModelInstances] TI ON BT2.[bindingID] = TI.[bindingID] WHERE (TI.[tModelKey] = @tModelKey) END ELSE
-- If there are previous results from searches against other bags, then we must take that into account in the
-- queries for this bag. This is necessary because results between bags are always 'AND-ed'.
BEGIN --
-- First check contained services
--
-- check tModelInstances
INSERT @tempKeys( [entityKey]) SELECT DISTINCT BE.[businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_businessServices] BS ON BE.[businessID] = BS.[businessID] JOIN [UDC_bindingTemplates] BT ON BS.[serviceID] = BT.[serviceID] JOIN [UDC_tModelInstances] TI ON BT.[bindingID] = TI.[bindingID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND (TI.[tModelKey] = @tModelKey)
-- Check hostingRedirectors
INSERT @tempKeys( [entityKey]) SELECT DISTINCT BE.[businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_businessServices] BS ON BE.[businessID] = BS.[businessID] JOIN [UDC_bindingTemplates] BT ON BS.[serviceID] = BT.[serviceID] JOIN [UDC_bindingTemplates] BT2 ON BT.[hostingRedirector] = BT2.[bindingKey] JOIN [UDC_tModelInstances] TI ON BT2.[bindingID] = TI.[bindingID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND (TI.[tModelKey] = @tModelKey)
--
-- Next check projected services
--
-- check tModelInstances
INSERT @tempKeys( [entityKey]) SELECT DISTINCT BE.[businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_serviceProjections] SP ON BE.[businessKey] = SP.[businessKey] JOIN [UDC_businessServices] BS ON SP.[serviceKey] = BS.[serviceKey] JOIN [UDC_bindingTemplates] BT ON BS.[serviceID] = BT.[serviceID] JOIN [UDC_tModelInstances] TI ON BT.[bindingID] = TI.[bindingID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND (TI.[tModelKey] = @tModelKey)
-- Check hostingRedirectors
INSERT @tempKeys( [entityKey]) SELECT DISTINCT BE.[businessKey] FROM [UDC_businessEntities] BE JOIN [UDC_serviceProjections] SP ON BE.[businessKey] = SP.[businessKey] JOIN [UDC_businessServices] BS ON SP.[serviceKey] = BS.[serviceKey] JOIN [UDC_bindingTemplates] BT ON BS.[serviceID] = BT.[serviceID] JOIN [UDC_bindingTemplates] BT2 ON BT.[hostingRedirector] = BT2.[bindingKey] JOIN [UDC_tModelInstances] TI ON BT2.[bindingID] = TI.[bindingID] WHERE (BE.[businessKey] IN (SELECT [entityKey] FROM [UDS_findResults] WHERE ([contextID] = @contextID))) AND (TI.[tModelKey] = @tModelKey) END
IF @orKeys = 1 BEGIN
-- OR operation between @tempKeys and the UDS_findScratch table
INSERT [UDS_findScratch] ( [contextID], [entityKey]) SELECT DISTINCT @contextID, [entityKey] FROM @tempKeys WHERE ([entityKey] NOT IN (SELECT [entityKey] FROM [UDS_findScratch] WHERE [contextID] = @contextID)) END ELSE BEGIN
-- AND operation between @tempKeys and the UDS_findScratch table
IF EXISTS(SELECT * FROM [UDS_findScratch] WHERE [contextID] = @contextID) BEGIN DELETE [UDS_findScratch] WHERE ([entityKey] NOT IN (SELECT [entityKey] FROM @tempKeys WHERE [contextID] = @contextID)) END ELSE BEGIN INSERT [UDS_findScratch] ( [contextID], [entityKey]) SELECT DISTINCT @contextID, [entityKey] FROM @tempKeys END END
SELECT @rows = COUNT(*) FROM [UDS_findScratch] WHERE ([contextID] = @contextID)
RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_find_businessEntity_tModelBag
GO
-- =============================================
-- Name: net_find_businessEntity_commit
-- =============================================
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'net_find_businessEntity_commit' AND type = 'P') DROP PROCEDURE net_find_businessEntity_commit GO
CREATE PROCEDURE net_find_businessEntity_commit @contextID uniqueidentifier, @sortByNameAsc bit, @sortByNameDesc bit, @sortByDateAsc bit, @sortByDateDesc bit, @maxRows int, @truncated int OUTPUT WITH ENCRYPTION AS BEGIN -- Finalizes a find_business and returns a key list
DECLARE @error int, @context nvarchar(4000), @contextRows int
SET @contextRows = dbo.contextRows(@contextID) SET @truncated = 0
IF @contextRows = 0 RETURN 0
DECLARE @tempKeys TABLE ( [seqNo] bigint IDENTITY PRIMARY KEY , [entityKey] uniqueidentifier, [name] nvarchar(450) NULL, [lastChange] bigint NULL, [businessID] bigint NULL)
-- Set default sorting option
IF (@sortByNameAsc = 0) AND (@sortByNameDesc = 0) AND (@sortByDateAsc = 0) AND (@sortByDateDesc = 0) SET @sortByNameAsc = 1
-- Set maxRows if default was passed
IF ISNULL(@maxRows,0) = 0 SET @maxRows = dbo.configValue('Find.MaxRowsDefault')
-- sortByNameAsc
IF (@sortByNameAsc = 1) BEGIN IF (@sortByDateAsc = 0) AND (@sortByDateDesc = 0) SET @sortByDateAsc = 1
IF (@sortByDateAsc = 1) BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 2 ASC, 3 ASC, 4 ASC END ELSE BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 2 ASC, 3 DESC, 4 DESC END
GOTO endLabel END
-- sortByNameDesc
IF (@sortByNameDesc = 1) BEGIN IF (@sortByDateAsc = 0) AND (@sortByDateDesc = 0) SET @sortByDateAsc = 1
IF (@sortByDateAsc = 1) BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 2 DESC, 3 ASC, 4 ASC END ELSE BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 2 DESC, 3 DESC, 4 DESC END
GOTO endLabel END
-- sortByDateAsc
IF (@sortByDateAsc = 1) BEGIN IF (@sortByNameAsc = 0) AND (@sortByNameDesc = 0) SET @sortByNameAsc = 1
IF (@sortByNameAsc = 1) BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 3 ASC, 4 ASC, 2 ASC END ELSE BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 3 ASC, 4 ASC, 2 DESC END
GOTO endLabel END
-- sortByDateDesc
IF (@sortByDateDesc = 1) BEGIN IF (@sortByNameAsc = 0) AND (@sortByNameDesc = 0) SET @sortByNameAsc = 1
IF (@sortByNameAsc = 1) BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 3 DESC, 4 DESC, 2 ASC END ELSE BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 3 DESC, 4 DESC, 2 DESC END
GOTO endLabel END
endLabel: -- Set @truncated
IF (SELECT COUNT(*) FROM @tempKeys) > @maxRows SET @truncated = 1
-- Return keys
SELECT [entityKey] FROM @tempKeys WHERE ([seqNo] <= @maxRows) -- Run cleanup
EXEC net_find_cleanup @contextID
RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_find_businessEntity_commit
GO
-- =============================================
-- Name: net_find_businessEntity_serviceSubset_commit
-- =============================================
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'net_find_businessEntity_serviceSubset_commit' AND type = 'P') DROP PROCEDURE net_find_businessEntity_serviceSubset_commit GO
CREATE PROCEDURE net_find_businessEntity_serviceSubset_commit @contextID uniqueidentifier, @sortByNameAsc bit, @sortByNameDesc bit, @sortByDateAsc bit, @sortByDateDesc bit, @maxRows int, @truncated int OUTPUT WITH ENCRYPTION AS BEGIN -- Finalizes a find_business and returns a key list
DECLARE @error int, @context nvarchar(4000), @contextRows int
SET @contextRows = dbo.contextRows(@contextID) SET @truncated = 0
IF @contextRows = 0 RETURN 0
DECLARE @tempKeys TABLE ( [seqNo] bigint IDENTITY PRIMARY KEY , [entityKey] uniqueidentifier, [name] nvarchar(450) NULL, [lastChange] bigint NULL, [businessID] bigint NULL)
-- Set default sorting option
IF (@sortByNameAsc = 0) AND (@sortByNameDesc = 0) AND (@sortByDateAsc = 0) AND (@sortByDateDesc = 0) SET @sortByNameAsc = 1
-- Set maxRows if default was passed
IF ISNULL(@maxRows,0) = 0 SET @maxRows = dbo.configValue('Find.MaxRowsDefault')
-- sortByNameAsc
IF (@sortByNameAsc = 1) BEGIN IF (@sortByDateAsc = 0) AND (@sortByDateDesc = 0) SET @sortByDateAsc = 1
IF (@sortByDateAsc = 1) BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 2 ASC, 3 ASC, 4 ASC END ELSE BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 2 ASC, 3 DESC, 4 DESC END
GOTO endLabel END
-- sortByNameDesc
IF (@sortByNameDesc = 1) BEGIN IF (@sortByDateAsc = 0) AND (@sortByDateDesc = 0) SET @sortByDateAsc = 1
IF (@sortByDateAsc = 1) BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 2 DESC, 3 ASC, 4 ASC END ELSE BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 2 DESC, 3 DESC, 4 DESC END
GOTO endLabel END
-- sortByDateAsc
IF (@sortByDateAsc = 1) BEGIN IF (@sortByNameAsc = 0) AND (@sortByNameDesc = 0) SET @sortByNameAsc = 1
IF (@sortByNameAsc = 1) BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 3 ASC, 4 ASC, 2 ASC END ELSE BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 3 ASC, 4 ASC, 2 DESC END
GOTO endLabel END
-- sortByDateDesc
IF (@sortByDateDesc = 1) BEGIN IF (@sortByNameAsc = 0) AND (@sortByNameDesc = 0) SET @sortByNameAsc = 1
IF (@sortByNameAsc = 1) BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 3 DESC, 4 DESC, 2 ASC END ELSE BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 3 DESC, 4 DESC, 2 DESC END
GOTO endLabel END
endLabel: -- Set @truncated
IF (SELECT COUNT(*) FROM @tempKeys) > @maxRows SET @truncated = 1
-- Return keys
SELECT TK.[entityKey], FR.[subEntityKey] FROM @tempKeys TK JOIN [UDS_findResults] FR ON @contextID = FR.[contextID] AND TK.[entityKey] = FR.[entityKey] WHERE ([seqNo] <= @maxRows) ORDER BY TK.[seqNo] ASC -- Run cleanup
EXEC net_find_cleanup @contextID
RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_find_businessEntity_serviceSubset_commit
GO
-- =============================================
-- Name: net_find_businessEntity_relatedBusinesses
-- =============================================
IF EXISTS (SELECT name FROM sysobjects WHERE name = N'net_find_businessEntity_relatedBusinesses' AND type = 'P') DROP PROCEDURE net_find_businessEntity_relatedBusinesses GO
CREATE PROCEDURE net_find_businessEntity_relatedBusinesses @contextID uniqueidentifier, @businessKey uniqueidentifier, @keyName nvarchar(4000) = NULL, @keyValue nvarchar(4000) = NULL, @tModelKey uniqueidentifier = NULL, @sortByNameAsc bit, @sortByNameDesc bit, @sortByDateAsc bit, @sortByDateDesc bit, @maxRows int, @truncated int OUTPUT, @rows int OUTPUT WITH ENCRYPTION AS BEGIN DECLARE @error int, @context nvarchar(4000)
DECLARE @tempKeys TABLE( [seqNo] bigint IDENTITY PRIMARY KEY, [entityKey] uniqueidentifier, [name] nvarchar(450) NULL, [lastChange] bigint NULL, [businessID] bigint NULL)
IF @tModelKey IS NULL BEGIN -- Perform find without keyedReference
INSERT [UDS_findResults] ( [contextID], [entityKey]) SELECT DISTINCT @contextID, [toKey] FROM [UDC_assertions_BE] WHERE ([fromKey] = @businessKey) AND ([flag] = 3) -- CompletionStatusType.Complete
INSERT [UDS_findResults] ( [contextID], [entityKey]) SELECT DISTINCT @contextID, [fromKey] FROM [UDC_assertions_BE] WHERE ([toKey] = @businessKey) AND ([flag] = 3) -- CompletionStatusType.Complete
END ELSE BEGIN INSERT [UDS_findResults]( [contextID], [entityKey]) SELECT DISTINCT @contextID, [toKey] FROM [UDC_assertions_BE] WHERE ([fromKey] = @businessKey) AND ([tModelKey] = @tModelKey) AND ([keyValue] = @keyValue) AND (ISNULL([keyName],'') = ISNULL(@keyName,'')) AND ([flag] = 3) -- CompletionStatusType.Complete
INSERT [UDS_findResults]( [contextID], [entityKey]) SELECT DISTINCT @contextID, [fromKey] FROM [UDC_assertions_BE] WHERE ([toKey] = @businessKey) AND ([tModelKey] = @tModelKey) AND ([keyValue] = @keyValue) AND (ISNULL([keyName],'') = ISNULL(@keyName,'')) AND ([flag] = 3) -- CompletionStatusType.Complete
END -- Set default sorting option
IF (@sortByNameAsc = 0) AND (@sortByNameDesc = 0) AND (@sortByDateAsc = 0) AND (@sortByDateDesc = 0) SET @sortByNameAsc = 1
-- Set maxRows if default was passed
IF ISNULL(@maxRows,0) = 0 SET @maxRows = dbo.configValue('Find.MaxRowsDefault')
-- sortByNameAsc
IF (@sortByNameAsc = 1) BEGIN IF (@sortByDateAsc = 0) AND (@sortByDateDesc = 0) SET @sortByDateAsc = 1
IF (@sortByDateAsc = 1) BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 2 ASC, 3 ASC, 4 ASC END ELSE BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 2 ASC, 3 DESC, 4 DESC END
GOTO endLabel END
-- sortByNameDesc
IF (@sortByNameDesc = 1) BEGIN IF (@sortByDateAsc = 0) AND (@sortByDateDesc = 0) SET @sortByDateAsc = 1
IF (@sortByDateAsc = 1) BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 2 DESC, 3 ASC, 4 ASC END ELSE BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 2 DESC, 3 DESC, 4 DESC END
GOTO endLabel END
-- sortByDateAsc
IF (@sortByDateAsc = 1) BEGIN IF (@sortByNameAsc = 0) AND (@sortByNameDesc = 0) SET @sortByNameAsc = 1
IF (@sortByNameAsc = 1) BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 3 ASC, 4 ASC, 2 ASC END ELSE BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 3 ASC, 4 ASC, 2 DESC END
GOTO endLabel END
-- sortByDateDesc
IF (@sortByDateDesc = 1) BEGIN IF (@sortByNameAsc = 0) AND (@sortByNameDesc = 0) SET @sortByNameAsc = 1
IF (@sortByNameAsc = 1) BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 3 DESC, 4 DESC, 2 ASC END ELSE BEGIN INSERT @tempKeys( [entityKey], [name], [lastChange], [businessID]) SELECT DISTINCT FR.[entityKey], (SELECT TOP 1 [name] FROM [UDC_names_BE] WHERE ([businessID] = dbo.businessID([entityKey]))), BE.[lastChange], BE.[businessID] FROM [UDS_findResults] FR JOIN [UDC_businessEntities] BE ON FR.[entityKey] = BE.[businessKey] WHERE (@contextID = FR.[contextID]) ORDER BY 3 DESC, 4 DESC, 2 DESC END
GOTO endLabel END
endLabel: -- Set @truncated
SELECT @rows = COUNT(*) FROM @tempKeys IF @rows > @maxRows SET @truncated = 1
-- Return keys
SELECT [entityKey] FROM @tempKeys WHERE ([seqNo] <= @maxRows) -- Run cleanup
EXEC net_find_cleanup @contextID
RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_find_businessEntity_relatedBusinesses
GO
-- =============================================
-- Section: Miscellaneous
-- =============================================
-- =============================================
-- Name: net_businessEntity_owner_update
-- =============================================
IF EXISTS (SELECT name FROM sysobjects WHERE name = N'net_businessEntity_owner_update' AND type = 'P') DROP PROCEDURE net_businessEntity_owner_update GO
CREATE PROCEDURE net_businessEntity_owner_update @businessKey uniqueidentifier, @PUID nvarchar(450) WITH ENCRYPTION AS BEGIN DECLARE @error int, @context nvarchar(4000), @businessID bigint, @publisherID bigint
-- Validate parameters
SET @businessID = dbo.businessID(@businessKey) IF @businessID IS NULL BEGIN SET @error = 60210 -- E_invalidKeyPassed
SET @context = 'businessKey = ' + dbo.UUIDSTR(@businessKey) GOTO errorLabel END
SET @publisherID = dbo.publisherID(@PUID)
IF @publisherID IS NULL BEGIN SET @error = 60150 -- E_unknownUser
SET @context = 'PUID = ' + @PUID GOTO errorLabel END
UPDATE [UDC_businessEntities] SET
[publisherID] = @publisherID WHERE ([businessID] = @businessID)
RETURN 0
errorLabel: RAISERROR (@error, 16, 1, @context) RETURN 1 END -- net_businessEntity_owner_update
GO
|