Lentidão na Atualização de Consultas Duplicadas no Word

Em alguns documentos do Word contendo um grande número de consultas criadas antes do Oracle Smart View para Office versão 11.1.2.5.520, o desempenho pode ser um problema durante a atualização dos dados no documento. Em alguns casos, em vez de reutilizar consultas existentes onde apropriado, cada ponto de dado do Smart View no documento do Word é tratado como uma consulta separada. O resultado disso pode ser uma grande lentidão nas operações de atualização.

Se o documento contiver muitas consultas duplicadas (isto é, consultas com o mesmo nome), as consultas duplicadas serão exibidas no painel Conteúdo do Documento no Word. Por exemplo, Conteúdo do Documento pode estar assim:


Painel Conteúdo do Documento mostrando uma longa lista de consultas duplicadas.

As consultas duplicadas são SmartView14446361770 e SmartView14446541490.

Você pode executar a macro do Visual Basic abaixo para remover as consultas duplicadas:

Sub DeleteExtraQueries() 
 ' 
 ' DeleteExtraQueries Macro 
 ' 
 Dim queriesName As Variant 
 Dim uniqueQueriesName As New Collection 
 Dim varName, newList As String 
 Set vars = ActiveDocument.Variables 
 
  For i = 1 To vars.Count 
     varName = vars.Item(i).Name 
     If Not StrComp(vars.Item(i).Name, "SV_QUERY_LIST", vbTextCompare) Then 
         List = vars.Item(i).Value 
         queriesName = Split(List, "<|>") 
         
         On Error Resume Next 
         For Each queryName In queriesName 
             uniqueQueriesName.Add queryName, queryName 
         Next 
         newList = "" 
         For Each queryName In uniqueQueriesName 
             newList = newList & queryName & "<|>" 
         Next 
         newList = Left(newList, Len(newList) - 3) 
         vars.Item(i).Value = newList 
     End If 
     
 Next 
 
End Sub

Após a execução da macro, as duas consultas, SmartView14446361770 e SmartView14446541490, aparecem apenas uma vez no Conteúdo do Documento:


Painel Conteúdo do Documento com cada consulta aparecendo apenas uma vez.