Extraction des données de SAP ECC (2024)

De nombreuses applications SAP Data Services (DS) utilisent les données SAP ECC comme source. Il arrive maintenant que DS supporte plusieurs mécanismes pour extraire les données de SAP ECC. Laquelle choisir ? Il existe souvent une méthode préférée, en fonction de la fonctionnalité requise et des capacités offertes dans le contexte réel du système source. Dans ce blog, je discute de toutes les différentes options.

Commencez par configurer un magasin de données pour le système source SAP :

Extraction des données de SAP ECC (1)

Figure 1 : Définition du magasin de données SAP

Les paramètres obligatoires sont le nom d'utilisateur et le mot de passe, le nom (ou l'adresse IP) du serveur d'applications SAP, le numéro de client et de système (instance).

1/. Flux de données "régulier"

Lors de l'extraction à partir d'une seule table, faites-le dans un flux de données standard. Importez la définition de table à partir du référentiel de métadonnées dans l'explorateur du magasin de données et utilisez-la comme source dans un flux de données.

Une extraction de la table de données de base client KNA1 ressemble à ceci :

Extraction des données de SAP ECC (2)

Figure 2 : Flux de données – extrait de KNA1

Notez le petit triangle rouge dans l'icône de la table source. C'est une indication d'un extrait direct de la couche de données SAP.

C'est la méthode la plus simple. Aucune mesure particulière n'est nécessaire au niveau du système source. L'extraction s'exécutera comme une tâche de dialogue SAP. Notez qu'il existe un paramètre de délai d'attente (configurable par le système, généralement 10, 30, 60 minutes) pour les travaux de dialogue. La tâche DS échouera lorsque l'extraction des données prendra plus de temps.

Les conditions where sont transmises à la base de données sous-jacente. Ceci est bénéfique pour la performance au travail. Assurez-vous également d'extraire uniquement les colonnes qui sont vraiment nécessaires. La durée du processus d'extraction est liée de manière linéaire au volume de données, qui est égal au nombre d'enregistrements * taille moyenne des enregistrements. Moins il y a de données transférées, plus la tâche DS s'exécute rapidement.

Extraction des données de SAP ECC (3)

Figure 3 : Transformation de requête – extrait de KNA1, à l'exclusion des enregistrements obsolètes

Extraction des données de SAP ECC (4)

Figure 4 : Code SQL généré – la clause where est poussée vers le bas

Cette approche est particulièrement avantageuse lors de la mise en œuvre de charges incrémentielles. Lorsque la table source contient une colonne avec un horodatage de dernière modification, vous pouvez facilement implémenter la capture des données modifiées (CDC) basée sur la source. Gardez une trace des horodatages que vous avez utilisés lors de l'extraction incrémentielle précédente (utilisez une table de contrôle pour cela), initialisez les variables globales avec ces valeurs et utilisez-les dans la clause where de votre transformation Query.

Extraction des données de SAP ECC (5)

Figure 5 : Transformation de la requête – Extrayez les enregistrements récemment créés ou modifiés de MARA

Extraction des données de SAP ECC (6)

Figure 6 : Code SQL généré – CDC basé sur la source

2/. Flux de données ABAP

Bien que les conditions where soient transmises à la base de données sous-jacente à partir d'un flux de données normal, les jointures ne le sont pas (les opérations de tri et de regroupement ne le sont pas non plus !), ce qui entraîne souvent des performances abominables, en particulier lorsqu'il s'agit de volumes de données plus importants.

Lorsque vous souhaitez extraire les données de base du matériau de MARA et compléter chaque enregistrement avec la description du matériau en anglais de MAKT, vous pouvez créer un flux de données comme celui-ci :

Extraction des données de SAP ECC (7)

Figure 7 : Flux de données – extrait de MARA et MAKT

Extraction des données de SAP ECC (8)

Figure 8 : Transformation de requête – joindre MARA et MAKT sur les colonnes MANDT et MATNR

Extraction des données de SAP ECC (9)

Extraction des données de SAP ECC (10)

Figure 9 : Code SQL généré – pas de jointure

DS génère deux instructions SQL. Il extrait d'abord tous les enregistrements actuels de MARA. Et ensuite, pour chaque enregistrement individuel, il récupère la description anglaise correspondante (MATNR = AIVariable_1 et MANDT = AIVariable_2). Cette approche conduit à autant d'allers-retours vers la base de données sous-jacente qu'il y a d'enregistrements dans la table MARA ! Ce n'est valable que lorsqu'il s'agit de petit* ensembles de données.

Vous pouvez améliorer les performances en modifiant les propriétés des tables source.

Les paramètres par défaut sont :

Extraction des données de SAP ECC (11)

Figure 10 : Propriétés de la table source par défaut

Faire de MARA la table de conduite (en lui donnant un plus hautRejoindre le rangque MAKT) et la mise en cache de MAKT en mémoire conduit à une génération de code SQL complètement différente, sans allers-retours singuliers vers la base de données. La table MARA passe par le flux de données, la table MAKT est mise en cache et la jointure est résolue dans la mémoire DS.

Extraction des données de SAP ECC (12)

Extraction des données de SAP ECC (13)

Figure 11 : Propriétés modifiées de la table source

Extraction des données de SAP ECC (14)

Extraction des données de SAP ECC (15)

Figure 12 : Code SQL généré – cache MAKT

La faisabilité de cette approche est impactée par 2 paramètres :

  • La quantité de mémoire disponible pour la mise en cache
  • Le temps nécessaire pour mettre en cache la table MAKT

Cela fonctionne parfaitement pour les petites tables. Mais ce n'est pas non plus une solution performante lorsque MAKT et MARA sont trop grands

La solution recommandée pour extraire à partir d'une jointure de tables SAP consiste à utiliser un flux de données ABAP.

Extraction des données de SAP ECC (16)

Figure 13 : Flux de données ABAP – extrait de MARA et MAKT

DS génère du code ABAP correspondant aux propriétés des tables source et à la logique du flux de données. Le tableau avec le plus hautRejoindre le classem*ntdevient la table de conduite. Dans ce cas également, la durée du processus d'extraction est liée de manière linéaire au volume de données : moins il y a de données transférées, plus la tâche DS s'exécute rapidement.

Extraction des données de SAP ECC (17)

Figure 14 : Code ABAP généré

Le code ABAP est transmis au système SAP et y est exécuté. Seuls les résultats du programme sont renvoyés à DS pour un traitement ultérieur. Cette approche ne fonctionne que lorsque le système SAP est ouvert au développement ! Assurez-vous également que :

  • LeOption d'exécution ABAPest réglé surGénérer et exécuter.
  • LeExécuter en arrière-plan (par lots)la propriété est définie surOuipour éviter le délai d'attente dans les travaux de dialogue SAP.
  • LeMéthode de transfert de donnéesest réglé surRFC. LeDestination RFCdoit être défini dans le système SAP. Les autres méthodes de transfert de données sont là uniquement pour des raisons de compatibilité ascendante et ne doivent plus être utilisées. Ils conduisent tous à des performances inférieures.

Extraction des données de SAP ECC (18)

Figure 15 : Définition du magasin de données SAP

Pour exécuter la même tâche DS dans des niveaux autres que de développement de votre environnement, transférez d'abord le programme ABAP de DEV vers TST, PRD... Met leOption d'exécution ABAPpourExécuter préchargéet exécutez la tâche DS. Il ne générera pas à nouveau le code ABAP, mais exécutera le code transporté.

Les flux de données ABAP sont également une solution pratique pour implémenter des charges incrémentielles pour les tables ECC qui ne contiennent pas de colonne d'horodatage de dernière modification. Les insertions et modifications dans KNA1 sont enregistrées dans les tables CDHDR et CDPOS. Utilisez un flux de données ABAP pour joindre KNA1 à ces tables. Assurez-vous que CDHDR obtient le plus hautRejoindre le classem*nt, KNA1 le plus bas, afin d'obtenir le code généré le plus efficace. Et incluez les conditions où :

  • Filtrez les clients actuels
  • Obtenir les enregistrements récemment modifiés uniquement
  • À partir des entrées correctes dans les tables de journal

Extraction des données de SAP ECC (19)

Figure 16 : flux de données ABAP – extrait de KNA1

Extraction des données de SAP ECC (20)

Figure 17 : Transformation de requête – joindre KNA1 avec CDHDR et CDPOS

Extraction des données de SAP ECC (21)

Figure 18 : Transformation de requête – Extraire les enregistrements récemment créés ou modifiés de KNA1

3/. Extracteur SAP

Les extracteurs SAP sont conçus pour BW Business Content. Ils contiennent toute la logique des transformations commerciales courantes, des agrégations possibles et également comment identifier déjà les changements, ils sont donc très adaptés à la mise en œuvre de charges incrémentielles.

La fonctionnalité DS Extractor s'appuie sur l'API ODP (Operational Data Provisioning). DS prend en charge tous les types de sources ODP pris en charge par l'API ODP, y compris la fonctionnalité CDC.

Dans un flux de données standard, DS utilise RFC pour appeler l'API de réplication de données ODP. Les conditions where ne sont pas poussées jusqu'à l'extracteur. Cela signifie que toutes les données sont extraites de l'extracteur et que le filtrage est effectué ensuite dans DS. Importez la définition d'objet ODP à partir du référentiel de métadonnées dans l'explorateur de magasin de données.

Extraction des données de SAP ECC (22)

Figure 19 : Extracteur d'importation 0CUSTOMER_ATTR

Assurez-vous de régler leMode d'extractionpourMettre en doute. Utilisez-le ensuite comme source dans un flux de données. Une extraction de l'objet ODP 0CUSTOMER_ATTR ressemble à ceci :

Extraction des données de SAP ECC (23)

Figure 20 : Flux de données – extrait de 0CUSTOMER_ATTR

Si vous souhaitez extraire uniquement un sous-ensemble mineur des données, utilisez l'objet ODP comme source dans un flux de données ABAP.

Extraction des données de SAP ECC (24)

Figure 21 : flux de données ABAP – extrait de 0CUSTOMER_ATTR

Ajoutez la clause where à la transformation Query.

Extraction des données de SAP ECC (25)

Figure 22 : Transformation de requête : extrayez les clients américains actuels de 0CUSTOMER_ATTR

DS génère l'ABAP qui appelle l'API de réplication de données ODP. Le code généré contient la logique pour filtrer les enregistrements inutiles.

Extraction des données de SAP ECC (26)

Figure 23 : Code ABAP généré

La mise en œuvre de CDC est vraiment un jeu d'enfant pour les extracteurs qui sont « compatibles delta ». Assurez-vous de régler leMode d'extractionpourCapture de données modifiées (CDC). Lors de l'importation de l'objet ODP.

Extraction des données de SAP ECC (27)

Figure 24 : Extracteur d'importation 0PROJECT_ATTR

Utilisez-le ensuite comme source dans un flux de données. Il n'est pas nécessaire d'ajouter une condition basée sur le temps dans la clause where. La logique d'extraction garantit que seuls les enregistrements nouveaux et modifiés sont transmis à DS. Assurez-vous simplement que leCharge initialepropriété de l'objet ODP est définie surNon. Réglez-le uniquement surOuilorsque vous souhaitez que la table cible soit réinitialisée.

Extraction des données de SAP ECC (28)

Figure 25 : Propriétés de l'objet ODP

Incluez une transformation Map_CDC_Operation pour synchroniser automatiquement la table cible avec l'objet source. La transformation traduira la valeur Row Operation dans le type de ligne DS correspondant :

  • Je > Insérer
  • B & U : image avant et après d'une mise à jour
  • D > Supprimer

Extraction des données de SAP ECC (29)

Figure 26 : Flux de données – extrait delta de 0PROJECT_ATTR

4/. Fonction ECC

DS peut également appeler des fonctions ECC compatibles RFC renvoyant des tables en tant que sources de flux de données. Si une fonction ECC standard n'est pas compatible RFC, vous avez besoin d'une fonction wrapper compatible RFC qui transmet les paramètres à la fonction standard, l'appelle et transmet les résultats à DS.

Vous ne pouvez importer les métadonnées d'une fonction que par leur nom. Appelez-le à partir d'une transformation de requête en sélectionnant Nouvel appel de fonction… dans le menu contextuel de son schéma de sortie. Sélectionnez la fonction dans le magasin de données ECC. Définissez le(s) paramètre(s) d'entrée et sélectionnez Paramètre de sortie. L'appel de fonction est ajouté au schéma de sortie.

Extraction des données de SAP ECC (30)

Extraction des données de SAP ECC (31)

Extraction des données de SAP ECC (32)

Extraction des données de SAP ECC (33)

Extraction des données de SAP ECC (34)

Figure 27 : Transformation de requête – appeler une fonction ECC

Ensuite, désimbriquez les résultats de retour dans une prochaine transformation de requête avant de les écrire dans une table cible.

Extraction des données de SAP ECC (35)

Figure 28 : Transformation de requête – désimbriquer le schéma de sortie de la fonction

5/. Serveur de réplication SAP LT (SLT)

DS peut utiliser SLT Replication Server comme source. Il s'agit d'un moyen très simple et élégant de créer des tâches CDC dans DS. L'utilisation d'objets SLT est similaire à la manière dont DS fonctionne avec des extracteurs SAP.

Définissez le magasin de données SLT comme n'importe quel autre magasin de données SAP. Assurez-vous simplement de sélectionner le bon contexte ODP dans la définition.

Extraction des données de SAP ECC (36)

Figure 29 : Définition du magasin de données SLT

Vous pouvez ensuite importer les tables dont vous avez besoin pour extraire les données.

Extraction des données de SAP ECC (37)

Figure 30 : Métadonnées de la table SLT

Utilisez l'objet ODP comme source dans un flux de données. La première fois que le flux de données est exécuté, il fera un extrait complet de la table sous-jacente. Toutes les exécutions successives en effectueront automatiquement une incrémentielle et ne transmettront que le delta.

Extraction des données de SAP ECC (38)

Figure 31 : Flux de données – extrait delta de MARA à SLT

6/. IDOC

Les travaux en temps réel DS peuvent lire les messages IDOC et les fichiers IDOC. Les tâches par lots DS ne peuvent lire que des fichiers IDOC.

Importez la définition de métadonnées IDOC par nom à partir du magasin de données SAP. Utilisez l'IDOC comme source de fichier dans un flux de données au sein d'un travail par lots.

Extraction des données de SAP ECC (39)

Figure 32 : Flux de données – extrait delta de la source du fichier IDOC

Double-cliquez sur l'icône IDOC pour ouvrir sa définition et spécifiez le nom du fichier IDOC. Vous pouvez utiliser des caractères génériques (? et *) ou répertorier plusieurs noms de fichiers séparés par des virgules si vous souhaitez traiter plusieurs fichiers dans un seul flux de données.

Extraction des données de SAP ECC (40)

Figure 33 : Propriétés IDOC

Générez le ou les fichiers IDOC à partir de SAP et exécutez votre travail DS.

Extraction des données de SAP ECC (2024)

FAQs

How to extract data from SAP ECC? ›

Extracting Data in SAP ECC
  1. Open SAP Logon and connect to the SAP ECC system containing the data you want to import.
  2. To list the available activated extractors, you can use the Postprocess DataSources and Hierarchy (RSA6) transaction and choose Enter as indicated below:

What is SAP extraction? ›

Extractors are part of the data retrieval mechanisms in the SAP source system. An extractor can fill the extraction structure of a DataSource with the data from SAP source system datasets. Replication makes the DataSource and its relevant properties known in BW.

How to extract data from SAP? ›

Use. The data extraction utility extracts data from the SAP applications you specify, and creates sequential files containing transaction and master data from these applications, as shown in the following illustration: DART's default settings allow you to select data for extraction from several SAP components.

How to extract data from SAP ECC to BW? ›

How to Load Master Data From ECC in SAP BI/BW
  1. Step 1) Creating a Generic Data Source for Text InfoObject. ...
  2. Step 2) Create transformation between Data Source(Source) and InfoObject Text(Target). ...
  3. Step 3) Create Infopackage and Schedule Dataload to the DataSource(PSA). ...
  4. Step 4) Create Data Transfer Process.
Jul 8, 2023

How do I extract data from SAP ECC to excel? ›

To export data to Excel
  1. On the toolbar, click the arrow beside the Export button, and then click XLS or XLSX (Excel 2007 and later). ...
  2. In the dialog box, select the crosstab or chart component whose data you want to export.

How do I extract SAP into Excel? ›

Procedure
  1. Choose List Export Spreadsheet. ...
  2. On the Select Spreadsheet dialog box, choose the format in which you want to save the exported data.
  3. Confirm your settings.
  4. In the following dialog box, enter the path and name of the file and save the file. ...
  5. Enter the necessary settings.

How to extract data from SAP to SQL? ›

In the Choose a Destination dialog box:
  1. From the Destination drop-down list, select SQL Native Client.
  2. From the Server name drop-down list, select a SQL server name.
  3. Select an authentication mode.
  4. From the Database drop-down list, select the database to which you want to import the SAP table.
  5. Click Next.
Feb 28, 2023

How is data stored in SAP ECC? ›

The data is stored and consolidated in DataStore objects. The data propagation layer offers a consistent basis for distributing and reusing data. The corporate memory is filled regardless of how data is posted to the architected data marts. It contains a complete history of all loaded data.

How to extract data from SAP using Python? ›

Connecting to SAP data looks just like connecting to any relational data source. Create a connection string using the required connection properties. For this article, you will pass the connection string as a parameter to the create_engine function. You can connect to SAP systems using either librfc32.

How do you extract data from ERP system? ›

One way to extract data from ERP systems is by connecting your database to an API management platform. From there, you can define and test your API endpoints with an external tool. Lastly, you will integrate the API endpoints in order to get the data from the ERP system.

How do you extract data from data? ›

The most efficient method for extracting data is a process called ETL. Short for “extract, transform, load,” ETL tools pull data from the various platforms you use and prepare it for analysis. The only alternative to ETL is manual data entry — which can take literal months, even with an enterprise amount of manpower.

How to fetch data from database in SAP? ›

Usually, in ABAP you use OpenSql statements to retrieve the data. OpenSql statements are similar to normal SQL statements. In case you need to use the function module on a remote system, then you need to use remote function calls like RFC_READ_TABLE.

What is the difference between ECC and BW in SAP? ›

With vital modules like Financials (FI), Material Management (MM), Sales and Distribution (SD), Human Capital Management (HCM), among others, SAP ECC is one of the favored decisions for various firms. Whereas SAP BW is an SAP's Enterprise Data Warehouse solution.

How to connect to SAP ECC database? ›

Connect to SAP ECC from Web or Workstation
  1. Select the SAP ECC connector.
  2. Next to Data Sources, click New Data Source to add a new connection. The Data Source dialog appears when there are no new database roles or connections.
  3. Enter your connection credentials in the Data Source dialog. ...
  4. Click Save.

How to extract data from SAP GUI? ›

Open SAP Logon and select the SAP system to which you want to sign in. Select Customize Local Layout (Alt+F12), and then select Script Recording and Playback.... Select More. Under Save To, provide the file path and filename where you want to store the captured user interactions.

How to extract data from SAP in CSV format? ›

If you want to export the data to a CSV file, choose Export to CSV. The system exports the data to a CSV file such that the query is displayed in CSV format (comma separated value). The numeric values of the query are displayed in a list and are separated with a field separator.

How do I export data from SAP to CSV? ›

Click a table name. Select Export Table as CSV. Specify whether you are exporting the table to an SAP HANA Server or to your Local Computer. If you're exporting to an SAP HANA server, then choose the SAP HANA directory you want to export the file to.

Where is data stored in SAP ECC? ›

As for DataSources, the data is stored in flat database tables. A DataStore object consists of a key (for example, document number, item) and a data area. The data area can contain both key figures (for example, order quantity) and characteristics (for example, order status).

Top Articles
Latest Posts
Article information

Author: Tuan Roob DDS

Last Updated:

Views: 5991

Rating: 4.1 / 5 (42 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Tuan Roob DDS

Birthday: 1999-11-20

Address: Suite 592 642 Pfannerstill Island, South Keila, LA 74970-3076

Phone: +9617721773649

Job: Marketing Producer

Hobby: Skydiving, Flag Football, Knitting, Running, Lego building, Hunting, Juggling

Introduction: My name is Tuan Roob DDS, I am a friendly, good, energetic, faithful, fantastic, gentle, enchanting person who loves writing and wants to share my knowledge and understanding with you.