Vous connaissez probablement la transaction "Afficher article" (code de transaction MM03), ou peut-être d'autres transactions d'affichage dans le système SAP qui utilisent une série d'écrans successifs pour montrer tous les attributs d'un article commercial donné. Les différentes vues présentées par le système SAP sur les différents écrans sont regroupées en respectant certains critères logiques.

Un utilisateur typique préférerait accéder à une certaine sélection de champs plutôt que d'avoir à naviguer à travers un grand nombre d'écrans et d'avoir à se souvenir des informations lorsqu'il quitte un des écrans. Ceci peut être obtenu avec GuiXT sans avoir à programmer dans la base de données et sans aucune modification du système SAP. Nous allons vous montrer ici un exemple typique. Vous pouvez utiliser cet exemple comme base pour vos propres vues en sélectionnant un plus grand nombre de champs ou des champs différents ou tout simplement réutiliser la même technique pour d'autres domaines d'applications.

Nous partons du premier écran de la transaction originale MM03. Ceci semble raisonnable car l'utilisateur sait déjà comment accéder à cette transaction et qu'ainsi nous pouvons utiliser le champ code article avec sa fonctionnalité standard (par exemple matchcode).

 

1 Un petit exemple: Affichage d'un article (MM03) avec une fonction d'affichage rapide

 

 

 

 

 

 

 

Comme vous pouvez le voir, nous avons ajouté un nouveau bouton poussoir avec pour désignation "Affichage rapide". L'utilisateur saisit un code article et peut ensuite, soit utiliser les fonctions normales du système SAP, soit appuyer simplement sur le bouton poussoir "Affichage rapide".

 

2 MM03 avec l'affichage rapide

 

 

 

 

 

 

 

 

 

 

 

 

 

Le bouton "Affichage rapide" présente une vue spéciale de l'article, regroupant des informations de plusieurs écrans standards du système SAP. Nous avons également ajouté une photo du produit.

Finalement, nous pouvons donner à l'utilisateur la possibilité d'avoir l'affichage rapide de 2 articles simultanément (ou plus, si vous le désirez). Pour notre exemple, nous avons décidé d'afficher également la vue de l'article précédent.

 

3 MM03 avec 2 affichages rapides

 

 

 

 

 

 

 

 

 

 

 

 

C'est alors plus facile de comparer les deux produits.

 

4 Variantes et extensions

Nous vous suggérons quelques variantes que vous pourriez implémenter sur la base de cet exemple:

  • Ajouter d'autres champs issus d'écrans MM03

  • Ajouter un second bouton poussoir "Affichage rapide" pour afficher une vue de détail

  • Ajouter un champ de saisie pour la sélection de la division

  • Implémenter des affichages rapides similaires pour d'autres secteurs d'activité

 

5 Explications générales sur la technique utilisée

Nous combinons la technique des InputScript connue des transactions à écran unique avec l'utilisation appropriée de variables GuiXT.

(a) Nous insérons le bouton poussoir "Affichage rapide" et lui associons un InputScript

(b) Dans l'InputScipt nous naviguons dans les différents écrans de la transaction MM03. Nous utilisons la commande Set pour récupérer les valeurs dans les écrans et les stocker dans des variables GuiXT. Par exemple:

Set V[MM_attr1.poids_net] "&[Poids net]"

(c) Au début de l'InputScript nous copions toutes les variables MM_attr1 dans des variables MM_attr2 pour pouvoir également afficher le produit précédent. Ensuite nous effaçons toutes les variables MM_attr1.

(d) Lorsque nous revenons à l'écran MM03, après l'exécution de l'InputScript, nous affichons toutes les informations en utilisant les variables MM_attr. Nous utilisons également la commande if pour afficher les informations d'une manière plus lisible et nous concaténons certains champs (poids et unité de poids).

6 Script GuiXT (SAP 4.5)

if Q[Transaction=MM03]

// Affichage des données pour un maximum de 2 articles et de différents écrans

Pushbutton (1,40) "@1E\QAffichage des données de l'article choisi@Affichage rapide" "Process=AffichageArticle.txt"
using material = [Article]

// Affichage rapide de l'article
if V[MM_attr1.numero]

Offset (4,0)
Box (0,0) (14,50) "Article actuel"

Text (1,30) "&[MM_attr1.numero]"
Comment (2,1) "&[MM_attr1.texte]"

Text (4,1) "Poids net: &[MM_attr1.poids_net] &[MM_attr1.unite]"
Text (5,1) "Poids brut: &[MM_attr1.poids_brut] &[MM_attr1.unite]"

if V[MM_attr1.configurable]
Comment (7,1) "Configurable"
else
Text (7,1) "Pas configurable"
endif

Text (9,1) "Stock à utilisation libre"
Text (9,25) "&[MM_attr1.stock]"
Text (10,1) "Consignation à utilisation libre"
Text (10,25) "&[MM_attr1.consi]"
Text (11,1) "Stock à utilisation non libre"
Text (11,25) "&[MM_attr1.stock.r]"
Text (12,1) "Consignation non libre"
Text (12,25) "&[MM_attr1.consi.r]"

Image (9,38) (12,48) "G:\Product images\&[MM_attr1.numero].jpg" -NoStretch

endif

if V[MM_attr2.numero]

Offset (4,54)
Box (0,0) (14,50) "Article précédent"

Text (1,30) "&[MM_attr2.numero]"
Comment (2,1) "&[MM_attr2.texte]"

Text (4,1) "Poids net: &[MM_attr2.poids_net] &[MM_attr2.unite]"
Text (5,1) "Poids brut: &[MM_attr2.poids_brut] &[MM_attr2.unite]"

if V[MM_attr2.configurable]
Comment (7,1) "Configurable"
else
Text (7,1) "Pas configurable"
endif

Text (9,1) "Stock à utilisation libre"
Text (9,25) "&[MM_attr2.stock]"
Text (10,1) "Consignation à utilisation libre"
Text (10,25) "&[MM_attr2.consi]"
Text (11,1) "Stock à utilisation non libre"
Text (11,25) "&[MM_attr2.stock.r]"
Text (12,1) "Consignation non libre"
Text (12,25) "&[MM_attr2.consi.r]"

Image (9,38) (12,48) "G:\Product images\&[MM_attr2.numero].jpg" "-NoStretch"

endif

endif

7 InputScript (SAP 4.5)

// Affichage de l'article, attribution des variables MM_attr1

Parameter Division 0001 // Utiliser Division 0001, si pas spécifiée

Screen SAPLMGMM.0070

// Mise en mémoire des champs de sortie précédents
Set V[MM_attr2.numero] "&[MM_attr1.numero]"

Set V[MM_attr2.texte] "&[MM_attr1.texte]"
Set V[MM_attr2.poids_brut] "&[MM_attr1.poids_brut]"
Set V[MM_attr2.poids_net] "&[MM_attr1.poids_net]"
Set V[MM_attr2.unite] "&[MM_attr1.unite]"

Set V[MM_attr2.configurable] "&[MM_attr1.configurable]"

Set V[MM_attr2.stock] "&[MM_attr1.stock]"
Set V[MM_attr2.consi] "&[MM_attr1.consi] "
Set V[MM_attr2.stock.r] "&[MM_attr1.stock.r]"
Set V[MM_attr2.consi.r] "&[MM_attr1.consi.r]"

// Initialisation de tous les champs de sortie
Set V[MM_attr1.*] ""

// Saisie du numéro d'article
Set V[MM_attr1.numero] &[article]

// Sélection des vues
Set C[Données de base 1] "X"
Set C[Données de base 2] "X"
Set C[Stock division] "X"

Enter

// Niveaux organisation
Screen SAPLMGMM.0080
Set [Division] &[Division]
Enter

// Données de base 1
Screen SAPLMGMM.4000
Set V[MM_attr1.texte] "&#[2,33]" // champ texte article (sans nom)
Set V[MM_attr1.poids_brut] "&[Poids brut]"
Set V[MM_attr1.poids_net] "&[Poids net]"
Set V[MM_attr1.unite] "&[Unité de poids]"
Enter

// Données de base 2
Screen SAPLMGMM.4000
Set V[MM_attr1.configurable] "&[Article configurable]"
Enter

// Pas de données division ? Alors retour maintenant
Screen SAPLSPO1.0300
Return

// Stock division
Screen SAPLMGMM.4000
Set V[MM_attr1.stock] "&[A utilisation libre]"
Set V[MM_attr1.consi] "&[Consignation ut.lbre]"
Set V[MM_attr1.stock.r] "&[Utilisat. non libre]"
Set V[MM_attr1.consi.r] "&[Consignat. non libre]"
Return