10 janvier 2012

INFOPATH 2010 : Optimiser les performances du code managé

Aujourd'hui, voici un petit article concernant l'optimisation de vos formulaires InfoPath comprenant du code managé.
Il peut arriver que vous ayez des actions assez longues à réaliser sur le XML de votre formulaire.
Je penses notamment à l'ajout automatique de lignes dans une section extensible.

Les vues InfoPath étant liées directement au XML, une modification dans ce dernier entraine une mise à jour de la vue.
Pour s'abstenir de ce genre de comportement, il est possible d'utiliser la méthode DisableAutoUpdate.
Cette méthode permet d'attendre la fin des modifications du XML avant de rafraichir la vue InfoPath (ce qui permet de gagner un gain non négligeable de performances).

Pour se faire, il faut utiliser la méthode de la manière suivante:

// Décorrelation de la vue avec le XML
this.CurrentView.DisableAutoUpdate();

// Modification sur le XML (par exemple ajout de 100 lignes dans un tableau extensible)
...

// Corrélation de la vue avec le XML
this.CurrentView.EnableAutoUpdate();


Vous pourrez trouver un article du MSDN concernant cette méthode à cette adresse:
http://msdn.microsoft.com/en-us/library/microsoft.office.infopath.view.disableautoupdate(v=office.11).aspx

Attention toutefois à bien repositionner le "EnableAutoUpdate() à la fin du traitement sous peine d'avoir de sérieux dysfonctionnements dans le formulaire...

Aucun commentaire:

Enregistrer un commentaire