Assembler une conception de formulaire à l’aide de fragments
Vous pouvez assembler une conception de formulaire à transmettre au service Forms en fonction de plusieurs fragments. Pour assembler plusieurs fragments, utilisez le service Assembler. Pour découvrir un exemple d’utilisation du service Assembler consistant à créer une conception de formulaire utilisée par un autre service Forms (le service Output), consultez la section Créez des documents PDF en utilisant des fragments. Au lieu d’utiliser le service Output, vous pouvez réaliser le même workflow à l’aide du service Forms.
Lors de l’utilisation du service Assembler, vous transmettez une conception de formulaire assemblée à l’aide de fragments. La conception de formulaire créée ne fait pas référence à d’autres fragments. En revanche, cette rubrique aborde la transmission d’une conception de formulaire qui fait référence à d’autres fragments au service Forms. Toutefois, la conception de formulaire n’a pas été assemblée par Assembler. Elle a été créée dans Designer.
Résumé des étapes
Pour restituer un formulaire reposant sur des fragments, procédez comme suit :
- Incluez les fichiers de projet.
- Créez un objet API client Forms.
- Spécifier les valeurs URI
- Restituer le formulaire
- Écrivez le flux de données du formulaire dans le navigateur web du client.
Inclure les fichiers de projet
Incluez les fichiers nécessaires dans votre projet de développement. Si vous créez une application cliente à l’aide de Java, incluez les fichiers JAR nécessaires. Si vous utilisez des services Web, veillez à inclure les fichiers proxy.
Créer un objet de lʼAPI client de Forms
Avant d’effectuer par programmation une opération de l’API du client de service Forms, vous devez créer un client de service Forms.
Spécifier les valeurs URI
Pour restituer correctement un formulaire reposant sur des fragments, veillez à ce que le service Forms puisse localiser le formulaire et les fragments (les fichiers XDP) auxquels la conception de formulaire fait référence. Prenons lʼexemple suivant : le formulaire est nommé PO.xdp et utilise deux fragments nommés FooterUS.xdp et FooterCanada.xdp. Dans ce cas, le service Forms doit pouvoir localiser les trois fichiers XDP.
Vous pouvez organiser un formulaire et ses fragments en plaçant le formulaire à un emplacement et les fragments à un autre, ou vous pouvez placer tous les fichiers XDP au même emplacement. Pour les besoins de cette section, supposons que tous les fichiers XDP sont situés dans le référentiel AEM Forms. Pour plus d’informations sur le placement des fichiers XDP dans le référentiel AEM Forms, consultez la section Enregistrer les ressources.
Lors de la restitution dʼun formulaire reposant sur des fragments, vous ne devez référencer que le formulaire lui-même et non les fragments. Par exemple, vous devez référencer PO.xdp et non FooterUS.xdp ou FooterCanada.xdp. Veillez à placer les fragments à un emplacement localisable par le service Forms.
Restituer le formulaire
Un formulaire reposant sur des fragments peut être restitué de la même manière que les formulaires non fragmentés. Cela signifie que vous pouvez restituer le formulaire au format PDF, HTML ou guides de formulaire (déprécié). L’exemple de cette section restitue un formulaire reposant sur des fragments sous forme de formulaire PDF interactif. (Consultez la section Restituer des formulaires PDF interactifs).
Enregistrer le flux de données de formulaire dans le navigateur web du client
Lorsque le service Forms effectue la restitution d’un formulaire, il renvoie un flux de données de formulaire que vous devez enregistrer dans le navigateur web du client. Lorsqu’il est écrit dans le navigateur web client, le formulaire est visible par l’utilisateur.
Voir également
Restituer des formulaires reposant sur des fragments à l’aide de l’API Java
Restituer des formulaires reposant sur des fragments à l’aide de l’API de service web
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Réglage des propriétés de la connexion
Démarrages rapides de l’API Forms Service
Restituer des formulaires reposant sur des fragments à l’aide de l’API Java
Restituer un formulaire reposant sur des fragments à l’aide de l’API Forms (Java) :
-
Inclure les fichiers du projet
Incluez les fichiers clients JAR, tels qu’adobe-forms-client.jar, dans votre projet Java Classpath.
-
Créer un objet API Forms client
- Créez un objet
ServiceClientFactory
qui contient des propriétés de connexion. - Créez un objet
FormsServiceClient
en utilisant son constructeur et en transmettant l’objetServiceClientFactory
.
- Créez un objet
-
Spécifier les valeurs URI
- Créez un objet
URLSpec
stockant des valeurs URI en utilisant son constructeur. - Appelez la méthode
setApplicationWebRoot
de l’objetURLSpec
et transmettez une valeur de chaîne qui représente la racine web de l’application. - Appelez la méthode
setContentRootURI
de l’objetURLSpec
et transmettez une valeur de chaîne qui spécifie la valeur de la racine du contenu URI. Vérifiez que la conception et les fragments du formulaire apparaissent dans l’URI racine du contenu. Dans le cas contraire, le service Forms renvoie une exception. Pour référencer le référentiel, spécifiezrepository://
. - Appeler la méthode
setTargetURL
de l’objetURLSpec
et transmettez une valeur de chaîne qui spécifie la valeur de l’URL cible à l’endroit où les données de formulaire sont publiées. Si vous définissez l’URL cible dans la conception de formulaire, vous pouvez transmettre une chaîne vide. Vous pouvez également spécifier l’URL où est envoyé un formulaire pour effectuer des calculs.
- Créez un objet
-
Restituer le formulaire
Appelez la méthode
renderPDFForm
de lʼobjetFormsServiceClient
et transmettez les valeurs suivantes :- Valeur string spécifiant le nom du modèle de formulaire, y compris l’extension du nom du fichier. Si vous référencez une conception de formulaire qui fait partie d’une application Forms, veillez à spécifier le chemin dʼaccès complet, tel que
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
. - Objet
com.adobe.idp.Document
contenant les données à fusionner avec le formulaire. Si vous ne souhaitez pas fusionner les données, transmettez un objetcom.adobe.idp.Document
vide. - Un objet
PDFFormRenderSpec
qui stocke les options d’exécution. - Un objet
URLSpec
qui contient les valeurs URI requises par le service Forms pour restituer un formulaire reposant sur des fragments. - Un objet
java.util.HashMap
qui stocke les pièces jointes. Ce paramètre est facultatif et vous pouvez spécifiernull
si vous ne souhaitez pas joindre de fichiers au formulaire.
La méthode
renderPDFForm
renvoie un objetFormsResult
contenant un flux de données de formulaire qui doit être écrit dans le navigateur web client. - Valeur string spécifiant le nom du modèle de formulaire, y compris l’extension du nom du fichier. Si vous référencez une conception de formulaire qui fait partie d’une application Forms, veillez à spécifier le chemin dʼaccès complet, tel que
-
Écrire le flux de données de formulaire dans le navigateur web client
- Créez un objet
com.adobe.idp.Document
en appelant la méthodegetOutputContent
de l’objetFormsResult
. - Accédez au type de contenu de l’objet
com.adobe.idp.Document
en appelant sa méthodegetContentType
. - Définissez le type de contenu de l’objet
javax.servlet.http.HttpServletResponse
en appelant sa méthodesetContentType
et en transmettant le type de contenu de l’objetcom.adobe.idp.Document
. - Créez un objet
javax.servlet.ServletOutputStream
utilisé pour écrire le flux de données de formulaire dans le navigateur web client en appelant la méthodegetOutputStream
de l’objetjavax.servlet.http.HttpServletResponse
. - Créez un objet
java.io.InputStream
en appelant la méthodegetInputStream
de lʼobjetcom.adobe.idp.Document
. - Créez un tableau d’octets et renseignez-le avec le flux de données de formulaire en appelant la méthode
read
de lʼobjetInputStream
et en transmettant le tableau d’octets comme argument. - Appelez la méthode
write
de lʼobjetjavax.servlet.ServletOutputStream
pour envoyer le flux de données de formulaire au navigateur web du client. Transmettez le tableau d’octets à la méthodewrite
.
- Créez un objet