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 / 4904 / 328 / 646 ) »
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 / 4904 / 328 / 646 ) »
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

4
Antw.
3849
Views
Tabellen Join
von commolus » 08.06.2012 10:54 • Verfasst in ABAP Objects®
12
Antw.
8358
Views
3 Tabellen-Join
von kaufikauf » 12.08.2014 08:00 • Verfasst in ABAP® für Anfänger
12
Antw.
7323
Views
Inner Join über 4 Tabellen
von falk » 02.03.2006 11:26 • Verfasst in ABAP® Core
9
Antw.
6249
Views
Problem mit Join von internen & DB-Tabellen
von debianfan » 10.11.2017 09:10 • Verfasst in ABAP® für Anfänger
2
Antw.
927
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

Zukunft des ABAP Entwicklers
vor 3 Tagen von DeathAndPain 15 / 1079
HR in der Zukunft?
vor 4 Tagen von DeathAndPain 6 / 2893
Prüfzeugnisse Anlagen finden
vor 6 Tagen von ewx gelöst 2 / 411

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

Zukunft des ABAP Entwicklers
vor 3 Tagen von DeathAndPain 15 / 1079
HR in der Zukunft?
vor 4 Tagen von DeathAndPain 6 / 2893
Prüfzeugnisse Anlagen finden
vor 6 Tagen von ewx gelöst 2 / 411

Unbeantwortete Forenbeiträge

Spool vereinen OTF und PDF
vor einer Woche von anna2205 1 / 368
XSLT und Loipro05 Transformation
letzen Monat von Torsten1965 1 / 6596
VOLL Artikel in einem Display Typ 12
November 2025 von ThomasM84 1 / 24567