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é.

  • 🇧🇷 Objectif principal : Les formulaires intelligents permettent de produire des documents imprimés en masse et prennent en charge l'impression, la télécopie, le courrier électronique et la sortie Internet grâce au XML généré.
  • 🇧🇷 Origine: SAP ont introduit les formulaires intelligents en 1998 pour surmonter les limites de SAPLes scripts sont plus faciles à développer, à maintenir et à transporter.
  • 🧱 Conception graphique : Dans le générateur de formulaires, les nœuds sont agencés par glisser-déposer, ce qui permet d'adapter un formulaire sans écrire une seule ligne de code.
  • ⚙️ Module généré : L'activation d'un formulaire génère un module de fonction, et le programme d'impression obtient son nom lors de l'exécution avec SSF_FUNCTION_MODULE_NAME.
  • 🪟 Règle de la fenêtre : Chaque page contient au maximum une fenêtre principale, qui s'étend sur plusieurs pages, tandis que chaque fenêtre secondaire n'imprime que du contenu statique.
  • (I.e. Tableau ou modèle : Un tableau s'agrandit dynamiquement en fonction des données, et un modèle est utilisé lorsque la sortie a une taille fixe, comme un chèque ou un ticket.
  • ???? Styles intelligents : Les formats de paragraphe, les formats de caractères, les couleurs et les codes-barres sont stockés dans un style intelligent et réutilisés dans tous les formulaires.

SAP Formulaires intelligents ABAP

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

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-

  1. Saisir la transaction FORMULAIRES INTELLIGENTS dans la case du code de transaction.
  2. Dans l'écran suivant, entrez un nom de formulaire et cliquez sur créer

Guide des formulaires intelligents

L'écran suivant est divisé en trois sections :

Guide des formulaires intelligents

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.

Guide des formulaires intelligents

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.

Guide des formulaires intelligents

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 !

Guide des formulaires intelligents

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

Guide des formulaires intelligents

Paramètres graphiques dans la fenêtre du formulaire intelligent -

Guide des formulaires intelligents

Windows dans les formulaires intelligents

Windows dans les formulaires intelligents

Il existe deux types de Windows

  1. Entrée
  2. 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.

Windows dans les formulaires intelligents

Dans la fenêtre principale, nous pouvons ajouter du texte comme introduction pour personnaliser la sortie du formulaire.

Windows dans les formulaires intelligents

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.

Windows dans les formulaires intelligents

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.

Windows dans les formulaires intelligents

Les deux éditeurs différents sont disponibles dans Smartforms, à savoir. Éditeur normal

Windows dans les formulaires intelligents

et l'éditeur graphique.

Windows dans les formulaires intelligents

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

Windows dans les formulaires intelligents

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.

Windows dans les formulaires intelligents

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'

Flux de programmation des formulaires intelligents

Cela renverra le nom du module de fonction du formulaire intelligent référencé.

Flux de programmation des formulaires intelligents

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.

Flux de programmation des formulaires intelligents

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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 ».

Modèles dans SAP ABAP

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.

Modèles dans SAP ABAP

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

FAQ

La hauteur d'un tableau varie en fonction du nombre de lignes de sa table interne. Un modèle, quant à lui, possède un nombre fixe de lignes et de cellules, ce qui convient parfaitement à un chèque, un billet ou un formulaire fiscal.

Configurez GETOTF dans la structure de contrôle, lisez les données OTF renvoyées par le module généré et transmettez-les au module fonction CONVERT_OTF. Le résultat est un tableau binaire pouvant être envoyé par courrier ou téléchargé.

Non. Un formulaire intelligent est indépendant du client ; il est donc disponible sur tous les clients du système après son activation. SAPLe formulaire de script dépend du client et doit être copié avec SCC1.

Les assistants IA élaborent le programme d'impression, y compris l'appel à SSF_FUNCTION_MODULE_NAME et la gestion des exceptions. La mise en page, quant à elle, est toujours organisée nœud par nœud dans le générateur de formulaires, car il s'agit d'un objet graphique.

Oui. Les formulaires intelligents restent la solution par défaut pour l'impression en masse dans de nombreux cas. SAP Les systèmes d'IA permettent d'effectuer des tâches complexes, tandis qu'Adobe Forms gère les documents interactifs. Les outils d'IA accélèrent principalement les tâches annexes, comme la lecture d'un formulaire et la rédaction de sa documentation.

Résumez cet article avec :