RFC_READ_TABLE mit RANGES selection

Hinweise, Tips und Tricks, FAQs - keine Anfragen!!
1 Beitrag • Seite 1 von 1
1 Beitrag Seite 1 von 1

RFC_READ_TABLE mit RANGES selection

Beitrag von Tron (Top Expert / 1327 / 35 / 331 ) »
Moin.
Möchte man eine dynamische Selektionsklausel für eine Tabellenselektion (where...), kann man sich aus einem SELECT-OPTIONS bzw. RANGES Objekt
mit dem Funktionsbaustein F4_CONV_SELOPT_TO_WHERECLAUSE eine Where-Klausel generieren lassen.

Beispiel für Dynamischen Select mit Dynamischer Where Klausel.
Vorbereitung für dynamisches Lesen der Tabelle STXH
funktioniert auch bei RFC_READ_TABLE mit SELECT-OPTIONS ;)

Code: Alles auswählen.


  SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001.
  SELECT-OPTIONS s_tobj FOR ts_stxh-tdobject.
  SELECT-OPTIONS s_tname FOR ts_stxh-tdname.
  SELECT-OPTIONS s_tid FOR ts_stxh-tdid.
  SELECT-OPTIONS s_tspras FOR ts_stxh-tdspras.
  SELECTION-SCREEN END OF BLOCK a.



  DATA ls_sel TYPE ddshselopt.
  DATA lt_sel TYPE TABLE OF ddshselopt.
  DATA gv_where TYPE string.


  CLEAR ls_sel.
  ls_sel-shlpfield = 'TDOBJECT'.
  LOOP AT s_tobj.
    MOVE-CORRESPONDING s_tobj TO ls_sel.
    APPEND ls_sel TO lt_sel.
  ENDLOOP.

  CLEAR ls_sel.
  ls_sel-shlpfield = 'TDNAME'.
  LOOP AT s_tname.
    MOVE-CORRESPONDING s_tname TO ls_sel.
    APPEND ls_sel TO lt_sel.
  ENDLOOP.

  CLEAR ls_sel.
  ls_sel-shlpfield = 'TDID'.
  LOOP AT s_tid.
    MOVE-CORRESPONDING s_tid TO ls_sel.
    APPEND ls_sel TO lt_sel.
  ENDLOOP.

  CLEAR ls_sel.
  ls_sel-shlpfield = 'TDSPRAS'.
  LOOP AT s_tspras.
    MOVE-CORRESPONDING s_tspras TO ls_sel.
    APPEND ls_sel TO lt_sel.
  ENDLOOP.

  CALL FUNCTION 'F4_CONV_SELOPT_TO_WHERECLAUSE'
* EXPORTING
*   GEN_ALIAS_NAMES       = ' '
*   ESCAPE_ALLOWED        = ' '
    IMPORTING
      where_clause = gv_where
    TABLES
      selopt_tab   = lt_sel.

*Für RFC_READ_TABLE
*   SPLIT gv_where AT ' ' INTO TABLE gt_opt.
Bei Verwendung von RFC_READ_TABLE muß der STRING in die Tabelle OPTIONS gesplittet werden,
(SPLIT gv_where AT ' ' INTO TABLE gt_opt) da die Zeile begrenzt ist.
gruß Jens

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag (Insgesamt 5):
IHeewxThomas R.Lukas Sanderswolli

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

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


Seite 1 von 1

Vergleichbare Themen

3
Antw.
2639
Views
read table
von kostonstyle » 27.03.2008 15:38 • Verfasst in ABAP® für Anfänger
2
Antw.
3196
Views
READ TABLE dynamisch aufrufen
von RiffRaff » 27.12.2004 12:04 • Verfasst in ABAP® Core
8
Antw.
8618
Views
Read Table mit MAX Datum und Zeit
von autohandel7 » 23.08.2018 10:54 • Verfasst in ABAP® für Anfänger
5
Antw.
18326
Views
read table liefert sy-subrc = 4
von c oco » 04.04.2011 17:09 • Verfasst in ABAP® für Anfänger
33
Antw.
13106
Views
READ TABLE ... WITH KEY [logische Verknüpfung mögl?]
von sapjob » 18.11.2015 11:27 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag

Tron

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

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140