Procédure : utiliser des paramètres de requête pour appeler des formulaires InfoPath activés pour le navigateur
Dernière modification : mardi 6 juillet 2010
S’applique à : SharePoint Server 2010
Quatre méthodes permettent d’appeler un formulaire InfoPath ou une version basée sur le navigateur du formulaire sur un serveur exécutant InfoPath Forms Services. Ces méthodes sont les suivantes : des URL qui font référence à un fichier de modèle de formulaire (.xsn), des URL qui font référence à un fichier de formulaire (.xml) basé sur un modèle, des URL qui font référence à la page Web FormServer.aspx intégrée et des URL qui contiennent une référence à une page personnalisée contenant le contrôle XmlFormView. Les trois premières catégories d’URL prennent en charge l’utilisation des paramètres de requête pour contrôler les aspects du formulaire qui en résulte, notamment s’il est ou non ouvert dans InfoPath Filler ou rendu dans le navigateur, l’emplacement où le formulaire est enregistré et la page Web vers laquelle l’utilisateur est redirigé à la fermeture du formulaire.
Important
Par défaut, les formulaires InfoPath sont ouverts dans InfoPath Filler, même si une version activée pour le navigateur existe. Si InfoPath Filler n’est pas installé, le formulaire est ouvert dans le navigateur. Outre les paramètres de requête permettant de contrôler le mode d’ouverture des formulaires, les paramètres de la bibliothèque de formulaires SharePoint sont également utilisés pour contrôler l’emplacement de leur ouverture. Pour que le formulaire soit toujours ouvert dans le navigateur, ouvrez la bibliothèque de formulaires, cliquez sur l’onglet Bibliothèque sous Outils de bibliothèque, cliquez sur Paramètres de la bibliothèque dans le ruban, puis cliquez sur le lien Paramètres avancés sous Paramètres généraux. Sous Ouverture des documents dans le navigateur, cliquez sur Ouvrir dans le navigateur.
Vous pouvez utiliser neuf paramètres différents pour ouvrir les formulaires InfoPath. Certains en écrasent d’autres paramètres ou ne peuvent pas être utilisés ensemble, comme mentionné dans le tableau ci-dessous. Les paires nom/valeur qui n’apparaissent pas dans le tableau ci-dessous sont interprétées comme des paramètres d’entrée et transférées au formulaire. Ces paramètres sont constitués d’une ou plusieurs paires nom/valeur séparées par le caractère & et spécifiées lors de l’ouverture d’un modèle de formulaire dans InfoPath Filler à partir de la ligne de commande ou d’un fichier batch utilisant l’option de ligne de commande /InputParameters, ou lorsqu’un modèle de formulaire est ouvert à partir d’une URL. Pour plus d’informations sur l’utilisation des paramètres d’entrée, voir la propriété InputParameters de la classe LoadingEventArgs.
Nom du paramètre |
Description |
Valeurs possibles |
---|---|---|
XmlLocation |
Utilisé pour ouvrir un formulaire existant. Les propriétés XmlLocation et XsnLocation s'excluent mutuellement ; une erreur se produit si vous spécifiez une valeur pour les deux paramètres. |
Une URL valide vers un fichier de formulaire (.xml) de la même collection de sites. |
XsnLocation |
Utilisé pour ouvrir un nouveau formulaire basé sur un modèle de formulaire. Si un paramètre XsnLocation est spécifié dans une URL utilisant FormServer.aspx, un paramètre SaveLocation doit également être spécifié si les boutons Enregistrer et Enregistrer sous doivent apparaître. Le paramètre Source doit toujours être spécifié, sinon le message « Le formulaire a été fermé. » apparaît lorsque l’utilisateur ferme le formulaire. Les propriétés XmlLocation et XsnLocation s’excluent mutuellement ; une erreur se produit si vous spécifiez une valeur pour les deux paramètres. |
Une URL valide vers un fichier de modèle de formulaire (.xsn) publié sur la même collection de sites. |
OpenIn |
|
|
Source |
L'emplacement vers lequel l'utilisateur est redirigé à la fermeture du formulaire. L'URL doit être dans la même collection de sites. Dans le cas contraire, une erreur est renvoyée. |
Une URL valide dans la même collection de sites que le formulaire. |
Options |
DisableSave est la seule valeur possible. Elle masque les boutons Enregistrer et Enregistrer sous et désactive l'enregistrement du formulaire lorsqu'il est rendu dans le navigateur. |
DisableSave |
SaveLocation |
Une boîte de dialogue Enregistrer sous s’affiche et invite l’utilisateur à fournir un nom de fichier. Il est ensuite enregistré dans le dossier spécifié. Une erreur est renvoyée si le dossier spécifié n’existe pas. |
Tout emplacement de dossier valide dans la collection de sites. |
NoRedirect |
Ne redirige pas vers la page FormServer.aspx pour la détection du client ou le rendu dans le navigateur. La valeur par défaut est false. Si true et un paramètre XmlLocation ou XsnLocation sont spécifiés, une boîte de dialogue Téléchargement de fichier s’affiche lorsque vous utilisez Internet Explorer. |
|
DefaultItemOpen |
Il convient plutôt d’utiliser le paramètre OpenIn, qui écrase la valeur du paramètre DefaultItemOpen. La valeur 0 indique que la demande provient d’une bibliothèque de documents et que InfoPath Filler n’a pas été détecté. La valeur 1 indique que la demande provient d’une bibliothèque de documents ou de formulaires dont le paramètre Afficher en tant que page Web est activé. |
|
Notes
Les paramètres de requête et leurs valeurs ne respectent pas la casse, à l'inverse des propriétés correspondantes du contrôle XmlFormView, telles que les propriétés Options et SaveLocation.
Procédures
Pour réaliser les procédures suivantes, une collection de sites sur laquelle publier les modèles de formulaire, ainsi que la possibilité de créer de nouveaux sites dans la collection, sont nécessaires.
Des espaces réservés sont utilisés dans les exemples d’URL ci-dessous. Ils représentent les éléments SharePoint et InfoPath suivants :
NomServeur : un serveur exécutant InfoPath Forms Services.
CollectionSites : le site de plus haut niveau d'une collection de sites.
BibliothèqueFormulaires : une bibliothèque de formulaires ou de documents contenant un modèle de formulaire activé pour le navigateur.
Form1.xml : un formulaire basé sur le modèle template.xsn de la bibliothèque BibliothèqueFormulaires.
NouveauDossier : un dossier de la bibliothèque BibliothèqueFormulaires.
NouveauSite : un site de la collection CollectionSites.
La valeur ~sitecollection utilisée dans les URL suivantes n’est pas un espace réservé. Il s’agit d’un jeton spécial utilisé avec InfoPath Forms Services pour activer les liens relatifs et les adresses URL à l’échelle des collections de sites.
Pour utiliser une URL avec le paramètre XmlLocation
Créez un modèle de formulaire et chargez-le dans une nouvelle bibliothèque de formulaires.
Créez un formulaire basé sur ce modèle et enregistrez-le sous le nom « Form1 » dans la bibliothèque.
Entrez l'URL suivante, en remplaçant les valeurs des espaces réservés par les valeurs réelles :
Notes
Notez que « Form1 » est rendu dans le navigateur.
Pour utiliser une URL avec les paramètres XsnLocation, SaveLocation et Source
Créez un modèle de formulaire et chargez-le dans une nouvelle bibliothèque de formulaires.
Entrez l'URL suivante, en remplaçant les valeurs des espaces réservés par les valeurs réelles :
Notes
Un nouveau formulaire basé sur le modèle de formulaire est affiché dans le navigateur.
Enregistrez le nouveau formulaire.
Notes
Le formulaire est enregistré dans la bibliothèque de formulaires spécifiée par le paramètre SaveLocation.
Fermez le formulaire pour revenir à la bibliothèque de formulaires spécifiée par le paramètre Source. Dans ce cas, la bibliothèque de formulaires est également l'endroit où le formulaire est enregistré car les paramètres SaveLocation et Source pointent vers le même emplacement.
Pour utiliser une URL avec les paramètres SaveLocation et Source
Créez un modèle de formulaire et chargez-le dans une nouvelle bibliothèque de formulaires.
Créez un formulaire basé sur ce modèle et enregistrez-le sous le nom « Form1 » dans la bibliothèque.
Créez un nouveau dossier dans la bibliothèque de formulaires et utilisez son nom à la place de NouveauDossier dans l’URL ci-dessous.
Créez un nouveau site sous le site de plus haut niveau existant dans la collection de sites et utilisez son nom à la place de NouveauSite dans l’URL ci-dessous.
Entrez l'URL suivante, en remplaçant les valeurs des espaces réservés par les valeurs réelles :
Enregistrez le formulaire existant et tapez un nouveau nom dans la boîte de dialogue Enregistrer sous. Le formulaire est alors enregistré dans le nouveau dossier.
Fermez le formulaire pour être redirigé vers le nouveau site.
Pour utiliser une URL avec le paramètre OpenIn=Browser
Créez un modèle de formulaire et chargez-le dans une nouvelle bibliothèque de formulaires.
Créez un formulaire basé sur ce modèle et enregistrez-le sous le nom « Form1 » dans la bibliothèque.
Entrez l'URL suivante, en remplaçant les valeurs des espaces réservés par les valeurs réelles :
https://ServerName/sites/SiteCollection/FormLibrary/Form1.xml?OpenIn=Browser
ou
Notes
Même si Microsoft InfoPath 2010 est installé, l’URL force le rendu du formulaire dans le navigateur.
Pour utiliser une URL avec le paramètre NoRedirect
Créez un modèle de formulaire et chargez-le dans une nouvelle bibliothèque de formulaires.
Créez un formulaire basé sur ce modèle et enregistrez-le sous le nom « Form1 » dans la bibliothèque.
Entrez l'URL suivante, en remplaçant les valeurs des espaces réservés par les valeurs réelles :
https://ServerName/sites/SiteCollection/FormLibrary/Form1.xml?NoRedirect=true
et
https://ServerName/sites/SiteCollection/FormLibrary/Forms/template.xsn?NoRedirect=true
Notes
Le fichier de formulaire (.xml) et le modèle de formulaire (.xsn) ne sont pas redirigés vers la page FormServer.aspx. Au lieu de cela, la boîte de dialogue Téléchargement de fichier apparaît (si vous utilisez Internet Explorer) pour télécharger le fichier à partir du site SharePoint.
Il est parfois nécessaire de renvoyer un flux de contenu du code XML représentant le formulaire. Pour ce faire, procédez comme suit.
Pour utiliser un flux de contenu
Utilisez une URL avec le paramètre NoRedirect.
Insérez un en-tête « Translate:f » dans la demande HTTP GET, comme dans l’exemple suivant :
myRequest.Headers.Add("Translate:f"); myRequest.Headers["Translate"] = "F";
Utilisez l’agent utilisateur InfoPath approprié dans la demande HTTP GET : InfoPath.1 ou InfoPath.2.