Les exemples et exemples de ce document ne concernent que l’environnement AEM Forms on JEE.
Le service Forms peut calculer les valeurs qu’un utilisateur saisit dans un formulaire et afficher les résultats. Pour calculer les données de formulaire, vous devez effectuer deux tâches. Tout d’abord, vous créez un script de conception de formulaire qui calcule les données de formulaire. Une conception de formulaire prend en charge trois types de scripts. Un type de script est exécuté sur le client, un autre sur le serveur et le troisième sur le serveur et le client. Le type de script décrit dans cette rubrique s’exécute sur le serveur. Les calculs côté serveur sont pris en charge pour les transformations HTML, PDF et Form Guide (obsolète).
Dans le cadre du processus de conception de formulaire, vous pouvez utiliser des calculs et des scripts pour offrir une expérience utilisateur plus riche. Les calculs et les scripts peuvent être ajoutés à la plupart des champs et objets de formulaire. Vous devez créer un script de conception de formulaire pour effectuer des opérations de calcul sur les données saisies par un utilisateur dans un formulaire interactif.
L’utilisateur saisit des valeurs dans le formulaire et clique sur le bouton Calculer pour vue des résultats. Le processus suivant décrit un exemple d’application qui permet à un utilisateur de calculer des données :
GetLoanForm
.GetLoanForm
génère un formulaire de prêt. Ce formulaire contient un script, des champs interactifs, un bouton Calculer et un bouton Envoyer.CalculateData
où le script est exécuté. Le formulaire est renvoyé à l’utilisateur avec les résultats de calcul affichés dans le formulaire.ProcessForm
qui est chargé de récupérer les données envoyées. (Voir Gestion du Forms envoyé.)Le diagramme suivant illustre le flux logique de l’application.
Le tableau suivant décrit les étapes de ce diagramme.
Étape |
Description |
---|---|
1 |
La servlet Java |
2 |
Le servlet Java |
3 |
L’utilisateur saisit des données dans des champs interactifs et clique sur le bouton Calculer. Le formulaire est envoyé au servlet Java |
4 |
Le formulaire est rendu au navigateur Web avec les résultats de calcul affichés dans le formulaire. |
5 |
L’utilisateur clique sur le bouton Envoyer lorsque les valeurs sont satisfaisantes. Le formulaire est envoyé à une autre servlet Java nommée |
En règle générale, un formulaire envoyé en tant que contenu PDF contient des scripts exécutés sur le client. Cependant, les calculs côté serveur peuvent également être exécutés. Impossible d’utiliser un bouton Envoyer pour calculer les scripts. Dans ce cas, les calculs ne sont pas exécutés car le service Forms considère que l’interaction est terminée.
Pour illustrer l’utilisation d’un script de conception de formulaire, cette section examine un formulaire interactif simple qui contient un script configuré pour s’exécuter sur le serveur. Le diagramme suivant présente une conception de formulaire contenant un script qui ajoute des valeurs saisies par un utilisateur dans les deux premiers champs et affiche le résultat dans le troisième champ.
A. Un champ nommé NumericField1 B. Un champ nommé NumericField2 C. Un champ nommé NumericField3
La syntaxe du script se trouvant dans cette conception de formulaire est la suivante :
NumericField3 = NumericField2 + NumericField1
Dans cette conception de formulaire, le bouton Calculer est un bouton de commande et le script se trouve dans le événement Click
de ce bouton. Lorsqu’un utilisateur saisit des valeurs dans les deux premiers champs (NumericField1 et NumericField2) et clique sur le bouton Calculer, le formulaire est envoyé au service Forms, où le script est exécuté. Le service Forms restitue le formulaire au périphérique client avec les résultats du calcul affichés dans le champ NumericField3.
Pour plus d’informations sur la création d’un script de conception de formulaire, voir Forms Designer.
Pour plus d’informations sur le service Forms, voir Guide de référence des services pour AEM Forms.
Pour calculer les données de formulaire, effectuez les tâches suivantes :
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éation d’un objet API Client Forms
Avant de pouvoir exécuter par programmation une opération d’API Client de service Forms, vous devez créer un client de service Forms. Si vous utilisez l’API Java, créez un objet FormsServiceClient
. Si vous utilisez l’API du service Web Forms, créez un objet FormsServiceService
.
Récupération d’un formulaire contenant un script de calcul
Vous utilisez l’API Client du service Forms pour créer une logique d’application qui gère un formulaire contenant un script configuré pour s’exécuter sur le serveur. Le processus est similaire à la gestion d’un formulaire envoyé. (Voir Gestion du Forms envoyé.)
Vérifiez que l’état de traitement associé au formulaire envoyé est 1
(Calculate)
, ce qui signifie que le service Forms effectue une opération de calcul sur les données du formulaire et que les résultats doivent être renvoyés à l’utilisateur. Dans ce cas, un script configuré pour s’exécuter sur le serveur est exécuté automatiquement.
Réécriture du flux de données de formulaire dans le navigateur Web client
Après avoir vérifié que l’état de traitement associé à un formulaire envoyé est 1
, vous devez réécrire les résultats dans le navigateur Web client. Lorsque le formulaire est affiché, la valeur calculée s’affiche dans le ou les champs appropriés.
Voir aussi
Inclusion des fichiers de bibliothèque Java AEM Forms
Calculer les données de formulaire à l’aide de Java
APICalculer les données de formulaire à l’aide du service Web
APISdéfinition des
propriétés de connexionAPI de service Forms
Démarrage rapideRendu de
formulaires PDF interactifsCréation d’Applications web renvoyant du Forms
Calculez les données de formulaire à l’aide de l’API Forms (Java) :
Inclure les fichiers de projet
Incluez des fichiers JAR client, tels que adobe-forms-client.jar, dans le chemin de classe de votre projet Java.
Création d’un objet API Client Forms
ServiceClientFactory
qui contient des propriétés de connexion.FormsServiceClient
en utilisant son constructeur et en transmettant l'objet ServiceClientFactory
.Récupération d’un formulaire contenant un script de calcul
Pour récupérer des données de formulaire contenant un script de calcul, créez un objet com.adobe.idp.Document
à l’aide de son constructeur et appelez la méthode javax.servlet.http.HttpServletResponse
de l’objet getInputStream
à partir du constructeur.
Appelez la méthode processFormSubmission
de l’objet FormsServiceClient
et transmettez les valeurs suivantes :
com.adobe.idp.Document
contenant les données du formulaire.CONTENT_TYPE
. Par exemple, pour gérer les données XML et PDF, spécifiez la valeur de chaîne suivante pour ce paramètre : CONTENT_TYPE=application/xml&CONTENT_TYPE=application/pdf
HTTP_USER_AGENT
; par exemple, Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
.RenderOptionsSpec
qui stocke les options d’exécution.La méthode processFormSubmission
renvoie un objet FormsResult
contenant les résultats de l’envoi du formulaire.
Vérifiez que l’état de traitement associé à un formulaire envoyé est 1
en appelant la méthode FormsResult
de l’objet getAction
. Si cette méthode renvoie la valeur 1
, le calcul a été effectué et les données peuvent être renvoyées au navigateur Web client.
Réécriture du flux de données de formulaire dans le navigateur Web client
javax.servlet.ServletOutputStream
utilisé pour envoyer un flux de données de formulaire au navigateur Web client.com.adobe.idp.Document
en appelant la méthode FormsResult
de l'objet "s getOutputContent
.java.io.InputStream
en appelant la méthode com.adobe.idp.Document
de l'objet getInputStream
.InputStream
de l’objet read
et en transmettant le tableau d’octets comme argument.javax.servlet.ServletOutputStream
de l’objet write
pour envoyer le flux de données de formulaire au navigateur Web client. Transférez le tableau d’octets à la méthode write
.Voir aussi
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Calculez les données de formulaire à l’aide de l’API Forms (service Web) :
Inclure les fichiers de projet
Création d’un objet API Client Forms
Créez un objet FormsService
et définissez des valeurs d’authentification.
Récupération d’un formulaire contenant un script de calcul
Pour récupérer les données de formulaire publiées sur un servlet Java, créez un objet BLOB
à l’aide de son constructeur.
Créez un objet java.io.InputStream
en utilisant la méthode javax.servlet.http.HttpServletResponse
de l'objet getInputStream
.
Créez un objet java.io.ByteArrayOutputStream
en utilisant son constructeur et en transmettant la longueur de l'objet java.io.InputStream
.
Copiez le contenu de l'objet java.io.InputStream
dans l'objet java.io.ByteArrayOutputStream
.
Créez un tableau d’octets en appelant la méthode toByteArray
de l’objet java.io.ByteArrayOutputStream
.
Renseignez l’objet BLOB
en appelant sa méthode setBinaryData
et en transmettant le tableau d’octets comme argument.
Créez un objet RenderOptionsSpec
en utilisant son constructeur. Définissez la valeur du paramètre régional en appelant la méthode setLocale
de l’objet RenderOptionsSpec
et en transmettant une valeur de chaîne qui spécifie la valeur du paramètre régional.
Appelez la méthode processFormSubmission
de l’objet FormsServiceClient
et transmettez les valeurs suivantes :
BLOB
contenant les données du formulaire.HTTP_REFERER=referrer&HTTP_CONNECTION=keep-alive&CONTENT_TYPE=application/xml
HTTP_USER_AGENT
; par exemple, Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
.RenderOptionsSpec
qui stocke les options d’exécution. Pour plus d’informations, .BLOBHolder
vide renseigné par la méthode.javax.xml.rpc.holders.StringHolder
vide renseigné par la méthode.BLOBHolder
vide renseigné par la méthode.BLOBHolder
vide renseigné par la méthode.javax.xml.rpc.holders.ShortHolder
vide renseigné par la méthode.MyArrayOf_xsd_anyTypeHolder
vide renseigné par la méthode. Ce paramètre permet de stocker les pièces jointes envoyées avec le formulaire.FormsResultHolder
vide qui est renseigné par la méthode avec le formulaire envoyé.La méthode processFormSubmission
renseigne le paramètre FormsResultHolder
avec les résultats de l’envoi du formulaire. La méthode processFormSubmission
renvoie un objet FormsResult
contenant les résultats de l’envoi du formulaire.
Vérifiez que l’état de traitement associé à un formulaire envoyé est 1
en appelant la méthode FormsResult
de l’objet getAction
. Si cette méthode renvoie la valeur 1
, le calcul a été effectué et les données peuvent être renvoyées au navigateur Web client.
Réécriture du flux de données de formulaire dans le navigateur Web client
javax.servlet.ServletOutputStream
utilisé pour envoyer un flux de données de formulaire au navigateur Web client.BLOB
contenant des données de formulaire en appelant la méthode FormsResult
de l'objet getOutputContent
.BLOB
de l’objet getBinaryData
. Cette tâche affecte le contenu de l'objet FormsResult
au tableau d'octets.javax.servlet.http.HttpServletResponse
de l’objet write
pour envoyer le flux de données de formulaire au navigateur Web client. Transférez le tableau d’octets à la méthode write
.Voir
également Appel d’AEM Forms à l’aide du codage Base64