
[dbo].[AL_INTERNAL_CONFIGURATION]
CREATE PROCEDURE [dbo].[AL_INTERNAL_CONFIGURATION]
@topLevelObject nvarchar(max),
@uapmuser nvarchar(max),
@config_id int OUTPUT
AS
BEGIN
SET @config_id = NULL
DECLARE
@subType_attribute_name nvarchar(255),
@subType_value nvarchar(255),
@subTypeValue_id nvarchar(255),
@subTypeValue_value nvarchar(255),
@record_count int,
@return_value varchar(200),
@operation char(1),
@configName nvarchar(255)
SELECT @record_count = count_big(1)
FROM dbo.ARG_ATTRIBUTE_DEF
WHERE ARG_ATTRIBUTE_DEF.EXTENSIBLE = 1 AND lower(ARG_ATTRIBUTE_DEF.CLASS_NAME) = lower(@topLevelObject)
IF (@record_count > 0)
BEGIN
SELECT @record_count = count_big(1)
FROM dbo.AL_CONFIGURATION_DEF
WHERE lower(AL_CONFIGURATION_DEF.TOP_LEVEL_OBJECT) = lower(@topLevelObject) AND AL_CONFIGURATION_DEF.SCHEME_ID IS NULL
IF (@record_count = 1)
BEGIN
SELECT @config_id = AL_CONFIGURATION_DEF.ID
FROM dbo.AL_CONFIGURATION_DEF
WHERE lower(AL_CONFIGURATION_DEF.TOP_LEVEL_OBJECT) = lower(@topLevelObject) AND AL_CONFIGURATION_DEF.SCHEME_ID IS NULL
UPDATE dbo.AL_CONFIGURATION_DEF
SET
INTERNAL = 1
WHERE AL_CONFIGURATION_DEF.ID = @config_id
UPDATE dbo.ARG_CLASS_DEF
SET
CONFIG_ID = ARG_CLASS_DEF.CONFIG_ID
WHERE lower(ARG_CLASS_DEF.CLASS_NAME) = lower(@topLevelObject)
END
ELSE
BEGIN
IF (@record_count = 0)
BEGIN
SET @operation = 'A'
SET @configName = N'Internal '+ @topLevelObject
EXECUTE dbo.AL_BATCH_SAVE_CONFIG_DEF
@OPERATION = @operation OUTPUT,
@CONFIGID = @config_id OUTPUT,
@CONFIGNAME = @configName,
@CONFIGGLOBAL = 1,
@TOPLEVELOBJECT = @topLevelObject,
@SUBTYPE_ATTRIBUTE_NAME = @subType_attribute_name OUTPUT,
@SUBTYPE_VALUE = @subType_value OUTPUT,
@SUBTYPEVALUE_ID = @subTypeValue_id OUTPUT,
@SUBTYPEVALUE_VALUE = @subTypeValue_value OUTPUT,
@PRIMARYKEY = NULL,
@UAPMUSER = @uapmuser,
@RESULT = @return_value OUTPUT,
@FORDEFAULTCONFIG = 0
UPDATE dbo.AL_CONFIGURATION_DEF
SET
INTERNAL = 1
WHERE AL_CONFIGURATION_DEF.ID = @config_id
UPDATE dbo.ARG_CLASS_DEF
SET
CONFIG_ID = ARG_CLASS_DEF.CONFIG_ID
WHERE lower(ARG_CLASS_DEF.CLASS_NAME) = lower(@topLevelObject)
END
END
SELECT @record_count = count_big(1)
FROM dbo.AL_SCHEME_DEF
WHERE
lower(AL_SCHEME_DEF.CLASS_NAME) = lower(@topLevelObject) AND
lower(AL_SCHEME_DEF.ATTRIBUTE_NAME) = lower(@subType_attribute_name) AND
lower(AL_SCHEME_DEF.ATTRIBUTE_VALUE) = lower(@subTypeValue_id)
END
END
GO