I just found out missing statements in a few functions. please run the following SQL code from Host > SQL with "run as script" checked:
ALTER FUNCTION {databaseOwner}[{objectQualifier}Journal_User_Permissions]
(
@PortalId int,
@UserId int,
@RegisteredRoleId int
)
RETURNS
@tmp TABLE (seckey nvarchar(200) COLLATE database_default)
AS
BEGIN
IF @UserId > 0
BEGIN
INSERT INTO @tmp (seckey) VALUES ('U' + Cast(@UserId as nvarchar(200)))
INSERT INTO @tmp (seckey) VALUES ('P' + Cast(@UserId as nvarchar(200)))
INSERT INTO @tmp (seckey) VALUES ('F' + Cast(@UserId as nvarchar(200)))
IF EXISTS(SELECT RoleId FROM {databaseOwner}[{objectQualifier}UserRoles] WHERE UserID = @UserId AND RoleId = @RegisteredRoleId
AND (EffectiveDate <= getdate() or EffectiveDate is null)
AND (ExpiryDate >= getdate() or ExpiryDate is null))
INSERT INTO @tmp (seckey) VALUES ('C')
END
INSERT INTO @tmp (seckey) VALUES ('E')
INSERT INTO @tmp (seckey)
SELECT 'R' + CAST(ur.RoleId as nvarchar(200))
FROM {databaseOwner}[{objectQualifier}UserRoles] as ur
INNER JOIN {databaseOwner}[{objectQualifier}Users] as u on ur.UserId = u.UserId
INNER JOIN {databaseOwner}[{objectQualifier}Roles] as r on ur.RoleId = r.RoleId
WHERE u.UserId = @UserId
AND r.PortalId = @PortalId
AND (EffectiveDate <= getdate() or EffectiveDate is null)
AND (ExpiryDate >= getdate() or ExpiryDate is null)
INSERT INTO @tmp (seckey)
SELECT (SELECT CASE WHEN @UserID = ur.UserId
THEN 'F' + CAST(RelatedUserID as nvarchar(200))
ELSE 'F' + CAST(ur.UserId as nvarchar(200)) END)
FROM {databaseOwner}[{objectQualifier}UserRelationships] ur
INNER JOIN {databaseOwner}[{objectQualifier}Relationships] r ON ur.RelationshipID = r.RelationshipID AND r.RelationshipTypeID = 1
WHERE (ur.UserId = @UserId OR RelatedUserID = @UserId) AND Status = 2
RETURN
END
GO
ALTER FUNCTION {databaseOwner}[{objectQualifier}Journal_SplitText](@text nvarchar(MAX), @delimiter char(1))
RETURNS @words TABLE (objectid smallint primary key, string nvarchar(1000) COLLATE database_default, optionalid int)
AS
BEGIN
DECLARE @pos smallint,
@i smallint,
@j smallint,
@s nvarchar(255),
@o int
SET @pos = 1
WHILE @pos <= LEN(@text)
BEGIN
SET @i = CHARINDEX(' ', @text, @pos)
SET @j = CHARINDEX(@delimiter, @text, @pos)
IF @i > 0 OR @j > 0
BEGIN
IF @i = 0 OR (@j > 0 AND @j < @i)
SET @i = @j
IF @i > @pos
BEGIN
-- @i now holds the earliest delimiter in the string
SET @s = SUBSTRING(@text, @pos, @i - @pos)
SET @o = 0
IF CHARINDEX('|',@s,0) > 0
BEGIN
SET @o = SUBSTRING(@s,0,CHARINDEX('|',@s,0))
SET @s = SUBSTRING(@s,CHARINDEX('|',@s,0)+1,LEN(@s))
END
INSERT INTO @words
VALUES (@pos, @s, @o)
END
SET @pos = @i + 1
WHILE @pos < LEN(@text) AND SUBSTRING(@text, @pos, 1) IN (' ', ',')
SET @pos = @pos + 1
END
ELSE
BEGIN
SET @s = SUBSTRING(@text, @pos, LEN(@text) - @pos + 1)
IF CHARINDEX('|',@s,0) > 0
BEGIN
SET @o = SUBSTRING(@s,0,CHARINDEX('|',@s,0))
SET @s = SUBSTRING(@s,CHARINDEX('|',@s,0)+1,LEN(@s))
END
INSERT INTO @words
VALUES (@pos, @s ,@o)
SET @pos = LEN(@text) + 1
END
END
RETURN
END
GO
ALTER FUNCTION {databaseOwner}[{objectQualifier}ConvertListToTable]
(
@Delimiter nvarchar(5),
@List nvarchar(max)
)
RETURNS @TableOfValues TABLE
(
RowNumber smallint IDENTITY(1,1),
RowValue nvarchar(50) COLLATE database_default
)
AS
BEGIN
DECLARE @LenString int
WHILE len( @List ) > 0
BEGIN
SELECT @LenString =
(CASE charindex( @Delimiter, @List )
WHEN 0 THEN len( @List )
ELSE ( charindex( @Delimiter, @List ) -1 )
END
)
INSERT INTO @TableOfValues
SELECT substring( @List, 1, @LenString )
SELECT @List =
(CASE ( len( @List ) - @LenString )
WHEN 0 THEN ''
ELSE right( @List, len( @List ) - @LenString - 1 )
END
)
END
RETURN
END
GO