User Tools

Site Tools


abap:tables

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
abap:tables [2013/05/13 17:27] ginkoabap:tables [2020/02/18 17:16] (current) – [DDIC] ginko
Line 1: Line 1:
 ====== ABAP Tables ====== ====== ABAP Tables ======
-[[abap:data_hunt|Rechercher les tables standard dans SAP]].+  * [[abap:data_hunt|Rechercher les tables standard dans SAP]]
 + 
 +===== Définition de table dans ECC ===== 
 + 
 +==== Delivery class ==== 
 + 
 +  * A : Application table 
 +    * Les données peuvent-être modifiées dans les différents mandants et donc être désynchronisées 
 +  * C : Customizing table 
 +    * Dans la configuration SM30 standard, un OT de custo est demandé pour toute modif 
 +    * Le mandant doit être ouvert pour pouvoir modifier les valeurs 
 + 
 +===== Types de db tables ===== 
 +Il existe 3 types de table de db : 
 + 
 +  * __transparent__ : la représentation de la table dans SAP est identique à sa représentation dans la db (même nom, même champs, etc) ; on y accède en Open SQL comme en Native SQL 
 +  * __pooled__ : toutes les pooled tables sont stockées dans une même table physique, la table pool ; on y accède seulement en Open SQL et son accès est restreint (ex. : pas de jointures) ; utilisé pour des petites tables 
 +  * __cluster__ : comme pour les pooled tables, les cluster table sont stockées dans un même table cluster ; les cluster table sont soumises aux mêmes restrictions d'accès que les pooled table ; en revanche les cluster tables permettent d'implémenter des genres de jointures "naturelles" (et **//statiques//**) car on peut déclarer des clés communes pour plusieurs tables, elles sont alors stockées conjointement et donc lues ensemble de façon très efficace 
 + 
 +Sauce : 
 + 
 +  * [[https://help.sap.com/saphelp_nwpi71/helpdata/en/cf/21f083446011d189700000e8322d00/content.htm|SAP Help]] 
 +  * [[http://www.saptechnical.com/Tutorials/ABAP/Pool/Index.htm|Transparent vs pooled vs cluster]] 
 + 
 +===== Définition des tables dans le code ===== 
 + 
 +Lorsqu'on déclare une table interne dans un programme, si on la déclare de type ''STANDARD TABLE'', mais sans déclarer de clé explicite, le système compose la clé primaire à partir de tous les champs alphanumériques (les champs numériques et les champs de référence ou contenant une table interne sont écartés). (//This declares the fields of the default key as the key fields. If the table has a structured line type, the default key contains all non-numeric columns of the internal table that are not and do not contain references or internal tables. If the table has an elementary line type, the default key is the entire line. The default key of an internal table whose line type is an internal table, the default key is empty.//, [[http://help.sap.com/saphelp_bw30a/helpdata/en/fc/eb366d358411d1829f0000e829fbfe/content.htm|Source]]) 
 + 
 +Cela a des conséquences avec les commandes qui travaillent implicitement avec des clés comme ''INSERT'', ''MODIFY'' ou encore ''COLLECT''
 +===== Z-tcode for table ===== 
 +Pour donner l'accès en lecture à une table, il suffit de créer une transaction (se93) de type ''transaction with parameters''
 +  * Remplir le champ transaction avec ''SE16'' 
 +  * Cocher ''Skip initial screen'' 
 +  * Mettre ''DATABROWSE-TABLENAME'' et en valeur la table ou la vue souhaitée 
 + 
 +D'un point de vue autorisation, l'accès à la SE16 n'est pas nécessaire. Les objets testés sont ''S_TCODE'', évidemment et ''S_TABU_DIS'', ce qui vérifie donc le groupe d'autorisation adossé à la table ou la vue. 
 + 
 +Je n'ai pas l'impression qu'il soit possible d'assigner des objets d'autorisation (par exemple division pour accès à MARA). Dans ce cas, soit passer par un report ALV spé, soit faire un report avec un ''CALL TRANSACTION'' qui appelle notre "transaction with parameters".
 ===== DDIC ===== ===== DDIC =====
   * DD02L : Table des tables et structures de tables.   * DD02L : Table des tables et structures de tables.
 +  * DD03L : Table fields
 +  * DD04L : Data elements
 +  * DD04T : Data element texts
 +
 +===== Useful tables =====
 +  * T100 : table des messages (se91)
 +  * TADIR : programmes (catalogue des objets)
 +  * TFDIR : modules fonction
 +  * TRDIR (TRDIRT) : table des programmes (se38)
 +  * TSTC (TSTCT): table des transactions (se93)
 +  * TDEVC : packages
 +  * REPOSRC : programmes (auteur, modification)
 +  * SEOCLASS : classes
 +  * D010INC : Inclusions de programmes
 +  * EUOBJ : type des objets de développement
 +
 +==== Tables des descriptions ====
 +  * Descriptions des tables : DD02T
 +  * Descriptions des module fonctions : TFTIT
 +  * Descriptions des transactions : TSTCT
 +
 +==== Tables des autorisations ====
 +  * AGR_DEFINE : Rôles (rôle parent)
 +  * AGR_FLAGS : Attributs des rôles (flag composite)
 +  * AGR_TCODES : Transactions
 +  * AGR_1016 : Rôle <-> Profile
 +  * AGR_1250 : Rôle/Objet <-> Profile
 +  * AGR_1251 : Valeurs dans les champs des objets
 +  * AGR_1252 : Valeurs des niveaux organisationnels
 +  * AGR_AGRS : Rôles rattachés aux composites
 +  * USOBT : Objets proposables par transaction - standard (SU22)
 +  * USOBX : Objets et valeurs proposés par transaction - standard (SU22)
 +  * USOBT_C : Objets proposables par transaction - customer (SU24)
 +  * USOBX_C : Objets et valeurs proposés par transaction - customer (SU24)
 +  * TOBJ : Définition des objets d'autorisation - champs (SU21)
 +  * TACT & TACTZ : Activités ''ACTVT''
 +
 +==== Opérations sur les tables ====
 +  * **READ TABLE**
 +  * **LOOP AT**
 +  * **INSERT**
 +  * **COLLECT**
 +  * **APPEND**
 +  * **MODIFY** équivalent de ''UPDATE'' en OpenSQL. /!\ Pas du tout l'équivalent du ''MODIFY'' en OpenSQL !! <!\ S'utilise soit à partir d'un ''INDEX'' ou d'une clé (qui doit donc être déclarée !).<code abap>DATA itab TYPE TABLE OF plop WITH KEY primary_key k1 k2. " Attention, le clé primaire **DOIT** s'appeler 'primary_key' !
 +MODIFY TABLE itab FROM wa.</code>
 +  * **DELETE**
 +  * **SORT**
abap/tables.1368458876.txt.gz · Last modified: 2013/05/13 17:27 by ginko