Vous êtes sur la page 1sur 437
0 BC400 Introduction à ABAP Workbench : concept et outils BC400 R/3 System Release 46B

0

0 BC400 Introduction à ABAP Workbench : concept et outils BC400 R/3 System Release 46B 17.08.2000

BC400 Introduction à ABAP Workbench :

concept et outils

BC400

R/3 System

Release 46B

17.08.2000

BC400 Introduction à ABAP Workbench : concept et outils BC400BC400 IntroductionIntroduction àà ABAPABAP
BC400 Introduction à ABAP Workbench : concept
et outils
BC400BC400
IntroductionIntroduction àà
ABAPABAP WorkbenchWorkbench ::
ConceptConcept etet outilsoutils
SAP SAP AG AG 1999 1999

Système R/3 Version 4.6A Novembre 1999 Numéro d'article 5003 4914

Copyright
Copyright

Copyright 2000 SAP AG. Tous droits réservés.

Toute représentation ou reproduction de ce manuel, même partielle, par quelque procédé et à quelque fin que ce soit, est interdite sans l’autorisation écrite explicite de SAP AG. Les informations contenues dans ce manuel peuvent être modifiées ou complétées sans préavis.

Tous droits réservés.

SAP AG 1999

Marques déposées :

Microsoft ®, Windows ®, NT ®, PowerPoint ®, WinWord ®, Excel ®, Project ®, SQL-Server ®, Multimedia Viewer ®, Video for Windows ®, Internet Explorer ®, NetShow ®, et HTML Help ® sont des marques déposées de Microsoft Corporation.

Lotus ScreenCam ® est une marque déposée de Lotus Development Corporation.

Vivo ® et VivoActive ® sont des marques déposées de RealNetworks, Inc.

ARIS Toolset ® est une marque déposée de IDS Prof. Scheer GmbH, Saarbruck

Adobe ® et Acrobat ® sont des marques déposées de Adobe Systems Inc.

TouchSend Index ® est une marque déposée de TouchSend Corporation.

Visio ® est une marque déposée de Visio Corporation.

IBM ®, OS/2 ®, DB2/6000 ® et AIX ® sont des marques déposées de IBM Corporation.

Indeo ® est une marque déposée de Intel Corporation.

Netscape Navigator ®, et Netscape Communicator ® sont des marques déposées de Netscape Communications, Inc.

OSF/Motif ® est une marque déposée de Open Software Foundation.

ORACLE ® est une marque déposée de ORACLE Corporation, California, USA.

INFORMIX ®-OnLine for SAP est une marque déposée de Informix Software Incorporated.

UNIX ® et X/Open ® sont des marques déposées de SCO Santa Cruz Operation.

ADABAS ® est une marque déposée de Software AG

ABAP/4, InterSAP, RIVA, R/2, R/3, R/3 Retail, SAP (Word), SAPaccess, SAPfile, SAPfind, SAPmail, SAPoffice, SAPscript, SAPtime, SAPtronic, SAP-EDI, SAP EarlyWatch, SAP ArchiveLink, SAP Business Workflow, et ALE/WEB sont des marques ou marques déposées de

SAP AG. Le logo SAP et tous les autres produits, services, logos, ou noms de marques sont également des marques ou marques déposées de SAP AG.

Les autres produits, services, logos, ou noms de marques sont des marques ou marques déposées de leurs propriétaires respectifs.

ABAP Workbench Niveau 2 Niveau 3 BC402 3 jours BC414 2 jours BC490 3 jours
ABAP Workbench
Niveau 2
Niveau 3
BC402
3 jours
BC414
2 jours
BC490
3 jours
Techniques de
programmation ABAP
Programmation des
mises à jour de la base
de données
Analyses des
performances
BC404
3 jours
ABAP
ABAP Objects -
Programmation orientée
objets dans R/3
BC415
2 jours
BC405
3 jours
ABAP Workbench -
Interfaces de
communication
BC425
3 jours
Reporting dans ABAP
Workbench
Extensions et
modifications
BC410
5 jours
BC412
2 jours
Programmation interactive
BC400
5 jours
BC420
5 jours
Programmation de
dialogues à l'aide des
contrôles EnjoySAP
Introduction à
ABAP Workbench
ABAP Workbench -
Interface de données
BC440
5 jours
BC430
2 jours
Développement des
applications sur Internet
MBC40
2 jours
Dictionnaire de données
ABAP
Gestion des projets de
développement ABAP
BC460
3 jours
Edition et impression de
formulaires dans
SAPscripts
CA610
2 jours
CATT - Test Workbench et
Computer Aided Test Tool
Cours supplémentaires
recommandés : Business
Process Technologies
CA925, CA926, CA927
BC095 (Technologie
d'intégration) BC619 (ALE),
BC620, BC621
SAP AG 1999
Connaissances requises
Connaissances requises

Connaissances en programmation

Cours de formation SAP 50 : technologie de base

SAP AG 1999

À qui s'adresse ce cours ?
À qui s'adresse ce cours ?

SAP AG 1999

Participants :

Membres du projet

Durée : 5 jours

À qui s'adresse ce cours ? SAP AG 1999 Participants : Membres du projet Durée :

Notes aux participants

Les supports de cours ne constituent pas un programme d'auto-formation. Ils sont conçus uniquement dans le but de compléter les explications fournies par l'animateur. Un espace est laissé à votre disposition sur ces supports pour vous permettre de prendre des notes.

Vous n'aurez probablement pas le temps pendant le cours de terminer tous les exercices. Les exercices fournissent des exemples complémentaires aux sujets discutés pendant ce cours. Vous pouvez également les utiliser comme aide pour développer vos connaissances après la fin du cours.

Concept et outils de ABAP Workbench : contenu
Concept et outils de ABAP Workbench : contenu

Objectif global du cours

Détail des objectifs

Table des matières

Synoptique

Scénario de gestion

Introduction au cours

SAP AG 1999

Objectif du cours
Objectif du cours
Objectif du cours À la fin de ce cours, vous serez en mesure : de comprendre

À la fin de ce cours, vous serez en mesure :

de comprendre les diverses applications d'ABAP Workbench, notamment

les différentes méthodes qui facilitent le dialogue avec l'utilisateur et

les modalités de dialogue avec la base de données

SAP AG 1999

Objectifs du cours
Objectifs du cours
Objectifs du cours SAP AG 1999 À la fin de ce cours, vous serez en mesure

SAP AG 1999

À la fin de ce cours, vous serez en mesure :

de créer un programme ABAP comprenant des dialogues utilisateur et des dialogues base de données

de décrire divers objets de développement (objets du Repository) et leur mode d'emploi

de créer des exemples simples d'objets du Repository introduits dans le cours à l'aide des outils adéquats d'ABAP Workbench appropriés à chaque cas

Table des matières
Table des matières

Chapitre 1

Introduction

Chapitre 2

Déroulement du programme dans un programme ABAP

Chapitre 3

Introduction à ABAP Workbench

Chapitre 4

Instructions et déclarations de données ABAP

Chapitre 5

Dialogues base de données I

(lecture à partir de la base de données)

Chapitre 6

Modularisation interne du programme

Chapitre 7

Dialogues utilisateur : liste

Chapitre 8

Dialogues utilisateur : écran de sélection

Chapitre 9

Dialogues utilisateur : écran

Chapitre 10 Interfaces

SAP AG 1999

Table des matières
Table des matières

Chapitre 11

Réutiliser les composantes

Chapitre 12

Dialogues base de données II (Modifier la base de données)

Chapitre 13

Logistique logicielle et comparaison logicielle

Exercices

Solutions

Annexes

SAP AG 1999

Scénario de gestion
Scénario de gestion
Scénario de gestion Aéroport de départ Ce cours vous permettra de développer plusieurs programmes destinés à
Aéroport de départ
Aéroport de départ

Ce cours vous permettra de développer plusieurs programmes destinés à assister des agences de voyage. Certains de leurs besoins types nécessitent :

d'établir des connexions de vol à des dates précises de procéder à des réservations sur des vols spécifiques de déterminer des informations complémentaires de vol, comme

le prix la capacité.

Ville de départ
Ville de départ
Destination
Destination
complémentaires de vol, comme le prix la capacité. Ville de départ Destination Ville de destination SAP
Ville de destination
Ville de destination

SAP AG 1999

Déroulement du programme dans un programme ABAP
Déroulement du programme dans un programme ABAP

Contenu :

Architecture client / serveur

Programme type avec affichage de données sous forme de liste

Programme type avec affichage de données sur un écran

Quelles sont les composantes du programme ABAP développées et dans quels chapitres ?

SAP AG 1999

Synthèse
Synthèse
Synthèse et et dans dans quels quels chapitres chapitres ? ? SAP AG 1999
Synthèse et et dans dans quels quels chapitres chapitres ? ? SAP AG 1999
Synthèse et et dans dans quels quels chapitres chapitres ? ? SAP AG 1999
Synthèse et et dans dans quels quels chapitres chapitres ? ? SAP AG 1999

et et dans dans quels quels chapitres chapitres ? ?

SAP AG 1999

Architecture client / serveur Présentation Serveur Niveau SAPGUI SAPGUI SAPGUI SAPGUI SAPGUI SAPGUI
Architecture client / serveur
Présentation
Serveur
Niveau
SAPGUI
SAPGUI
SAPGUI
SAPGUI
SAPGUI
SAPGUI
Répartiteur
Répartiteur
Application
Serveur
Niveau
Processus
Processus
Processus
Processus
de travail
de travail
de travail
de travail
Processus
Processus
Processus
Processus
Base de
de travail
de travail
de travail
de travail
données
SAP AG 1999

Le système R/3 a une architecture logicielle modulaire qui suit les principes orientés logiciel client/serveur.

Le système R/3 affecte des présentations, des applications, et des enregistrements de données à différents ordinateurs. Il sert de base à l'évolutivité du système R/3.

Le niveau le plus bas est le niveau base de données. Les données y sont gérées grâce à un système de gestion de base de données relationnelle (RDBMS). Outre les données de base et les données de mouvement, les programmes et les métadonnées qui décrivent le système R/3 y sont également stockés et gérés.

Les programmes ABAP, qui comprennent aussi bien les applications fournies par SAP que celles que vous développez vous-même, sont exécutés au niveau application. Ils exploitent des données appelées au niveau base de données et y stockent de nouvelles informations.

Le troisième niveau est le niveau présentation (SAPGUI). Ce niveau comprend l'interface utilisateur par lequel un utilisateur final peut accéder à une application, entrer de nouvelles données et recevoir les résultats d'un processus de travail.

La répartition technique du logiciel est indépendante de sa localisation physique dans le système. Dans le sens vertical, il est possible d'installer tous les niveaux les uns au-dessus des autres sur un seul ordinateur ou sur des ordinateurs distincts. Dans le sens horizontal, les composantes des niveaux fonctionnel et présentation peuvent être réparties sur un nombre x de stations. La distribution horizontale des composantes des bases de données dépend toutefois du type de base installé.

Vue orientée utilisateur
Vue orientée utilisateur
Présentation Serveur Niveau Processus de travail Programme ABAP Application Serveur Niveau Base de données
Présentation
Serveur
Niveau
Processus de travail
Programme ABAP
Application
Serveur
Niveau
Base de
données

SAP AG 1999

Ce graphique peut être simplifié pour la plupart des sujets discutés pendant le cours. L'interaction entre les programmes ABAP et leurs utilisateurs sera notre principal intérêt pendant ce cours. La compréhension de la conception d'un programme ABAP passe avant celle des processus exacts impliqués dans la répartition d'utilisateurs sur un serveur d'application. Nous allons donc travailler avec un graphique simplifié qui n'indique pas formellement le répartiteur et le processus de travail. Certaines diapositives seront, cependant, améliorées pour inclure ces détails lorsqu'ils s'appliquent à la programmation ABAP.

Les programmes ABAP sont traitées sur le serveur d'application. La conception de dialogues utilisateur et de dialogues base de données est dès lors de grande importance lors de l'écriture de programmes applicatifs.

Déroulement du programme : que voit l'utilisateur
Déroulement du programme : que voit l'utilisateur
Écran Écran de sélection Liste Temps SAP AG 1999 Boîte noire
Écran
Écran de sélection
Liste
Temps
SAP AG 1999
Boîte noire

L'utilisateur s'intéresse principalement à la façon dont l'opération se déroule et dont les données peuvent être introduites et affichées depuis l'opération. Les détails techniques, comme savoir si un seul programme est exécuté ou si de multiples programmes sont appelés de manière implicite, ou les différences techniques entre les types d'écran affichés, sont généralement moins importants pour l'utilisateur. L'utilisateur ne doit pas nécessairement connaître le déroulement précis du programme ABAP sur le serveur d'application. Le système R/3 comme les serveurs d'application et la base de données sont représentés par une boîte noire pour l'utilisateur.

Il existe, cependant, trois types d'écran techniquement distincts (écrans, écrans de sélection, et listes) qui offrent différents services à l'utilisateur. Le travail du développeur est de déterminer quel type de dialogue utilisateur convient le mieux aux besoins de l'utilisateur.

Interaction entre les niveaux du serveur Lancement Programme ABAP du programme Bloc de traitement ABAP
Interaction entre les niveaux du serveur
Lancement
Programme ABAP
du programme
Bloc de
traitement
ABAP
Table de
base de
données
Bloc de
traitement
ABAP
Runtime system ABAP
SAP AG 1999

Lorsque l'utilisateur exécute une action utilisateur (en choisissant, par exemple, Entrée, une touche de fonction, une fonction du menu ou un bouton de commande), le contrôle passe du serveur de présentation au serveur d'application et certaines parties du programme ABAP sont exécutées. Si un dialogue utilisateur supplémentaire est lancé lors du programme ABAP, le système envoie un écran au serveur de présentation et le contrôle est à nouveau transféré au serveur de présentation.

Synthèse
Synthèse
Synthèse dans dans quels quels chapitres chapitres ? ? SAP AG 1999
Synthèse dans dans quels quels chapitres chapitres ? ? SAP AG 1999
Synthèse dans dans quels quels chapitres chapitres ? ? SAP AG 1999
Synthèse dans dans quels quels chapitres chapitres ? ? SAP AG 1999

dans dans quels quels chapitres chapitres ? ?

SAP AG 1999

Dans cette partie du chapitre, l'utilisateur a choisi de lancer un programme là où un identificateur de compagnie aérienne peut être introduit sur l'écran de sélection initial. Le programme utilise par la suite ces informations pour retrouver le "nom complet de la compagnie aérienne" et la "devise locale de la compagnie aérienne" dans la base de données et les affiche sous forme de liste pour l'utilisateur.

Programme type 1 : lancement du programme
Programme type 1 : lancement du programme
Lancement du programme SAP AG 1999 Temps
Lancement
du programme
SAP AG 1999
Temps
1 : lancement du programme Lancement du programme SAP AG 1999 Temps Repository Table de base

Repository

Table de

base de

données

Repository Table de base de données

Chaque fois qu'un utilisateur se connecte au système, un écran s'affiche. À partir de cet écran, l'utilisateur peut démarrer un programme en utilisant son chemin de menus.

Le système charge le contexte du programme Lancement Programme ABAP Repository du programme Écran de
Le système charge le contexte du programme
Lancement
Programme ABAP
Repository
du programme
Écran de sélection
Objets de données
Table de
base de
données
Bloc de
traitement
ABAP
Runtime system ABAP
Temps
SAP AG 1999

Si l'utilisateur a lancé un programme avec une action utilisateur, le contexte du programme est alors chargé sur le serveur d'application. Le contexte du programme contient des zones de mémoire pour les variables et les objets de données complexes, les informations d'écrans pour dialogues utilisateur et les blocs de traitement ABAP. Le runtime system reçoit les informations de programme du Repository, qui représente une partie spécifique de la base de données.

Le programme type a un écran de sélection comme dialogue utilisateur, une variable et une structure comme objets de données et un bloc de traitement ABAP. La liste utilisée pour afficher les données est créée de manière dynamique au moment de l'exécution.

Le déroulement ultérieur du programme est contrôlé par le runtime system ABAP.

Le runtime system envoie l'écran de sélection
Le runtime system envoie l'écran de sélection
Lancement Programme ABAP du programme Objets de données Bloc de traitement ABAP Runtime system ABAP
Lancement
Programme ABAP
du programme
Objets de données
Bloc de
traitement
ABAP
Runtime system ABAP
SAP AG 1999
Temps
Objets de données Bloc de traitement ABAP Runtime system ABAP SAP AG 1999 Temps Table de

Table de

base de

données

Table de base de données

Comme le programme contient un écran de sélection, le runtime system ABAP l'envoie au serveur de présentation au début du traitement du programme. Le serveur de présentation contrôle le déroulement du programme aussi longtemps que l'utilisateur remplit les zones de saisie.

Les écrans de sélection permettent aux utilisateurs d'entrer des critères de sélection requis par le programme.

Saisies d'écran de sélection insérées dans des objets de données
Saisies d'écran de sélection insérées dans des
objets de données
Lancement Programme ABAP du programme Objets de données Bloc de traitement ABAP Runtime system ABAP
Lancement
Programme ABAP
du programme
Objets de données
Bloc de
traitement
ABAP
Runtime system ABAP
SAP AG 1999
Temps
Objets de données Bloc de traitement ABAP Runtime system ABAP SAP AG 1999 Temps Table de

Table de

base de

données

Table de base de données

Dès que l'utilisateur a terminé d'introduire des données dans l'écran de sélection, il ou elle peut lancer un traitement supplémentaire en sélectionnant "Exécuter". Chaque saisie de données de l'écran de sélection est automatiquement placée dans son objet de données correspondant du programme et le runtime system ABAP reprend le contrôle du traitement. Notre programme type contient un seul bloc de traitement ABAP. Le runtime system déclenche un traitement séquentiel de ce bloc de traitement ABAP.

Si les entrées effectuées par l'utilisateur ne possèdent pas le type correct, un message d'erreur apparaît alors automatiquement. L'utilisateur doit corriger ses entrées.

Le programme demande un enregistrement de données de la base de données Lancement Programme ABAP
Le programme demande un enregistrement de
données de la base de données
Lancement
Programme ABAP
du programme
Objets de données
Table de
base de
données
Bloc de
traitement
ABAP
Runtime system ABAP
SAP AG 1999
Temps

Le bloc de traitement ABAP possède un accès à la base de données en mode lecture qui y a été programmé. Le programme transmet également à la base de données les informations indiquant à quel tableau de la base de données elle doit accéder et quelle ligne du tableau elle doit lire.

La base de données renvoie un enregistrement de données au programme Lancement Programme ABAP du
La base de données renvoie un enregistrement de
données au programme
Lancement
Programme ABAP
du programme
Objets de données
Table de
base de
données
Bloc de
traitement
ABAP
Runtime system ABAP
SAP AG 1999
Temps

La base de données renvoie au programme l'enregistrement de données demandé et le runtime system s'assure que ces données sont stockées dans les objets de données appropriés. Normalement, une structure est la zone cible pendant l'accès à un enregistrement individuel. La structure contient des variables pour toutes les zones requises par la base de données.

Le runtime system envoie une liste Lancement Programme ABAP du programme Objets de données Table
Le runtime system envoie une liste
Lancement
Programme ABAP
du programme
Objets de données
Table de
base de
données
Bloc de
traitement
ABAP
Runtime system ABAP
SAP AG 1999
Temps

La structure d'affichage de la liste suivante a aussi été programmée dans le bloc de traitement. Une fois tous les traitements effectués, le runtime system envoie l'écran de synthèse au serveur de présentation.

Synthèse
Synthèse
Synthèse et et dans dans quels quels chapitres chapitres ? ? SAP AG 1999
Synthèse et et dans dans quels quels chapitres chapitres ? ? SAP AG 1999
Synthèse et et dans dans quels quels chapitres chapitres ? ? SAP AG 1999
Synthèse et et dans dans quels quels chapitres chapitres ? ? SAP AG 1999

et et dans dans quels quels chapitres chapitres ? ?

SAP AG 1999

Dans cette partie du chapitre, l'utilisateur lance un deuxième programme type là où un identificateur de compagnie aérienne peut être introduit sur l'écran de sélection initial. Ce programme utilise par la suite ces saisies d'information sur l'écran de sélection pour retrouver le "nom complet de la compagnie aérienne" et la "devise locale de la compagnie aérienne" dans la base de données et les afficher sur un écran pour l'utilisateur.

Programme type 2 : lancement du programme Programme ABAP Lancement Objets de données Repository du
Programme type 2 : lancement du programme
Programme ABAP
Lancement
Objets de données
Repository
du programme
Table de
base de
données
Écran
Bloc de
traitement
ABAP
Runtime system ABAP
SAP AG 1999
Temps

Lorsque l'utilisateur lance le programme, le contexte du programme est d'abord chargé. Pourtant, notre programme type comporte cette fois trois blocs de traitement, un écran de sélection, un écran, et une variable et deux structures pour objets de données.

Le runtime system ABAP envoie un écran
Le runtime system ABAP envoie un écran
Lancement Programme ABAP Objets de données du programme Écran Bloc de traitement ABAP Runtime system
Lancement
Programme ABAP
Objets de données
du programme
Écran
Bloc de
traitement
ABAP
Runtime system ABAP
SAP AG 1999
Temps
du programme Écran Bloc de traitement ABAP Runtime system ABAP SAP AG 1999 Temps Table de

Table de

base de

données

Table de base de données

Comme le programme contient un écran de sélection, le runtime system ABAP l'envoie au serveur de présentation au début du traitement du programme.

L'utilisateur quitte l'écran de sélection
L'utilisateur quitte l'écran de sélection
Lancement Programme ABAP Objets de données du programme Écran Bloc de traitement ABAP Runtime system
Lancement
Programme ABAP
Objets de données
du programme
Écran
Bloc de
traitement
ABAP
Runtime system ABAP
SAP AG 1999
Temps
du programme Écran Bloc de traitement ABAP Runtime system ABAP SAP AG 1999 Temps Table de

Table de

base de

données

Table de base de données

Dès que l'utilisateur a terminé d'introduire des données dans l'écran de sélection, il ou elle peut lancer un traitement supplémentaire en sélectionnant "Exécuter". Chaque saisie de données de l'écran de sélection est alors automatiquement placée dans son objet de données correspondant du programme et le runtime system ABAP reprend le contrôle du traitement. Le runtime system lance alors un traitement séquentiel du bloc de traitement ABAP qui suit l'écran de sélection.

Le programme demande un enregistrement de données à la base de données Lancement Programme ABAP
Le programme demande un enregistrement de
données à la base de données
Lancement
Programme ABAP
Objets de données
du programme
Table de
base de
données
Écran
Bloc de
traitement
ABAP
Runtime system ABAP
SAP AG 1999
Temps

Le bloc de traitement ABAP possède un accès à la base de données en mode lecture qui y a été programmé. Le programme transmet également à la base de données les informations indiquant à quel tableau de la base de données elle doit accéder et quelle ligne du tableau elle doit lire.

La base de données renvoie l'enregistrement de données Lancement Programme ABAP Objets de données du
La base de données renvoie l'enregistrement de données
Lancement
Programme ABAP
Objets de données
du programme
Table de
base de
données
Écran
Bloc de
traitement
ABAP
Runtime system ABAP
SAP AG 1999
Temps

La base de données renvoie au programme l'enregistrement de données demandé et le runtime system s'assure que ces données sont stockées dans les objets de données appropriés. Normalement, une structure est la zone cible pendant l'accès à un enregistrement individuel. La structure contient des variables pour toutes les zones requises par la base de données.

Le programme appelle l'écran
Le programme appelle l'écran
Lancement Programme ABAP Objets de données du programme Table de base de données Écran Bloc
Lancement
Programme ABAP
Objets de données
du programme
Table de
base de
données
Écran
Bloc de
traitement
ABAP
Process
Before
Output
Runtime system ABAP
SAP AG 1999
Temps

À ce stade, le bloc de traitement ABAP lance le traitement de l'écran. Cette étape est souvent exprimée simplement par "Le programme appelle l'écran". Cependant, en réalité, chaque écran possède son propre bloc de traitement qui est traité de manière séquentielle avant que le runtime system envoie l'écran au serveur de présentation (Process Before Output). Ceci permet d'utiliser l'écran de manière très flexible.

Le runtime system ABAP envoie l'écran de sélection Lancement Programme ABAP Objets de données du
Le runtime system ABAP envoie l'écran de sélection
Lancement
Programme ABAP
Objets de données
du programme
Table de
base de
données
Écran
Bloc de
traitement
ABAP
Process
Before
Output
Runtime system ABAP
SAP AG 1999
Temps

Une fois le bloc de traitement de l'écran traité, le runtime system ABAP envoie l'écran au serveur de présentation. Pendant ce traitement, les données sont transportées vers les zones de l'écran depuis une structure qui sert d'interface à l'écran.

L'utilisateur exécute une action utilisateur Lancement Programme ABAP Objets de données du programme Table de
L'utilisateur exécute une action utilisateur
Lancement
Programme ABAP
Objets de données
du programme
Table de
base de
données
Écran
Bloc de
traitement
ABAP
Process
Before
Output
Process
After
Input
Runtime system ABAP
SAP AG 1999
Temps

Dès que l'utilisateur exécute une action utilisateur (en sélectionnant par exemple Entrée, une touche de fonction, une fonction de menus ou un bouton de commande), le contrôle est repris par le système de durée d'exécution du serveur d'application. Les zones de dynpro sont transportées vers la structure qui sert d'interface à l'écran et un bloc de traitement spécial appartenant à l'écran est lancé. Ce bloc de traitement est toujours traité immédiatemment après une action utilisateur (Process After Input).

Le traitement du bloc de traitement ABAP recommence
Le traitement du bloc de traitement ABAP recommence
Lancement Programme ABAP Objets de données du programme Table de base de données Écran Bloc
Lancement
Programme ABAP
Objets de données
du programme
Table de
base de
données
Écran
Bloc de
traitement
ABAP
Process
Before
Output
Process
After
Input
Runtime system ABAP
SAP AG 1999
Temps

Une fois que le bloc de traitement "Process After Input" traité, le programme type continue de traiter le bloc de traitement ABAP qui appelait en premier lieu l'écran.

Synthèse
Synthèse
Synthèse et et dans dans quels quels chapitres chapitres ? ? SAP AG 1999
Synthèse et et dans dans quels quels chapitres chapitres ? ? SAP AG 1999
Synthèse et et dans dans quels quels chapitres chapitres ? ? SAP AG 1999
Synthèse et et dans dans quels quels chapitres chapitres ? ? SAP AG 1999

et et dans dans quels quels chapitres chapitres ? ?

SAP AG 1999

Table des matières
Table des matières

Chapitre 1

Introduction

Chapitre 2

Déroulement du programme dans un programme ABAP

Chapitre 3

Introduction à ABAP Workbench

Chapitre 4

Instructions et déclarations de données ABAP

Chapitre 5

Dialogues base de données I

(lecture à partir de la base de données)

Chapitre 6

Modularisation interne du programme

Chapitre 7

Dialogues utilisateur : liste

Chapitre 8

Dialogues utilisateur : écran de sélection

Chapitre 9

Dialogues utilisateur : écran

Chapitre 10 Interfaces

SAP AG 1999

Table des matières
Table des matières

Chapitre 11

Réutiliser les composantes

Chapitre 12

Dialogues base de données II (Modifier la base de données)

Chapitre 13

Logistique logicielle et comparaison logicielle

Exercices

Solutions

Annexes

SAP AG 1999

Introduction à ABAP Workbench
Introduction à ABAP Workbench

Contenu :

Repository et Workbench

Analyse d'un programme existant

Premier projet : adapter une copie d'un programme existant pour remplir des besoins spécifiques

SAP AG 1999

Introduction à ABAP Workbench : objectifs
Introduction à ABAP Workbench : objectifs
Introduction à ABAP Workbench : objectifs SAP AG 1999 À la fin de ce chapitre, vous

SAP AG 1999

À la fin de ce chapitre, vous serez en mesure :

d'utiliser les différents types de navigation disponibles d'ABAP Workbench pour analyser un programme existant

d'apporter de simples modifications aux dialogues utilisateur d'un programme existant en utilisant les outils Éditeur et Screen Painter ABAP

Synthèse : Introduction à ABAP Workbench
Synthèse : Introduction à ABAP Workbench
Synthèse : Introduction à ABAP Workbench SAP AG 1999
Synthèse : Introduction à ABAP Workbench SAP AG 1999
Synthèse : Introduction à ABAP Workbench SAP AG 1999
Synthèse : Introduction à ABAP Workbench SAP AG 1999

SAP AG 1999

Repository R/3
Repository R/3
Présentation Serveur Niveau Application Programme ABAP Serveur Niveau Indépendant du mandant Dépendant du
Présentation
Serveur
Niveau
Application
Programme ABAP
Serveur
Niveau
Indépendant du mandant
Dépendant du mandant
Base de
Repository
données
Tables de customizing
Tables applicatives

SAP AG 1999

La base de données, comme le Repository, contient des tables de customizing et des tables applicatives qui sont généralement dépendant mandant.

Le Repository contient tous les objets de développement, par exemple, des programmes, des définitions de tables de base de données et de types globaux. Les objets de développement sont par conséquent aussi connus comme objets du Repository. Les objets du Repository ne sont pas

dépendant mandant

Vous pouvez donc les visualiser et les utiliser pour tout mandant.

Structure du Repository
Structure du Repository
FI HR MM SD WM Cust.
FI
HR
MM
SD
WM
Cust.
Modules de fonction Programmes
Modules de fonction
Programmes

SAP AG 1999

Tables

par BC400-00

MM M M
MM M
M

Classes de développement

.

.

.

Tous les objets de développement créés avec les outils de développement de ABAP Workbench sont classés comme objets du repository et sont stockés de manière centrale dans le Repository R/3

Le Repository R/3 est une partie spéciale de la base de données centrale du système SAP.

Le Repository s'organise selon l'application. Chaque application est encore subdivisée de façon logique en classes de développement.

Les objets du Repository sont souvent composés de sous-objets qui sont eux-mêmes des objets du Repository.

Chaque objet du Repository doit être affecté à une classe de développement lors de sa création.

Vous pouvez utiliser le système d'information du Repository pour chercher des objets du Repository selon plusieurs critères.

Hiérarchie des applications SAP
Hiérarchie des applications SAP

SAP

Hiérarchie des applications SAP SAP + + + + + + Hiérarchie des applications CA AC
Hiérarchie des applications SAP SAP + + + + + + Hiérarchie des applications CA AC
Hiérarchie des applications SAP SAP + + + + + + Hiérarchie des applications CA AC
Hiérarchie des applications SAP SAP + + + + + + Hiérarchie des applications CA AC
Hiérarchie des applications SAP SAP + + + + + + Hiérarchie des applications CA AC

+

+

+

+

+

+

Hiérarchie des applications

CA AC FI Composantes inter-applications Gestion comptable - Généralités Comptabilité financière Comptabilité
CA
AC
FI
Composantes inter-applications
Gestion comptable - Généralités
Comptabilité financière
Comptabilité financière 'système de base' FBAS
+
FI-GL
+
FI-LC
Gestion comptable grand livre
Consolidation
TR
CO
Trésorerie
Contrôle de gestion

Composantes applicativesClasse de développement Sous-arbre sélectionné

Classe de développementComposantes applicatives Sous-arbre sélectionné

Sous-arbre sélectionnéComposantes applicatives Classe de développement

Système d'information

SAP AG 1999

Vous pouvez visualiser la structure du Repository dans la hiérarchie des applications. Vous pouvez naviguer vers la hiérarchie des applications à partir de l'écran initial en utilisant Outils-> ABAP Workbench -> Synthèse-> Hiérarchie des applications. (Transaction SE81).

Les composantes applicatives sont affichées selon une arborescence de la hiérarchie des applications. En développant une composante, vous affichez toutes les classes de développement qui sont affectées à cette composante.

Vous pouvez sélectionner un sous-arbre et naviguer à partir de la hiérarchie des applications vers le système d'information du Repository. Le système collecte ensuite toutes les classes de développement pour le sous-arbre sélectionné et les transfère vers le système d'information.

Système d'information du Repository
Système d'information du Repository
Système d'information du Repository Business Engineering Dictionnaire ABAP Objets de base Tables de base de
Système d'information du Repository
Business Engineering
Dictionnaire ABAP
Objets de base
Tables de base de données
Vues
Éléments de données
Structures
Types de table
Autres objets
Zones
Programmation
Générateur de modules de fonction
Bibliothèque de programmes
Environnement de programme
Sous-objets du programme
Objets ABAP
Bibliothèque de classes
Composantes de classes
Composantes d'interfaces
Envir.

SAP AG 1999

Vous pouvez utiliser le système d'information du Repository pour chercher des objets spécifiques du Repository. Des critères de recherche sont disponibles pour les différents types d'objets du Repository.

Vous pouvez naviguer vers le système d'information du Repository en utilisant

Le bouton de commande Système d'information dans la hiérarchie des applications

Le chemin de menus Outils -> ABAP Workbench -> Synthèse-> Système d'information

Transaction SE84 dans la zone de commande.

Outils de ABAP Workbench
Outils de ABAP Workbench
DDébogueurébogueur ScreenScreen PainterPainter Object MenuMenu PainterPainter FI HR MM Navigator SD WM MM
DDébogueurébogueur
ScreenScreen PainterPainter
Object
MenuMenu PainterPainter
FI
HR
MM Navigator
SD
WM
MM
DictionnaireDictionnaire
Cust.
ABAPABAP
ÉditeurÉditeur ABAPABAP
GGénénérateurérateur dede
modulesmodules dede
fonctionfonction
GGénénérateurérateur dede classesclasses
SAP AG 1999

ABAP Workbench contient différents outils pour le traitement d'objets du Repository. Ces outils vous fournissent une large gamme d'assistance qui couvre l'ensemble du cycle de développement du logiciel. Les outils les plus importants à la création et à l'édition d'objets du Repository sont :

Éditeur ABAP pour l'écriture et l'édition du code de programme

Dictionnaire ABAP pour le traitement des définitions de tables de base de données et la récupération de types globaux

Menu Painter pour la conception d'interface utilisateur (barre de menus, barre d'outils standard, barre d'outils d'application, allocation des touches de fonction) (voir Interfaces)

Screen Painter pour la conception d'écrans (programmes dynamiques) de dialogues utilisateur

Générateur de modules de fonction pour l'affichage et le traitement de modules de fonction (routines avec des interfaces définis qui sont disponibles dans tout le système)

Générateur de classes pour l'affichage et le traitement des classes centrales

Il existe deux manières différentes d'utiliser ces outils :

Soit vous appelez chaque outil individuel et traitez les objets correspondants du Repository. Vous devez ensuite appeler l'outil suivant pour la série d'objets suivante

Soit vous travaillez avec Object Navigator: Cette transaction vous fournit une synthèse sous forme d'arborescence de tous les objets d'une classe de développement ou d'un programme.

Structure d'écran dans Object Navigator
Structure d'écran dans Object Navigator
Fermer navigateur Afficher liste d'objets Domaine pour l'affichage d'une liste d'objets sous la forme
Fermer navigateur
Afficher liste d'objets
Domaine pour l'affichage
d'une liste d'objets
sous la forme d'une
hiérarchie
Domaine pour l'affichage ou
le traitement d'un objet du Repository
Clic du bouton
droit de la souris
Menu
contextuel
Clic du bouton
droit de la souris
Menu contextuel
La taille du domaine d'affichage peut être changée
Clic du bouton droit de la souris Menu contextuel La taille du domaine d'affichage peut être

SAP AG 1999

L'écran d'Object Navigator est divisé en deux domaines :

Un domaine pour l'affichage d'une liste d'objets comme une hiérarchie

La fenêtre d'objets, dans laquelle les objets peuvent être affichés et traités.

Vous pouvez masquer le domaine de hiérarchie en utilisant le bouton de commande "Fermer navigateur".

Vous pouvez afficher la liste d'objets pour l'objet actuellement affiché dans la fenêtre d'objets en utilisant l'icône "Liste d'objets".

Vous pouvez séletionner des fonctions du menu contextuel dans les deux domaines d'écran. Vous pouvez uniquement sélectionner les fonctions qui correspondent à l'affichage ou le traitement de l'objet sur lequel le curseur est positionné. Cliquez sur le bouton droit de la souris pour afficher le menu contextuel. (Cliquez sur le bouton de gauche si vous avez paramétré votre souris pour les gauchers).

Fonctions de navigation du domaine de hiérarchie
Fonctions de navigation du domaine de hiérarchie
   

Hiérarchie

des applications développement

 
   

classe de développement

   

Classe de

Programme

Programme

 

Groupe de fonctions Classe Objets locaux

 

BC400

 
 
 
 
 
 
BC400

BC400

Types d'objets de programme Objets du dictionnaire Programmes Objets du dictionnaire Programmes

 

SAPBC400WBD_GETTING_STA

SAPBC400WBT_GETTING_STA

Favoris Ajouter

Ajouter

Groupes de fonctions 

 
 

BC400

Classes  Traiter

 

Traiter

 

CL_BC400

Programmes

 

Historique

SAP AG 1999

Liste d'objets précédenteCL_BC400 Programmes   Historique SAP AG 1999 Liste d'objets suivante Liste d'objets supérieure

Liste d'objets suivante  Historique SAP AG 1999 Liste d'objets précédente Liste d'objets supérieure Actualiser liste d'objets

Liste d'objets supérieure   Historique SAP AG 1999 Liste d'objets précédente Liste d'objets suivante Actualiser liste d'objets

Liste d'objets précédente Liste d'objets suivante Liste d'objets supérieure Actualiser liste d'objets

Actualiser liste d'objets  Historique SAP AG 1999 Liste d'objets précédente Liste d'objets suivante Liste d'objets supérieure

Les objets du Repository sont organisés dans la hiérarchie.

Chaque composante applicative consiste en de multiples classes de développement.

Chaque classe de développement peut contenir plusieurs types différents d'objets du Repository

:

programmes, groupes de fonctions, objets du dictionnaire ABAP,

Chaque objet du Repository peut comporter différents types d'objets :

Les programmes peuvent contenir des données globales, des types, des zones, des évènements,

Les groupes de fonctions peuvent contenir des données globales, des modules de fonction,

Vous pouvez introduire le type de la liste d'objets et le nom d'objets dans la partie supérieure du domaine de hiérarchie. La liste d'objets est ensuite affichée dans le domaine de hiérarchie.

Un double-clic sur un sous-objet de la liste d'objets affiche la liste d'objet pour l'objet sélectionné dans le domaine de hiérarchie.

Un double-clic sur un objet qui n'a pas de liste d'objets affiche cet objet dans la fenêtre d'objets.

Vous pouvez utiliser les icônes pour naviguer en historique ou en hiérarchie entre les listes d'objets.

Vous pouvez ajouter des listes d'objets que vous traitez fréquemment dans vos favoris.

Affichage des objets de programme dans la fenêtre d'objets
Affichage des objets de programme dans la fenêtre d'objets
SAPBC400WBT_GETTING_STARTED  

SAPBC400WBT_GETTING_STARTED

 
 

Types d'objets de programme

Structures du dictionnaire    Types d'objets de programme   SBC400_CARRIER   Éditeur Zones  

 

SBC400_CARRIER

 

Éditeur  SBC400_CARRIER  

Zones 

 
 

PA_CAR

 

Éditeur  PA_CAR  

WA_BC400

 

Événements 

 
 

START-OF-SELECTION

 

Éditeur  START-OF-SELECTION  

Écrans 

 
 

0100

Screen Painter  0100

1000

un

double-clic

sur un objet de programme existant

lance l'outil Workbench correspondant dans la fenêtre d'objets et vous amène à l'endroit correct de l'objet.

et vous amène à l'endroit correct de l'objet. SAP AG 1999 : si un objet l'objet

SAP AG 1999

: si un objet l'objet en

n'existe pas encore, vous créez

double-cliquant

sur son nom.

Vous pouvez utiliser le menu contextuel pour afficher des objets à partir d'une liste d'objets. Le système sélectionne alors automatiquement l'outil adéquat pour le traitement de l'objet sélectionné.

Si l'objet de la liste d'objets que vous souhaitez n'est pas disponible dans le système, vous pouvez le créer en double-cliquant. Ce qui s'appelle navigation forward.

Analyse d'un programme existant
Analyse d'un programme existant
Analyse d'un programme existant SAP AG 1999
Analyse d'un programme existant SAP AG 1999
Analyse d'un programme existant SAP AG 1999
Analyse d'un programme existant SAP AG 1999
Analyse d'un programme existant SAP AG 1999
Analyse d'un programme existant SAP AG 1999
Analyse d'un programme existant SAP AG 1999
Analyse d'un programme existant SAP AG 1999

SAP AG 1999

Déterminer le périmètre fonctionnel : exécuter un programme
Déterminer le périmètre fonctionnel : exécuter un
programme

Écran de sélection

Écran

Liste

Compagnie aérienne ID Compagnie AA American Airlines USD aérienne Nom Devise locale Système F1 Statut
Compagnie aérienne
ID
Compagnie
AA American Airlines USD
aérienne
Nom
Devise locale
Système
F1
Statut
Info techniques
Nom du programme
Nom d'écran
(= numéro de dynpro)
Nom de zone
Type de zone

SAP AG 1999

Il existe plusieurs manières de démarrer un programme :

Vous pouvez démarrer un programme à partir de la liste d'objets de Object Navigator en utilisant le menu contextuel ou en utilisant l'icône "Test".

Si le programme possède un code de transaction, vous pouvez également l'ajouter au menu. Vous cliquez alors sur l'option du menu avec la souris.

Vous pouvez ajouter des programmes à la liste des favoris sur l'écran initial. Les programmes peuvent également devenir disponibles en utilisant les groupes d'activités de l'écran initial. Vous sélectionnez ensuite le programme dans la hiérarchie de l'écran initial.

Vous pouvez déterminer le périmètre fonctionnel en exécutant le programme.

Quel que soit l'écran, vous pouvez accéder aux informations sur le nom du programme et le numéro d'écran en utilisant Système -> Statut. Un écran de sélection standard a le numéro d'écran 1000.

Vous pouvez accéder aux informations concernant le nom de zone et le type de zone de n'importe quelle zone de l'écran en utilisant F1 -> Info. techniques.

Vue statique des objets de programme : liste d'objets
Vue statique des objets de programme : liste d'objets
SAPBC400WBT_GETTING_STARTED

SAPBC400WBT_GETTING_STARTED

 

Types d'objets de programme

Structures du dictionnaire  Types d'objets de programme   SBC400_CARRIER Zones   PA_CAR WA_BC400

 

SBC400_CARRIER

Zonesprogramme Structures du dictionnaire   SBC400_CARRIER   PA_CAR WA_BC400 Événements  

 

PA_CAR

WA_BC400

Événementsdu dictionnaire   SBC400_CARRIER Zones   PA_CAR WA_BC400   START-OF-SELECTION Écrans   0100 1000

 

START-OF-SELECTION

Écransdu dictionnaire   SBC400_CARRIER Zones   PA_CAR WA_BC400 Événements   START-OF-SELECTION   0100 1000

 

0100

1000

SAP AG 1999

Vous pouvez afficher une synthèse des objets de programme en utilisant la liste d'objets du programme dans Object Navigator.

La hiérarchie ne montre que les types d'objets pour lesquels des objets existent.

Vous pouvez afficher les objets dans la liste secondaire de Object Navigator en doucle-cliquant ou en utilisant le menu contextuel.

Démarrage de programmes
Démarrage de programmes
SAPBC400WBT_GETTING_STARTED Clic sur le bouton droit Types d'objets de programme Structures du dictionnaire
SAPBC400WBT_GETTING_STARTED
Clic
sur
le bouton droit
Types d'objets de programme
Structures du dictionnaire
Zones
Exécuter
Traitement direct
PA_CAR
Débogage
WA_BC400
Événements
START-OF-SELECTION
Écrans
0100
1000
Includes

SAP AG 1999

Si vous démarrez un programme à partir de la liste d'objets de Object Navigator en utilisant le menu contextuel, vous avez deux options.

Choisir Exécuter -> Direct pour exécuter le programme directement.

Choisir Exécuter -> Débogage pour exécuter le programme en mode débogage.

Déterminer l'utilisation séquentielle d'objets de programme : mode débogage
Déterminer l'utilisation séquentielle d'objets de
programme : mode débogage
X SAP Débogueur ABAP Point de surveillance chwschws ❁❁❁❁❁❁❁❁ Zones Programme principal
X
SAP
Débogueur ABAP
Point de surveillance
chwschws
❁❁❁❁❁❁❁❁
Zones
Programme principal
ZJJ_KURS_000
Point d'arithmétique fixe
Pas à pas
ZJJ_FORMS
15
-
30
Code source de
SELECT SINGLE * FROM scarr
INTO CORRESPONDING FIELDS OF wa_sbc400
WHERE carrid = pa_car.
IF sy-subrc = 0.
MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier.
CALL SCREEN 100.
MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400.
Variante
1
-
4
Variante
wa_sbc400-carrid
LH
SY-SUBRC
0
SY-TABIX
0
SY-DBCNT
1
BIN (1) (000)
ds0025
INS

SAP AG 1999

Le démarrage du programme en mode débogage vous permet d'exécuter le programme ligne par ligne en utilisant l'icône "Pas à pas". Vous pouvez afficher jusqu'à huit variables. Afin de tracer les valeurs des variables, entrez les noms de zone dans la zone de saisie de gauche. Vous pouvez également voir cette entrée en double-cliquant sur le nom de zone du code affiché.

Points d'arrêt en mode débogage X SAP Débogueur ABAP Point de surveillance chwschws ❁❁❁❁❁❁❁❁
Points d'arrêt en mode débogage
X
SAP
Débogueur ABAP
Point de surveillance
chwschws
❁❁❁❁❁❁❁❁
Zones
Programme principal
ZJJ_KURS_000
Point d'arithmétique fixe
Continuer
ZJJ_FORMS
15
-
30
Code source de
SELECT SINGLE * FROM scarr
INTO CORRESPONDING FIELDS OF wa_sbc400
WHERE carrid = pa_car.
STOP
IF sy-subrc = 0.
MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier.
CALL SCREEN 100.
MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400.
-
Variante
1
4
Variante
wa_sbc400-carrid
LH
SY-SUBRC
0
SY-TABIX
0 SY-DBCNT
1
BIN (1) (000)
ds0025
INS
SAP AG 1999

Vous pouvez apposer un point d'arrêt en double-cliquant en face d'une ligne de code source en mode débogage. Si vous cliquez sur l'icône "Continuer", le programme sera exécuté jusqu'à l'endroit où le point d'arrêt suivant est défini.

Vous pouvez trouver des informations relatives aux points d'arrêt dans le chapitre Instructions et déclarations de données ABAP.

Syntaxe générale ABAP
Syntaxe générale ABAP
TABLESTABLES TABLES DATA DATADATA PARAMETERS PARAMETERSPARAMETERS
TABLESTABLES
TABLES
DATA
DATADATA
PARAMETERS PARAMETERSPARAMETERS

sbc400_carrier.

wa_sbc400 TYPE sbc400_carrier. pa_car TYPE scarr-carrid.

START-OF-SELECTIONSTART-OF-SELECTION START-OF-SELECTION. SELECT SELECTSELECT SINGLE * FROM scarr INTO CORRESPONDING
START-OF-SELECTIONSTART-OF-SELECTION START-OF-SELECTION.
SELECT SELECTSELECT
SINGLE * FROM scarr
INTO CORRESPONDING FIELDS OF wa_sbc400
WHERE carrid = pa_car.
IF IFIF
sy-subrc = 0.
MOVE-CORRESPONDINGMOVE-CORRESPONDING
MOVE-CORRESPONDING
wa_sbc400 TO sbc400_carrier.
CALLCALL CALL
SCREEN 100.
MOVE-CORRESPONDINGMOVE-CORRESPONDING MOVE-CORRESPONDING
sbc400_carrier TO wa_sbc400.
WRITEWRITE WRITE
wa_sbc400-carrid COLOR COL_KEY.
WRITEWRITE WRITE
wa_sbc400-carrname.
WRITEWRITE WRITE
wa_sbc400-currcode.
ENDIFENDIF ENDIF.

Options (dépendantes du mot-clé)WRITEWRITE WRITE wa_sbc400-currcode. ENDIFENDIF ENDIF. SAP AG 1999 Point (termine toutes les instructions ABAP)

SAP AG 1999

Point (termine toutes les instructions ABAP)

Les programmes ABAP sont composés d'instructions individuelles. Chaque instruction se termine par un point. Le premier terme de l'instruction est appelé un mot-clé. Les mots doivent toujours être séparés d'au moins un espace. Vous pouvez indenter les instructions. Les instructions peuvent occuper plus d'une ligne. Vous pouvez avoir de multiples instructions sur une seule ligne.

Commentaires et chaîne d'instructions
Commentaires et chaîne d'instructions

START-OF-SELECTION.

** ReadRead datadata recordrecord fromfrom databasedatabase tabletable SCARRSCARR

Commentaire

SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car.

IF sy-subrc = 0. MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier.

CALL SCREEN 100.

MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400.

"" ProcessProcess screenscreen 100100

Commentaire

WRITE:/WRITE:/ WRITE:
WRITE:/WRITE:/ WRITE:

ENDIF.

/ wa_sbc400-carrid COLOR COL_KEY, ,, wa_sbc400-carrname, ,, wa_sbc400-currcode.
/ wa_sbc400-carrid COLOR COL_KEY, ,,
wa_sbc400-carrname, ,,
wa_sbc400-currcode.

Chaîne d’instructions

SAP AG 1999

Des instructions consécutives comportant des mots-clés initiaux identiques peuvent être condensées dans une seule instruction en chaîne.

Dans des instructions en chaîne, la partie initiale de l'instruction contenant le mot-clé doit être suivie par un deux-points.

Les éléments individuels qui suivent le deux-points doivent toujours être séparés par des virgules.

Des espaces vides sont autorisés avant et après toute ponctuation (deux-points, virgules, points).

N'oubliez pas que le système continue de considérer les parties individuelles d'une instruction en chaîne comme des instructions complètes indépendantes l'une de l'autre.

Il existe deux manières d'insérer des commentaires dans un programme :

Un astérisque (*) dans la colonne 1 vous permet de désigner toute la ligne comme commentaire.

Les guillemets (") placés au milieu d'une ligne désignent le reste de la ligne comme commentaire.

Navigation dans l'Éditeur
Navigation dans l'Éditeur
Double-Clic Définition de table de base de données dans le dictionnaire ABAP Définition de structure
Double-Clic
Définition de table de base de données
dans le dictionnaire ABAP
Définition de structure
(ou de zone structurée)
Double-Clic
START-OF-SELECTION.
SELECT SINGLE * FROM
scarr scarrscarr
INTO CORRESPONDING FIELDS OF
WHERE carrid = pa_car.
wawa_sbc400_sbc400 wa_sbc400
IF sy-subrc = 0.
MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier.
CALL SCREEN
100100
100.
Double-Clic
MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400.
Définition d'écran
(dans Screen
Painter)
WRITE: / wa_sbc400-carrid COLOR COL_KEY,
STOP
wa_sbc400-carrname,
wa_sbc400-currcode.
ENDIF.

SAP AG 1999

Vous pouvez afficher des informations détaillées sur de simples objets dans l'Éditeur en double- cliquant :

Un double-clic sur le nom de la table de base de données affiche la définition d'une table de base de données en utilisant le dictionnaire ABAP dans la fenêtre d'objets de Object Navigator.

Un double-clic sur un nom de zone affiche la partie du code source du programme où l'objet de données est défini.

Un double-clic sur un numéro d'écran affiche l'écran en utilisant le Screen Painter dans la fenêtre d'objets de Object Navigator.

Utilisez la fonction Retour pour revenir sur l'affichage du code source du programme dans l'Éditeur.

Vous pouvez également mettre un point d'arrêt dans n'importe quelle ligne du code source dans l'Éditeur. Ensuite, démarrez le programme sans sélectionner le mode débogage. Le programme s'exécutera alors jusqu'à l'endroit où le point d'arrêt est défini. À cet endroit, le mode débogage est lancé.

Documentation mots-clés
Documentation mots-clés
Aide i Aide de l'Éditeur Synthèse ABAP Terme ABAP WRITE START-OF-SELECTION. Nouveautés ABAP SELECT SINGLE
Aide
i
Aide de l'Éditeur
Synthèse ABAP
Terme ABAP
WRITE
START-OF-SELECTION.
Nouveautés ABAP
SELECT SINGLE * FROM scarr ABAP Docu and Examples
INTO CORRESPONDING FIELDS OF wa_sbc400
WHERE carrid = pa_car.
IF sy-subrc = 0.
MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier.
CALL SCREEN 100.
MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400.
WRITEWRITE WRITE: / wa_sbc400-carrid COLOR COL_KEY,
wa_sbc400-carrname,
wa_sbc400-currcode.
F1
ENDIF.

Documentation mots-clés

SAP AG 1999

Plusieurs manières de naviguer dans la documentation mots-clés existent pour une instruction ABAP

:

Pressez F1 sur le mot-clé et affichez la documentation relative à l'instruction sur laquelle le curseur est positionné.

L'icône Information affiche une boîte de dialogue qui vous offre plusieurs vues de la documentation mots-clés.

Code source de programme type
Code source de programme type

TABLES sbc400_carrier.

TABLES sbc400_carrier. 1
1
1

DATA

wa_sbc400 TYPE sbc400_carrier.

PARAMETERS pa_car TYPE scarr-carrid.

START-OF-SELECTION. SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car.

START-OF-SELECTION. SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car. 2
2
2

IF sy-subrc = 0. MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier. CALL SCREEN 100. MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400.

= 0. MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier. CALL SCREEN 100. MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400. 3
3
3

WRITE: / wa_sbc400-carrid COLOR COL_KEY,

WRITE: / wa_sbc400-carrid COLOR COL_KEY,
 

wa_sbc400-carrname,

4
4

wa_sbc400-currcode.

ENDIF.

SAP AG 1999

Si vous désirez des informations plus précises sur des parties du code source, vous pouvez analyser le code source. Les diapositives suivantes expliquent les instructions les plus importantes du programme type.

Objets de données et écrans de sélection
Objets de données et écrans de sélection
TABLES TABLESTABLES sbc400_carrier. DATA DATADATA 1 PARAMETERS PARAMETERSPARAMETERS wa_sbc400 TYPE sbc400_carrier.
TABLES
TABLESTABLES
sbc400_carrier.
DATA
DATADATA
1
PARAMETERS PARAMETERSPARAMETERS
wa_sbc400 TYPE sbc400_carrier.
pa_car TYPE scarr-carrid.
Lorsque vous générez un programme en utilisant la fonction "Activer",
le système génère automatiquement un
écran de sélection d'un type de zone de saisie pa_car.

Lorsque vous exécutez un programme, toutes les variables nécessaires, structures, et écrans de sélection sont créés.

sbc400_carrier wa_sbc400 pa_car Programme ABAP Objets de données

sbc400_carrier

wa_sbc400

pa_car

Programme ABAP

Objets de données

SAP AG 1999

Il existe plusieurs instructions que vous pouvez utiliser pour définir des objets de données.

L'instruction TABLES se réfère toujours à un type global d'une structure plate qui est définie dans le dictionnaire ABAP. Le type de structure pour l'objet de données du programme est tiré du dictionnaire. Le nom de l'objet de données est identique au nom du type de structure. Ils sont généralement utilisés comme un interface à l'écran.

L'instruction DATA est généralement utilisée pour définir des objets de données locaux. Le type d'objets de données est spécifié en utilisant l'option TYPE.

L'instruction PARAMETERS définit non seulement un objet de données élémentaires, mais aussi une zone de saisie sur l'écran de sélection standard qui est traité lors du lancement du programme.

Lorsque vous activez un programme, une version de chargement interne est générée. Un écran de sélection est généré à partir de l'instruction PARAMETERS. Lorsque le programme démarre, les zones de mémoire deviennent disponibles pour les objets de données.

Vous trouverez des informations complémentaires sur les objets de données dans le chapitre intitulé Instructions et déclarations de données ABAP, ou dans la documentation mots-clés.

Dialogues de base de données 1 :
Dialogues de base de données 1 :
Programme ABAP Objets de données Table de papa_car_car base de données wawa_sbc400_sbc400 SCARR Bloc de
Programme ABAP
Objets de données
Table de
papa_car_car
base de
données
wawa_sbc400_sbc400
SCARR
Bloc de
traitement
ABAP
SELECTSELECT SELECT SINGLESINGLE SINGLE
*
FROM FROMFROM scarr scarrscarr
Système d'exécution ABAP
INTO CORRESPONDING FIELDS OF wa_sbc400
2
WHERE carrid = pa_car.
WHEREWHERE CARRIDCARRID == pa_carpa_car
IF sy-subrc = 0.

SAP AG 1999

L'instruction SELECT s'assure que les données se lisent à partir de la base de données. Afin de lire un enregistrement à partir d'une table de base de données, les informations suivantes doivent être transférées dans la base de données :

À partir de quelle table de base de données se lisent les données ? (clause FROM)

Combien de lignes se lisent ? L'option SINGLE indique qu'une seule ligne se lit.

Quelle ligne se lit ? La clause WHERE indique quelles colonnes de la table de base de données ont quelles valeurs. Pour une instruction SELECT SINGLE, la condition doit être formulée de sorte qu'une ligne soit spécifiée sans aucune ambiguité.

Dialogues de base de données 2 :
Dialogues de base de données 2 :
Programme ABAP Objets de données papa_car_car Table de base de données wawa_sbc400_sbc400 SCARR Bloc de
Programme ABAP
Objets de données
papa_car_car
Table de
base de
données
wawa_sbc400_sbc400
SCARR
Bloc de
traitement
ABAP
SELECT SINGLE * FROM scarr
INTO INTOINTO CORRESPONDING CORRESPONDINGCORRESPONDING FIELDS FIELDSFIELDS OF OFOF wa_sbc400 wa_sbc400wa_sbc400
2
WHERE carrid = pa_car.
IF sy-subrc = 0.

SAP AG 1999

Les données fournies par la base de données sont transformées en objets de données locales. La clause INTO spécifie les objets de données dans lesquels vous souhaitez copier les données. Dans cet exemple, les données sont copiées dans les composantes du même nom dans la structure

wa_sbc400.

Traitement des écrans Programme ABAP Objets de données sbc400_carriersbc400_carrier Bloc de traitement ABAP
Traitement des écrans
Programme ABAP
Objets de données
sbc400_carriersbc400_carrier
Bloc de traitement ABAP
CALLCALL SCREENSCREEN 100.100.
Process
3
Before
Output
Process
After
Input
Runtime system ABAP
SAP AG 1999
Temps

L'instruction CALL SCREEN appelle un écran.

Un écran doit être créé en utilisant l'outil Screen Painter.

Un écran est un objet du Repository indépendant, mais qui appartient au programme.

Vous pouvez définir des zones de saisie sur un écran qui se réfèrent au dictionnaire ABAP. Les écrans exécutent automatiquement des contrôles de cohérence sur toutes les saisies et fournissent tous les dialogues d'erreur qui s'avéreraient nécessaires. Par conséquent, les écrans ne sont pas que des simples modèles pour introduire des données ; ils sont en fait des programmes dynamiques (dynpros).

L'instruction TABLES déclare un objet de structure qui sert d'interface à l'écran.

Toutes les données

de cette structure s'insèrent automatiquement dans leurs zones d'écran correspondantes lorsque l'écran est appelé par l'instruction CALL SCREEN. Les données introduites par l'utilisateur à l'écran sont transférées vers leurs zones correspondantes du programme après chaque action utilisateur (après avoir choisi Saisir, par exemple).

Création de listes
Création de listes

START-OF-SELECTION. SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car.

IF sy-subrc = 0. MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier. CALL SCREEN 100. MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400.

SCREEN 100. MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400. WRITE WRITE WRITE: / wa_sbc400-carrid COLOR COL_KEY,

WRITEWRITE WRITE: / wa_sbc400-carrid COLOR COL_KEY,

wa_sbc400-carrname,

wa_sbc400-currcode.

ENDIF.

4
4

SAP AG 1999

ABAP contient des instructions (WRITE, SKIP, ULINE) qui vous permettent de créer une liste.

Les instructions WRITE affichent le contenu de zone, formaté selon leur type de données, sous forme de liste.

Des instructions WRITE consécutives affichent des données dans la même ligne d'édition. Les messages continuent sur la ligne suivante lorsque la première est remplie.

Vous pouvez placer une information de positionnement devant chaque information à éditer. Ceci vous permet de déterminer des passages à la page/ligne suivante (/), des longueurs d'édition (l) et des débuts de colonnes (p). Vous trouverez des informations complémentaires sur les options d'édition dans la documentation mots-clés sous WRITE.

L'édition de liste peut être affichée en couleurs.

La liste complète apparaît automatiquement à la fin du bloc de traitement.

Synthèse : Introduction à ABAP Workbench
Synthèse : Introduction à ABAP Workbench
Synthèse : Introduction à ABAP Workbench SAP AG 1999
Synthèse : Introduction à ABAP Workbench SAP AG 1999
Synthèse : Introduction à ABAP Workbench SAP AG 1999
Synthèse : Introduction à ABAP Workbench SAP AG 1999

SAP AG 1999

Premier projet :
Premier projet :
Programme source Compagnie aérienne ID LH LH Lufthansa DEM Compagnie Nom LUFTHANSA aérienne Devise locale
Programme source
Compagnie aérienne
ID
LH
LH Lufthansa DEM
Compagnie
Nom
LUFTHANSA
aérienne
Devise locale
DEM
Copie adaptée : Compagnie aérienne ID LH LH Lufthansa DEM Compagnie LH Nom LUFTHANSA aérienne
Copie adaptée :
Compagnie aérienne
ID
LH
LH Lufthansa DEM
Compagnie
LH
Nom
LUFTHANSA
aérienne
WALTERS
Devise locale
DEM
Utilisateur
WALTERS
SAP AG 1999

Le premier projet est d'étendre un programme existant. Comme aucune extension n'est autorisée dans le programme et que les modifications sont à éviter, la première étape est de copier le programme et ensuite de le modifier.

Vous devez allouer à un projet du système les modifications aux programmes existants, exactement comme vous le feriez pour créer des copies de programmes ou des nouveaux programmes. Par conséquent, les diapositives suivantes s'occupent d'abord de savoir comment un projet est représenté dans le système R/3.

Transporter des objets du Repository
Transporter des objets du Repository
Transporter des objets du Repository Ordre Ordre de de modification modification FI HR MM FI HR

OrdreOrdre dede

modificationmodification

du Repository Ordre Ordre de de modification modification FI HR MM FI HR MM SD WM
du Repository Ordre Ordre de de modification modification FI HR MM FI HR MM SD WM
du Repository Ordre Ordre de de modification modification FI HR MM FI HR MM SD WM
FI HR MM FI HR MM SD WM MM SD WM Cust. MM Cust.
FI
HR
MM
FI
HR
MM
SD
WM
MM
SD
WM
Cust.
MM
Cust.

Système de développement

Système de production

SAP AG 1999

Les projets sont toujours implémentés dans un système de développement et transportés ensuite vers le système suivant. Un critère décisif pour la combinaison de projets est d'aillleurs de savoir quels objets du Repository doivent être transportés ensemble en raison de leurs dépendances. Vous trouverez des informations complémentaires sur l'organisation d'un projet dans le chapitre intitulé Logistique logicielle et adaption logicielle.

Les objets du Repository sont automatiquement liés aux systèmes de correction et de transport lorsqu'ils sont affectés à une classe de développement transportable (pas $TMP).

Une fois le développement terminé, les objets du Repository sont transportés dans les systèmes de test ou systèmes de production au moyen de certains chemins prédéfinis.

L'outil Workbench Organizer (WBO) de ABAP Workbench organise toutes les tâches de développement appartenant aux objets du Repository.

Exemple de projet : cours BC400 Horaire : Lundi Mardi Mercredi Jeudi Vendredi Chef de
Exemple de projet : cours BC400
Horaire :
Lundi
Mardi
Mercredi
Jeudi
Vendredi
Chef de projet :
CARSON
Équipe :
CARSON
BC400-00
BC400-01
BC400-02
BC400-03

Activités des employés (ici : exercices)

SAP AG 1999

Fin du développement

Chaque projet requiert les informations suivantes :

Nom du chef de projet ?

Quel périmètre fonctionnel doit être couvert par l'objet ? Quels objets du Repository ont été modifiés ou créés ?

Quelle est la période du projet ?

Noms des participants au projet ?

À titre d'exemple, nous allons organiser le cours BC400 comme un projet.

Le professeur est le chef de projet.

Les programmes doivent être développés pour chaque sujet. (Il s'agit de programmes types du professeur et d'exercices de groupes d'exercices)

Ce projet doit être terminé vendredi à 15h.

Les noms d'utilisateur des participants (dans ce cas, des groupes d'exercices) sont BC400-XX.

Représentation du projet dans Workbench Organizer
Représentation du projet dans Workbench Organizer

Chef de projet :

CARSON

 

Équipe :

CARSON

 

BC400-00

BC400-01

BC400-02

BC400-03

  BC400-00 BC400-01 BC400-02 BC400-03 SAP AG 1999 Workbench Organizer : demandes Ordres de
  BC400-00 BC400-01 BC400-02 BC400-03 SAP AG 1999 Workbench Organizer : demandes Ordres de

SAP AG 1999

Workbench Organizer : demandes Ordres de modification de l'utilisateur BC400-00 Modifiable Chef de projet
Workbench Organizer : demandes
Ordres de modification de l'utilisateur BC400-00
Modifiable
Chef de projet
Transportable
Numéro de la modification
IT3K900051 CARSON
Numéro de membre d'équipe
IT3K900052 CARSON
IT3K900053 BC400-00
(affecté par le système)
(Tâche)
Source de rapport
ZBC400_00_FLIGHTLIST
Objets du
Repository
Programme ABAP
modifié ou créé
par BC400-00
IT3K900054 BC400-01
IT3K900055 BC400-02
IT3K900056 BC400-03
IT3K900057

Au début d'un projet de développement, le chef de projet doit créér un ordre de modification. Le chef de projet affecte tous les membres d'équipe du projet à l'ordre de modification. Le Workbench Organizer affecte un numéro de projet à l'ordre de modification (<sid>K9<nnnnn>. Exemple :

C11K900001). <sid>est le numéro de système.

Ensuite, le Workbench Organizer (WBO) crée une tâche pour chaque employé affecté à l'ordre de modification. Dorénavant, lorsqu'un employé alloue un objet du Repository à l'ordre de modification, l'objet du Repository sera automatiquement répertorié dans la tâche de l'employé. Dès lors, tous les objets du Repository sur lesquels un employé travaille pendant un programme de développement sont collectés dans son dossier tâche.

Lors de la modification d'un objet du Repository, un développeur l'affecte à l'ordre de modification. Contrairement aux divisions fonctionnelles logiques qui séparent les classes de développement, les ordres de modification sont liés au projet. Donc, bien qu'un programme appartienne toujours à une seule classe de développement, il peut, à différents moments, appartenir à des ordres de modification différents.

Compléter le processus de développement
Compléter le processus de développement
L'ordre est libéré Horaire : . . . Jeudi Vendredi Fin du développement Chef de
L'ordre est libéré
Horaire :
.
.
.
Jeudi
Vendredi
Fin du
développement
Chef de projet :
CARSON
Contrôle de qualité de
l'ensemble du projet
Documentation du projet
Équipe :
CARSON
BC400-00
BC400-01
BC400-02
BC400-03
Contrôle de qualité de tout le
Repository par BC400-00
Documentation de
la tâche complète
La tâche est libérée
SAP AG 1999
qualité de tout le Repository par BC400-00 Documentation de la tâche complète La tâche est libérée

Lorsque le développement est terminé, le développeur effectue un dernier contrôle de qualité et libère la tâche. Les objets et les blocages d'objets sont transférés de la tâche vers l'ordre de modification. Cependant, tous les employés affectés à l'ordre de modification peuvent toujours modifier l'objet car le Workbench Organizer créera automatiquement une nouvelle tâche si cela s'avère nécessaire.

Lorsque le projet est terminé, le chef de projet vérifie la cohérence de l'ordre et le chef de projet effectue l'ordre de modification. Les blocages des objets de l'ordre sont libérés.

Les objets du Repository sont ensuite exportés vers le répertoire central des transports.

Les objets ne sont pas importés automatiquement dans le système cible. Par contre, l'administrateur système utilise le programme de contrôle du transport tp au niveau du système d'exploitation. Ensuite, le développeur vérifie le protocole d'importation.

Copie de programmes
Copie de programmes

Créer

Modifier

Afficher

Contrôler

Activer

Exécuter

Copier

Copier

SAP AG 1999

Info techniques

Info techniques

Info techniques
Info techniques

Programme source

SAPBC400WBT_GETTING_STARTED

 

Programme cible

ZBC400_00_GETTING_STARTED

Copier
Copier
Programme cible ZBC400_00_GETTING_STARTED Copier Infos techniques Source Éléments de texte
Infos techniques Source Éléments de texte Documentation Variantes Interfaces Écrans Includes Copier
Infos techniques
Source
Éléments de texte
Documentation
Variantes
Interfaces
Écrans
Includes
Copier
Ordres (Organizer)

Les noms de programme commençant par Y ou Z, ou par SAPMZ ou SAPMY, sont réservés aux développements clients. Vous pouvez également avoir un espace nom réservé aux développements clients. Vous trouverez des informations complémentaires sur les espaces noms clients pour plusieurs objets du Repository dans la bibliothèque SAP sous Composantes de base -> Sytème de transport et de modification (BC-CTS) -> Espaces noms BC et conventions de noms.

Vous pouvez copier un programme à partir de la liste d'objets d'une classe de développement ou un programme. À cette fin, placez simplement votre curseur sur le nom du programme que vous désirez copier et cliquez sur le bouton droit de la souris. Choisissez Copier. Le système affiche une boîte de dialogue dans laquelle vous pouvez introduire un nouveau nom pour votre copie. La confirmation de vos entrées en utilisant le bouton de commande adéquat de la barrre d'outils d'application permet au système d'afficher une boîte de dialogue dans laquelle vous pouvez sélectionner les sous-objets que vous désirez copier avec le programme. Donc, vous devez décider quels sous-objets vous désirez copier avec le programme AVANT de commencer la procédure de copie. Après la confirmation de ces entrées, le système affiche encore une autre boîte de dialogue dans laquelle vous pouvez sauvegarder des objets du Repository.

Si vous copiez un programme qui contient des includes, une autre boîte de dialogue est affichée avant celle-ci, dans laquelle vous pouvez choisir quels includes vous désirez copier et leur attribuer de nouveaux noms.

Sauvegarde de programmes
Sauvegarde de programmes
Créer une entrée du catalogue d'objets Objet R3TR PROG ZBC400_00_GETTING_STARTED Les nouveaux programmes
Créer une entrée du catalogue d'objets
Objet
R3TR
PROG
ZBC400_00_GETTING_STARTED
Les
nouveaux programmes
Attributs
doivent être affectés à
Classe de développement
ZBC400_00
une
classe de développement
Personne responsable
BC400-00
Système original
IT3
Langue originale
DE
Objet local

SAP AG 1999

Affectez le programme à une classe de développement, afin d'être en mesure de le sauvegarder. Votre nom est automatiquement entré dans le système comme personne responsable de la nouvelle copie du programme. Vérifiez si toutes les entrées sont correctes et ensuite choisissez Sauvegarder.

Affectation d'un ordre de modification Workbench Organizer : ordres transportables Source de rapport
Affectation d'un ordre de modification
Workbench Organizer : ordres transportables
Source de rapport
ZBC400_00_GETTING_STARTED
Ordre
IT3K900051
Ordre de modification transportable
Exercices pour les participants du cours BC400 en date
du 8 mai 2000
Workbench Organizer : ordres transportables
Mes ordres
Modifier des ordres impliquant l'utilisateur BC400-0
Double-clic
sur le numéro
de l'ordre
Modifiable
Transportable
IT3K900051 CARSON
IT3K900052 CARSON
IT3K900053 BC400-00
IT3K900054 BC400-01

SAP AG 1999

Tous les objets du Repository qui sont créés ou modifiés doivent être affectés à l'ordre de modification de leur projet correspondant. Pour ce cours de formation, le formateur a créé un ordre de modification pour le projet "Exercices pour les participants du cours BC400 du 8 mai 2000". Chaque groupe a sa tâche dans cet ordre de modification Affectez tous vos objets du Repository (classes de développement, programmes, etc.) à cet ordre de modification.

Vous pouvez afficher tous les ordres de modifications dans lesquels vous avez une tâche en utilisant le bouton de commande "Ordres propres".

Pour des informations complémentaires sur l'organisation du projet d'un point de vue de gestion de projet (y compris créer des tâches), référez-vous au chapitre sur la logistique logicielle.

Adaptatation des désignations
Adaptatation des désignations

Types d'objets du programme

des désignations Types d'objets du programme Double-clic Sélection d'objets Nom du programme

Double-clic

Sélection d'objets Nom du programme ZBC400_00_GETTING_STARTED Programme ABAP : attributs de programme Titres
Sélection d'objets
Nom du programme
ZBC400_00_GETTING_STARTED
Programme
ABAP : attributs de programme
Titres
Attributs
Adapter titre
Attributs
Modifier la langue
originale
en langue de travail

SAP AG 1999

Vous pouvez adapter les désignations (= titre) comme suit :

Double-cliquez sur les types d'objets de programme dans la liste d'objets d'Object Navigator.

Choisissez les attributs.

Cliquez sur l'icône "Modifier".

Si la langue originale du programme source n'est pas identique à la langue de travail, une boîte de dialogue apparaît pour vous demander si vous désirez modifier le titre dans la langue originale ou si vous désirez modifier la langue originale.

Vous pouvez désormais adapter le titre.

Le titre modifié apparaît sous forme de désignation à côté du nom du programme dans la liste d'objets d'Object Navigator.

Adaptation du code source
Adaptation du code source

START-OF-SELECTION. SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400 WHERE carrid = pa_car.

IF sy-subrc = 0. MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier. CALL SCREEN 100. MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400.

WRITE: / wa_sbc400-carrid COLOR COL_KEY,

wa_sbc400-carrname,

wa_sbc400-currcode.

ULINE. ULINE.

ULINE. ULINE. WRITE WRITE wa_sbc400-uname. wa_sbc400-uname.
WRITE WRITE wa_sbc400-uname. wa_sbc400-uname.

WRITE WRITE wa_sbc400-uname. wa_sbc400-uname.

ENDIF.

wa_sbc400-currcode. ULINE. ULINE. WRITE WRITE wa_sbc400-uname. wa_sbc400-uname. ENDIF. Contrôle de syntaxe

Contrôle de syntaxe

SAP AG 1999

Pour adapter le code source, naviguez dans l'Éditeur (menu contextuel).

Pour adapter la liste, ajoutez une instruction ULINE et une instruction WRITE. Vous trouverez des informations complémentaires sur ces instructions dans la documentation mots-clés.

Vous pouvez exécuter un contrôle de syntaxe après avoir modifié le code source.

Modification des écrans
Modification des écrans
ZBC400_00_GETTING_STARTED Types d'objets de programme Structures du dictionnaire Zones Événements Écrans 0100
ZBC400_00_GETTING_STARTED
Types d'objets de programme
Structures du dictionnaire
Zones
Événements
Écrans
0100
Clic sur le bouton droit
Modifier
1000
Mise en page
0100 Clic sur le bouton droit Modifier 1000 Mise en page Compagnie aérienne ID Nom Devise
Compagnie aérienne ID Nom Devise locale Utilisateur
Compagnie aérienne
ID
Nom
Devise locale
Utilisateur
Compagnie aérienne ID Nom Devise locale Utilisateur sbc400_carrier Zone de saisie et descripteur de zone SAP

sbc400_carrier

Zone de saisie et descripteur de zone

SAP AG 1999

Vous pouvez modifier un écran en utilisant le Screen Painter. Pour modifier la mise en page, utilisez d'abord le menu contextuel de l'écran dans la liste d'objets pour naviguer vers le Screen Painter et ensuite l'icône "Mise en page" pour naviguer vers l'éditeur graphique d'agencement d'écran.

Celui-ci contient une icône pour créer des zones de saisie/sortie se référant aux types globaux. Entrez un type de structure qui est défini dans le dictionnaire ABAP. Toutes les zones de ce type de structure sont affichées pour sélection. Vous ne pouvez pas sélectionner les zones qui sont déjà contenues dans l'écran. Ceci est indiqué par un petit cadenas à côté de la zone.

L'outil d'affichage et de gestion des types globaux est appelé le dictionnaire ABAP. Vous pouvez trouver des informations complémentaires sur les types globaux dans le chapitre Instructions et déclarations de données ABAP.

Sauvegarde et activation
Sauvegarde et activation

ContrContrôleôle dede syntaxesyntaxe ::

un bouton de commande vous permet

d'effectuer un contrôle de la syntaxe.

SauvegardeSauvegarde dede programmesprogrammes ::

enregistrement temporaire : le

code est enregistré dans le Repository et reste visible dans tout le système. Au moment de l'exécution, la version active est lancée.

ActivationActivation dudu programmeprogramme ::

le programme est visible dans tout

le système après l'activation et vous pouvez l'exécuter ultérieurement.

ContrContrôleôle dudu programmeprogramme étenduétendu ::

implique des vérifications

plus complètes et peut uniquement être exécuté avec des programmes déjà activés.

SAP AG 1999

Un contrôle de syntaxe lancé à partir de l'Éditeur se rattache au contenu actuel de l'Éditeur.

Dès que vous avez sauvegardé le programme, ce code source est visible dans tout le système. Vous pouvez utiliser le menu contextuel pour exécuter un contrôle de syntaxe qui englobe toutes les composantes du programme. Le lancement du programme à partir du menu contextuel de la liste d'objets s'assure que la version active est lancée.

Dès que vous avez activé le programme, la version active peut être exécutée dans tout le système.

Vous pouvez exécuter un contrôle de programme étendu pour des programmes activés en utilisant le menu contextuel ou l'option du menu. Ces contrôles sont considérablement plus étendus que le contrôle de syntaxe.

Introduction à ABAP Workbench : résumé du chapitre
Introduction à ABAP Workbench : résumé du chapitre
Introduction à ABAP Workbench : résumé du chapitre SAP AG 1999 Vous êtes maintenant capable :

SAP AG 1999

Vous êtes maintenant capable :

d'utiliser les différents types de navigation disponibles de ABAP Workbench pour analyser un programme existant

d'apporter de simples modifications aux dialogues utilisateur d'un programme existant en utilisant les outils Éditeur et Screen Painter ABAP

Exercices

Chapitre : ABAP Workbench Sujet : Analyser un programme Chapitre : ABAP Workbench

Chapitre : ABAP Workbench Sujet : Analyser un programme À la fin de ces exercices, vous

À la fin de ces exercices, vous serez en mesure :

d’utiliser les fonctions de navigation pour examiner la structure d’un programme

de navigation pour examiner la structure d’un programme Le programme SAPBC400WBT_GETTING_STARTED contient un écran

Le programme SAPBC400WBT_GETTING_STARTED contient un écran de sélection qui permet à l’utilisateur d’introduire le code d’une compagnie aérienne. Les coordonnées de la compagnie aérienne apparaissent ainsi à l’écran. Lorsque l’utilisateur appuie sur Enter, les données s’affichent sous forme de liste.

Naviguez à travers le code du programme et les autres composantes afin de comprendre la structure et le déroulement du programme.

Programme : de comprendre la structure et le déroulement du programme. SAPBC400WB T _GETTING_STARTED 1-1 Ouvrez une liste

SAPBC400WBT_GETTING_STARTED

1-1

Ouvrez une liste d’objets pour la classe de développement BC400. Trouvez le programme SAPBC400WBT_GETTING_STARTED, et ouvrez sa liste d’objets. Tout au long de l’exercice, assurez-vous que vous restez en mode affichage.

1-2

Exécutez le programme pour comprendre comment il fonctionne. Une zone de saisie apparaît sur l’écran de sélection.

1-2-1

Quelles informations devez-vous fournir au programme ? (Utilisez le bouton aide F1 pour la zone de saisie)

1-2-2

Quelles valeurs pouvez-vous introduire ? (Utilisez l’aide à la saisie F4)

1-2-3

Quelles informations le programme fournit-il ?

1-2-4

Quels types de dialogues utilisateur le programme contient-il ? Trouvez le numéro de l’écran de sélection et l’écran dynpro en sélectionnant Système Statut.

1-2-5

Quels sont les noms des zones de saisie sur l’écran de sélection et des zones de sortie sur l’écran ? Pour trouver les noms, utilisez le bouton d’aide F1 pour chaque zone et sélectionnez Infos techniques.

1-3

Utilisez la liste d’objets dans Object Navigator pour examiner le programme.

1-3-1

Quels objets de données trouvez-vous ? (Utilisez la liste d’objets du programme) Où sont-ils définis ? (Utilisez la navigation) Où sont-ils utilisés ? (Utilisez les cas d’emploi).

1-3-2

Quels objets de données du programme ABAP correspondent à la zone de saisie de l’écran de sélection ? (Cherchez dans la liste d’objets un objet de données comportant le même nom que la zone que vous avez découverte à l’étape 1-2-5.)

1-3-3

Quelles instructions traite l’écran ? (Regardez dans le code source ou utilisez un cas d’emploi pour le numéro d’écran.)

1-3-4

Naviguez jusqu’à l’écran, et ensuite jusqu’à la structure graphique.

Cliquez

 

sur une zone de sortie. Dans l’Éditeur d’agencement graphique, où apparaît le nom de zone que vous avez découvert à l’étape 1-2-5 ?

1-4

Naviguez jusqu’au code source du programme.

 

1-4-1

Quelle instruction forme la liste ? Ouvrez la documentation mots-clés pour cette instruction. Comment créez-vous un renvoi à la ligne automatique ?

1-4-2

Quelle instruction est responsable du dialogue base de données ? À partir de quelle table de la base de données se lisent les données ? Naviguez jusqu’à la définition de la table de base de données. Quels types de colonnes se trouvent dans la table ?

1-4-3

Une seule ligne est lue à partir de la table de base de données.

Dans quel

objet de données se trouve l’information indiquant quelle ligne doit être lue ? Quand se complète la variable comportant les informations sur la ligne à lire de la base de données ?

Chapitre : ABAP Workbench Sujet : Adapter un programme à des besoins spécifiques Sujet : Adapter un programme à des besoins spécifiques

Sujet : Adapter un programme à des besoins spécifiques À la fin de ces exercices, vous
Sujet : Adapter un programme à des besoins spécifiques À la fin de ces exercices, vous
Sujet : Adapter un programme à des besoins spécifiques À la fin de ces exercices, vous

À la fin de ces exercices, vous serez en mesure :

de copier des programmes et les modifier en utilisant l’Éditeur et Screen Painter ABAP ;

d’utiliser le contrôle de syntaxe pour identifier de simples erreurs.

Programme :

ZBC400_##_GETTING_STARTED

Modèle :

SAPBC400WBT_GETTING_STARTED

Solution modèle :

SAPBC400WBS_GETTING_STARTED

2-1

Copiez le programme SAPBC400WBT_GETTING_STARTED avec toutes ses composantes vers ZBC400_##_GETTING STARTED et affectez-le à votre classe de développement ZBC400_## et l'ordre de modification de votre projet, "BC400…". (## est votre numéro de groupe.)

2-2

Complétez le programme comme suit :

2-2-1

Ajoutez l’instruction 'ULINE.' au programme et effectuez un contrôle de syntaxe. Faites délibérément une erreur de syntaxe et utilisez le contrôle de syntaxe pour la retrouver. Activez le programme et redémarrez-le. Quelles sont les modifications ? Lancez le contrôle étendu du programme.

2-2-2

Modifiez le programme de sorte que des zones de saisie apparaissent à l’écran pour le nom d’utilisateur, l’heure et la date. Naviguez jusqu’au Screen Painter en double-cliquant sur le numéro d’écran. Ceci vous amène à la logique d’exécution de l’écran. Vérifiez que l’éditeur graphique est activé (Utilitaires Options). Lancez l’éditeur graphique en sélectionnant le bouton de commande adéquat de la barre d’outils d’application. Vérifiez que vous êtes en mode modification. Définissez les zones supplémentaires conformément au dictionnaire ABAP. Comme structure de référence, utilisez SBC400_CARRIER et sélectionnez les zones UNAME, UZEIT et DATUM. Activez l’écran.

2-3

Affichez les zones supplémentaires dans la liste. Utilisez l’instruction WRITE. Affichez les données sur une nouvelle ligne, séparée des autres zones par une ligne horizontale. À cet effet, utilisez les mots-clés ABAP SKIP et ULINE. Vérifiez les erreurs de syntaxe de votre programme, ensuite activez-le, et démarrez-le.

Solutions

Solutions Chapitre : ABAP Workbench Sujet : Analyser un programme 1-2 Analyse par l’exécution d’un programme

Chapitre : ABAP Workbench Sujet : Analyser un programme

1-2

Analyse par l’exécution d’un programme :

1-2-1

Vous devez ajouter le code d’une compagnie aérienne au programme. Ces informations peuvent être affichées à partir de la zone de saisie en utilisant

 

F1.

 

1-2-2

Les valeurs autorisées ici dépendent du contenu de la table de base de données SCARR. Vous pouvez afficher l’aide à la saisie depuis la zone de saisie en utilisant F4.

1-2-3

Le programme affiche des informations détaillées sur la compagnie aérienne sélectionnée. Ces informations s’affichent d’abord à l’écran et ensuite sous forme de liste.

1-2-4

Le programme contient un écran de sélection comportant le numéro de dynpro 1000, un écran numéro 100 et une liste.

1-2-5

Le nom de zone de la zone de saisie sur l’écran de sélection est pa_car et les noms des zones de sortie sur l’écran sont sbc400_carrier- carrid, sbc400_carrier-carrname et sbc400_carrier- currcode. Vous pouvez afficher les noms de zone en utilisant F1 Infos techniques, ensuite regardez la boîte portant l’intitulé Description de zone pour batch input.

1-3

Analyse avec la liste d’objets du programme.

 

1-3-1

Le programme a les structures sbc400_carrier et wa_sbc400, et l’objet de données élémentaire pa_car.

1-3-2

La variable pa_car appartient à la zone de saisie du même nom.

1-3-3

L’instruction CALL SCREEN 100 lance Dynpro 100.

1-3-4

Le nom de zone apparaît dans une zone de saisie au-dessus du domaine réservé à la structure d’écran.

1-4

 

1-4-1

La liste est structurée en utilisant l’instruction WRITE. Le symbole / placé après l’instruction WRITE crée un renvoi à la ligne automatique.

1-4-2

L’instruction SELECT est responsable du dialogue base de données. Les données se lisent à partir de la table de base de données SCARR. Le nom de la table de base de données est spécifié dans la clause FROM de l’instruction SELECT. La table de base de données a les zones MANDT, CARRID, CARRNAME, CURRCODE et URL.

1-4-3

Les informations sur la ligne à lire se trouvent dans l’objet de données pa_car. Il se trouve dans la clause WHERE de l’instruction SELECT. La

valeur de saisie de l’écran de sélection remplit automatiquement l’objet de données pa_car dès que l’utilisateur sélectionne la fonction Exécuter sur l’écran de sélection.

Chapitre : ABAP Workbench Sujet : Adapter un programme à des conditions exceptionnelles Solution modèle

Chapitre : ABAP Workbench

Sujet : Adapter un programme à des conditions exceptionnelles

Solution modèle SAPBC400WBS_GETTING_STARTED

*&--------------------------------------------------------------*

*

*& Report

*&--------------------------------------------------------------*

SAPBC400WBS_GETTING_STARTED

REPORT sapbc400wbs_getting_started

.

TABLES: sbc400_carrier.

DATA: wa_sbc400 TYPE sbc400_carrier.

PARAMETERS: pa_car TYPE scarr-carrid.

START-OF-SELECTION

* Sélectionner toutes les zones d’un enregistrement de données depuis la table de base de données SCARR.

SELECT SINGLE * FROM scarr INTO CORRESPONDING FIELDS OF wa_sbc400

WHERE carrid = pa_car.

* Au moins un enregistrement peut être sélectionné.

IF sy-subrc = 0.

* Copier des zones avec les noms correspondants.

MOVE-CORRESPONDING wa_sbc400 TO sbc400_carrier.

CALL SCREEN 100.

* Recopier les zones avec les noms correspondants.

MOVE-CORRESPONDING sbc400_carrier TO wa_sbc400.

* Éditer les données dans la liste.

WRITE: / wa_sbc400-carrid COLOR COL_KEY,

wa_sbc400-carrname,

wa_sbc400-currcode.

* Ajouter une ligne vide.

SKIP.

* Ajouter une ligne horizontale. ULINE.

* Éditer le nom de l'utilisateur, l'heure et la da