94
Solutions de Sécurité & Services Atelier ABAP pour débutants 03/06/2010 L. Arzur

Atelier ABAP

Embed Size (px)

Citation preview

  • 5/20/2018 Atelier ABAP

    1/94Solutions de Scurit & Services

    Atelier ABAP pour dbutants

    03/06/2010

    L. Arzur

  • 5/20/2018 Atelier ABAP

    2/942 Solutions de Scurit & Services

    Plan

    Prsentation gnrale ~ 5 min

    Objets ABAP de base ~ 20 minInstructions ABAP de base ~ 30 min

    Fonctionnalits ABAP ~ 30 min

    Navigation ABAP ~ 30 minLe DEBUG ~ 30 min

    Utile ~ 10 min

    Pratique ~ 40 minQuestions ~ 5 min

    TOTAL ~ 3 h 20

  • 5/20/2018 Atelier ABAP

    3/943 Solutions de Scurit & Services

    Plan

    Prsentation

    Objets ABAP de baseInstructions ABAP de base

    Fonctionnalits ABAP

    Navigation ABAPLe DEBUG

    Utile

    PratiqueQuestions

  • 5/20/2018 Atelier ABAP

    4/944 Solutions de Scurit & Services

    Prsentation

    La formation est destine auxdbutantssur le code ABAP et enparticulier aux fonctionnels dsirant comprendre et analyser ce merveilleuxcode.

    Certains passages pourront sembler vidents certains mais permettentde fixer certaines rgles et connaissances ncessaires.

    Buts de cette formation :

    Comprendreles bases du code ABAP Matriserles lments essentiels du DEBUG ABAP

    Savoir utiliserde manire oprationnelle le DEBUG ABAP

    La formation ne sattardera pas sur les aspects trop techniques, lapproche

    tant de donner un vernis ABAP aux non-ABAPeurs. Le contenu de cette formation nest bien sr pas exhaustif et invite les

    personnes intresss - nombreuses je lespre! - approfondir le sujet viades formations plus pousses.

  • 5/20/2018 Atelier ABAP

    5/94

    5 Solutions de Scurit & Services

    Plan

    Prsentation

    Objets ABAP de baseInstructions ABAP de base

    Fonctionnalits ABAP

    Navigation ABAPLe DEBUG

    Utile

    PratiqueQuestions

  • 5/20/2018 Atelier ABAP

    6/94

    6 Solutions de Scurit & Services

    Objets ABAP de base - Dictionnaire

    Transaction SE11

    Le dictionnaire ABAP concerne les objets lmentaires utiliss par SAP

    pour stocker et vhiculer les donnes Table standard: Objet dans lequel sont stockes les donnes (MARA)

    Vue: Combinaison de plusieurs tables (VIQMEL)

    Structure: Mme type dobjet que les tables mais ne peut contenir dedonnes

    Une table est compose de zones lies un lment de donne, lui li un domaine.

  • 5/20/2018 Atelier ABAP

    7/94

    7 Solutions de Scurit & Services

    Objets ABAP de base - Dictionnaire

    Une table SE11 possde toujours des zones cls.

    Il ne peut pas y avoir plusieurs lignes avec la mme combinaison de cls.

    Les zones cls se situent dans les premires zones de la table et ont lacase Cl coche.

    Il est possible denrichir les tables standards avec des lments

    spcifiques via lutilisation dun APPEND. Les zones de lAPPEND

    apparaissent en bleu.

  • 5/20/2018 Atelier ABAP

    8/94

    8 Solutions de Scurit & Services

    Objets ABAP de base - Dictionnaire

    Exemple table VBAP (Postes de commandes de vente)

  • 5/20/2018 Atelier ABAP

    9/94

    9 Solutions de Scurit & Services

    Objets ABAP de base - Programmes

    Transactions SE38/SE80

    Standard ou spcifique, le programme manipule les objets du dictionnaire

    et les fonctionnalits SAP pour modifier ou rcuprer des donnes dansSAP.

    Un programme peut utiliser tous les objets du dictionnaire ainsi que lesmodules fonctions, les Includeset les autres objets dvelopps dansSAP.

    Un Include est un programme qui est forcment appel par un autreprogramme : le programme appelant peut alors utiliser les variables etfonctionnalits dveloppes dans lInclude.

    Un programme, mme sil ne sagit pas dun Include, peut tre galement

    appel par dautres objets SAP.

    Lorganisation du programme en tant que telle sera aborde dans les

    chapitres suivants.

  • 5/20/2018 Atelier ABAP

    10/94

    10 Solutions de Scurit & Services

    Objets ABAP de baseFonctions

    Transactions SE37/SE80

    Fonctionou Module Fonction(MF) : Objets pouvant tre appels et

    utiliss dans dautre programmes ABAP. Il est utile de dvelopper une fonction appele par un programme chapeau

    plutt quun seul programme dans le cas o la fonctionnalit peut servir

    dautres programmes (exemple : MF de recherche de code article)

    Le MF contient des paramtres dEntres / Sortiespermettant de

    transporter les valeurs de variables dun programme appelant vers le MFet vice-versa.

    La programmation est la mme que pour les programmes classiques.

    Il est possible de tester le fonctionnement dun MF directement et

    indpendamment dun programme via la transaction SE37 en renseignant

    les paramtres appropris.

  • 5/20/2018 Atelier ABAP

    11/94

    11 Solutions de Scurit & Services

    Objets ABAP de baseFormulaire

    Transaction SE71

    Un formulairesert extraire, visualiser et imprimer des informations de

    SAP sous une forme facilement comprhensible par un utilisateur final ouun client.

    Il est li un programme dimpression Le programme rcupre les donnes dans SAP et les envoie au

    formulaire appel

    Le formulaire met en forme les donnes

    Dans le standard SAP, le formulaire est en gnral associ unecorrespondance (exemple : pour diter des factures)

    Il est possible de rajouter une couche Streamserveaprs la gnration duformulaire pour une mise en forme des donnes hors SAP.

    2 principales technologies de dveloppement des formulaires : SAPScript: ancienne techno, peu pratique mais la plus courante

    SMARTFORMS: techno plus rcente, plus robuste

  • 5/20/2018 Atelier ABAP

    12/94

    12 Solutions de Scurit & Services

    Objets ABAP de baseExit

    Transactions CMOD/SMOD

    Un Exit(ou User-Exit) est un emplacement rserv du codage

    spcifique dans un programme standard. Il permet dviter en gnral de modifier le programme standard (trs

    dconseill) ou de copier le standard.

    Les Exits sont en nombre limit et mis disposition des endroits bienprcis dans le standard par SAP : il est donc parfois compliqu de trouverlExit se dclenchant au bon moment et mettant disposition les donnes

    dont on a besoin.

    En gnral un Exit se prsente sous la forme dun MF appelant un

    programme Include.

    Depuis SAP ECC6, il existe des Enhancement Pointsqui permettent decoder lquivalent des Exits des endroits non prvus par SAP.

    Un Exit doit tre li un projet SAP et activ via les transactionsCMOD/SMOD.

  • 5/20/2018 Atelier ABAP

    13/94

    13 Solutions de Scurit & Services

    Objets ABAP de baseAutres objets

    Il existe de nombreux autres objets dans SAP.

    Ils ne seront pas abords dans la prsentation car destins des

    dveloppeurs confirms, ci-dessous quelques exemples : BADI(Business Add-In) : Technologie permettant dajouter du code dans

    les programmes standards, mme but que les User-Exits transactionSE19).

    BAPI: Technologie permettant dintgrer des donnes dans SAP,fonctionne de la mme faon quun MF (transaction BAPI).

    Classe/ Mthode: Concerne la programmation par objets, de plus enplus utilise sur les nouvelles versions SAP (transaction SE24).

  • 5/20/2018 Atelier ABAP

    14/94

    14 Solutions de Scurit & Services

    Plan

    Prsentation

    Objets ABAP de baseInstructions ABAP de base

    Fonctionnalits ABAP

    Navigation ABAPLe DEBUG

    Utile

    PratiqueQuestions

  • 5/20/2018 Atelier ABAP

    15/94

    15 Solutions de Scurit & Services

    Instructions ABAP de base

    Le langage ABAP est un langage assez simple : quelques instructionspermettent de couvrir la majorit des besoins en programmation.

    Les instructions les plus utilises peuvent tre dcomposes de la faonsuivante : Dclarations

    Slection des donnes

    Traitement des donnes

    criture des donnes

    Aiguillage dans le programme

    Le langage des instructions est langlais.

    En gnral une instruction contient 2 balises : Une balise de dbut

    Une balise de fin

    I i ABAP d b

  • 5/20/2018 Atelier ABAP

    16/94

    16 Solutions de Scurit & Services

    Instructions ABAP de base

    Les commentaires sont prcds du caractre *ou "et apparaissent enbleu.

    Une instruction ABAP finit toujours par un point.

    Il est possible davoir une aide sur une instruction ABAP en positionnant la

    souris sur linstruction et en tapant F1 partir de la transaction SE38.

    En plus des instructions dcrites dans ce document, il est bien sr possibledutiliser un grand nombre dinstructions classiques de codage (oprations

    arithmtiques, comparaisons, ).

    I t ti ABAP d b D l ti

  • 5/20/2018 Atelier ABAP

    17/94

    17 Solutions de Scurit & Services

    Instructions ABAP de base - Dclarations

    Il existe de nombreux objets utiliss dans les programmes ABAP.

    Les principaux sont les suivants : Table standard: dclarer une table standard dans le programme permet

    dutiliser la structure de cette table interne pour stocker des informations

    Table interne: objet contenant plusieurs lignes de structure identique

    Structure: objet structur ne contenant quune ligne

    Variable globale: zone une dimension du type lment de donnepouvant tre utilise dans tout le programme

    Variable locale: zone une dimension du type lment de donnepouvant tre utilise dans une partie du programme uniquement

    Paramtres/ Select-Options: variables de lcran de slection

    Attention : il existe des rgles de nommage pour toutes ces variables (cf.rgles de nommage du client concern)

    I t ti ABAP d b D l ti

  • 5/20/2018 Atelier ABAP

    18/94

    18 Solutions de Scurit & Services

    Instructions ABAP de base - Dclarations

    Exemple pour dclarations

    I t ti ABAP d b D l ti

  • 5/20/2018 Atelier ABAP

    19/94

    19 Solutions de Scurit & Services

    Instructions ABAP de base - Dclarations

    Point sur table interne

    La table interne est dcompose en 2 parties : La Working Area(WA) : structure de travail permettant de stocker des

    informations de manire temporaire

    Les lignes: elles correspondent aux lignes rellement stockes dans latable interne

    Linstruction APPENDpermet de transfrer les valeurs de la Working Areavers les lignes et donc de stocker ces valeurs. Si lAPPEND nest pas fait,

    les donnes de la WA ne seront pas mmorises.

    Linstruction CLEARapplique une table interne permet de vider la WA.

    Linstruction REFRESHpermet de vider la totalit des lignes de la tableinterne.

    Instructions ABAP de base Dclarations

  • 5/20/2018 Atelier ABAP

    20/94

    20 Solutions de Scurit & Services

    Instructions ABAP de base - Dclarations

    cran de slection

    Rsultat aprs excution

    Instructions ABAP de base SELECT

  • 5/20/2018 Atelier ABAP

    21/94

    21 Solutions de Scurit & Services

    Instructions ABAP de baseSELECT

    SELECT: permet de slectionner des donnes SAP contenues dans unetable standard / spcifique ou une vue.

    SELECT P1INTO P2FROM P3WHERE P4 P1 : zones rcuprer dans la table standard / spcifique ou vue

    *signifie quil faut rcuprer toutes les zones

    P2 : variable o stocker les donnes rcupres INTO TABLE XXXX signifie quil faut les stocker dans la table interne XXXX

    Il est possible de les stocker dans une variable simple galement

    P3 : nom de la table standard / spcifique ou vue

    P4 : condition de slection Restriction de la slection par rapport aux critres de slection (P, S/O)

    Il existe dautres options pour cette instruction mais celles mentionnes ci-dessus sont les principales.

    Instructions ABAP de base READ

  • 5/20/2018 Atelier ABAP

    22/94

    22 Solutions de Scurit & Services

    Instructions ABAP de baseREAD

    READ: permet de lire une ligne de table interne suivant certainesconditions.

    La ligne retourne se trouve dans la working area de la table interne.

    READ TABLE P1WITH KEY P2= P3 P1 : table interne lire

    P2 : zone de la table interne tester P3 : valeur de la zone de table interne tester

    READ TABLE P1INDEX P2 P1 : table interne lire

    P2 : numro de ligne de la table interne lire

    Il existe dautres options pour cette instruction mais celles mentionnes ci-dessus sont les principales.

    Instructions ABAP de base LOOP

  • 5/20/2018 Atelier ABAP

    23/94

    23 Solutions de Scurit & Services

    Instructions ABAP de baseLOOP

    LOOP: permet de boucler sur les lignes dune table interne.

    La ligne lue se trouve dans la working area de la table interne.

    LOOP AT P1.

    ENDLOOP. P1 : table interne sur laquelle boucler

    Entre le LOOP et le ENDLOOP, les instructions portent sur la ligne encours de lecture.

    Il existe dautres options pour cette instruction mais celles mentionnes ci-

    dessus sont les principales.

    Instructions ABAP de base MOVE / WRITE

  • 5/20/2018 Atelier ABAP

    24/94

    24 Solutions de Scurit & Services

    Instructions ABAP de baseMOVE / WRITE

    MOVE/ WRITE: permet de transfrer une valeur ou la valeur dunevariable vers une autre variable.

    MOVE transfre la valeur en brut alors que WRITE transfre la valeur avecson format.

    WRITE / MOVE P1TO P2.

    P1 : paramtre source transfrer P2 : paramtre cible vers lequel transfrer la valeur

    Il existe dautres options pour cette instruction mais celles mentionnes ci-dessus sont les principales.

    Instructions ABAP de base CLEAR / REFRESH

  • 5/20/2018 Atelier ABAP

    25/94

    25 Solutions de Scurit & Services

    Instructions ABAP de base CLEAR / REFRESH

    CLEAR: permet de vider la valeur dune zone variable. Dans le cas dunetable interne, cela permet de vider la working area.

    REFRESH: permet de vider la totalit dune table interne.

    CLEAR P1. P1 : variable vider

    REFRESH P1. P1 : table interne vider

    Instructions ABAP de base APPEND

  • 5/20/2018 Atelier ABAP

    26/94

    26 Solutions de Scurit & Services

    Instructions ABAP de base APPEND

    APPEND: permet dans le cas dune table interne de transfrer la workingarea vers les entres de la table interne.

    Si un APPEND nest pas fait aprs avoir aliment la working area, les

    donnes ne seront pas stockes dans la table internes car crases par laprochaine alimentation de la working area.

    APPEND P1. P1 : table interne alimenter

    Il existe dautres options pour cette instruction mais celles mentionnes ci-dessus sont les principales.

    Instructions ABAP de base MAJ TABLE

  • 5/20/2018 Atelier ABAP

    27/94

    27 Solutions de Scurit & Services

    Instructions ABAP de base MAJ TABLE

    Les commandes suivantes concernent les mises jour de table dedonnes standards ou spcifiques accessibles via SE11.

    UPDATE: modifie une entre de table si la cl demande existe

    MODIFY: modifie ou insre une entre de table

    INSERT: insre une entre dans la table. Il ne doit pas exister dentreavec la mme cl dans la table.

    DELETE: supprime une entre dans la table

    MODIFY P1. P1 : table SE11 modifier

    Il existe dautres options pour ces instructions mais celles mentionnes ci-dessus sont les principales.

    Instructions ABAP de base CALL FUNCTION

  • 5/20/2018 Atelier ABAP

    28/94

    28 Solutions de Scurit & Services

    Instructions ABAP de base CALL FUNCTION

    CALL FUNCTION: permet dappeler un module fonction dans unprogramme ou dans un autre module fonction.

    Un module fonction possde plusieurs paramtres dchange avec le

    programme appelant.

    CALL FUNCTION P1

    EXPORTING P2= P3IMPORTING P4= P5

    TABLES P6= P7. P1 : nom de la module fonction tel quil est dfini dans le transaction

    SE37

    P2/P3 : noms de zones et valeurs transfrer en entre du MF P4/P5 : noms de zones et valeurs rcuprer en sortie du MF

    P6/P7 : noms de tables et tables changer avec le MF

    Instructions ABAP de baseCALL FUNCTION

  • 5/20/2018 Atelier ABAP

    29/94

    29 Solutions de Scurit & Services

    ATTENTION : Les paramtres en EXPORTING correspondent aux paramtres dentre

    du MF et qui sont exports depuis le programme appelant vers le MF

    Les paramtres en IMPORTING correspondent aux paramtres de sortiedu MF et qui sont imports vers le programme appelant vers le MF

    Si le programme appelant nutilise pas tous les paramtres obligatoires du

    MF, un DUMP se produit.

    Il est possible dutiliser la fonction Modles dans lditeur ABAP pour

    rcuprer les paramtres du MF :

    Aprs validation, lappel du MF est intgr dans le code du programmeappelant avec les paramtres facultatif en commentaires.

    Instructions ABAP de basePERFORM

  • 5/20/2018 Atelier ABAP

    30/94

    30 Solutions de Scurit & Services

    PERFORM: permet dappeler une routine dans un programme.

    Cette routine est forcment dfinie dans le programme appelant ou dansun Include appartenant au programme appelant.

    Elle est dfinie par linstruction suivante :

    FORM P1.

    ENDFORM.

    et appele par linstructionPERFORM P1.

    P1 : nom de la routine.

    Il est conseill de donner un nom explicite la routine.

    Il est galement conseill dutiliser de nombreuses routines dans un

    programme pour modulariser le programme par fonctionnalits etamliorer la lisibilit du code.

    Instructions ABAP de baseAUTHORITY-CHECK

  • 5/20/2018 Atelier ABAP

    31/94

    31 Solutions de Scurit & Services

    AUTHORITY-CHECK: permet deffectuer un contrle dautorisation dans unprogramme.

    AUTHORITY-CHECK OBJECT P1

    ID P2FIELD P3. P1 : nom de lobjet dautorisation

    P2 : nom du paramtre de lauthority-check

    P3 : valeur tester pour le paramtre

    Linstruction renvoie un code retour via la zone SY-SUBRC en fonction delobjet test, des paramtres renseigns et des autorisations dfinies pour

    le user de connexion.

    Si le SY-SUBRC = 0, le user est autoris, sinon il nest pas autoris.

    Il est ensuite possible de continuer ou arrter le traitement.

    Plan

  • 5/20/2018 Atelier ABAP

    32/94

    32 Solutions de Scurit & Services

    Prsentation

    Objets ABAP de baseInstructions ABAP de base

    Fonctionnalits ABAP

    Navigation ABAPLe DEBUG

    Utile

    PratiqueQuestions

    Fonctionnalits ABAP

  • 5/20/2018 Atelier ABAP

    33/94

    33 Solutions de Scurit & Services

    Les programmes ABAP peuvent tre utiliss pour remplir plusieurs typesde fonctionnalits, dont voici les principales :

    Reporting

    Intgration

    Extraction

    Modification de fonctionnement standard

    Fonctionnalits ABAP - Reporting

  • 5/20/2018 Atelier ABAP

    34/94

    34 Solutions de Scurit & Services

    Un reportest un affichage des donnes issues de SAP.

    Il sappuie en gnral sur les tables standards et spcifiques.

    Il peut avoir 2 formes principales : Classique(instruction WRITE) et surtout destine des compte-rendus

    dexcution simples

    ALV(Abap List Viewer / utilisation de MFs standards) pour affichage dutype EXCEL (avec tris, filtres,), conseiller pour du reporting complexe

    destine des utilisateurs finaux.

    Fonctionnalits ABAP - Intgration

  • 5/20/2018 Atelier ABAP

    35/94

    35 Solutions de Scurit & Services

    Un programme dintgrationsert mettre jour des donnes dans SAP.

    Les donnes peuvent tre issues de SAP ou dun autre systme (SAP ounon) via un change de fichiers.

    Le programme peut tre utilis dans le cas dune interface entrante ou

    dune reprise de donnes.

    Il est important de prvoir pour ce type de programme la possibilit dtre

    excut en avant-plan ou en arrire-plan via une variante de slection.

    Il faut galement prvoir un compte-rendu dexcution avec entre autres

    les objets standards SAP intgrs ou modifis.

    Fonctionnalits ABAP - Intgration

  • 5/20/2018 Atelier ABAP

    36/94

    36 Solutions de Scurit & Services

    Il existe plusieurs techniques dintgration de donnes, dont les principales

    sont : Le CATT: il ne sagit pas dun programme ABAP mais dun scnario de

    test reproductible. Une fois dfini pour une intgration via la transactionSCAT, il est possible de lutiliser pour un fichier comportant plusieurs

    intgrations.

    Le DIRECT INPUT: cela consiste mettre jour directement les tablesstandards SAP (via UPDATE). Cest trs dconseillvoire interditcar cela

    contourne les contrles standards de zones SAP et peut corrompre lesbases de donnes

    Le BATCH INPUT: ancienne mthode dintgration toujours utilise. Ilsagit dun programme ABAP mais qui simule un enchanement dcrans

    tel que le ferait lutilisateur (comme dans un CATT). Les dossiers de

    BATCH INPUT crs sont soit excuts en direct lors de lexcution duprogramme, soit de manire dsynchronise via la transaction SM35.Cette technique nest pas prenne sur les transactions de type ENJOY et

    peut poser des problmes en arrire-plan.

    Fonctionnalits ABAP - Intgration

  • 5/20/2018 Atelier ABAP

    37/94

    37 Solutions de Scurit & Services

    La BAPI: il sagit dun objet SAP semblable aux MF. En paramtres onrenseigne les diffrentes structures ncessaires la cration oumodification de lobjet SAP intgrer et la BAPI soccupe de crer ou

    modifier lobjet. Technique robuste et conseille.

    LIDOC: il sagit dun change de donnes informatises (EDI). LIDocpeut tre utilis au sein dun mme systme ou avec un autre systme.

    Un IDoc correspond un objet crer ou modifier. La transactionprincipale de gestion des IDocs est la WEDI. Technique de plus en plus

    utilise et impose par certains changes entre entreprises pour sesavantages de traabilit des informations. Cette technique est robuste etoffre la possibilit de suivre toutes les intgrations de manire assezdirecte mme si cela peut savrer assez technique.

    Fonctionnalits ABAP - Extraction

  • 5/20/2018 Atelier ABAP

    38/94

    38 Solutions de Scurit & Services

    Une extractionressemble un reporting mais permet denvoyer lesdonnes rcupres lextrieur de SAP, via la cration dun fichier de

    sortie par exemple.

    Le format du fichier de sortie peut tre dict par le systme qui utilisera parla suite le fichier mais est en gnral le format EXCEL ou .CSV.

    Le fichier de sortie peut tre dpos par le programme sur un serveur local(ex : disque C du PC physique) ou sur le serveur SAP (rpertoires viatransaction AL11).

    Remarque importante : Si le programme est excut en arrire-plan, il est impossible de dposer

    le fichier sur un serveur local.

    Fonctionnalits ABAPUSER EXIT

  • 5/20/2018 Atelier ABAP

    39/94

    39 Solutions de Scurit & Services

    Les USER EXITpermettent dintgrer du code spcifique dans le codestandard SAP.

    Ils doivent tre activs via les transactions CMOD/SMOD.

    Dautres techniques permettent deffectuer ce type dadaptations du

    standard (BADI, ENHANCEMENT POINTS sur ECC6).

    Les EXITs permettent dviter les modifications de programmes standards(trs dconseilles!).

    Il ncessitent une bonne connaissance de lABAPet des flux surlesquels intervenir car il peuvent perturber fortement le fonctionnement

    standard prvu par SAP. Une attention particulire devra tre porte au passage en Production de

    USER-EXITS.

    Plan

  • 5/20/2018 Atelier ABAP

    40/94

    40 Solutions de Scurit & Services

    Prsentation

    Objets ABAP de base

    Instructions ABAP de base

    Fonctionnalits ABAP

    Navigation ABAP

    Le DEBUG

    Utile

    PratiqueQuestions

    Navigation ABAP

  • 5/20/2018 Atelier ABAP

    41/94

    41 Solutions de Scurit & Services

    Il existe plusieurs transactions permettant de visualiser le code ABAP(SE38/SE37) mais la principale et la plus complte est la SE80.

    Elle permet de visualiser facilement tous les objets utiliss par leprogramme.

    Il existe dans lditeur ABAP de nombreuses options trs utiles pour

    naviguer dans le programme ainsi que certaines fonctions essentielles audveloppement.

    Remarque : pour ne pas avoir lair ridicule devant un dveloppeur, nutilisez pas la

    transaction SA38 : il sagit dune SE38 trs allge!!

    Navigation ABAP

  • 5/20/2018 Atelier ABAP

    42/94

    42 Solutions de Scurit & Services

    Transaction SE80

    Navigation ABAP

  • 5/20/2018 Atelier ABAP

    43/94

    43 Solutions de Scurit & Services

    : Contrledu programme. Permet de vrifier si le programmerespecte les rgles de syntaxe du langage ABAP.

    En cas derreur de syntaxe un message apparat en bas de lcran. Un

    double-clic sur le message renvoie sur la ligne de code en erreur.

    : Activationdu programme. Cette action contrle dans un premiertemps le programme puis lactive si aucune erreur nest dtecte. Un

    programme non actif ne peut tre utilis. Le statut dactivation apparat ct du nom du programme.

    Navigation ABAP

  • 5/20/2018 Atelier ABAP

    44/94

    44 Solutions de Scurit & Services

    : Break-point. Permet de mettre un point darrt dans le programme,i.e lors dune excution du programme le traitement sarrtera sur ce point

    darrt en mode debugger (voir chapitre DEBUG).

    Le point darrt est propre lutilisateur Pour mettre le point darrt, il suffit de positionner le curseur sur la ligne

    de code concerne puis de cliquer sur le bouton. La ligne apparat alorssurligne lcran.

    : Pretty Printer. Permet de changer la mise en forme du codeABAP du programme pour le rendre plus facile comprendre en fonction

    des rgles syntaxiques de lABAP. Cette fonction ne change en rien lefonctionnement du programme mais en change laspect visuel.

    Navigation ABAP

  • 5/20/2018 Atelier ABAP

    45/94

    45 Solutions de Scurit & Services

    : Excution. Permet de lancer le programme en avant-plan. Fonction galement accessible par la touche F8.

    En renseignant une partie du nom du programme par le caractre *et encliquant sur la flche, SAP nous renvoie tous les programmes ayant lapartie demande dans leur nom.

    Navigation ABAP

  • 5/20/2018 Atelier ABAP

    46/94

    46 Solutions de Scurit & Services

    : Recherche. Attention il faut utiliser licne situe tout en haut delcran et pas juste au dessus du nom du programme.

    Licne ouvre un POP-UP qui permet de rechercher une chane de

    caractres dans le programme. Possibilit de remplacer cette chane par une autre

    Possibilit de rechercher la chane dans le programme en cours ou dansle programme principal (conseill)

    Le rsultat est un affichage de toutes les occurrences de la chanerecherche, possibilit de cliquer sur la chane bleute pour accder au

    code.

    Navigation ABAP

  • 5/20/2018 Atelier ABAP

    47/94

    47 Solutions de Scurit & Services

    En double-cliquant sur les routines, modules fonctions, Include appelsdans le programme principal, SAP renvoie le curseur sur lobjet appel.

    : Un clic sur les flches bleus permet de revenir sur lepositionnement prcdent du curseur.

    : Un clic sur ces flches permet de revenir en arrire sur la dernireaction effectue ou de la r-itrer.

    Navigation ABAP

  • 5/20/2018 Atelier ABAP

    48/94

    48 Solutions de Scurit & Services

    Ci-dessous quelques objets lis au programme

    Macros: Permettent deffectuer quelquesoprations de code simples et rptitives.Attention, ne peut tre debugg.

    Dynpro: Ecran ABAP

    Modules PBO / PAI: Dfinissent les actionsprcdant lapparition de lcran (Process Before

    Output) ou conscutives son apparition (ProcessAfter Input)

    Statut GUI: Dfinition des actions lies lcran(boutons SAVE/BACK/)

    Titres GUI: Titre de lcran

    Navigation ABAP

  • 5/20/2018 Atelier ABAP

    49/94

    49 Solutions de Scurit & Services

    Penser modulariserle programme lors de la phase de dveloppement.

    Cela consiste organiser le programme en Includes et routines pour lerendre plus lisible et simple comprendre.

    Exemple : Include pour les dclarations

    Include pour les routines

    1 routine par fonctionnalit

    Lorsque lon arrive sur un programme via lditeur, il doit tre possible de

    comprendre immdiatement ce quil fait et si possible de visualiserlalgorithme sur une page dditeur.

    Il faut galement commenter le programme: commentaires courtsetexplicites.

    Modularisation + commentaires = facilit de comprhension pour la

    TMA = Indicateurs au vert!!

    Navigation ABAP

  • 5/20/2018 Atelier ABAP

    50/94

    50 Solutions de Scurit & Services

    Exemple de programme modulariset comment:

    Navigation ABAP

  • 5/20/2018 Atelier ABAP

    51/94

    51 Solutions de Scurit & Services

    Il faut dcomposer le programme en blocs laide des instruction :

    INITIALIZATION: bloc dinitialisation des variables du programme

    START-OF-SELECTION: Dbut des slection

    END-OF-SELECTION: Fin des slections

    Navigation ABAP

  • 5/20/2018 Atelier ABAP

    52/94

    52 Solutions de Scurit & Services

    Pour identifier une table ou une zone utiliser dans un programme, il suffit de positionner le curseur sur la zone en question dans le document SAP

    de cliquer sur F1puis F9

    ou F1puis Info technique Lcran suivant apparat et donne les informations concernant le

    programme et la zone en question

    Navigation ABAP - Versions

    U i d d l ti d d d

  • 5/20/2018 Atelier ABAP

    53/94

    53 Solutions de Scurit & Services

    Une versionde programme correspond la gnration dun ordre detransport(OT) contenant des crations ou modifications lies lobjet.

    Aprs chaque libration dun OT sur le systme de recette, SAP demande

    de crer un nouvel OT. Les versions sont visualisables via les menus de la transaction.

    Navigation ABAP - Versions

    L i d l BD d d l t d l i

  • 5/20/2018 Atelier ABAP

    54/94

    54 Solutions de Scurit & Services

    La version dans la BD de dveloppement correspond la version en coursde modification et non libre

    Les autres versions correspondent lhistorisation des anciennes versions

    libres. Par double-clic sur un OT puis sur licne , on accde au journal des

    transports avec tous les transports sur les machines SAP ainsi que lesstatuts de ces transports.

    Navigation ABAP - Versions

    C i d i E h t 2 i t li t

  • 5/20/2018 Atelier ABAP

    55/94

    55 Solutions de Scurit & Services

    : Comparaison de versions. En cochant 2 versions et cliquant sur cebouton, SAP compare les versions et affiche les diffrences.

    Navigation ABAP - Versions

    : Permet de comparer la version en cours avec un

  • 5/20/2018 Atelier ABAP

    56/94

    56 Solutions de Scurit & Services

    : Permet de comparer la version en cours avec unautre environnement SAP(ex : Recette, Production). Un POP-UP permetde choisir le systme auquel comparer puis lance la comparaison.

    Utile pour identifier un cart entre environnements et dtecter un oublidOT lors dun transport.

    : Rcupration de version. Permet de revenir sur une versionantrieure de lobjet. Cette fonction remet lobjet dans ltat dans lequel il

    tait lors de lOT rcupr et crase toutes les modifications des OTs

    suivants.

    Navigation ABAP - SAPScript

    Un formulaire SAPScript est accessible et modifiable via SE71

  • 5/20/2018 Atelier ABAP

    57/94

    57 Solutions de Scurit & Services

    Un formulaire SAPScriptest accessible et modifiable via SE71.

    Un formulaire est compos de pages, permettant de dfinir la successiondes pages lors de limpression.

    Chaque page contient des fentres(exemple : une fentre pour le titre,une autre pour ladresse du destinataire,).

    Les fentres peuvent contenir des lments.

    La fentre appele MAINcontient des donnes sous forme de liste delongueur variable. Par exemple la liste des postes pour une facture. Si lenombre de postes dpasse la taille de la page, SAP dclenche unenouvelle page.

    Le code lintrieur du formulaire est sensiblement diffrent de lABAP sil

    sagit dun formulaire SAPScript : il est situ lintrieur des fentres.

    Pour information la squence/*indique un commentaire.

    Navigation ABAP - SAPScript

    Exemple de formulaire SAPScript:

  • 5/20/2018 Atelier ABAP

    58/94

    58 Solutions de Scurit & Services

    Exemple de formulaire SAPScript:

    Plan

    P t ti

  • 5/20/2018 Atelier ABAP

    59/94

    59 Solutions de Scurit & Services

    Prsentation

    Objets ABAP de base

    Instructions ABAP de base

    Fonctionnalits ABAP

    Navigation ABAP

    Le DEBUG

    Utile

    Pratique

    Questions

    Le DEBUG

    Le debugger SAP est loutil indispensable du dveloppeur ABAP

  • 5/20/2018 Atelier ABAP

    60/94

    60 Solutions de Scurit & Services

    Le debugger SAPest l outil indispensable du dveloppeur ABAP.

    Il peut galement permettre un fonctionnel de rsoudre un certainnombre danomalies et de complter lanalyse fonctionnelle.

    Ce chapitre sera uniquement ax sur le debugger des versions antrieures ECC6.

    Le debugger ECC6 est relativement diffrent en termes dergonomie mais

    les fonctionnalits principales sont les mmes.

    Pour information, il est possible dans ECC6 de revenir sur le debuggerclassique.

    La seule faon de bien matriser le debuggage SAP est de pratiquer.

    Le DEBUGAccs au DEBUG

    Laccs au DEBUG peut se faire de diffrentes manires

  • 5/20/2018 Atelier ABAP

    61/94

    61 Solutions de Scurit & Services

    L accs au DEBUG peut se faire de diffrentes manires.

    La plus simple est dcrire le code/h la place de code transaction avantdeffectuer laction debugger.

    Il est possible de positionner un point darrtdans le programme lui-mme via SE38/SE37/SE80 (cf. Navigation ABAP). Le traitementsarrtera alors sur le point darrt et laissera lutilisateur la possibilit de

    debugger le programme partir de ce point darrt.

    Le bouton point darrt est le suivant :

    Glisser-dposer le fichier DEBUGsuivant sur la fentre debugger. Trsutile dans le cas dun debugging de POP-UP pour lequel il nest paspossible dutiliser la commande /h.

    DEBUG

    Le DEBUGAccs au DEBUG

    Certains programmes standards sont des programmes dits Systme.

  • 5/20/2018 Atelier ABAP

    62/94

    62 Solutions de Scurit & Services

    Certains programmes standards sont des programmes dits Systme .

    Pour identifier si un programme est Systme, il suffit de vrifier les

    proprits via SE38

    Pour ce type de programmes, il est ncessaire dactiver le Debuggingsystmepour rendre possible le debug et les points darrts.

    Le DEBUGEcran DEBUG

    Ecran DEBUG

  • 5/20/2018 Atelier ABAP

    63/94

    63 Solutions de Scurit & Services

    c a UG

    Navigation

    Code ABAP

    Valeurs zones

    Structure SYST

    Le DEBUGEcran DEBUG

    Navigation

  • 5/20/2018 Atelier ABAP

    64/94

    64 Solutions de Scurit & Services

    g

    (F5) : Mode pas pas. Permet dexcuter le code ligne par ligne.

    (F6) : Permet dexcuter le code ligne par ligne sans rentrer dans lesportions de code appeles via MF / routine / autres programmes.

    (F7) : Retour. Permet de revenir dans le programme appelant lorsquelon se trouve dans le programme appel (routine / MF/).

    (F8) : Continuer. Permet dexcuter le code dune seule traitejusquau prochain point darrt ou la fin du programme le cas chant.

    Le DEBUGEcran DEBUG

    Navigation

  • 5/20/2018 Atelier ABAP

    65/94

    65 Solutions de Scurit & Services

    g

    : Un point de surveillanceest un point darrt

    particulier qui permet de narrter lexcution du programme quelorsquune variable a pris une valeur particulire.

    Cette fonction est trs utile pour dtecter une occurrence particulire dansune boucle sans pour autant excuter toutes les occurrences en pas pas.

    Arrt lorsque la variable WT_TAB1-VBELNa pour valeur 0195002610

    Le DEBUGEcran DEBUG

    Navigation

  • 5/20/2018 Atelier ABAP

    66/94

    66 Solutions de Scurit & Services

    La barre de navigation permet de changer les zones afficher dans

    lcran du bas.

    Il est en particulier possible de visualiser et ventuellement supprimer lespoints darrts / surveillance.

    Laffichage le plus utile reste laffichage par dfaut : Zones.

    Le DEBUGEcran DEBUG

    Code ABAP

  • 5/20/2018 Atelier ABAP

    67/94

    67 Solutions de Scurit & Services

    Cet cran affiche le code ABAP en cours de DEBUG.

    Les points darrts sont visibles par une icne

    Il est possible de supprimer ou rajouter un point darrt en double-cliquantsur la ligne de code.

    Les flches permettent de naviguer dans le code ABAP

    pour ventuellement positionner de nouveaux points darrt. Il estgalement possible dutiliser les touches PGUPet PGDWNdu clavier.

    Le DEBUGEcran DEBUG

    Valeurs zones

  • 5/20/2018 Atelier ABAP

    68/94

    68 Solutions de Scurit & Services

    Cet cran permet dafficher les valeurs des variables du code ABAP.

    Pour le faire il suffit de renseigner le nom de la zone dans la premire

    colonne ou de double-cliquer sur la zone concerne dans le code ABAP.

    Dans cette version du debugger, il est possible de visualiser jusqu 8

    zones.

    : disponible pour les tables internes, permet de visualiser toutes lesentres de la table interne.

    : Permet de modifierla valeur dune variable pendant le DEBUG (cf.rubriques suivantes)

    Le DEBUGEcran DEBUG

    Structure SYST

  • 5/20/2018 Atelier ABAP

    69/94

    69 Solutions de Scurit & Services

    La structure SYST (ou SY) est une structure standard SAP.

    Structure alimente et mise jour tout au long du traitement.

    Elle contient des zones systmes permettant davoir des informations surle traitement et son droulement.

    Exemple de zones : SY-SUBRC : code retour dinstruction. Si elle vaut 0, le traitement est OK et a

    fonctionn tel que demand. Ce code est souvent test dans les programmepour identifier par exemple si une slection a renvoy un rsultat.

    SY-TABIX : renvoie le numro de ligne en cours dans une boucle detraitement.

    SY-UNAME : renvoie le user qui excute le traitement

    SY-DATUM : renvoie la date systme

    SY-REPID : renvoie le nom du programme en cours dexcution

    Il est trs important de tester cette structure dans le programme (enparticulier le SY-SUBRC) et de suivre son volution lors dun DEBUG carelle contient de nombreuses informations utiles.

    Le DEBUGModif DEBUG

    Il est possible de modifier la valeur de variables pendant un DEBUG.

  • 5/20/2018 Atelier ABAP

    70/94

    70 Solutions de Scurit & Services

    Cette option est configurable (ADMIN SAP) et est en gnral dsactivedans les environnements productifs.

    Cette fonctionnalit peut se rvler trs utile car elle permet de changerdes donnes issues de SAP dans le DEBUG pour aiguiller le traitement dala manire souhaite.

    Il suffit de changer la valeur de la zone dans le DEBUG puis cliquer sur lecrayon de modification :

    Par exemple : contournement autorisations Dans un programme, un authority-check est mis en place pour empcher

    la suite dun traitement si lon ny est pas autoris.

    Le traitement sarrte si le code retour SY-SUBRC renvoy par lauthority-check est diffrent de 0.

    Il suffit de positionner un point darrt sur le test du SY-SUBRC et de

    forcer la valeur 0. Le traitement continuera alors comme si le contrle avait t OK.

    Le DEBUGExport tables internes

    Lorsquune table interne comporte de nombreuses lignes, il est difficile de

    l l d l DEBUG

  • 5/20/2018 Atelier ABAP

    71/94

    71 Solutions de Scurit & Services

    lanalyser dans lcran DEBUG.

    Il est alors utile de lexporter sous EXCEL pour identifier les lignes etvaleurs qui nous intressent.

    Cette fonction permet de visualiser et analyser facilement les donnesdune table interne en dehors du debugger.

    Cela permet ventuellement de stocker les valeurs pour les comparer dautres par la suite.

    Le DEBUGExport tables internes

    Il faut dans ce cas

  • 5/20/2018 Atelier ABAP

    72/94

    72 Solutions de Scurit & Services

    double-cliquer sur la table interne en question.

    Dans lcran DEBUG, diter la structure

    Dans le nouvel cran, diter toute la liste

    Enfin, sauvegarder la liste dans un fichier local, exploitable par un utilitairetype EXCEL.

    Le DEBUGDEBUG Formulaires

    Un formulaire SAPScript ne se debug pas de la mme manire.

  • 5/20/2018 Atelier ABAP

    73/94

    73 Solutions de Scurit & Services

    Il faut activer le DEBUG formulaire via SE71.

    Ensuite, lorsque le formulaire est appel, le DEBUG formulaire apparat.

    Ce debugger est relativement complexe et peu intuitif, donc rserv desinitis

    Le DEBUGConseils

    Il est ncessaire, avant de se lancer dans un DEBUG, de visualiser lecode du programme afin den identifier les grandes fonctionnalits et

  • 5/20/2018 Atelier ABAP

    74/94

    74 Solutions de Scurit & Services

    code du programmeafin d en identifier les grandes fonctionnalits etviter dtre perdu lors du DEBUG.

    Il est conseill de positionner les points darrtssur des lignes de codestratgiques avant de se lancer dans un DEBUG : cela permettra degagner du temps.

    Un debug peut tre relativement long et ncessiter de nombreux passagesafin de dterminer le bout de code analyser.

    Lorsque lon rajoute un point darrt dans le code via lcran de DEBUG, ilfaut penser cliquer sur la disquette de sauvegarde pour que le pointdarrt soit conserv pour la prochaine excution.

    Dans cette version du DEBUG, un point darrt est li au userqui laactiv. Lorsque lon se dconnecte, les points darrt sont perdus.

    Pour quun point darrt soit pris en compte, il faut quitter et relancer le

    programme ou la transaction debugger.

    Plan

    Prsentation

  • 5/20/2018 Atelier ABAP

    75/94

    75 Solutions de Scurit & Services

    Objets ABAP de base

    Instructions ABAP de baseFonctionnalits ABAP

    Navigation ABAP

    Le DEBUGUtile

    Pratique

    Questions

    UtileLexique

    ABAP: Allgemeiner BerichtsAufbereitungsProzessor / Advanced BusinessApplication Programming

  • 5/20/2018 Atelier ABAP

    76/94

    76 Solutions de Scurit & Services

    Application Programming

    ALV: Abap List Viewer, techno ABAP pour crer un report de type EXCEL

    BADI: Business Add-In, adaptation du standard BAPI: Business Application Programming Interface, fonction dintgration

    Batch: arrire-plan, par extension job en arrire-plan

    Break Point: Point darrt

    BTCI: Batch-Input

    CATT: Computer Aided Test Tool

    CSV: Comma Separated Values, format de fichier avec sparateur virgule(point virgule pour les versions franaises)

    EDI: Echange de Donnes Informatises

    IDoc: Intermediate DOCument MF: Module Fonction ou Fonction

    UtileLexique

    OT: Ordre de Transport

    PAI P Aft I t d ABAP

  • 5/20/2018 Atelier ABAP

    77/94

    77 Solutions de Scurit & Services

    PAI: Process After Input, pour dynpro ABAP

    PBO: Process Before Output, pour dynpro ABAP

    SAP: Systeme, Anwendungen und Produkte in der Datenverarbeitung /Systems, Applications, and Products for data processing

    UtileProgrammes utiles

    RGUGBR00 : Activation des rgles de validations et substitutions FI

    RPR ABAP SOURCE SCAN R h h d

  • 5/20/2018 Atelier ABAP

    78/94

    78 Solutions de Scurit & Services

    RPR_ABAP_SOURCE_SCAN: Recherche dans programmes

    RSTRANSP: Transports variantes de programmes

    RSTXSCRP: Import / Export de formulaires RSTXTRAN: Transport textes standards

    RSTXPDFT4: Conversion spool en PDF

    RV80HGEN: Activation des routines et dispositions de type VOFM

    Z_DOWN_PROG : Export programmes en HTML sur TAV WW (VD3)

    UtileTransactions utiles

    ABAPDOCU: Documentation ABAP

    ABAPHELP : Aide ABAP

  • 5/20/2018 Atelier ABAP

    79/94

    79 Solutions de Scurit & Services

    ABAPHELP: Aide ABAP

    AL11: Gestion des rpertoires SAP

    CG3Z/ CG3Y: Import / Export de fichiers entre PC local et serveur SBWP: Sap Business WorkPlace, contient lhistorique des objets

    SCMP: Comparaison de tables (utile pour les comparaisons de tables deCUSTO ente environnements SAP)

    SE03: Recherche dOTs par objets, description,

    SE11: Dictionnaire ABAP

    SE15: Recherche dobjets

    SE16N: Utilitaire de modification de tables (dangereux)

    SE30: Analyse du temps dexcution

    SE37: Editeur de modules fonctions

    UtileTransactions utiles

    SE38: Editeur ABAP

    SE71 : Editeur SAPScript

  • 5/20/2018 Atelier ABAP

    80/94

    80 Solutions de Scurit & Services

    SE71: Editeur SAPScript

    SE80: Editeur ABAP complet

    SE91: Recherche de messages SE93: Recherche de transactions

    SEARCH_SAP_MENU: Recherche de menu SAP

    SM13: Entres de blocage

    SM37: Suivi des jobs dexploitation SM51: Journal systme

    ST05: Trace systme

    ST22: DUMPs

    SU01/ SU01D: Gestion des users

    SU53: Dernier contrle dautorisation effectu sur le user de connexion

    WEDI: Transaction chapeau de la gestion des IDocs

    UtileSE30

    SE30sert analyser les performances dun programme ou transaction.

    Cela peut tre trs utile pour effectuer une premire analyse

  • 5/20/2018 Atelier ABAP

    81/94

    81 Solutions de Scurit & Services

    Cela peut tre trs utile pour effectuer une premire analysedoptimisation.

    Rentrer le nom du programme tester puis excuter

    Excuter le programme comme en rel.

    Revenir en arrire avec la flche verte jusqu lcran initial de la SE30.

    UtileSE30

    Cliquer sur Analyser

    Lanalyse montre la rpartition du temps de traitement

  • 5/20/2018 Atelier ABAP

    82/94

    82 Solutions de Scurit & Services

    L analyse montre la rpartition du temps de traitement. ABAPconcerne le code en lui-mme

    Base de donneconcerne les slections de donnes Systme R/3concerne le temps de traitement SAP

    Un clic sur le bouton liste dans lordre les oprations les plus

    coteuses en temps de traitement.

    Il est ensuite plus facile de faire une optimisation efficace.

    UtileSE93

    Utile pour connatre le programme standard ou spcifique utilis par unetransaction.

  • 5/20/2018 Atelier ABAP

    83/94

    83 Solutions de Scurit & Services

    Cette transaction peut savrer utile pour contourner les autorisations danscertains cas.

    En effet de nombreux contrles dautorisations sont rattachs la

    transaction et pas au programme appel, il suffit donc parfois dexcuter

    directement le programme et non la transaction.

    Exemple SM51

    UtileSE16N

    Transaction daffichage et modification de tables SE11, y compris les

    tables standards.

  • 5/20/2018 Atelier ABAP

    84/94

    84 Solutions de Scurit & Services

    Renseigner le nom de la table et le code &sap_edit( + ventuellement

    des critres de slection), validerpour faire apparatre un message en basde lcran puis excuter.

    Vous pouvez alors modifier les donnes de la table.

    UtileSE16N

    Toutes les modifications sont listes dans la table SE16N_CD_KEY.

  • 5/20/2018 Atelier ABAP

    85/94

    85 Solutions de Scurit & Services

    En cas de problmes dautorisations sur la SE16N, il est possible dutiliser

    le MF SE16N_INTERFACE.

    Attention : manipuler avec une trs grande prcaution.

    UtileIDocs

    La transaction gnrale des IDocs est la WEDI, qui permet daccder toutes les transactions lies au IDocs.

  • 5/20/2018 Atelier ABAP

    86/94

    86 Solutions de Scurit & Services

    Les transactions les plus utiles sont les WE02(slection et visualisation

    des IDocs) et WE19(permet de rejouer un IDoc). Dans le cas o un document SAP est gnr ou a gnr un IDocs, il est

    possible de visualiser lIDoc en question directement partir de lobjet

    SAP.

    UtileLiens utiles

    Merry\Affaires\AMS_SAP_RUN\Z 99 - Capitalisation

    https://www.sdn.sap.com

    https://www.sdn.sap.com/https://www.sdn.sap.com/
  • 5/20/2018 Atelier ABAP

    87/94

    87 Solutions de Scurit & Services

    p p

    http://sap.ittoolbox.com

    Plan

    Prsentation

    https://www.sdn.sap.com/http://sap.ittoolbox.com/http://sap.ittoolbox.com/https://www.sdn.sap.com/
  • 5/20/2018 Atelier ABAP

    88/94

    88 Solutions de Scurit & Services

    Objets ABAP de base

    Instructions ABAP de baseFonctionnalits ABAP

    Navigation ABAP

    Le DEBUGUtile

    Pratique

    Questions

    PratiqueMon premier programme ABAP

    Cahier des charges Extraction des commandes de ventes ABAP (VA03)

  • 5/20/2018 Atelier ABAP

    89/94

    89 Solutions de Scurit & Services

    Possibilit de slectionner uniquement certaines commandes Exemple : commandes de 195002610 196003610

    Restriction de la slection sur les commandes cres depuis le dbut delanne 2010

    Reporting en sortie avec 4 colonnes : Numro de commande SAP

    Numro de commande client

    Numro de poste SAP FLAG

    Si la quantit dordre au niveau du poste de commande est suprieur 2,

    FLAG = SUP, sinon FLAG = NO

    PratiqueDEBUG1

    JIRA: TAV-10001

    Programme: ZFORM_ABAP1

  • 5/20/2018 Atelier ABAP

    90/94

    90 Solutions de Scurit & Services

    Variante: ZVAR01

    Problme: Pour la commande 195004233, la quantit totale dans lereport nest pas bonne : le report affiche une quantit de 11 alors quelle

    devrait tre de 21. ZPL

    195002610 196003610

    PratiqueDEBUG2

    JIRA: TAV-10002

    Programme: ZFORM_ABAP2

  • 5/20/2018 Atelier ABAP

    91/94

    91 Solutions de Scurit & Services

    Variante: ZVAR02

    Problme: Le programme ne fonctionne pas. Job arrire-plan excut par user BTCADMIN

    Tout est OK sauf commande 195003564 manquante en sortie

    PratiqueDEBUG3

    JIRA: TAV-10003

    Programme: ZFORM_ABAP3

  • 5/20/2018 Atelier ABAP

    92/94

    92 Solutions de Scurit & Services

    Variante: ZVAR03

    Problme: Le programme dure trop longtemps, il faudrait loptimiser.

    PratiqueProgrammes

    Vous trouverez ci-joint les programmes utiliss pour la pratique du

    DEBUG :

  • 5/20/2018 Atelier ABAP

    93/94

    93 Solutions de Scurit & Services

    Le fichier ci-dessous est une solution propose pour le programme

    du chapitre Mon premier programme ABAP :

    F ichier WinZip

    F ichier WinZip

    Plan

    Prsentation

    Objets ABAP de base

  • 5/20/2018 Atelier ABAP

    94/94

    94 Solutions de Scurit & Services

    Objets ABAP de base

    Instructions ABAP de baseFonctionnalits ABAP

    Navigation ABAP

    Le DEBUGUtile

    Pratique

    Questions