Informacje o wersji 1.8.0.2 z dn. 25-07-2022
Poprawki i usunięte błędy
Indeksowanie tekstu po OCR
Rozszerzono indeksowanie tekstu po procedurze OCR na całą warstwę tekstową zwracaną przez OCR. Do tej pory indeksowane były tylko fragmenty, które zostały pomyślnie dopasowane do pól określonych w szablonie. Obecnie do indeksu wyszukiwania dodawany jest cały tekst rozpoznany podczas OCR załącznika, w związku z czym treść dopasowana do pól szablonu nie jest indeksowana osobno.
Przywrócenie kolumny RecordId w tabeli tłumaczeń
Dodano możliwość przywrócenia kolumny RecordId (int) w tabeli core.TranslationDefinitions. W wersjach nAxiom przed 1.8 służyła ona do wiązania tłumaczonego rekordu z jego tłumaczeniem. W wersji 1.8 platformy tę kolumnę zastąpiła kolumna RecordRowGuid (uniqueidentifier), co spowodowało konieczność aktualizacji widoków, a w konsekwencji wyrażeń SQL używanych np. do filtrowania list. Niniejsza poprawka eliminuje tę konieczność.
Aby móc korzystać z dotychczasowego rozwiązania (sprzed 1.8) należy:
- Zaktualizować bazę do wersji 1.8.
Po aktualizacji nie wykonywać aktualizacji widoków!
- Zaktualizować bazę do wersji 1.8.0.2; zostanie przywrócona kolumna RecordId w tabeli TranslationDefinitions z wartościami null.
- Uruchomić załączony poniżej skrypt w celu utworzenia procedury
FillTransationDefinitionRecordId
, która posłuży do wypełnienia kolumny RecordId wartościami. - W osobnym zapytaniu uruchomić utworzoną procedurę:
EXEC [dbo].[FillTransationDefinitionRecordId]
Poniższy skrypt jest przygotowany dla schematu [core] W przypadku bazy danych z innym schematem należy odpowiednio zaktualizować skrypt.
CREATE PROCEDURE FillTransationDefinitionRecordId
AS
DECLARE @tableName varchar(200)
DECLARE @recordRowGuid varchar(40);
DECLARE @query VARCHAR(MAX) = ''
DECLARE @rowNO int = 0
DECLARE TRANS_CURSOR CURSOR
LOCAL STATIC READ_ONLY FORWARD_ONLY
FOR
SELECT DISTINCT TableName, RecordRowGuid
FROM [core].[TranslationDefinitions]
OPEN TRANS_CURSOR
FETCH NEXT FROM TRANS_CURSOR INTO @tableName, @recordRowGuid
WHILE @@FETCH_STATUS = 0
BEGIN
SET @rowNO = @rowNO+1;
IF COL_LENGTH('core'+'.'+@tableName, 'Id') IS NOT NULL
BEGIN
IF @rowNO < @@CURSOR_ROWS
SET @query = @query + 'SELECT Id,
RowGuid
FROM [core].[' + @TableName + ']
WHERE RowGuid = ' + ''''
+ @RecordRowGuid
+ ''' UNION ALL '
ELSE
SET @query = @query + 'SELECT Id,
RowGuid
FROM [core].[' + @TableName + ']
WHERE RowGuid = ' + ''''
+ @RecordRowGuid + ''''
END
FETCH NEXT FROM TRANS_CURSOR INTO @tableName, @recordRowGuid
END
CLOSE TRANS_CURSOR
DEALLOCATE TRANS_CURSOR
IF OBJECT_ID('tempdb..#TempTable', 'U') IS NOT NULL
BEGIN DROP TABLE #TempTable; END;
CREATE TABLE #TempTable (
Id int NOT NULL,
RowGuid uniqueidentifier NOT NULL
);
DECLARE @insertQuery VARCHAR(MAX)
set @insertQuery = 'INSERT INTO #TempTable ' + @query;
EXEC (@insertQuery);
UPDATE
[core].[TranslationDefinitions]
SET
[RecordId] = temp.Id
FROM
[core].[TranslationDefinitions] td
INNER JOIN
#TempTable temp
ON
td.RecordRowGuid = temp.RowGuid;