RFC-FuBa: Tabellen-Join AUSP - CABN

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

RFC-FuBa: Tabellen-Join AUSP - CABN

Beitrag von samson (ForumUser / 32 / 0 / 0 ) »
Hallo Leute,

ich hab mir nen FuBa gebaut, welcher die AUSP und die CABN über die ATINN Joint. Das funktioniert soweit.

Code: Alles auswählen.

BEGIN OF s_itab,
         atnam TYPE cabn-atnam,
         atwrt TYPE ausp-atwrt,
END OF s_itab,

...

t_itab LIKE SORTED TABLE OF s_itab
               WITH UNIQUE KEY atnam atwrt,
...

Code: Alles auswählen.

SELECT * FROM ausp JOIN cabn ON ausp~atinn EQ cabn~atinn
  INTO CORRESPONDING FIELDS OF TABLE t_itab
    WHERE cabn~atnam IN r_merkmale
    AND ausp~objek EQ i_matnr.
Nun hab ich die t_itab nach meinen Wünschen gefüllt.

Wenn ich nun die Werte in meinem aufrufenden RFC-Programm verwenden möchte, kann ich ja nur eine in den FuBa-Parametern deklarierte Tabelle (mit Typ einer DB-Tabelle) ansprechen.

Muss ich mir eine eigene DB-Tabelle bauen um eine Tabelle im FuBa mit dem DB-Tab-Typ zu definieren oder gibt es eine elegantere Lösung?

Dankbar für jeden Tip.

Grüße
Samson
"der tag hat 24 stunden, wenn das nicht reicht, machen wir noch welche dran"

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xSAP-Release: ECC6.0 x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

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


Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
Eine DB-Tabelle musst nicht anlegen,
ein Tabellentyp im DDIC reicht auch aus.

Beitrag von ewx (Top Expert / 4846 / 311 / 642 ) »
Streng genommen brauchst du noch nicht mal einen srtukturierten Typ. Der Aufrufer muss dann nur wissen, welche Struktur verwendet wird (siehe RFC_READ_TABLE)

Danke,

Beitrag von samson (ForumUser / 32 / 0 / 0 ) »
Das waren die entscheidenden Hinweise...

Ich hab einfach die Struktur aus dem Code als Dictionary-Objekt angelegt und dann auf diese in der Parameter-Tabelle verwiesen!

Macht im nachhinein Sinn ;-)

Danke für eure Hilfe!
Grüße
Samson
"der tag hat 24 stunden, wenn das nicht reicht, machen wir noch welche dran"

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xSAP-Release: ECC6.0 x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Beitrag von ewx (Top Expert / 4846 / 311 / 642 ) »
Die Klassifizierungsbausteine sind übrigens auch RFC-fähig...
CACL_OBJECT_READ_VALIDATION
BAPI_OBJCL_GETDETAIL
Die solltest du ruhig benutzen.

Andernfalls solltest du dein Coding noch mal anpassen indem du die Klasse/ Klassenart bei der Selektion mitgibst.
Im Extremfall könnte es auch eine über die INOB verknüpfte Objektnummer geben, die evtl. die gleiche ist, wie eine Materialnummer!!

...

Beitrag von samson (ForumUser / 32 / 0 / 0 ) »
Die FuBa's verwende ich sonst auch.

Hier lese ich Merkmale aus verschiedenen Klassenarten aus.
Ging schneller als über die FuBa's...

;-)

Hier mal mein Code als Info.

Code: Alles auswählen.

FUNCTION YWQM_RFC_READ_CLASSIFICATION.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(I_MATNR) LIKE  MARA-MATNR OPTIONAL
*"  EXPORTING
*"     VALUE(E_STATUS) LIKE  MAKT-MAKTX
*"  TABLES
*"      T_MM STRUCTURE  YWQM_MERKMAL_S OPTIONAL
*"----------------------------------------------------------------------

DATA:
*********************************************************
* Range aufbauen
*********************************************************
r_merkmale TYPE RANGE OF cabn-atnam,
r_merkmale_line LIKE LINE OF r_merkmale,
t_return LIKE BAPIRETURN1,

null(1) type c,
nullen(14) type c,
anzahl_nullen type i.

*********************************************************
* Prüfen ob Material mit Vornullen
*********************************************************
null = '0'.

*   Vornullen für MATNR generieren wenn weniger als 18 Stellen
if strlen( i_matnr ) < 18.
  anzahl_nullen = 18 - strlen( i_matnr ).

  DO anzahl_nullen TIMES.
    concatenate null nullen into nullen.
  ENDDO.

  concatenate nullen i_matnr into i_matnr.
endif.


*********************************************************
* Prüfen ob Material vorhanden
*********************************************************
CALL FUNCTION 'BAPI_MATERIAL_EXISTENCECHECK'
  EXPORTING
    MATERIAL            = i_matnr
  IMPORTING
    RETURN              = t_return
          .
*********************************************************
* Nicht Vorhanden -> EXIT
*********************************************************
*loop at t_return.
  if t_return-type NE 'S'.
    write t_return-message to e_status.
    EXIT.
  endif.
*endloop.

*********************************************************
* Range mit den gewünschten Merkmalen füllen
*********************************************************
r_merkmale_line-sign   = 'I'.  "Bärbel fragen
r_merkmale_line-option = 'EQ'. "Bärbel fragen

r_merkmale_line-low    = 'LEISTUNG1'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'LEISTUNG2'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'LEISTUNG3'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'BETRIEBSART'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'SPANNUNG'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'SCHALTUNG'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'FREQUENZ_1'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'BAUFORM'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'SCHUTZART'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'WKL_ERZEUGNIS'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'NENNSTROM1'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'NENNSTROM2'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'NENNSTROM3'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'LEISTUNGSFAKTOR1'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'LEISTUNGSFAKTOR2'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'LEISTUNGSFAKTOR3'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'DREHZAHL1'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'DREHZAHL2'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'DREHZAHL3'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'KUEHLMITTELTEMPERATUR1'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'WIDERSTAND_JE_PHASE_1'.
APPEND r_merkmale_line TO r_merkmale.

r_merkmale_line-low    = 'WIDERSTAND_JE_PHASE_2'.
APPEND r_merkmale_line TO r_merkmale.

*********************************************************
* Select mit Join über Merkmalname (CABN) und
* Materialnummer: Selektiere alle bewerteten Merkmale
* welche mit Material verknüpft sind
*********************************************************
SELECT * FROM ausp JOIN cabn ON ausp~atinn EQ cabn~atinn
  INTO CORRESPONDING FIELDS OF TABLE t_mm
    WHERE cabn~atnam IN r_merkmale
    AND ausp~objek EQ i_matnr.

  if sy-subrc NE 0.
    e_status = 'Keine Bewertungen zum Material vorhanden'.
  else.
    e_status = 'Merkmale erfolgreich gelesen'.
  endif.


ENDFUNCTION.
"der tag hat 24 stunden, wenn das nicht reicht, machen wir noch welche dran"

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xSAP-Release: ECC6.0 x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Seite 1 von 1

Vergleichbare Themen

12
Antw.
6920
Views
3 Tabellen-Join
von kaufikauf » 12.08.2014 08:00 • Verfasst in ABAP® für Anfänger
4
Antw.
3050
Views
Tabellen Join
von commolus » 08.06.2012 10:54 • Verfasst in ABAP Objects®
4
Antw.
22541
Views
Join über 2 Tabellen
von Patrick Emse » 25.01.2006 10:19 • Verfasst in ABAP® Core
12
Antw.
6333
Views
Inner Join über 4 Tabellen
von falk » 02.03.2006 11:26 • Verfasst in ABAP® Core
2
Antw.
474
Views
Join über mehrere Tabellen
von Bright4.5 » 09.07.2021 10:47 • 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

Eclipse - warum/wann verwendet ihr es [nicht]
vor einer Stunde von tar 21 / 1408
Dialog-Container mit Toolbar/Status
vor 4 Stunden von DeathAndPain gelöst 22 / 2795
Daten an Tabelle binden
vor 9 Stunden von Lukas Sanders 2 / 873
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 429

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

Eclipse - warum/wann verwendet ihr es [nicht]
vor einer Stunde von tar 21 / 1408
Dialog-Container mit Toolbar/Status
vor 4 Stunden von DeathAndPain gelöst 22 / 2795
Daten an Tabelle binden
vor 9 Stunden von Lukas Sanders 2 / 873
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 429

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2466
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9050