3964 Readings
BI
SAP for 12 years
Posted by Yann MORINEAU
7 years ago
Modified 7 years ago


Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Pas de Modification 4.0 International.

Partager — copier, distribuer et communiquer le matériel par tous moyens et sous tous formats

Transformer les données d'une DataSource

Depuis la version ECC6, il est recommandé d'utiliser l'implémentation de la BAdI RSU5_SAPI_BADI à la place des USER EXIT traditionnels (EXIT_SAPLRSAP_001 à 004)

Dans ce tutoriel nous nous intéresserons à la modification des données transactionnelles.

 

1.Implémentation de la BAdI ZC_RSU5_SAPI_BADI 

img

Cliquez sur img

Renseignez le nom de la BAdI à créer.

img

Renseignez la désignation de la BAdI.
imgSauvegardez img

Maintenant, positionnez-vous sur l'onglet 'Interface' et double-cliquez sur le nom de la classe.

img

Pour le moment, la BAdI est créée mais n'est pas active. 

 

2.La classe ZCL_IM_C_RSU5_SAPI_BADI

Vous arrivez sur cet écran :

img

Nous allons nous intéresser à la première méthode et écrire la mécanique d'appel dynamique.

img

 

2.1.La méthode d'instanciation  IF_EX_RSU5_SAPI_BADI~DATA_TRANSFORM

Cette méthode d'instanciation permet de construire l'appel dynamique des méthodes privées.

Déclaration de la variable de récupération du nom de la DataSource.

DATA : l_method TYPE seocmpname.

Le nom d'une méthode doit toujours commencer par un lettre, on ajoute un préfixe, ici 'M'.

CONCATENATE 'M_' i_datasource INTO l_method.

On vérifie que la table globale contient des données.

CHECK c_t_data[] IS NOT INITIAL.

On vérifie que la méthode appelée existe bien pour la classe 'ZCL_IM_C_RSU5_SAPI_BADI'.

  SELECT SINGLE cmpname
    FROM seocompo
    INTO l_method
    WHERE clsname =  'ZCL_IM_C_RSU5_SAPI_BADI'
      AND cmpname = l_method.

Si la méthode existe.

CHECK sy-subrc EQ 0.

On appelle la méthode avec les paramètres standards.

  CALL METHOD (l_method)
    EXPORTING
      I_UPDMODE    = i_updmode
      I_T_SELECT   = i_t_select
      I_T_FIELDS   = i_t_fields
    CHANGING
      C_T_DATA     = c_t_data
      C_T_MESSAGES = c_t_messages.

 

Maintenant nous ajoutons notre méthode, celle qui modifiera les données de notre DataSource

img

 

2.2.La méthode privée M_DATASOURCE_NAME

Double-cliquez sur le nom de la méthode, vous arrivez sur le détail.

img

 

2.2.1.Le domaine privé

Nous allons commencer par modifié le 'Domain Privé' pour informer les paramètres de la méthode.

img

  class-methods M_DATASOURCE_NAME
    importing
      value(I_UPDMODE) type SBIWA_S_INTERFACE-UPDMODE
      value(I_T_SELECT) type SBIWA_T_SELECT
      value(I_T_FIELDS) type SBIWA_T_FIELDS
    changing
      !C_T_DATA type ANY TABLE
      !C_T_MESSAGES type RSU5_T_MESSAGES optional.

 

2.2.2.Le code de la méthode 

Pour l'exemple, 'datasource_structure' est le nom de la structure générée lors de la création de la DataSource.

Déclaration des variables.

FIELD-SYMBOLS: <L_S_DATA> TYPE datasource_structure.

On copie la table globale sur notre table interne.

L_T_DATA[] = C_T_DATA[].

(...) " Vos sélections spécifques

Puis on boucle sur la table interne pour mettre à jour ses données.

LOOP AT L_T_DATA ASSIGNING <L_S_DATA>.
...
ENDLOOP.

Enfin on transfert les données dans la table globale.

C_T_DATA[] = L_T_DATA[].

Et n'oubliez pas les CLEAR de vos tables et variables.

 

3.Activation de la BAdI

Lancez la transaction SE19

img

Entrez en modification img

Cliquez sur le bouton d'activation img

Votre BAdI est active.

img

 

Avantages

  • Plus besoin de bloquer l'include ZXRSAU01 pour ajouter un traitement,
  • Ajouter de nouvelles implémentations sans impacter les autres.
  • Faciliter le travail à plusieurs.

Info

  • Pour tester la remontée des données, utilisez la transaction RSA3.
  • Pour désactiver votre BAdI, cliquez sur img 

Pub

Sign in or Sign up to ask questions.

Latest tutorials from the same author

imgBPC

Déboguer un package

Astuce pour déboguer un package ...

Posted 6 years ago
Modified 6 years ago
6157
imgBPC

BPC BI and Source system

BPC Overview ...

Posted 6 years ago
Modified 6 years ago
6923
imgBPC

Vider le cache BPC

Vider le cache BPC avec UJA_REFRESH_DIM_CACHE ...

Posted 6 years ago
Modified 6 years ago
5277
imgBPC

BPC, BI et Système source

Vue d'ensemble de BPC ...

Posted 6 years ago
Modified 6 years ago
5966