User Tools

Site Tools


abap:tables

ABAP Tables

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 :

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., 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

  • 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 !).
    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.
  • DELETE
  • SORT
abap/tables.txt · Last modified: 2020/02/18 17:16 by ginko