mit Funktionbaustein auf Datenbank Tabellen Zugriff (gelöst)

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

mit Funktionbaustein auf Datenbank Tabellen Zugriff (gelöst)

Beitrag von beterman (ForumUser / 51 / 2 / 0 ) »
Hallo zusammen,
ich benötige wieder Hilfe. Obwohl das Thema relativ einfach ist, komme ich leider nicht klar.
Die Aufgabe ist folgendes.
Mit einem Funktionsbaustein muss ein Eingabefeld eingelesen werden, und diese Wert muss in einer Tabelle geschrieben werden. Um besser verstehen zu können,füge ich hier Screenshots hinzu.
Also es ist mein Selektionsbild.

Code: Alles auswählen.

PARAMETERS:

   p_name(40).
1.png
Der Benutzer gibt einfach ein Name ein, und muss es in einer Tabelle in Datenbank geschrieben werden.
Tabellename kann bsp. ZPERSON lauten. Der Tabelle hat nur ein Feld für Vorname.
2.png
ein Funktionsbaustein (Z_VORNAME_AUF_TABELLE) wurde angelegt. Mein Frage ist
A- Wie diese Funktionsbaustein mit Parametern (Import, Export,ggf. Changing und Tabellen) aussehen soll.
3.png
und

B- was soll ich Im Queltext von Funktionsbaustein schreiben, damit Name in der Tabelle ZPerson im Feld VORN geschrieben werden kann.

Bild

Vielen dank im Voraus

Gruß
Basay
Zuletzt geändert von beterman am 15.11.2011 19:08, insgesamt 1-mal geändert.

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


Re: mit Funktionbaustein auf Datenbank Tabellen Zugriff

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Du hast mindestens 2 Möglichkeiten:

1. ganz einfach

- Importing-Parameter z.B. i_name TYPE CHAR40

Code: Alles auswählen.

DATA: l_wa_zperson type zperson.

l_wa_zperson-vorn = i_name.
INSERT zperson FROm l_wa_zperson.
In deinem Programm dann nach dem FuBa ein Commit Work. Als Exporting-Parameter kannst du noch den SY-SUBRC wieder nach außen geben.

2. Schöner
- du schreibst dir einen Baustein, der als Import sowohl eine Struktur von ZPERSON als auch eine Tabelle vom Typ ZPERSON aufnehmen kann und zudem einen Import Parameter für (I)nsert, (U)pdate und (D)elete hat
- dann programmierst du im Baustein die enstprechende Logik zur Verbuchung von Einfügen, Ändern und Löschen

Damit bist du komplett flexibel, hast in deinem Baustein nur die DB-Zugriffe und kannst alles schön im Programm abfackeln.

Re: mit Funktionbaustein auf Datenbank Tabellen Zugriff

Beitrag von beterman (ForumUser / 51 / 2 / 0 ) »
Hallo,

Zu 1.

Es ist Import Parameter.
1.png
und es ist Queltext

Code: Alles auswählen.

FUNCTION Z_VORNAME_AUF_TABELLE.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(P_VOR) TYPE  PAD_VORNA OPTIONAL
*"----------------------------------------------------------------------

DATA
      wa TYPE ZPERSON.

      wa-vorn = p_vor.
      INSERT INTO ZPERSON VALUES wa.

ENDFUNCTION.
ich habe FUBA 'Z_VORNAME_AUF_TABELLE folgendes aufgerufen.

Code: Alles auswählen.

PARAMETERS:

   p_name TYPE PAD_VORNA.

CALL FUNCTION 'Z_VORNAME_AUF_TABELLE'
EXPORTING
  p_vor = p_name.
so wurde im Selektionsbild eingegebene Name auf der Tabelle erfolgreich hinzugefügt. Toll.
Die Frage ist nun, wie kann ich realisieren, dass neu eingegebene Name hinter dem alten auf der Tabelle hinzugefügt wird.

Re: mit Funktionbaustein auf Datenbank Tabellen Zugriff

Beitrag von beterman (ForumUser / 51 / 2 / 0 ) »
Nachdem 2. oder 3. Aufruf des Reports, wenn ich ein neuen Name eingebe, bleibt der Name immer noch auf der erste Zeile in der Tabelle. Es sieht so aus, dass Report die Tabelle nicht aktualisiert.
Wie kann ich realisieren, dass neue Namen auf der 2.3.4... Zeile in der Tabelle hinzugefügt werden.

Was ist falsch mit diesem Code abschnitt?
DATA
wa TYPE ZPERSON.

wa-vorn = p_vor.
INSERT INTO ZPERSON VALUES wa.

Re: mit Funktionbaustein auf Datenbank Tabellen Zugriff

Beitrag von beterman (ForumUser / 51 / 2 / 0 ) »
Um ein neuen Name hinzufügen zu können, muss ich jedesmal die Tabelle inhalt löschen.

Code: Alles auswählen.

(delete from ZPERSON) 
Falls der Tabelle leer ist, dann wird neu Name darin hinzugefügt.
wieso?

Re: mit Funktionbaustein auf Datenbank Tabellen Zugriff

Beitrag von beterman (ForumUser / 51 / 2 / 0 ) »

Code: Alles auswählen.

FUNCTION Z_VORNAME_AUF_TABELLE.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(P_VOR) TYPE  PAD_VORNA OPTIONAL
*"----------------------------------------------------------------------

DATA: wa TYPE ZPERSON,
      it TYPE TABLE OF ZPERSON.

      wa-vorn = p_vor.
      APPEND wa TO it.
     INSERT ZPERSON FROM TABLE it.

ENDFUNCTION.

ich habe ein Workarea und Interne Tabelle definiert. Wenn der Tabelle leer ist, dann wird Zeile darin hinzugefügt. Falls ein Eintrag sich dort befindet, dann führt es Kurzdump. Wieso werden die neue Einträge hinter dem vorhanden Zeile nicht hinzugefügt?

Re: mit Funktionbaustein auf Datenbank Tabellen Zugriff

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
Hallo beterman,

1.) der Kurzdump sagt dir sicher warum er aufgetreten ist. Und wenn du schon einen Kurzdump bekommst wäre es sicher sinnvoll diesen mal zu posten damit wir nicht rätseln müssen.
2.) Wenn du die wesentlichen Teile des Kurzdumps postest wirst du evtl. schon feststellen, dass es nicht am Programm sondern an deiner Tabellendefinition liegt.
--> 2a) Lies dir mal die F1-Hilfe zum Befehl "INSERT" durch
3.) Lies dir überhaupt mal etwas durch über die Grundlagen der ABAP-Programmierung. Da gibt es diverse Bücher die eine Einführung in die Sprache geben
4.) Auch wenn es heutzutage nicht mehr wichtig zu sein scheint - aber ist es denn so schwer sich ein wenig Mühe beim Schreiben zu geben? Deine Postings in diesem Thread hören sich an als ob du sie durch den Babelfish gejagt hättest.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: mit Funktionbaustein auf Datenbank Tabellen Zugriff

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
black_adept hat geschrieben:Hallo beterman,

4.) Auch wenn es heutzutage nicht mehr wichtig zu sein scheint - aber ist es denn so schwer sich ein wenig Mühe beim Schreiben zu geben? Deine Postings in diesem Thread hören sich an als ob du sie durch den Babelfish gejagt hättest.

Ich glaube eher, das Deutsch nicht betermans Muttersprache ist.

Falls es so ist, vielleicht etwas Nachsicht üben. :wink:

Re: mit Funktionbaustein auf Datenbank Tabellen Zugriff

Beitrag von beterman (ForumUser / 51 / 2 / 0 ) »
Hallo Leute,
1.) der Kurzdump sagt dir sicher warum er aufgetreten ist. Und wenn du schon einen Kurzdump bekommst wäre es sicher sinnvoll diesen mal zu posten damit wir nicht rätseln müssen
.

du hast recht. Ich muss dran gewöhnen, mit Debugger zu arbeiten.
3.) Lies dir überhaupt mal etwas durch über die Grundlagen der ABAP-Programmierung. Da gibt es diverse Bücher die eine Einführung in die Sprache geben
Ich habe etliche Büchern nachzuschlagen. Aber die Büchern sind nicht in der Lage, die vorhandenen Probleme zu lösen. Die Büchern geben nur Informationen nicht Lösungen. Dafür gibt es Forums wie hier und Leute, die Erfahrung haben.

Ich gebe viele Mühe, als du denkst, um meine Probleme deutlich erklären zu können. Dafür füge ich sogar viele Screenshots und Code Abschnitts hinzu.
Ich glaube eher, das Deutsch nicht betermans Muttersprache ist.
Du hast recht. Deutsch ist nicht mein Muttersprache. Aber ich glaube, dass es kein Hindernis ist,hier ein Beitrag zu schreiben. oder?

Danke nochmals für feedbacks und Kritiken..

Gruß
Basay

Re: mit Funktionbaustein auf Datenbank Tabellen Zugriff

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Hi Beterman,

um dein Problem zu lösen: :D

Du hast in deiner Tabelle nur MANDT als KEY definiert. Das heißt, es kann nur einen eindeutigen Datzensatz pro Mandant geben. Definiere MANDT und VORN als KEY und schon kannst du mehrere Datensätze einfügen!

Folgende Benutzer bedankten sich beim Autor casman für den Beitrag:
beterman


Re: mit Funktionbaustein auf Datenbank Tabellen Zugriff

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
beterman hat geschrieben: Du hast recht. Deutsch ist nicht mein Muttersprache. Aber ich glaube, dass es kein Hindernis ist,hier ein Beitrag zu schreiben. oder?
Wenn Du meinen zweiten Satz noch gelesen hättest, hättest Du es vielleicht sogar kapiert. :down:

Re: mit Funktionbaustein auf Datenbank Tabellen Zugriff

Beitrag von beterman (ForumUser / 51 / 2 / 0 ) »
Hallo,
Du hast in deiner Tabelle nur MANDT als KEY definiert. Das heißt, es kann nur einen eindeutigen Datzensatz pro Mandant geben. Definiere MANDT und VORN als KEY und schon kannst du mehrere Datensätze einfügen!
So hat funktioniert. :D Ich habe das Feld VORN als Key angepasst. Nun können mehrere Einträge endlich hinzugefügt werden. Ich hatte das gemeint. Die Büchern geben uns lediglich Informationen aber keine Lösungen. Welches Buch würde es schreiben? Anhand ihrer Erfahrungen kann man diese Probleme lösen.

Vielen dank nochmals

Gruß
Basay

Seite 1 von 1

Vergleichbare Themen

9
Antw.
7249
Views
Zugriff auf externe Datenbank
von babap » 28.05.2008 10:01 • Verfasst in ABAP® Core
1
Antw.
3638
Views
ABAP Zugriff auf externe Datenbank über DB-Link
von thommasj » 22.07.2008 08:41 • Verfasst in ABAP® Core
2
Antw.
8747
Views
SFLIGHT,SCARR Tabellen Füllen (gelöst)
von beterman » 17.10.2011 18:35 • Verfasst in ABAP® für Anfänger
8
Antw.
4680
Views
GELÖST - ADOBE Forms - geschachtelte Tabellen
von Xilukarim » 20.05.2019 15:25 • Verfasst in ABAP® Core
5
Antw.
2684
Views
Datenbank (Tabellen Pflege)
von Schäfer_anfänger » 27.01.2017 08:56 • 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

Trennen Strasse und Hausnummer
vor einer Stunde von payten 13 / 10259
Dialog-Container mit Toolbar/Status
vor 15 Stunden von DeathAndPain gelöst 22 / 3215
Daten an Tabelle binden
vor 20 Stunden von Lukas Sanders 2 / 1076
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 653

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

Trennen Strasse und Hausnummer
vor einer Stunde von payten 13 / 10259
Dialog-Container mit Toolbar/Status
vor 15 Stunden von DeathAndPain gelöst 22 / 3215
Daten an Tabelle binden
vor 20 Stunden von Lukas Sanders 2 / 1076
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 653

Unbeantwortete Forenbeiträge

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