Abap

Liebe/-r Experte/-in,
Liebe/-r Experte/-in,

ich stehe vor einer Aufgabe, die zu lösen gilt, und zwar
habe ich eine Tabelle mit dem Namen ANLA. Ich muss 3 Felder dieser Tabelle nach Vorgabe aus den Eingabeparametern updaten, und zwar die Felder ANLA-ANLKL, ANLA-KTOGR, ANLA-FELEI. Mein bisheriger Programmcode(wo man auch die einzelnen Parameter sehen kann) sieht so aus:

TABLES ANLA.

PARAMETERS: p_bukrs TYPE ANLA-BUKRS DEFAULT ‚0142‘ OBLIGATORY,
p_anlnr TYPE ANLA-ANLN1 DEFAULT ‚285‘ OBLIGATORY,
p_anlkl TYPE ANLA-ANLKL DEFAULT ‚6596‘ OBLIGATORY,
p_ktogr TYPE ANLA-KTOGR DEFAULT ‚6596‘ OBLIGATORY,
p_felei TYPE ANLA-FELEI DEFAULT ‚1700‘ OBLIGATORY.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME title text-T99.

PARAMETERS: p_test RADIOBUTTON GROUP rad1 DEFAULT ‚X‘,
p_echt RADIOBUTTON GROUP rad1.

SELECTION-SCREEN END OF BLOCK b1.

SELECT * FROM ANLA.
WRITE:/ ANLA-ANLKL,
ANLA-KTOGR,
ANLA-FELEi.
ENDSELECT.

Per Radiobutton soll man zwischen einem Testlauf und einem Echtlauf selektieren können. Auch hier weiß ich leider nicht, wie das gehen soll.
Die Eingabeparameter müssten soweit stimmen, jedoch weiß ich nicht wie das Programm weiter aufgebaut ist bzw. wie ich weitergehen soll, ich bin ein absoluter Neuling und ich hoffe Sie können mir weiterhelfen.
Ich bedanke mich herzlichst im Voraus und verbleibe

mit freundlichen Grüßen.

Liebe/-r Experte/-in,
Liebe/-r Experte/-in,

ich stehe vor einer Aufgabe, die zu lösen gilt, und zwar
habe ich eine Tabelle mit dem Namen ANLA. Ich muss 3 Felder
dieser Tabelle nach Vorgabe aus den Eingabeparametern updaten,
und zwar die Felder ANLA-ANLKL, ANLA-KTOGR, ANLA-FELEI. Mein
bisheriger Programmcode(wo man auch die einzelnen Parameter
sehen kann) sieht so aus:

TABLES ANLA.

PARAMETERS: p_bukrs TYPE ANLA-BUKRS DEFAULT ‚0142‘
OBLIGATORY,
p_anlnr TYPE ANLA-ANLN1 DEFAULT ‚285‘
OBLIGATORY,
p_anlkl TYPE ANLA-ANLKL DEFAULT ‚6596‘
OBLIGATORY,
p_ktogr TYPE ANLA-KTOGR DEFAULT ‚6596‘
OBLIGATORY,
p_felei TYPE ANLA-FELEI DEFAULT ‚1700‘
OBLIGATORY.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME title text-T99.

PARAMETERS: p_test RADIOBUTTON GROUP rad1 DEFAULT ‚X‘,
p_echt RADIOBUTTON GROUP rad1.

SELECTION-SCREEN END OF BLOCK b1.

SELECT * FROM ANLA.

WRITE:/ ANLA-ANLKL,
ANLA-KTOGR,
ANLA-FELEi.
ENDSELECT.

Per Radiobutton soll man zwischen einem Testlauf und einem
Echtlauf selektieren können. Auch hier weiß ich leider nicht,
wie das gehen soll.
Die Eingabeparameter müssten soweit stimmen, jedoch weiß ich
nicht wie das Programm weiter aufgebaut ist bzw. wie ich
weitergehen soll, ich bin ein absoluter Neuling und ich hoffe
Sie können mir weiterhelfen.
Ich bedanke mich herzlichst im Voraus und verbleibe

mit freundlichen Grüßen.

Hallo Rufat,
bitte nicht böse sein, aber die Unterlagen nach denen Du lernst sind arg veraltet. Beispiel dafür der Befehl Table ist in diesem Zusammenhang seit mehr als 6 Jahren obsolet. Gut, aber da das nun einmal Dein Stand ist, will ich mit Deinem Befehlsvorrat ergänzen / erweitern:
TABLES ANLA.

PARAMETERS: p_bukrs TYPE ANLA-BUKRS DEFAULT ‚0142‘
OBLIGATORY,
p_anlnr TYPE ANLA-ANLN1 DEFAULT ‚285‘
OBLIGATORY,
p_anlkl TYPE ANLA-ANLKL DEFAULT ‚6596‘
OBLIGATORY,
p_ktogr TYPE ANLA-KTOGR DEFAULT ‚6596‘
OBLIGATORY,
p_felei TYPE ANLA-FELEI DEFAULT ‚1700‘
OBLIGATORY.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME title text-T99.

PARAMETERS: p_test RADIOBUTTON GROUP rad1 DEFAULT ‚X‘,
p_echt RADIOBUTTON GROUP rad1.

SELECTION-SCREEN END OF BLOCK b1.

SELECT * FROM ANLA.
* Übertragen der Parameterwerte in die Anla Felder.
Move p_ankl to ANLA-ANLKL,
p_ktogr to ANLA-KTOGR,
p_felei to ANLA-FELEI.
* Prüfung ob upgedatet werden soll oder nicht
If p_echt = ‚X‘.
UPDATE ANLA.
* Festschreiben des Update
COMMIT Work.

ELSE.
WRITE:/ ANLA-ANLKL,
ANLA-KTOGR,
ANLA-FELEi.
ENDIF.
ENDSELECT.

Achtung : aus Sicht eines Programmierers schlechtes und veraltetes ABAP. So fehlt hier z.B. der Aufruf eines Verbuchungsbausteines. Das ABAP wurde bewusst deinem Kenntnisstand angepasst.

Mit freundlichen Grüßen

Peter

Ich danke Ihnen herzlichst Herr Hutter, Sie haben mir gut weitergeholfen, und ja… Sie haben meine Erlaubnis, die Antwort in Ihrem Forum veröffentlichen zu dürfen !

Mit freundlichen Grüßen

Hallo

Mein ABAP ist zwar schon ein bischen eingerostet, aber ich versuche es mal mit
allgemeinen Hinweisen.

Die Unterscheidung zwischen einem Testlauf und einem Echtlauf kann man mit
einer IF Abfrage lösen (also wenn p_test ‚X‘ ist, dann nur Testlauf, sonst Echtlauf).

Ein Update auf die Datenbank muss natürlich mit einem UPDATE statement
gemacht werden.

Wenn die Felder für das Update abgefragt werden sollen, müssen diese natürlich
auch auf dem Selection Screen angezeigt werden.

Ich hoffe, dass ich ein wenig weiter helfen konnte.

Viele Grüße,
Alain Sarti