Quelle für Währungsschlüssel bei Referenzentabellen?

Alle Fragen rund um Basisthemen
2 Beiträge • Seite 1 von 1
2 Beiträge Seite 1 von 1

Quelle für Währungsschlüssel bei Referenzentabellen?

Beitrag von Timo7 (ForumUser / 21 / 0 / 0 ) »
Hallo zusammen,

ich habe ein Verständnis-Problem mit Referenztabellen und Referenzfeldern bei Mengen- und Währungsfeldern:

Beispielsweise habe ich eine Tabelle Y01, die u.a. ein Feld für eine Währungsmenge vom Typ CURR 11 vorsieht. Dabei referenziert dieses Feld auf die Tabelle T001 und das Währungsschlüsselfeld WAERS. Allerdings stehen in dieser Tabelle mehrere Datensätze mit unterschiedlichen Währungsschlüsseln. Wie zieht sich das System also den richtigen Währungsschlüssel bzw. wie kommt der Join der Tabellen Y01 und T001 zustande? Oder wird der Währungsschlüssel der Tabelle Y01 nicht sichtbar angehängt und steht dort somit automatisch jedem Datensatz in Y01 als separates Währungsschlüssel-Feld zur Verfügung?

Danke für Antworten!

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


Beitrag von edwin (Specialist / 306 / 10 / 68 ) »
Hallo,
die Referenztabelle wird nur für die Ein/Ausgabe dieses Feldes benutzt,
es gibt kein Schattenfeld und auch kein Join zwischen den Tabellen,
intern werden die P-Felder ohne Kommastelle abgelegt.
Währen der Laufzeit muss das Refernzfeld(z.B. in Tables T001 mit gültigem Feldinhalt) dem Prozessor zur Verfügung stehen, sonst wird das CURR Feld einfach wie ein P-Feld mit 2-Dezimalstellen behandelt.

Siehe dazu auch SAP-Hinweise :
153707 und 126857
als Beispiel hier noch ein kleines Coding, es gibt nur ein Selections Bild sonst nichts, gerechnet wird hier immer mit 2-Dezimalen, weil bseg-txbfw / txbhw mit 2-Dezimalen definiert wurde, unabhängig davon ob z.B JPY / oder EUR.. eingegben wurde, in den pmx... Feldern siehst Du die interne Darstellung (HEX), versuche mal ein paar Währung,dann siehst Du dass es nur unterschiedliche Darstellungen des Inhalts ist

Code: Alles auswählen.

REPORT  ZWAER
 LINE-SIZE 255 MESSAGE-ID z001.

TABLES: t001.      "<<< das brauchen wir, sonst wird nicht aufbereitet
TABLES: bkpf.      "<<< das brauchen wir, sonst wird nicht aufbereitet
* der Dynpro Processor braucht für die Aufbereitung den
* Schnittstellenbereich, der in TABLES definiert ist !
* Wenn nur "data t001 type t001." definert ist,
* funktioniert die Aufbereitung des Parameters pm_t001b nicht
* siehe auch interne Hilfe zu Tables  (F1 bei Cursor auf TABLES)


* Da BSEG-txbhw nur 13-stellen hat, machen wir auch
* folgende Felder kleiner
parameters pm_dec1(7)   type p decimals 1       default '5.1'.
parameters pm_dec2(7)   type p decimals 2       default '12.23'.
parameters pm_dec3(7)   type p decimals 3       default '12.345'.
parameters pm_t001w     type t001-waers         default 'JPY'.
* BSEG-txbhw ist auf t001-waers refernziert

parameters pm_t001b     type BSEG-txbhw         default '10'.
parameters pm_bkpfw     type bkpf-waers         default 'EUR'.
parameters pm_bkpfb     type BSEG-TXBFW.
selection-screen skip.
parameters pmxt001b(7)  type x.
parameters pmxbkpfb(7)  type x.
parameters pmxdec01(7)  type x.
parameters pmxdec02(7)  type x.
parameters pmxdec03(7)  type x.

* intern werden alle Betragsfelder ohne Kommastellen abgelegt,
* (siehe pmx.... Felder) erst bei einer Aktion wird die Definition
* des Feldes herangezogen !
* Sonderbearbeitung CURR Felder: die Verschiebung des Vorzeichens
* hängt vom REFERENZ Feld ab, sonst wird es wie ein P Typ mit 2
* Dezimalstellen behandelt.
* Das Referenzfeld wird !während! der Aufbereitung benötigt,
* d.H in unserem Fall brauchen wir das Feld T001-WAERS
* "AT SELECTION-SCREEN OUTPUT", wenn die Währung nicht definiert ist,
* wird die Standardaufbereitung p dec 2 herangezogen
* In unserem Fall muss für die Aufbereitung in die Workarea T001
* und BKPF die Währungen eingetragen werden -> dann klappt es auch
* mit den Betragsfeldern


field-symbols <fs_x> type x.

initialization.

AT SELECTION-SCREEN OUTPUT.
* Setze die Währungen vom Sel-Screen
  t001-waers = pm_t001w.
  bkpf-waers = pm_bkpfw.
* Addiere die Felder zum Betrag
  pm_t001b = pm_dec1 + pm_dec2 + pm_dec3.
  pm_bkpfb = pm_t001b.
* Aufbereitung in X-Felder für die Ausgabe
  ASSIGN pm_t001b TO <fs_x> CASTING.
  pmxt001b = <fs_x>.
  ASSIGN pm_bkpfb TO <fs_x> CASTING.
  pmxbkpfb = <fs_x>.
  ASSIGN pm_dec1 TO <fs_x> CASTING.
  pmxdec01 = <fs_x>.
  ASSIGN pm_dec2 TO <fs_x> CASTING.
  pmxdec02 = <fs_x>.
  ASSIGN pm_dec3 TO <fs_x> CASTING.
  pmxdec03 = <fs_x>.

  LOOP AT SCREEN.
    IF screen-name(6) = 'PM_DEC'   or
       screen-name    = 'PM_T001W' or
       screen-name    = 'PM_BKPFW'.
      screen-input = '1'.
    else.
      screen-input = '0'.
    endif.
    MODIFY SCREEN.

  ENDLOOP.
*
QUAN-Felder analog

Viel Spass
:wink:
Gruss Edwin

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1077
Views
Währungsschlüssel
von Gast » 11.08.2005 15:49 • Verfasst in Financials
16
Antw.
7853
Views
Quelle der Daten (Datenbanktabellen) herausfinden, bei Liste
von Bright4.5 » 11.09.2018 11:18 • Verfasst in ABAP® für Anfänger
14
Antw.
1935
Views
SELECT ... INTO TABLE @DATA... als Quelle für Tabellenausdrücke
von whaslbeck » 22.05.2023 09:54 • Verfasst in ABAP® Core

Über diesen Beitrag


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

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.

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor 3 Wochen von Manfred K. 1 / 3470
BUSOBJEKT zu CMIS PHIO ermitteln
letzen Monat von snooga87 1 / 5286
aRFC im OO-Kontext
October 2024 von ralf.wenzel 1 / 6339