AEM 6.4 a atteint la fin de la prise en charge étendue et cette documentation n’est plus mise à jour. Pour plus d’informations, voir notre période de support technique. Rechercher les versions prises en charge here.
Le service Forms peut restituer des formulaires reposant sur des fragments créés à l’aide de Designer. Un fragment est une partie réutilisable d’un formulaire et est enregistrée en tant que fichier XDP distinct pouvant être inséré dans plusieurs conceptions de formulaire. Un fragment peut très bien inclure un bloc d’adresse ou un paragraphe juridique, par exemple.
L’utilisation de fragments simplifie et accélère la création et la gestion d’un grand nombre de formulaires. Lors de la création d’un formulaire, vous insérez une référence au fragment requis et celui-ci s’affiche dans le nouveau formulaire. La référence au fragment contient un sous-formulaire pointant vers le fichier XDP physique. Pour plus d’informations sur la création de conceptions de formulaires reposant sur des fragments, consultez la section Forms Designer.
Un fragment peut inclure plusieurs sous-formulaires qui sont placés dans un jeu de sous-formulaires de choix. Les jeux de sous-formulaires de choix contrôlent l’affichage des sous-formulaires en fonction du flux de données d’une connexion aux données. Vous vous servez d’instructions conditionnelles pour déterminer le sous-formulaire du jeu devant s’afficher dans le formulaire obtenu. Par exemple, chaque sous-formulaire faisant partie d’un jeu peut comprendre des informations relatives à un emplacement géographique particulier et le sous-formulaire affiché peut être déterminé d’après l’emplacement de lʼutilisateur.
Un fragment de script contient des valeurs ou des fonctions JavaScript réutilisables stockées séparément des objets, tels qu’un analyseur de dates ou un appel de services web. Ces fragments incluent un seul objet de script qui s’affiche en tant qu’enfant de variables dans la palette Hiérarchie. Les fragments ne peuvent pas être créés à partir de scripts qui sont des propriétés d’autres objets, tels que des scripts d’événement tels que validate, calculate ou initialize.
L’utilisation de fragments présente les avantages suivants :
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.
Pour plus d’informations sur le service Forms, consultez la section Références des services pour AEM Forms.
Pour plus d’informations sur la création d’une application web qui restitue des formulaires reposant sur des fragments, consultez la section Créer des applications web qui restituent des formulaires.
Pour restituer un formulaire reposant sur des fragments, procédez comme suit :
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
Effectuer le rendu de formulaires PDF interactifs
Créer des applications web qui génèrent des formulaires
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
ServiceClientFactory
qui contient des propriétés de connexion.FormsServiceClient
en utilisant son constructeur et en transmettant l’objet ServiceClientFactory
.Spécifier les valeurs URI
URLSpec
stockant des valeurs URI en utilisant son constructeur.setApplicationWebRoot
de l’objet URLSpec
et transmettez une valeur de chaîne qui représente la racine web de l’application.setContentRootURI
de lʼobjet URLSpec
et transmettez une valeur de chaîne qui spécifie la valeur URI de la racine du contenu. Assurez-vous que la conception de formulaire et les fragments sont situés 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écifiez repository://
.setTargetURL
de l’objet URLSpec
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 vers laquelle un formulaire est envoyé afin dʼeffectuer des calculs.Restituer le formulaire
Appelez la méthode renderPDFForm
de lʼobjet FormsServiceClient
et transmettez les valeurs suivantes :
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
.com.adobe.idp.Document
contenant les données à fusionner avec le formulaire. Si vous ne souhaitez pas fusionner les données, transmettez un objet com.adobe.idp.Document
vide.PDFFormRenderSpec
qui stocke les options d’exécution.URLSpec
qui contient les valeurs URI requises par le service Forms pour restituer un formulaire reposant sur des fragments.java.util.HashMap
qui stocke les pièces jointes. Ce paramètre est facultatif et vous pouvez spécifier null
si vous ne souhaitez pas joindre de fichiers au formulaire.La méthode renderPDFForm
renvoie un objet FormsResult
contenant un flux de données de formulaire qui doit être écrit dans le navigateur web client.
Écrire le flux de données de formulaire dans le navigateur web client
com.adobe.idp.Document
en appelant la méthode getOutputContent
de l’objet FormsResult
.com.adobe.idp.Document
en appelant sa méthode getContentType
.javax.servlet.http.HttpServletResponse
en appelant sa méthode setContentType
et en transmettant le type de contenu de l’objet com.adobe.idp.Document
.javax.servlet.ServletOutputStream
utilisé pour écrire le flux de données de formulaire dans le navigateur web client en appelant la méthode getOutputStream
de l’objet javax.servlet.http.HttpServletResponse
.java.io.InputStream
en appelant la méthode getInputStream
de lʼobjet com.adobe.idp.Document
.read
de lʼobjet InputStream
et en transmettant le tableau d’octets comme argument.write
de lʼobjet javax.servlet.ServletOutputStream
pour envoyer le flux de données de formulaire au navigateur web du client. Transmettez le tableau d’octets à la méthode write
.Voir également
Générer des formulaires reposant sur des fragments
Démarrage rapide (mode SOAP) : générer un formulaire basé sur des fragments à l’aide de l’API Java.
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Réglage des propriétés de la connexion
Générer un formulaire basé sur des fragments à l’aide de l’API Forms (Web Service) :
Inclure les fichiers du projet
Créer un objet API Forms client
Créez un objet FormsService
et définissez les valeurs d’authentification.
Spécifier les valeurs URI
URLSpec
stockant des valeurs URI en utilisant son constructeur.setApplicationWebRoot
de l’objet URLSpec
et transmettez une valeur de chaîne qui représente la racine web de l’application.setContentRootURI
de l’objet URLSpec
et transmettez une valeur de chaîne qui spécifie la valeur de la racine du contenu URI. Assurez-vous que la conception de formulaire se trouve 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écifiez repository://
.setTargetURL
de l’objet URLSpec
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 vers laquelle un formulaire est envoyé afin dʼeffectuer des calculs.Restituer le formulaire
Appelez la méthode renderPDFForm
de lʼobjet FormsService
et transmettez les valeurs suivantes :
Applications/FormsApplication/1.0/FormsFolder/Loan.xdp
.BLOB
contenant les données à fusionner avec le formulaire. Si vous ne souhaitez pas fusionner des données, transmettez null
.PDFFormRenderSpec
stockant les options d’exécution. Notez que l’option de PDF balisé ne peut pas être définie si le document d’entrée est un document PDF. Si le fichier d’entrée est un fichier XDP, l’option de PDF balisé peut être définie.URLSpec
contenant les valeurs URI requises par le service Forms.java.util.HashMap
stockant les pièces jointes. Il sʼagit dʼun paramètre facultatif. Vous pouvez indiquer null
si vous ne souhaitez pas joindre de fichier au formulaire.com.adobe.idp.services.holders.BLOBHolder
vide qui est renseigné par la méthode. Ce paramètre est utilisé pour stocker le formulaire généré.javax.xml.rpc.holders.LongHolder
vide qui est renseigné par la méthode. Cet argument stocke le nombre de pages dans le formulaire.javax.xml.rpc.holders.StringHolder
vide qui est renseigné par la méthode. Cet argument stocke la valeur des paramètres régionaux.com.adobe.idp.services.holders.FormsResultHolder
vide contenant les résultats de cette opération.La méthode renderPDFForm
renseigne l’objet com.adobe.idp.services.holders.FormsResultHolder
qui est transmis en tant que dernière valeur d’argument avec un flux de données de formulaire qui doit être écrit dans le navigateur web client.
Écrire le flux de données de formulaire dans le navigateur web client
FormResult
en obtenant la valeur du membre de données value
de l’objet com.adobe.idp.services.holders.FormsResultHolder
.BLOB
contenant des données de formulaire en appelant la méthode getOutputContent
de l’objet FormsResult
.BLOB
en appelant sa méthode getContentType
.javax.servlet.http.HttpServletResponse
en appelant sa méthode setContentType
et en transmettant le type de contenu de l’objet BLOB
.javax.servlet.ServletOutputStream
servant à écrire le flux de données de formulaire dans le navigateur web client en appelant la méthode getOutputStream
de l’objet javax.servlet.http.HttpServletResponse
.getBinaryData
de l’objet BLOB
. Cette tâche affecte le contenu de l’objet FormsResult
au tableau d’octets.write
de l’objet javax.servlet.http.HttpServletResponse
pour envoyer le flux de données de formulaire au navigateur web client. Transmettez le tableau d’octets à la méthode write
.Voir également
Générer des formulaires reposant sur des fragments
Appeler AEM Forms en utilisant le codage Base64