Daten blockweise exportieren

Getting started ... Alles für einen gelungenen Start.
22 Beiträge • Seite 1 von 2 (current) Nächste
22 Beiträge Seite 1 von 2 (current) Nächste

Daten blockweise exportieren

Beitrag von Bjuti (ForumUser / 45 / 14 / 0 ) »
Huhu,

ich brauche mal wieder ein paar Anregungen von euch. :)

Folgendes:

Ich selektiere Daten von SAP-Datenbanktabellen mit dem Zusatz PACKAGE SIZE.

Nach jedem Paket sollen die selektierten Daten (liegen in einer internen Tabelle) auf mein Frontend Laufwerk exportiert werden. Meinetwegen als CSV-Datei.
Diese Datei soll dann nach jedem Selectlauf fortgeschrieben werden.

Geht das überhaupt? Und wenn ja, geht das auch als Hintergrundjob?

VG Bjuti

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Daten blockweise exportieren

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Hi bjuti,

das Zauberwort heißt: gui_download! ;)

Code: Alles auswählen.

    cl_gui_frontend_services=>gui_download(
            EXPORTING filename              = lv_file_name
                      filetype              = 'DAT'
                      write_field_separator = 'X'
            CHANGING  data_tab      = lt_deine_tabelle
            EXCEPTIONS OTHERS       = 4 ).
In Filename wird der komplette Dateiname INKL. (!!) Pfad mitgegeben.
Gruß,
der Matze

Re: Daten blockweise exportieren

Beitrag von Bjuti (ForumUser / 45 / 14 / 0 ) »
Huhu,

danke für die schnelle Antwort. Ich werde es probieren und berichten. Aber ich befürchte das GUI_DOWNLOAD nicht im Batch funktioniert?

VG

Re: Daten blockweise exportieren

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Hi,

sorry, da hätte ich wohl doch besser aufmerksam bis zum Ende gelesen. :D

Dann musst du mit OPEN DATASET, TRANSFER und CLOSE DATASET arbeiten.

Code: Alles auswählen.

 DATA: file   TYPE string,
  wa_expotab LIKE LINE OF expotab.

  OPEN DATASET file FOR OUTPUT IN TEXT MODE
                        ENCODING DEFAULT
                        WITH SMART LINEFEED.
  LOOP AT expotab INTO wa_expotab.
    TRANSFER wa_expotab-feld TO file.
  ENDLOOP.
  CLOSE DATASET file.

Folgende Benutzer bedankten sich beim Autor Thanatos82 für den Beitrag:
Bjuti

Gruß,
der Matze

Re: Daten blockweise exportieren

Beitrag von Bjuti (ForumUser / 45 / 14 / 0 ) »
Huhu,

also ich bekommen folgende Fehlermeldung:
Während einer Datenbankselektion erfolgte ein Datenbank-Commit.
Anschließend sollte diese Selektion fortgesetzt werden. Vor einem
Datenbank-Commit müssen aber alle laufenden Datenbankselektionen
abgeschlossen werden.
Wie oben erwähnt, arbeite ich mit PACKAGE SIZE.

Nachdem die Daten exportiert wurde, soll ein neues Paket selektiert werden. An dieser Stelle kommt dann der Abbruch. Liegt das jetzt an dem GUI_DOWNLOAD (CALL FUNCTION) ?

OK ich schau mir das mit dem TRANSFER an :) Vielen Dank.

Re: Daten blockweise exportieren

Beitrag von Bjuti (ForumUser / 45 / 14 / 0 ) »
Hallo Matze,

wo gebe ich beim TRANSFER den Pfad mit? Beziehungsweise wo finden ich dann die Datei? Soweit ich das verstanden habe, wird die Datei damit "nur" auf den Aplikationserver abgelegt?

VG

Re: Daten blockweise exportieren

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
schau mal hier. Da wird die Lösung ganz am Ende beschrieben. Habe es selbst noch nicht getestet.

Folgende Benutzer bedankten sich beim Autor Thanatos82 für den Beitrag:
Bjuti

Gruß,
der Matze

Re: Daten blockweise exportieren

Beitrag von a-dead-trousers (Top Expert / 4419 / 224 / 1189 ) »
Bjuti hat geschrieben:also ich bekommen folgende Fehlermeldung:
Während einer Datenbankselektion erfolgte ein Datenbank-Commit.
Anschließend sollte diese Selektion fortgesetzt werden. Vor einem
Datenbank-Commit müssen aber alle laufenden Datenbankselektionen
abgeschlossen werden.
...
Liegt das jetzt an dem GUI_DOWNLOAD (CALL FUNCTION) ?
Ja, definitiv! Ein jeder Aufruf eines Funktionsbausteins (CALL FUNCTION) oder Programms (SUBMIT) bewirkt in SAP einen sog. impliziten Datenbank-Commit.
Bjuti hat geschrieben:wo gebe ich beim TRANSFER den Pfad mit? Beziehungsweise wo finden ich dann die Datei? Soweit ich das verstanden habe, wird die Datei damit "nur" auf den Aplikationserver abgelegt?
Der Pfad ist in dem Beispiel von Thanatos82 in der Variable FILE gespeichert.
Also vorher

Code: Alles auswählen.

FILE = '/usr/sap/tmp/test.dat'.
Und auf dem Applikationsserver wird im Ordner '/usr/sap/tmp' die Datei 'test.dat' abgelegt.
Wenn eure Server unter Windows laufen, kannst du hier auch z.B. den Namen eines Netzwerkverzeichnisses angeben. Unter Unix/Linux müsste dafür SAMBA/CIFS aktiviert und eingerichtet sein.

lg ADT

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Bjuti

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Daten blockweise exportieren

Beitrag von Bjuti (ForumUser / 45 / 14 / 0 ) »
Ok, es klappt soweit. Herzlichen Dank :)

Re: Daten blockweise exportieren

Beitrag von Bjuti (ForumUser / 45 / 14 / 0 ) »
Huhu,

hab nun doch noch einen kleinen Problem:

Code: Alles auswählen.

OPEN DATASET file    FOR OUTPUT IN TEXT MODE
                        ENCODING DEFAULT
                        WITH SMART LINEFEED.
  LOOP AT Tabelle INTO Workarea.
    TRANSFER Workarea TO file.
  ENDLOOP.

CLOSE DATASET file.
Syntaktisch ok, aber beim ausfürhen bekomme ich folgende Fehlermeldung:
Bei der Anweisung
"TRANSFER f TO ..."
sind an der Argumentposition "f" nur zeichenartige Datenobjekte
unterstützt.

Re: Daten blockweise exportieren

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Hi,

was für eine Struktur hat denn deine Workarea?!
Gruß,
der Matze

Re: Daten blockweise exportieren

Beitrag von Bjuti (ForumUser / 45 / 14 / 0 ) »
Huhu,

ich hoffe das ist was du meinst?

Code: Alles auswählen.

TYPES: BEGIN OF Type_tabelle,
              B          LIKE EVER-B,
              C          LIKE EVER-C,
              D          LIKE EVER-D,
              DATE    LIKE EVER-Date,
             TEXT    TYPE C LENGTH 50.
       END OF Type_Tabelle.


DATA: Tabelle TYPE TABLE OF Type_Tabelle,
          Workarea LIKE LINE OF  Tabelle.
VG Bjuti

Re: Daten blockweise exportieren

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Hi,

Idee 1: Steht hinter ever-b, ever-c, ever-d irgendwas deep structure ähnliches? Oder ist es eins von denen ein raw- oder xstring Feld? Ich vermeide es auch immer mit "LIKE" zu deklarieren und nutze stattdessen TYPE.
Idee 2: Die Deklaration deiner Workarea kannst du auch direkt auf den angelegten Typen beziehen: workarea TYPE type_tabelle.

Folgende Benutzer bedankten sich beim Autor Thanatos82 für den Beitrag:
Bjuti

Gruß,
der Matze

Re: Daten blockweise exportieren

Beitrag von Bjuti (ForumUser / 45 / 14 / 0 ) »
Ja super, die deklaration war wohl zu schwammig. Mit workarea TYPE type_tabelle hat es geklappt.

Danke :)

Re: Daten blockweise exportieren

Beitrag von Bjuti (ForumUser / 45 / 14 / 0 ) »
Huhu,

ich nochmal...

Ich habe nun, in einer SELECT / ENDSELECT Schleife, eine Datei auf dem Aplikationsserver abgelegt.
Durch APPEND wird diese auch wie gewünscht fortgeschrieben.

Nach dem ENDSELCT möchte ich diese nun aufs Frontend abspeichern.

Sprich eine Datei vom Aplikationsserver aufs Frontend laden. Ich habe Momentan folgenden FuBa C13Z_APPL_TO_FRONT_END.

Soweit so gut. Nur möchte ich natürlich nicht immer Zieldatei und Quelldatei eintrgaen müssen. Kann ich diese informationen direkt im ABAP mitgeben?

VG

Vergleichbare Themen

1
Antw.
1916
Views
Daten aus dem ABAP System in Excel exportieren
von katgo » 15.03.2006 16:35 • Verfasst in Web-Dynpro, BSP + BHTML
1
Antw.
1565
Views
blockweise select
von adazip » 11.06.2008 13:48 • Verfasst in ABAP® für Anfänger
8
Antw.
3779
Views
Programm auf CD exportieren?
von muelly » 11.08.2008 13:03 • Verfasst in SAP - Allgemeines
1
Antw.
1239
Views
Objekte exportieren
von HH_ABAP » 06.09.2018 11:22 • Verfasst in ABAP® für Anfänger
0
Antw.
1350
Views
Klassen als XML exportieren
von Michael.Nett » 21.12.2005 13:50 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Feldwerte vergleichen
vor 6 Stunden von wreichelt 2 / 29
Workflow-Datenfluss mit Multi-Line-Container
vor 8 Stunden von ewx gelöst 2 / 82
Mahnung erstellen
vor 12 Stunden von Sebastian82 4 / 113
Absprung VA02 Position
vor 2 Tagen von gs3rr4 gelöst 3 / 112

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Feldwerte vergleichen
vor 6 Stunden von wreichelt 2 / 29
Workflow-Datenfluss mit Multi-Line-Container
vor 8 Stunden von ewx gelöst 2 / 82
Mahnung erstellen
vor 12 Stunden von Sebastian82 4 / 113
Absprung VA02 Position
vor 2 Tagen von gs3rr4 gelöst 3 / 112

Unbeantwortete Forenbeiträge

OPD Druck im SPOOL
vor 2 Tagen von Manfred K. 1 / 71
Export von Spools in XLSX
vor einer Woche von abapamateur 1 / 780
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 1380