Lenteur d'actualisation des requêtes dupliquées dans Word

Les performances peuvent poser problème lors de l'actualisation des données de certains documents Word contenant de nombreuses requêtes et créés avant Oracle Smart View for Office version 11.1.2.5.520. Parfois, alors que les requêtes existantes devraient être réutilisées si nécessaire, chaque point de données Smart View du document Word est traité comme une requête distincte. En conséquence, les opérations d'actualisation peuvent être très lentes.

Si le document contient de nombreuses requêtes dupliquées (à savoir des requêtes portant le même nom), elles apparaissent dans le volet Contenu de document dans Word. Par exemple, le volet Contenu de document peut ressembler à ceci :


Volet Contenu de document affichant une longue liste de requêtes dupliquées.

Les requêtes dupliquées sont SmartView14446361770 et SmartView14446541490.

Vous pouvez exécuter la macro Visual Basic ci-dessous pour enlever les requêtes dupliquées :

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

Une fois la macro exécutée, les requêtes SmartView14446361770 et SmartView14446541490 apparaissent une seule fois dans le volet Contenu de document :


Volet Contenu de document avec une seule occurrence de chaque requête.