Falscher Insert?

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

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

Falscher Insert?

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Hallo zusammen,

ich hätte mal wieder eine Frage... Und zwar soll eine vorhandene Tabelle über eine Selektionseingabe um Einträge erweitert werden. In der Selektion gebe ich quasi Materialnummer(n) und eine Verkaufsorganisation an, 4 weitere Felder werden fest gesetzt.

Nun klappt der Insert zwar, allerdings nicht so wie ich mir das vorgestellt hatte.

1. Kann ich jeweils nur einen neuen Datensatz in die Tabelle schreiben, gebe ich mehrere Materialnummern an nimmt er immer nur die erste (was eigentlich auch logisch ist, da fehlt wohl ein Loop... aber irgendwie steh ich gerade auf der Leitung wie und wo der Loop sein muss).

2. Er schreibt mir in der Datenbank vor meine Materialnummer immer "IEQ"... ich nehme an das hängt mit meinen Select Options zusammen aber....??

Ich hoffe mir kann jemand helfen :(

Code: Alles auswählen.

DATA: it_test TYPE HASHED TABLE OF test WITH UNIQUE KEY mandt,
      wa_satz LIKE LINE OF it_test.


SELECTION-SCREEN BEGIN OF BLOCK selektion WITH FRAME TITLE TEXT-001.
  SELECT-OPTIONS :  so_matnr FOR wa_satz-matnr.
  PARAMETERS     : p_vkorg LIKE wa_satz-vkorg.
SELECTION-SCREEN END OF BLOCK selektion.

wa_satz-mandt = sy-mandt.
wa_satz-matnr = so_matnr.
wa_satz-vkorg = p_vkorg.
wa_tumlm-vtweg = '01'.
.......

INSERT wa_satz INTO TABLE it_test.
INSERT test FROM TABLE it_test ACCEPTING DUPLICATE KEYS.
Vielen Dank für eure Hilfe!

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


Re: Falscher Insert?

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Ok, also das mit dem IEQ hat sich gerade geklärt. Ich hätte einfach noch ein 'LOW' bei der Matnr. anhängen müssen....

Das mit dem Loop haut trotzdem irgendwie nicht hin...

Re: Falscher Insert?

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »

Code: Alles auswählen.

wa_satz-mandt = sy-mandt.
wa_satz-vkorg = p_vkorg.
wa_tumlm-vtweg = '01'.
LOOP AT so_matnr.
  wa_satz-matnr = so_matnr-low.
  INSERT wa_satz INTO TABLE it_test.
ENDLOOP.
Wobei ich aber die Verwendung einer SELECT-OPTION für die Eingabe von Werten nicht empfehlen würde.
Was ist, wenn ein User VON - BIS eingibt? Oder ein ausschließendes Kriterium?
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Falscher Insert?

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Danke für deine Antwort :)

Ich hatte meinen Code auch bis gerade eben schon so erweitert, er loopt mir auch 2x (bei z.B. 2 Datensätzen) drüber, aber in die Datenbank schreibt er trotzdem nur einen Satz... woran kann das liegen? :(

Code: Alles auswählen.

LOOP AT so_matnr.

wa_satz-mandt = sy-mandt.
wa_satz-matnr = so_matnr-LOW.
wa_satz-vkorg = p_vkorg.
wa_satz-vtweg = '01'.
...

INSERT wa_satz INTO TABLE it_test.
INSERT test FROM TABLE it_test ACCEPTING DUPLICATE KEYS.
ENDLOOP.
Ja du hast Recht mit den Select Options, aber die Vorgabe ist so und wie könnte man es denn anders realisieren? Ich nehme an eine Excel Spalte soll zum Schluss in die Einzelwerte reinkopiert werden.

Danke dir :)

Re: Falscher Insert?

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Das

Code: Alles auswählen.

INSERT test FROM TABLE it_test ACCEPTING DUPLICATE KEYS.
bitte außerhalb der Schleife machen! :wink:
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Falscher Insert?

Beitrag von Lucyalison (Specialist / 262 / 51 / 26 ) »
Hallo,

was mich ein wenig an Deinem Coding verwirrt ist der Key. Ein Schlüssel nur auf dem Mandant für die Tabelle it_test macht ja eigentlich keinen Sinn? Du willst doch sicher keine doppelte Material - Vkorg Zuordnungen in Deiner Tabelle haben? Dazu müsste man wissen wie Du die Schlüssel in der Datenbanktabelle definiert hast. Wenn ich jetzt mal davon ausgehe dass Matnr und Vkorg Schlüssel sind, dann würde ich das so programmieren:

Code: Alles auswählen.

wa_satz-vkorg = p_vkorg.
wa_tumlm-vtweg = '01'.
LOOP AT so_matnr.
  wa_satz-matnr = so_matnr-low.
  append wa_satz TO TABLE it_test.
ENDLOOP.

modify test FROM TABLE it_test. 
Das Modify steuert selbst ob es ein Update oder einen Insert auf der Datenbank macht. Wenn Du Dir nicht sicher bist wie viele doppelte Angaben bei dem Loop rauskommen, kann man noch einen sort und ein delete adjacent duplicates vor dem Modify Befehl einfügen.

Wie ADT schon geschrieben hat, sind Select-Options gefährlich wenn man nur das low verwendet. Ich würde dann aber auch für den Anwender das High auf dem Selektions-Bildschirm deaktivieren, damit sicher keine Eingabe dort gemacht wird.

Viele Grüsse
Nicola

Re: Falscher Insert?

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Super,

ich danke euch, ihr habt mir sehr geholfen!

Viele Grüße!

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1104
Views
Textelement in falscher Sprache
von sappla » 13.09.2012 10:39 • Verfasst in ABAP® für Anfänger
3
Antw.
1999
Views
Falscher Lieferant bei Anlieferungen
von dimes » 15.10.2007 09:23 • Verfasst in Material Management & Produktionsplanung
0
Antw.
1012
Views
falscher returncode bei ws_upload
von dennsen » 06.06.2007 13:45 • Verfasst in ABAP® Core
1
Antw.
1770
Views
Falscher Mandant bei BSP Applukation
von chaos2oo2 » 11.07.2006 16:21 • Verfasst in Web-Dynpro, BSP + BHTML
16
Antw.
7451
Views
Abfangen falscher Usereingaben
von Franky » 02.05.2005 13:26 • 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

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