Tabelle T001P mit Select auslesen: Molga ändert sich

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
10 Beiträge • Seite 1 von 1
10 Beiträge Seite 1 von 1

Tabelle T001P mit Select auslesen: Molga ändert sich

Beitrag von Gast ( / / 0 / 3 ) »
Hallo,
ich versuche mit folgendem Coding den Text des Personalteilbereiches aus Tabelle T001P auszulesen:
SELECT * FROM T001P
WHERE BTRTL EQ PA0001-BTRTL.
ENDSELECT.
TAB-TXT = T001P-BTEXT.

Leider funktioniert dies nicht bei jedem Mitarbeiter.
Teilweise springt der Molga von 01 auf 14 und dann kommt natrülcih blödsinn raus! Das passiert genau bei der where-clausel. Ich kann es mir aber nicht erklären. Ich habe die Tabellen und den Stammsatz des Mitarbeters durchsucht, nirgednwo ein Hiweiß auf Molga 14!
hat jemand eine Idee?
Viele Grüße
Volker

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


Re: Tabelle T001P mit Select auslesen: Molga ändert sich

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Anonymous hat geschrieben:Hallo,
ich versuche mit folgendem Coding den Text des Personalteilbereiches aus Tabelle T001P auszulesen:
SELECT * FROM T001P
WHERE BTRTL EQ PA0001-BTRTL.
ENDSELECT.
TAB-TXT = T001P-BTEXT.

Leider funktioniert dies nicht bei jedem Mitarbeiter.
Teilweise springt der Molga von 01 auf 14 und dann kommt natrülcih blödsinn raus! Das passiert genau bei der where-clausel. Ich kann es mir aber nicht erklären. Ich habe die Tabellen und den Stammsatz des Mitarbeters durchsucht, nirgednwo ein Hiweiß auf Molga 14!
hat jemand eine Idee?
Viele Grüße
Volker
schau Dir mal die Schlüssel zur Tabelle an, denn Du bekommst bei Deiner Selektion den letzten Satz mit Personalteilbereich = PA0001-BTRTL.
Die Abfrage oben ist nicht ausreichend qualifiziert, da Ihr anscheinend mehrere PTeilbereiche zu unterschiedlichen Personalbereichen mit gleicher Kennung habt...

PS: bitte nicht mit Molga (Ländergruppierung) herumwerfen, wenn Du dabei nicht erklärst, was das sein soll. Ich hatte nämlich bis eben keine Ahnung.
Das kannst Du im HR-Forum wahrscheinlich problemlos benutzen, weil es dort die Kundigen wissen.

Beitrag von Gast ( / / 0 / 3 ) »
UPS, sorry ich dachte der Molga ist bekannt, bewege mich überwiegend im HR und da spielt es eine Rolle!
Danke für den Hinweiß

Nein, die Personalteilbereich sind eindeutig, wir haben für jeden eine unterschiedliche eindeutige Kennung auch Personalbereichsübergreifend!

Deshalb verstehe ich es auch nicht!
Zuerst hat er auch in der T001P die richtigen Werte stehen, wenn er zur where-clausel kommt wird dann der Wert Molga geändert und dann ändern sich auch die anderen Felder der T001P.

Ich hoffe, Ihr versteht mich :lol:

Viele Grüße
Volker

Beitrag von Gast ( / / 0 / 3 ) »
Nö, ich versteh Dich nicht.

Ist aber auch egal.

Die wenigsten können hier richtig ihre Fragen stellen.

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Anonymous hat geschrieben:UPS, sorry ich dachte der Molga ist bekannt, bewege mich überwiegend im HR und da spielt es eine Rolle!
Danke für den Hinweiß

Nein, die Personalteilbereich sind eindeutig, wir haben für jeden eine unterschiedliche eindeutige Kennung auch Personalbereichsübergreifend!

Deshalb verstehe ich es auch nicht!
Zuerst hat er auch in der T001P die richtigen Werte stehen, wenn er zur where-clausel kommt wird dann der Wert Molga geändert und dann ändern sich auch die anderen Felder der T001P.

Ich hoffe, Ihr versteht mich :lol:

Viele Grüße
Volker
ich denke, ich weiß jetzt wo das Problem liegt:
Dein Code:

Code: Alles auswählen.

SELECT * FROM T001P 
  WHERE BTRTL EQ PA0001-BTRTL. 
ENDSELECT. 
TAB-TXT = T001P-BTEXT. 
Ins Deutsch übersetzt, heißt die Anweisung:
Hole mir zeilenweise die gesamte Zeile aller Datenbankzeilen, deren Feld BTRTL den gleichen Inhalt hat, wie Variable PA0001-BTRTL und schreiben das Ergebnis in die Strukturvariable T001P.

Welche Auswirkung hat diese Anweisung für den Inhalt von T001P-MOLGA?

Gruß
Ereglam

Beitrag von Diko (ForumUser / 73 / 0 / 1 ) »
Hallo zusammen,

was gibt Dir denn die SE16 raus, wenn Du lediglich über den BTRTL suchst ???
Falls es mehrere Einträge gibt sorgt Dein Coding dafür, dass stets der letzte genommen wird.

Da du sowieso den Infotyp 0001 im Zugriff hast kannst Du auch Dein Select auf den eindeutigen Schlüssel der T001P ausführen:

clear T001P
SELECT single * FROM T001P
WHERE werks = PA0001-werks
and BTRTL = PA0001-BTRTL.
if sy-subrc = 0.
TAB-TXT = T001P-BTEXT.
else.
TAB-TXT = 'nix gefunden'.
endif.

Gruß

Diko

Beitrag von Gast ( / / 0 / 3 ) »
Hallo Diko,

vielen Dank für Deine Antwort, mit Deinem Coding geht's! Der BTRTL hat immer den gleichen Inhalt, es
existieren aber mehrere Sätze vom IT1 und irgendwie
scheint er bei meinem Coding halt dann den letzen aus der T001P abzugreifen. Ist wohl nicht eindeutig genug gewesen!

Vielen Dank an alle nochmal
Gruß
Volker

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Anonymous hat geschrieben:Hallo Diko,

vielen Dank für Deine Antwort, mit Deinem Coding geht's! Der BTRTL hat immer den gleichen Inhalt, es
existieren aber mehrere Sätze vom IT1 und irgendwie
scheint er bei meinem Coding halt dann den letzen aus der T001P abzugreifen. Ist wohl nicht eindeutig genug gewesen!

Vielen Dank an alle nochmal
Gruß
Volker
hatte ich das nicht bereits in meiner ersten Antwort vermutet?

Gruß
Ereglam

Beitrag von Gast ( / / 0 / 3 ) »
Hallo,

doch hattest du, mit dem Beispielcoding wurde es mir nur richtig klar! Sorry, ich bin noch Anfänger und steige manchmal noch nicht durch!
Nix für ungut :D

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

die Details im HR kenne ich wirklich nicht, aber das Symptom, daß nur der letzte Satz selektiert wird, liegt eindeutig im Coding:

Code: Alles auswählen.

SELECT * FROM T001P 
  WHERE BTRTL EQ PA0001-BTRTL. 
ENDSELECT. 
TAB-TXT = T001P-BTEXT. 
Da steht: lese alle T001P wo BTRTL EQ ... und wenn du mit allen Fertig bist (ENDSELECT) stelle BTEXT nach TAB-TXT.

Genau das mach der CODE.

Wenn Du alle habe möchtest, die EQ ...-BTRTL sind, solltest Du innerhalbe SELECT ... ENSELECT die BTEXTs abgreifen und in eine Tabelle stellen, oder gleich komplett alles was Du willst in eine interne Tabelle stellen.

Code: Alles auswählen.

SELECT BTEXT und noch andere FElder
FROM T001P INTO TABLE TAB
WHERE BTRTL EQ PA0001-BTRTL.
Gruß
babap

Seite 1 von 1

Vergleichbare Themen

1
Antw.
5458
Views
Select-Options || Aktuellen Wert auslesen?
von mcbue » 22.06.2006 14:41 • Verfasst in ABAP® für Anfänger
12
Antw.
15116
Views
Einzelwerte einer Select-Option auslesen
von Orlando80 » 07.05.2007 14:58 • Verfasst in Dialogprogrammierung
1
Antw.
2283
Views
Select aus einer Tabelle mit Bedingung aus weiteren Tabelle
von Dyrdek » 02.01.2017 13:16 • Verfasst in ABAP® für Anfänger
3
Antw.
1888
Views
Ausgabe ändert sich
von drama » 09.03.2016 08:39 • Verfasst in ABAP® für Anfänger
0
Antw.
1986
Views
Wie ändert ein Report Felder (im ISU)?
von MOFU » 27.09.2020 21:37 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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.