Informacje o wersji 1.8.0.2 z dn. 25-07-2022

PDF

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:

  1. Zaktualizować bazę do wersji 1.8.

Po aktualizacji nie wykonywać aktualizacji widoków!

  1. Zaktualizować bazę do wersji 1.8.0.2; zostanie przywrócona kolumna RecordId w tabeli TranslationDefinitions z wartościami null.
  2. Uruchomić załączony poniżej skrypt w celu utworzenia procedury
    FillTransationDefinitionRecordId, która posłuży do wypełnienia kolumny RecordId wartościami.
  3. 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;

Copyright © 2025 OPTEAM SA. Theme Copyright © 2017-2020 Patrick Marsceill. Distributed by an MIT license.