Page mise à jour Wednesday 12 November 2008 à 14:03:12+0100  
Ce petit mémo est destiné à tous ceux qui s'intéressent à SAP et l'ABAP.

Sa dernière mise à jour date de début 2007. (dernière? dernière...) [Petites mises-à-jour en cours, plutôt sur la forme/update 2008]

Je l'ai d'abord conçu pour me servir de fourre-tout. Il recense donc les meilleurs trucs dont j'ai connaissance sur SAP/ABAP, et mes meilleures créations (paragraphe: programmes qui déchirent), plus quelques trucs portés à ma connaissance par le destin...

Programmes ABAP qui déchirent

Ces programmes sont testés et approuvés sur SAP version 4.6C.

Query4 / z_tetard : requêtes SQL avec SAP / ABAP

Venant du monde Oracle, j'ai longuement cherché un "équivalent" à TOAD sous SAP. Sans succès...

Je me suis résigné à accepter un programme qui permettrait de visualiser le résultat d'une reqûete "compliquée" (pour un développeur SAP <=> avec plus d'une table [no comment]).

Au départ je voulais simplement faire marcher le programme suivant... Sans succès... SQL Tool for ABAP Yes4SQL -- Both Native & Open SQL Le programme utilise probablement des instructions propres à SAP 4.7..., mais même en les remplaçant, ça marchait toujours pô à cause d'un problème de DYNPRO. De plus il gère les cas "Open SQL" et "Native SQL" ce qui embrouille le code)

Je remercie quand même l'auteur: Jayanta Narayan Choudhuri http://www.geocities.com/ojnc

J'en ai donc reprise les bonnes idées, assaisonnées à la sauce 4.6C:

Télécharger le programme: query.abap / ztoad.abap / z_TETARD.abap.

Depuis, je commence à revivre... avec des requêtes aussi compliquées que:
        select vbak~ernam vbak~vbeln
        from vbak inner join vbap
        on vbak~vbeln = vbap~vbeln
        where vbak~ernam = 'SOP.FERRY'
        group by vbak~ernam vbak~vbeln
        having count( * ) > 5
Bref la transaction SQVI est devenue obsolête ;)

Insertion de données CSV en base - CSV2bdd

Ce développement permet l'insertion de données au format CSV dans une table SAP.

Le truc sympa est que le développement n'utilise pas un octet de trop, grâce à l'instruction "create data".

Et puis les "create data" ça rappelle les bons souvenirs de (m)alloc en C.

Télécharger le programme: csv_2_bdd.abap (update SAP table from csv)

Astuces qui déchirent

Mise à jour de données - se16, se16n

En résumé:
taper se16n dans le champ pour les commandes

Il est alors possible de faire un copier/coller de ouattemille lignes dans la table (plus long que le cadre prévu) sans problème:
bouton Add Rows (sous la flèche) / Control-V (depuis excel)

ATTENTION les opérations sont loggées dans les tables SE16N_CD_DATA et SE16N_CD_KEY!

C'était un dommage collatéral de la formation performance...

Version allemande (source in-re-trouvable):
Es ist möglich auch ohne, dass das entsprechende Tabellen-Pflege-Flag gesetzt ist, Datensätze in der SE16 bzw. SE16N zu manipulieren.

In der SE16N bitte folgendermaßen vorgehen:

Hier die Anleitung für die alte SE16:

Für beide Aktionen benötigt man ein Debug-Berechtigung.

Falls Die Transaktion SE16N gesperrt ist, kann auch der Report RK_SE16N in der SE38 gestartet werden.

Im Fall der SE16N werden die Änderungen in den Tabellen SE16N_CD_DATA und SE16N_CD_KEY weggeschrieben.

Achtung !!! Sehr gefährlich, wenn man die falchen Daten aus Versehen ändert.

Exécution de requête (Native) SQL : DB_EXECUTE_SQL

J'ai testé cette fonction avec succès pour les requêtes sans retour de lignes (DELETE)

Je pense qu'elle est OK pour les INSERT, UPDATE, DELETE mais pas les SELECT.

ATTENTION: il y a un COMMIT automatique!!!

ATTENTION la gestion du mandant doit être explicite !!!

DELETE FROM ZTABLE WHERE MANDT = '410' ...
Fonction DB_EXECUTE_SQL (se37) [Groupe de fonctions: SYDB ]

call 'C_DB_EXECUTE'
       id 'STATLEN' field ln
       id 'STATTXT' field stmt
       id 'SQLERR' field sql_code
       id 'ERRTXT' field sql_msg
       id 'ROWNUM' field row_num.

Modifications de programmes SANS clé de développeur!!!

source: http://searchsap.techtarget.com/tip/... Test home ABAP program Peng Siong Lim 01.12.2005 Rating: -2.50- (out of 5) [seulement???]

Encore plus fort que le debug en se16, et la se16n avec &sap_edit!!!
C'est totalement pas testé par moi, et totalement sans garantie.
Trop fort

If you have an SAP system installed at your home and want to test out ABAP programs, this tip will help. It will show you how to modify a program without ABAP access key.

Follow the guide below on how to bypass the access key request dialog, then enjoy the freedom of create, modify any program (including standard program).

Et tant qu'à faire (avec une excuse hyper bidon) [update 2008]: How to Modify the code in Quality or Production Systems?

Imagine, you are doing a unit test for a object in QA, suddenly a test case fails and oh! come one you have to change this one line again in development and move it to Quality to test. That will take definetly at least 5 minutes to 30 minutes, depending on how your system is configured. How about changing the code directly in quality and continuing the testing. One little suggestion before we proceed with the tutorial, always use this trick only in quality and not in production or it may create chaos. I work on 4.6c and have not used this trick in all the other sap versions. Please try it and let me know your comments.

Évidemment, il vaut mieux chercher un boulot en dehors du monde SAP après ce genre d'exploit...

Relations Tables SAP

Ou encore: MCD SAP, modèle relationnel SAP.
Crédits: SAP Table Relations version 1.0.0
compiled by Christopher Solomon with contributions by various SAP Professionals: Télécharger: sap_tables.pdf (Relations tables SAP)

Programmes importants

Recherche de motifs dans les programmes

source: http://www.tricktresor.de/content/index.php?navID=382&aID=282

Transaction sdw0: menu spécifique aux développeurs

SDW0 MENUSDW0 ABAP/4 Développement Workbench: accès

Cette transaction modifie le menu inférieur, avec toutes les transaction sympathiques pour le développement.

Un peu comme wedi pour les IDOCS.

Programme : SAPHTML_DEMO1 (se38)

Ouverture d'un browser internet dans un mode SAP (via des liens OLE et une communication frontale).

Liens SAP

ABAP Chess (mise-à-jour 2008!)

Pour l'amour de l'art:  Google Code SAP Chess ou SDN SAP Chess
"///////////////////////////////////////////////////////////////////////////
"///////////////////////////////////////////////////////////////////////////
"//         _____           _____     _____  _                            //
"//        / ____|   /\    |  __ \   / ____|| |                           //
"//       | (___    /  \   | |__) | | |     | |__    ___  ___  ___        //
"//        \___ \  / /\ \  |  ___/  | |     | '_ \  / _ \/ __|/ __|       //
"//        ____) |/ ____ \ | |      | |____ | | | ||  __/\__ \\__ \       //
"//       |_____//_/    \_\|_|       \_____||_| |_| \___||___/|___/       //
"//                                                                       //
...
Enjoy!