Formulaires intelligents dans SAP ABAP
⚡ Résumé intelligent
Formulaires intelligents dans SAP ABAP permet de créer et de gérer des formulaires pour l'impression en masse, avec une sortie vers une imprimante, un fax, un e-mail ou Internet. Cette page explique l'architecture, les nœuds du générateur de formulaires, les fenêtres, les tables, les modèles, les styles et le module fonction généré.
Que sont les formulaires intelligents ? SAP ABAP?
SAP Smart Forms est utilisé pour créer et gérer des formulaires destinés à l'impression en masse dans SAP Systèmes.Comme support de sortie SAP Les formulaires intelligents prennent en charge une imprimante, un fax, un e-mail ou Internet (en utilisant la sortie XML générée).
SAP introduit SmartForms en 1998 pour surmonter les limitations de SAP Scripts. Les SmartForms sont plus faciles à développer, à maintenir et à transporter que SAP Scénario.
Comparaison entre Smart Forms et SapScripts
- Plusieurs formats de page sont possibles dans SmartForms, ce qui n'est pas le cas dans SAP Scripts
- Il est possible d'avoir un SmartForm sans fenêtre principale.
- Les routines peuvent être écrites dans l'outil SmartForms.
- SmartForms génère un module de fonction lorsqu'il est activé.
- Les étiquettes ne peuvent pas être créées dans SmartForms.
| Critères | Formulaires intelligents | SAPscénario |
|---|---|---|
| Formats de page | Plusieurs formats de page dans un seul formulaire | Format d'une page par formulaire |
| Fenêtre principale | Pas obligatoire | Une seule fenêtre principale est requise. |
| Routines | Écrit à l'intérieur du formulaire lui-même | Rédigé dans le programme d'impression séparé |
| Activation | Génère un module de fonction | Aucun module fonctionnel n'est généré. |
| Etiquettes | Impossible à créer | Peut être créé |
Avantages des formulaires intelligents
- Grâce à leur interface utilisateur entièrement graphique, ils permettent d'adapter les formulaires sans aucune connaissance en programmation.
- Lors de l'activation du formulaire intelligent, le système génère automatiquement le module fonction et au moment de l'exécution.
- Pour apporter des modifications, nous devons utiliser le glisser-déposer, le couper-coller. Ces actions n'incluent pas l'écriture de lignes de codage ni l'utilisation d'un langage de script.
- Nous pouvons insérer des tableaux statiques et dynamiques. Ceux-ci incluent les sauts de ligne dans les cellules individuelles du tableau, le déclenchement d'événements pour les en-têtes et les sous-totaux du tableau et le tri des données avant la sortie.
- Les formulaires intelligents permettent à l'utilisateur d'inclure des graphiques, qui peuvent être affichés dans le cadre du formulaire ou comme graphiques d'arrière-plan. Lors de l'impression, l'utilisateur peut supprimer le graphique d'arrière-plan si nécessaire.
- La publication Web est possible à l'aide du fichier généré XML sortie
Architecture de SAP Formulaire intelligent
Le schéma d'architecture illustre les trois couches impliquées. Le formulaire est conçu dans l'éditeur de formulaires, l'activation génère le module fonctionnel, et le programme d'impression appelle ce module avec les données de l'application. Les étapes de conception de la première couche sont décrites ci-après.
Guide des formulaires intelligents
Passons en revue cela dans SAP Système-
- Saisir la transaction FORMULAIRES INTELLIGENTS dans la case du code de transaction.
- Dans l'écran suivant, entrez un nom de formulaire et cliquez sur créer
L'écran suivant est divisé en trois sections :
Fenêtre de navigation se composent de nœuds et de sous-nœuds. Ils contiennent tous les éléments (texte, fenêtre etc) qui appartiennent aux formulaires SAP
- Fenêtre de maintenance montre les attributs des éléments
- Imprimante de formulaires la fenêtre montre la mise en page de la page
Chaque fois que nous créons des formulaires intelligents, SAP crée/génère un module fonction. Contrairement à SAPdes scénarios, SAP LES FORMULAIRES vous permettent de changer de langue.
Dans la fenêtre de navigation, vous trouverez
Déclarations de données globales : Les données définies ici peuvent être utilisées dans tout le formulaire intelligent à des fins de codage.
Interface de formulaire : Ici, toutes les données qui seront transmises au smartform depuis le programme d'impression sont définies.
Un clic droit sur les pages permettra la création d'une nouvelle page, d'une fenêtre, d'un graphique ou d'une adresse.
L'impression s'effectuera sur la base du champ « page suivante ».
Mais le traitement se déroulera selon la séquence dans la fenêtre de navigation !
Pour l'image d'arrière-plan et les graphiques, vous pouvez récupérer des images bitmap en noir et blanc ou en couleur et les stocker sous forme de textes standard. Vous pouvez faire un détour par l'écran Smartform et ouvrir l'écran Form Graphics. Code de transaction: Se78
Paramètres graphiques dans la fenêtre du formulaire intelligent -
Windows dans les formulaires intelligents
Il existe deux types de Windows
- Entrée
- Secondaire
Points importants à noter
- Vous ne pouvez pas avoir plus d'une fenêtre principale dans une page. Vous pouvez avoir plusieurs fenêtres secondaires
- Quoi que vous imprimiez dans la fenêtre secondaire… cela doit être statique. (Si vous avez 20 lignes dans un bon de commande et qu'il y a une contrainte de page, les lignes sont reportées à la page suivante dans la fenêtre principale. C'est-à-dire que dans un type de contenu prédécesseur et successeur, elles seront imprimées en séquence dans la fenêtre principale. Ce n'est pas le cas. autorisé dans les fenêtres secondaires.
Dans la fenêtre principale, nous pouvons ajouter du texte comme introduction pour personnaliser la sortie du formulaire.
Les options de sortie de chaque fenêtre déterminent la taille de la ligne, la largeur, les couleurs et l'arrière-plan à mettre.
Smartforms offre la possibilité de donner le numéro d'adresse qui est conservé dans la gestion centrale des adresses. L'adresse sera directement extraite de la table ADRC et sera renseignée dans le formulaire.
Les deux éditeurs différents sont disponibles dans Smartforms, à savoir. Éditeur normal
et l'éditeur graphique.
Ce paramètre peut être modifié à l'aide de l'éditeur de configuration dans Utilitaires.
Tableaux dans une fenêtre
Dans Table Painter, vous pouvez dessiner le format selon les exigences du client (par exemple, titre, sous-titre, article, sous-total, grand total, etc.)
Vous pouvez utiliser la disposition du tableau pour déterminer :
- Le nombre de lignes et de cellules
- La hauteur de chaque ligne
- La largeur de chaque cellule
- L'alignement du tableau dans la fenêtre
Le tableau montre les différents types de lignes qui seront utilisés dans le tableau. Les types de lignes définissent la taille de chaque cellule et le nombre de cellules dans chaque ligne.
Flux de programmation des formulaires intelligents
Lorsqu'un SAP Le modèle Smart Form est créé, un utilisateur crée la mise en page du formulaire, définit les champs requis, les conditions et les instructions de programmation spéciales dans le modèle Smart Form à l'aide de Smart Form Builder.
Une fois la conception du formulaire terminée, le formulaire doit être activé avant de pouvoir être testé ou accessible par les programmes d'impression. L'activation du formulaire lance la génération d'un module fonction qui gère tout le traitement du formulaire.
Ce module fonction interagit avec le programme d'application/programme d'impression pour créer la sortie sur le support de sortie défini par l'utilisateur pour le périphérique spécifié.
Dans le cas de formulaires intelligents, nous utilisons 2 modules fonctionnels pour le traitement du formulaire intelligent. Au premier module fonction, nous transmettons le nom du formulaire intelligent comme paramètre d'importation. Cela renvoie ensuite le nom du module fonction généré dynamiquement qui appellera réellement le formulaire intelligent.
Le nom du formulaire intelligent peut être transmis à la fonction Module – 'SSF_FUNCTION_MODULE_NAME'
Cela renverra le nom du module de fonction du formulaire intelligent référencé.
Le programme Print appellera le FM 'SSF_FUNCTION_MODULE_NAME' pour obtenir le nom du module de fonction au moment de l'exécution. Par la suite il appellera le module Function ainsi obtenu pour exécuter le smartform.
Comment appeler un formulaire intelligent à partir d'un programme d'impression
L'appel en deux étapes décrit ci-dessus s'écrit toujours de la même manière. Le programme résout d'abord le nom généré, puis l'exécute avec les données de l'application.
- Résolvez le nom du module fonctionnel : Transmettez le nom du formulaire à SSF_FUNCTION_MODULE_NAME. Ce nom généré change selon le système ; il ne doit donc jamais être codé en dur.
- Appelez le module généré de manière dynamique : Utilisez CALL FUNCTION avec la variable qui contient le nom résolu et transmettez les données via les paramètres définis dans l'interface du formulaire.
- Contrôler la sortie : Remplissez la structure de contrôle SSFCTRLOP pour supprimer la boîte de dialogue d'impression ou pour demander un aperçu, et remplissez SSFCOMPOP avec le périphérique de sortie.
- Gérer les exceptions : Le module généré génère les erreurs FORMATTING_ERROR, INTERNAL_ERROR, SEND_ERROR et USER_CANCELED ; il est donc nécessaire de vérifier SY-SUBRC après l'appel.
DATA: lv_fm_name TYPE rs38l_fnam, ls_control TYPE ssfctrlop, ls_output TYPE ssfcompop. * 1. Get the name of the generated function module CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'Z_SMART_INVOICE' IMPORTING fm_name = lv_fm_name EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE e001(zsf). " Form not found ENDIF. * 2. Call the generated module with the form data ls_control-no_dialog = 'X'. ls_control-preview = 'X'. CALL FUNCTION lv_fm_name EXPORTING control_parameters = ls_control output_options = ls_output is_header = ls_header TABLES it_items = lt_items EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5.
⚠️ Attention : Le nom du module fonction généré, par exemple /1BCDWB/SF00000123, diffère selon les systèmes. Il est impératif de le résoudre avec SSF_FUNCTION_MODULE_NAME, faute de quoi le programme échouera après le transport.
Gabarits
Vous pouvez utiliser un modèle lorsque vous connaissez la taille exacte du résultat ou lorsque celui-ci est dans un format fixe.
Par exemple, formulaire fiscal/chèques/formulaire de compagnie aérienne/billet de train : tous ces éléments utilisent des modèles.
La principale différence entre un tableau et un modèle est que, dans un tableau, la hauteur change dynamiquement. Dans un modèle, on appelle une ligne une « ligne ».
Styles INTELLIGENTS
Un style intelligent contient :
- Données d'en-tête contenant les valeurs par défaut d'un style intelligent
- Formats de paragraphe, y compris le retrait et l'espacement, les attributs de police, les tabulations, ainsi que le contour et la numérotation.
- Formats de caractères incluant les effets (exposant, indice), les attributs de code-barres et de police
- Couleurs et soulignements pour un format de paragraphe ou de caractère
Vous pouvez utiliser la transaction « smartforms » / « smartstyles » pour créer un style intelligent.
Astuce : Attribuez le style intelligent dans les attributs du formulaire plutôt que sur chaque nœud de texte. Ainsi, toute modification du style s'appliquera à chaque paragraphe du formulaire.
C'est tout pour ce tutoriel























