Title: Atelier technique BAPI
1Atelier techniqueBAPI
2Sommaire
- INTRODUCTION A LORIENTE OBJET
- SAP ET LORIENTE OBJET
- ACCES AUX BAPIS
- MODIFICATION ET CREATION DE BAPIS
- UTILISATION DES BAPIS
3Pourquoi les BAPIS
- Les BAPIs sont intégrées dans le Business
Framework, nouvelle architecture conçue dans le
but de rendre plus performante lintégration des
différentes composantes SAP ou extérieure - Les BAPIs sont issues de la technologie orienté
objet elles apportent modularité et souplesse à
lenvironnement SAP. - Les BAPIs visent Internet en donnant la
possibilité d interfacer des composantes de
gestion SAP ou dautres éditeurs entres elles. - Les BAPIs traitent des processus de gestion et
ouvre lALE à de nouvelles fonctionnalités.
4Pourquoi les BAPIS
- Des intégrations plus faciles
- Intégration dapplications externes à R/3,
- Autres interfaces frontales à un système R/3,
pour satisfaire les besoins dutilisateurs
occasionnels. Par exemple des macros pour
applications de bureautique (Microsoft Windows,
Excel ou Access). - Accès, basé sur le WEB, à un système R/3 par
lintermédiaire dInternet ou dIntranet.
5Introduction à lorienté objet
Généralités Objet de gestion Type dobjet et
Zones Clés Interface et Méthodes
6Généralités
Présentation des différents objets
- Objet de gestion
- Type dobjet
- Zones clés et instance
- Interfaces
- Méthodes
Lobjectif et le principal avantage de la
technologie orientée objet sont le caractère
réutilisable des logiciels.
7Objet de gestion
- Lobjet de gestion est la représentation dun
objet réel dans une application de gestion
telle que R/3. - Exemple salarié est un exemple dobjet de
gestion - Un objet de gestion est à comparer avec une
boîte noire qui encapsule des données et des
processus de gestion. - Pour le programmeur, les détails de la structure
ne sont pas à connaître. Seule la couche
dinterface est utilisée. -
8Objet de gestion - Structure
Lobjet de gestion est une modélisation dun
objet réel.
9Objet de gestion - Structure
- Les objets de gestions SAP sont constitués de
quatre couches - Le noyau contenant la logique applicative
fondamentale de gestion, cest-à-dire son
positionnement au sein de la hiérarchie des
objets. - La couche dintégrité, qui contient les
contraintes internes et les règles de gestion qui
sappliquent à lobjet. - La couche dinterface, qui contient les méthodes
(BAPI), les attributs et les événements E/S.
Cest linterface avec le monde extérieur. - La couche daccès proprement dite, basée sur les
standards DCOM/COM, COBRA et OpenDOC. Il sagit
des techniques permettant un accès externe aux
données de lobjet.réel.
10Type dobjet
- Le type d objet (ou classe) est le terme
générique pour désigner des objets du même type
avec les données correspondantes. - Lobjet de gestion est un type dobjet avec un
modèle de donnée (le modèle représente une entité
fonctionnelle). - Lobjet réel est une instance de lobjet de
gestion. - Exemples
- Lensemble des salariés forme une instance de
lobjet de gestion salarié - Le salarié Dupont portant le numéro de salarié
3237 forme également une instance de lobjet de
gestion salarié . - .
11Zones Clés
- Les zones clés permettent daccéder à une
instance spécifique dun type dobjet. - Exemple Le type d'objet Salarié et la zone
clé Numéro.salarié sont des exemples dun type
dobjet et d'une zone clé correspondante.
Remarque Il est possible daccéder aux données
de lobjet de gestion sans préciser la clé.
Linstance concerne lobjet de gestion et toutes
les données qui sy rattachent, par exemple la
liste des salariés.
12Attributs
Un attribut contient des données relatives à un
objet de gestion et décrit ainsi une propriété
dobjet particulière. Par exemple,
Nom.salarié est un attribut du type dobjet
Salarié .
13Interface
Linterface dun objet est constituée par un
ensemble de méthodes. Ces méthodes sont aussi
apparentées et associées à un type dobjet.
Pour un type dobjet, on peut lister toutes les
méthodes possibles.
14Interface
- Une méthode est une opération effectuée sur un
objet de gestion et qui donne accès aux données
de lobjet . - En dautres termes,
- Une méthode sapplique à une instance dun type
d objet, - Lexécution dune méthode permet daccéder aux
données de lobjet. De cette manière, on peut
contrôler, mettre à jour, créer des données.
15Interface et dépendance à linstance
- Une méthode est soit dépendante de linstance
soit indépendante de linstance selon quelle
est liée à la clé. - Si elle est dépendante de linstance , elle
sapplique à une instance spécifique du type
d objet. - Exemple Dans les méthodes pour créer ou accéder
à une commande d achat, la clé commande
d achat est dans les paramètres dentrées. - Si elle est indépendante de linstance ,
elle sapplique sur une instance globale sur le
type d objet. - Exemple La méthode pour lire les commandes
dachat sappuie sur toutes les commandes.
16Avantages de lorienté objet
- Meilleur compréhension pour lutilisateur. Le
fonctionnement interne des méthodes est
transparent au monde extérieur. - Sécurité accès protégé aux attributs d un
objet. - Évolution les objets sont réutilisables pour
construire d autres objets (propriété
d héritage).
- Terminologie
- La programmation orienté objet permet de créer
un nouveau type dobjet à partir des types
dobjets existants.Le nouveau type dobjet (sous
type) hérite des propriétés et méthodes. - Le polymorphisme est le terme utilisé pour
décrire les circonstances dans lesquelles la même
méthode déclenche différents types de
comportement dans divers types dobjets de
gestion.
17Récapitulatif
- Un objet de gestion est une modélisation dun
objet réel - Lobjet réel est une instance de lobjet de
gestion - Les objets de gestion sont composés des éléments
dinterfaces, de clés, dattributs, de méthodes. - Les méthodes dun objet de gestion sappliquent
sur une instance.
18Lorienté objet dans SAP
Généralités Historiques des BAPIs Avantages des
BAPIs Business Object Repository Business Object
Builder
19Lorienté objet dans SAP
- Dans SAP, les méthodes portent le nom de BAPIs,
Business Applications Program Interfaces. - Par exemple, dans SAP, le type d objet
Material inclut la fonctionnalité de contrôle
de disponibilité. - ? une BAPI appelé Material.Availability est la
méthode utilisée pour faire ce contrôle.
20Lorienté objet dans SAP
Un type dobjet tout comme une méthode a un
identifiant externe pour tout appel orienté objet
via OLE. Cet identifiant est une désignation
simple en anglais. Par exemple, Material pour
le type d objet Article . Cependant, le nom
technique dans SAP est différent. Par exemple
BUS1001 est le nom technique du type dobjet
Article .
Des règles de développement sont associées à ces
noms.
21Lorienté objet dans SAP
Dans SAP, les BAPIs sont actuellement mises en
œuvre sous la forme de modules fonctions.
Il est donc possible dexécuter une BAPI via le
BOR ou directement par le module fonction.
22Historique des BAPIs
- Les BAPIs sont apparues avec la version 3.1G.
- Elles deviennent intéressantes avec la version
4.0B. - De nouvelles BAPIs apparaissent de façon continue
principalement orientées autour dInternet.
23Avantage des BAPIs
- Une interface indépendante des langages
24Avantage des BAPIs
Conforme aux nouvelles normes de communication
COM/DCOM...)
25Avantage des BAPIs
- Les BAPIs deviennent une norme de communication
entre les systèmes de gestion. - Vous pouvez accéder aux objets de gestion SAP et
à leurs BAPIs en utilisant des technologies
d'interface orientées objet telles que - La technologie COM/DCOM (Component Object
Model/Distributed Component Object Model) de
Microsoft. - Les objets de gestion SAP sont déjà conformes aux
spécifications de lOpen Applications Group (OAG)
et, en relation avec - ObjectBridge de VisualEdge.
- Elles sont conformes aux directives CORBA (Common
Object Request Broker Architecture) de lObject
Management Group.
26Avantage des BAPIs
- Une stabilité
- SAP sengage à ne créer aucune régression sur les
BAPIs suite à une montée de version. - Des extensions sur les BAPIs peuvent avoir lieu
(ajout de paramètres facultatifs), mais sans
déstabiliser le fonctionnement dapplications
existantes.
27Business Object Repository
- Le Business Objet Repository, ou Navigateur BAPI
- Décrit tous les types dobjets de gestion et
leur méthodes - Constitue une interface pour les applications
clientes qui veulent créer des objets dexécution
dans SAP
28Business Object Repository
Outils -gt Business Framework -gt Browser
BAPI Transaction BAPI
29Business Object Repository
Le BOR permet de visualiser les méthodes et les
documentations associées d un type d objet.
30Exercice
Dans le navigateur BAPI Trouver le type dobjet
CompanyCode (Société) Sur linterface
associée Trouver quelles sont les zones clés ?
Combien y a-t-il de méthodes BAPIs ? Vérifier
que la méthode GetList est indépendante de
linstance. Quel est la dépendance de la méthode
GetPeriod ? Quels sont les paramètres de la
fonction GetDetail ? Dans quel paramètre se
trouve la zone COMP_CODE code société ? Quel
est le module fonction associé ?
31Business Object Builder
SAP fournit cet outil de définition des types
d objet. Chemin Outils -gt Business Framework
-gt Développement BAPI -gt Business Object Builder
(transaction SWO1) Le Business Object Builder
permet d accéder à la définition des types
d objets standards, de les modifier, les
afficher ou d en créer de nouveaux. D autres
fonctions existent telles que Contrôler ,
Tester , générer ou Cas d emploi .
32Business Object Builder
33Exercice
A partir du navigateur BAPI, afficher le type
dobjet CompagnyCode . Trouver le type
dobjet (nom technique) ainsi que le nom
technique de la méthode associée
GetDetail Indication En double cliquant, un
saut est réalisé vers le Business Object Builder
en affichage. Il existe un lien réciproque pour
passer de lun à lautre. A partir de
lassistant Business Object Builder , afficher
le type dobjet que vous avez trouvé ci
dessus. Retrouver la méthode GetDetail...
34Récapitulatif
- Trois assistants permettent de gérer les BAPIs
dans SAP - Le Business Object Repository
- Le Business Object Builder ou générateur
d objet - Le générateur de fonctions (Transaction se37)
35Accès aux BAPIs
Techniques dinterfaçage Accès par RFC Accès
orienté objet dans le BOR
36Techniques dinterfaçage
- Modes de communication
- CPI-C était le mode de communication qui assurait
la liaison de systèmes entre fonctions de bas
niveau. CPI-C est toujours utilisé pour les
communications R/2. - RFC simplifie la connexion CPI-C et est toujours
utilisé comme un simple moyen de transmission de
messages entre systèmes. - IDOC prend également en compte la technologie
RFC de transmission (entre autres) et est utilisé
dans le cadre d interface EDI (société à
société) et dans l ALE (communication entre
système d une société). - SAP Automation permet de faire communiquer
n importe qu elle application (Web, système de
téléphonie ) avec SAP. Il propose une interface
directe sur SAP et repose sur une programmation
directe du SAPGUI. SAP Automation 2 évolue et
propose un ensemble d assistants aux
développements. Il inclut en particulier le SAP
assistant et Transaction Component.
37Couche dapplication SAP R/3
RFC class Library est constitué d un ensemble
de classes C qui prennent en compte toutes les
fonctionnalité des API. Cette librairie
sinstalle lors de linstallation du Sapgui et
permet à nimporte quelle application externe
supportant le protocole RFC de communiquer avec
SAP.
38Les différents accès aux BAPIS
- Via le module fonction par RFC
-
- Directement dans le BOR (accès orienté objet)
39Les différents accès aux BAPIS
- Accès de manière synchrone en général
- A partir de la version 4.0, les BAPI peuvent
également être utilisées pour effectuer un
transfert de données asynchrone - dans le cadre de l'Application Link Enabling (ALE)
40Accès par RFC
Laccès à la BAPI est effectué en passant des
Remote Function Calls (RFC) au module fonction
sur lequel la BAPI est basée.
41Accès par RFC
- RFC est un protocole de communication basé sur
le protocole CPI-C. Il existe depuis la version
2.2. - RFC permet la communication synchrone entre deux
programmes un programme client appelle un
module fonction d une application serveur . - Pour passer un appel RFC, il faut spécifier les
informations d'interface appropriées - des paramètres d'import qui contiennent des
données à transférer du programme appelant à la
BAPI, - des paramètres d'export qui contiennent des
données à re transférer de la BAPI au programme
appelant - des tables dimport/export pour importer et
exporter des données. - Attention pas dexception ni de paramètres passés
par référence (changing). La gestion des erreurs
passe par des tables dédiées.
42Accès par RFC
Au moment de l'exécution, le programme applicatif
utilise la bibliothèque RFC pour passer l'appel
RFC.
43Exercice
Accès à une BAPI par RFC
A partir d un fichier Excel, appeler une BAPI
par RFC qui permet de ramener la liste des
clients. Aide Prendre le fichier Excel
fournit. Il existe une macro avec une trame.
Remplir ce qui manque.
44Exercice
Quelques instructions VB utiles
Set R3 CreateObject("SAP.Functions") permet de
créer un objet R3 (objet serveur) avec Nom de
l'application qui fournit l'objet Serveur
SAP type d'objet Functions Lancement
de la connexion If App.Logon(0, False) ltgt True
Then MsgBox "peut pas LOGON!." Exit Sub End
If Création de l objet fonction RFC_XXX Set
MyFunc R3.Add("RFC_XXX" )
45Exercice
Quelques instructions VB utiles
Appel de la fonction (méthode call) Result
MyFunc.call Récupération d un paramètre retour
de la fonction Set Customers MyFunc.Tables( "VBA
P") Où VBAP est le paramètre SAP d export de la
fonction.
46Accès orienté objet dans le BOR
Laccès à la BAPI seffectue dans le BOR. Cette
possibilité nexiste quà partir de certaines
plates-formes.
47Accès orienté objet dans le BOR
- Les BAPIs sont appelées
- A partir de plate-formes Windows 95 ou NT via OLE
Automation. - Cette technologie permet daccéder aux objets de
gestion SAP du BOR en appelant les BAPIs depuis
un programme externe (SAP en tant que serveur
OLE). - Au moment de l'exécution, lapplication cliente
accède aux objets de gestion SAP et à leurs BAPI
en adressant des ordres OLE Automation au BAPI
ActiveX Control (à partir de 3.1G). - A partir de plate-formes Windows 95 ou NT en
utilisant la bibliothèque de classes C.
48Accès orienté objet dans le BOR
- A partir de plate-formes avec une machine
virtuelle Java supportant le Java Developpement
Kit en utilisant la bibliothèque de classes Java - A partir de Visual Age dIBM
- A partir des environnements de développement
Delphi et Borland
49Object Linking and Embedding
Object Linking and Embedding (OLE) est une
technologie développée par Microsoft. A
lorigine OLE est un mécanisme permettant aux
applications de créer et de gérer des documents
contenant des données ou des objets de formats
différents. Exemples des enregistrements
sonores, des tableaux, du textes, des images
Lutilisateur a donc limpression de nutiliser
quune seule application. Par la suite,
Microsoft a standardisé le principe OLE avec la
définition de COM (Component Object Model) et
DCOM (Distributed COM). Ces normes proposent une
méthodes communes daccès aux services de
différents types de logiciels et lutilisation de
serveurs distants.
50Les étapes OLE
- Création dun objet BAPI ActiveX Control
- Ordre de création dune instance locale de
lobjet de gestion SAP - Appel de la méthode sur les objets de gestion
- Lancement de lobjet de gestion SAP et
libération de lobjet BAPI ActiveX Control -
51Les étapes OLE
Création dun objet BAPI ActiveX Control
La commande VB Set oBAPICtrl CreateObject("SAP.B
API.1") permet de créer l objet BAPI ActiveX
Control oBAPICtrl .
Un objet BAPI ActiveX Control est créé grâce à
cette commande OLE
Set R3 CreateObject("SAP.BAPI.1") permet de
créer un objet ActiveX avec comme nom de
l'application qui fournit l'objet Serveur
SAP , et type d'objet BAPI.1.
52Les étapes OLE
Ordre de création d'une instance locale de
l'objet de gestion SAP
A partir de l objet ActiveX oBAPICtrl et de
la méthode OLE GetSAPObject , on accède à
lobjet de gestion SAP SalesOders Set boOrder
oBAPICtrl.GetSAPObject("SalesOrder")
Lapplication cliente accède désormais à l objet
de gestion SAP sales orders et à toutes ses
BAPIs.
53Les étapes OLE
Appel des BAPIs sur lordre de gestion
Une fois lobjet de gestion créé, on peut appeler
ses BAPIs grâce à lordre OLE
boOrder.CreateFromData OrderHeaderInoHeader,
_ OrderPartnersoPartners,
_ OrderItemsInoItemsIn,
_ ReturnoReturn Dans
lexemple ci-dessus, la BAPI est
CreateFromData avec ses paramètres d import,
export et tables.
54Les étapes OLE
Avant daccéder aux objets de gestion, il est
nécessaire de se connecter au système SAP.
Connexion par BAPI ActiveX Control 'Paramètre
de connexion (ajouter éventuellement 'les
paramètres d environnement) oBAPICtrl.Connection
.Client "ltclientgt" oBAPICtrl.Connection.User
"ltuser namegt" oBAPICtrl.Connection.Language
"ltlanguagegt" 'Ouvre la connexion
oBAPICtrl.Connection.Logon
55Les étapes OLE
Connexion par le LOGON ActiveX Control
'Création de l objet Logon ActiveX Set
oLogonCtrl CreateObject("SAP.LogonControl.1")
'Création d une nouvelle connexion dans le
BAPI 'ActiveX Control Set oBAPICtrl.Connection
oLogonControl.NewConnection 'Paramètre de
connexion (rajouter éventuellement 'les
paramètres d environnement) oBAPICtrl.Connection
.Client "ltclientgt" oBAPICtrl.Connection.User
"ltuser namegt" oBAPICtrl.Connection.Language
"ltlanguagegt" 'Ouvre la connexion
oBAPICtrl.Connection.Logon
56Exercice
Accès à une BAPI via le BOR
A partir dun fichier Excel, appeler une BAPI qui
permet de ramener la liste des clients. Aide
Prendre le fichier Excel fournit. Il existe une
macro avec une trame. Remplir ce qui manque.
57Récapitulatif
- Laccès à une BAPI se fait
- Via le module fonction par RFC
- Directement dans le BOR (accès orienté objet),
- La création dune instance dans le BOR se fait
en trois temps - Création dun objet BAPI ActiveX
- Création dune instance sur l objet de gestion
- Exécution dune méthode
- Dans tous les cas, un Logon doit être effectué
sur le système SAP. La technique utilisée lors du
lancement d une méthode est lappel RFC.
58Modification Créationde BAPIs
Business Object Builder Modification des
BAPIs Création dun nouveau type dobjet
59En amont
- Il faut détailler les processus et situations
dans lesquels la BAPI sera utilisée. Il sagit de
définir - Le processus modèle, celui qui sera le plus
souvent employé, - Quelles seront les objets de gestion impliqués,
- Les fonctionnalités de la BAPI et les relations
avec les BAPIs existantes. - IMPORTANT Avant de se lancer sur une modification
de BAPI, vérifier sil nexiste pas dexit client
dans le module fonction concerné et qui
permettrait de répondre au besoin. - Exemple avec la lecture des données d un client
(scénario déjà présent dans SAP...) - Scénario tout d abord, une listes des clients
doit être affiché, à partir de laquelle le détail
d un client spécifique sera affiché.
60Présentation du Business Object Builder
- Exemple sur le BUS2012
- Transaction SWO1
- Chemin Outils -gt Business Framework -gt
Développement BAPI -gt Business Object Builder
61Présentation du Business Object Builder
62Les éléments
- Catégorie dobjet le type dobjet ou lobjet
de gestion - Type délément les interfaces, les zones clés,
les attributs, les méthodes et les événements. - Élément hérité le type dobjet est un sous
type dun type dobjet contenant cette méthode.
63Les données de base dun type dobjet
64Les données de base dun type dobjet
- Le programme d'implémentation à chaque type
d'objet correspond un programme ABAP/4 dans
lequel sont implémentées les méthodes du type
d'objet. - Les statuts du type d objet un statut de
génération, un statut de sauvegarde (création et
modification), un statut d implémentation (ou de
validation) - Les désignations courtes et longues
- La relation avec un modèle de donnée
- Lapplication (ex. Gestion des articles)
- La classe de développement
65Le détail dune méthode
Pour rechercher le module fonction d une
méthode, double cliquez sur celle-ci et
sélectionner ABAP/4 .
66Le statut dune méthode
- modélisé La méthode vient dêtre créée.
- implémenté La méthode est opérationnelle et
peut être appelée. - libéré Toutes les méthodes ont été implémentées
(ou sont obsolètes). - obsolète Les méthodes ou les types d objets ne
sont plus utilisé. - N.B. Pour changer de version à un type d objet,
tous les éléments du type d objet doivent être
dans une version inférieure.
67Le statut dune méthode
- Attribut de relation Lattribut est lié à un
autre type dobjet -
- Modélisée A la création ou par copie dun type
dobjet, le statut dun élément est modélisée,
cest à dire créé mais non utilisable. - Méthode API Ce code indique sil sagit dune
composante de lAPI livrée par SAP (voir les
Business API). - Implémentation locale recommandée Elément non
actif mais que SAP recommande dimplémenter. - Élément locale Décrit une méthode du type
délément méthodes
68Les différentes démarches
- Modification dune BAPI existante - création
dune BAPI sur un type existant - 1- Création dun sous-type du type concerné
- 2- Création dune nouvelle BAPI par copie
- Création dun nouveau type d objet
- 1- Création dun nouveau type
- 2- Création dune nouvelle BAPI
69Modification des BAPIs
- La modification de BAPI est possible. Par
exemple, un ajout de paramètres à une BAPI - Il est également possible de créer une nouvelle
méthode sur un objet... -
- Aucune modification du standard SAP ne doit être
effectuée afin dassurer le bon fonctionnement de
la BAPI suite à une montée de version
70Modification des BAPIs
Première étape Copie dun type dobjet
Par création dun sous type de lobjet de gestion
concerné afin détendre les méthodes BAPIs du
nouveau type dobjet. Respecter les normes de
développements le type dobjet, le nom dobjet,
le modèle de donnée et le programme
dimplémentation commencent par Z ou Y
71Modification des BAPIs
Première étape Copie dun type dobjet
72Modification des BAPIs
Première étape Copie dun type dobjet
73Modification des BAPIs
Deuxième étape Copie de la méthode à modifier
Création dune nouvelle BAPI par copie dune BAPi
existante A) Copie du module fonction. Pour
trouver le module fonction de la méthode,
double-cliquez sur celle-ci et sélectionner
l onglet ABAP/4 . Cest ce module fonction
quil faut copier (de manière classique par la
SE37). B) Modification du module copié C)
Affectation du module comme une méthode dun type
dobjet
74Modification des BAPIs
Copie du module fonction
- Donner un nom au module fonction. Par
convention, nous pouvons utiliser Z_BAPI_ltnom de
lobjet de gestiongt_ltnom de la méthodegt. Exemple,
Z_BAPI_CREDITOR_GETDETAIL - Remarque Dans certains cas il vaut mieux copier
tous les éléments du groupe fonction. Une copie
de groupe fonction peut être réalisée par le
Browser Repository (transaction se80) - Définition de nouvelles structures qui seront
utilisées par la BAPI - Ces structures sont utilisées comme paramètres
dimport, dexport ou table de la BAPI. les
paramètres de ces modules fonctions dédiées à une
BAPI ne doivent pas contenir dexceptions et de
paramètres passés par référence (CHANGING).
75Modification des BAPIs
Cas 1 la BAPI doit créer une instance (ex.
CreateFromData) La zone clé du type dobjet être
présent dans les paramètres dexport du module
fonction. Ces BAPIs retourne une valeur clé
(par ex. un n de commande pour la BAPI
SalesOrders.CreateFromData). Cas 2 la BAPI
ramène le détail dun objet (ex. GetDetail) La
zone clé du type dobjet est inclus dans les
paramètre dimport du module fonction. De cette
façon, on accède à une instance spécifique du
type dobjet. Cas 3 la BAPI est une méthode
instance-indépendante La zone clé nest pas dans
les paramètres dimport/export.En général, ces
BAPIs retourne une table avec des valeurs
sélectionnables.
76Modification des BAPIs
- Identifier le nom du groupe fonction un
nouveau nom pour ne pas faire de modification de
standard. - Remarque Le nom technique dun objet de gestion
est de la forme BUSnnnn. La fin de ce nom nnnn
sert souvent pour nommer le groupe fonction. - Nommer les paramètres du module fonction
compréhensible car utilisé ensuite dans le BOR,
en anglais, inférieur à 20 CH , en lettres
capitales.
77Modification des BAPIs
- Pour insérer une nouvelle méthode
- Utilitaires -gt Méthodes API -gt Insérer méthode
ATTENTION à partir de la version 4.0, les noms
des paramètres (structure ou champ) doivent être
identiques entre le module fonction et la BAPI.
Lassistant génère alors un modèle dappel du
module fonction. Pour le visualiser, faire
programme après avoir positionner le curseur
sur la méthode. A priori, ce programme nest pas
à modifier, SAP génère le code approprié.
78Exercice
Modifier la BAPI GetList de lobjet
CompanyCode dans le but de ramener seulement les
codes sociétés qui ont une devises en
FRF. Méthode 1 en modifiant le code ABAP de la
méthode. Méthode 2 en ajoutant un paramètre à
la méthode.
79Création dun nouveau type dobjet
- En amont, il sagit de détailler les processus et
situations dans lesquels ce type dobjet sera
utilisé - le processus modèle, celui qui sera le plus
souvent employé, - les fonctionnalités de la BAPI et les relations
avec les BAPIs existantes.
Éléments créés par défaut
L interface est par défaut celle standard et est
composé de deux méthodes ExistenceCheck et
Display .
80Création dun nouveau type dobjet
Définition de la zone clé
Rappel la clé dun lobjet de gestion identifie
une instance unique dun objet de gestion.
Si la BAPI que vous voulez définir est avec une
clé instance-dépendante (ie. Vous voulez créer ou
acceder à une instance spécifique), les zones de
clé doivent figurées avec le même nom dans les
paramètres de votre module fonction.
81Création dun nouveau type dobjet
Définition des paramètres
Les paramètres dans le Business Object Builder
ont les mêmes noms que ceux du module
fonction. Ceux-ci peuvent être définis en
référence ou non à une zone du DDIC. Il existe
un paramètre particulier le paramètre RETURN
dans le module fonction et Return dans la
méthode.
82Création dun nouveau type dobjet
Gestion du paramètre RETURN
Ce paramètre Return de la méthode est un
paramètre dexport du module fonction (paramètre
RETURN).
Version 4 la fonction BALW_BAPIRETURN_GET2
permet de mettre en forme le message. Version 3
la fonction MESSAGE_SET_AND_CONVERT permet de
mettre en forme le message. RETURN à la structure
de BAPIRETURN.
83Release dune BAPI
- Après adaptations et tests de la BAPI, il est
conseillé de la libérer et de geler son
développement. - Libération du module fonction (SE37)
- Libération de la méthode (SWO1)
- Gel de la méthode (SWO1)
- Ceci permet déviter de malencontreuses
modifications car ces modifications sont
contrôlées avec la référence gelée
compatibilité avec le BOR et le DDIC.
84Utilisation des BAPIs
Autorisation Performance BAPI et ALE
85Autorisation
- Pour exécuter une BAPI dans SAP, il faut les
autorisations appropriées. Celles-ci sont
précisées dans le profil utilisateur de la même
façon que l utilisateur travaillant dans SAP. - Pour avoir le détail des autorisations liées à
une méthode, lire la documentation de la BAPI
(via le navigateur BAPI).
86Performance
- Accès aux tables avec clé unique
- Éviter les accès inutiles
- Utiliser des tables internes
- Éviter les process parallèles
- Utilisation de buffers lors de lattribution de
numéros (ceci afin de réduire la période de
blocage des tables) - Préférer linstruction update à insert
- Faire les updates aussi près que possible dun
commit work - Toutes les tables qui ne sont pas protégées
contre un blocage doivent être mises à jour dans
le même ordre afin déviter un deadlock
87BAPI et ALE
- Depuis la version 4.0, des BAPI asynchrones
existent et permettent de générer un IDOC et
ainsi dutiliser le scénario ALE approprié. - Ce quil faut savoir
- Pas de commit work dans la BAPI
- Seul le paramètre Return de la BAPI est renvoyé
au système source et celui-ci doit être référencé
à la structure BAPIRETURN1 ou BAPIRET2. Les
autres ne sont pas inclus dans lIDOC créé. - Suite à la réception de lIDOC et à sa
transformation en BAPI, le statut de lIDOC passe
à - - 51 (application document has not been posted)
ou - - 53 (application document posted).