Anlegen, Ändern und Löschen Thema ist als GELÖST markiert

ABAP Web Dynpro, BusinessServerPages; Erstellung von Webapplikationen.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Anlegen, Ändern und Löschen

Beitrag von msentaburlar (ForumUser / 16 / 2 / 0 ) » 09.03.2020 00:04
Hallo Leute,

ich bin relativ neue in ABAP und übe ich gerade mit Web-Dynpro. Ich habe jetzt folgende Anforderung. Also ich habe selbst einen internen Tabelle erstellt und sollte ich jetzt über eine Web-Dypro Anwendung neue Daten anlegen, einen erstellten Antrag ändern und löschen. Ich habe schon jeweilige Buttons erstellt. Ich brauche jetzt Hilfe, wie jeweilige Methoden implementieren kann. Ich freuen mich über eure Rückmeldung.

Viele Grüße

msentaburlar


Re: Anlegen, Ändern und Löschen

Beitrag von msfox (ForumUser / 90 / 10 / 10 ) » 09.03.2020 09:01
Deine Anforderung ist ja seeeeeeeeehr allgemein formuliert.
1. Die interen Tabelle ist schön und gut, aber im WDY muss du die Daten zunächst an den Context binden (ABAP-OO). Dafür hilft der Wizard (Icon mit Zauberstab). Im Context muss du natürlich erst die Definition vornehmen.
2. Den Context bindest du dann an eine Tabelle. Die einfachste Variante ist hier das UI-Element "Table". Schwieriger CTable und wenn gefordert auch Webdynpro-ALV.
Wenn du die TABLE in deiner View hast, musst du zuerst die Data-Bindung machen (Pflichfeld). Dananch kannst du über "rechte Maustaste" auch die einzelnen Spalten an den Kontext binden. Da du Daten erfassen willst, solltest du als CellEditor "InputField" wählen (oder checkbox für boolean).
3. Den Button hast du ja schon. Dem musst du noch eine Aktion spendieren.
4. In der Aktion kannst du dann die Werte aus dem Context wieder über den Wizard auslesen und Speichern. Speichern ist ja dann wieder ABAP-Standard (Direktes Update auf die DB, oder über FuBa, oder über DAO, oder, oder.)
5. Anlegen löschen: Dafür brauchst du sicher noch zwei Button, die dir jeweils eine neue Zeile einfügen oder wieder löschen.
----
Wenn du mal mehr Erfahrung hast, wirst du sehen, dass meine Beschreibung wirklich nur für Anfänger ist. Inzwischen strukturiere ich meine WDY-Anwendungen. Vieles was mit UI zutun hat kommt in die Assistenzklasse. Alles was Anwendungslogik ist, wieder in eine Klasse, welche keine WDY-Element mehr enthält. Die Datenzugriffe laufen über DAO damit man auch mal einen Unit-Test mit MOCK-Daten drauch schicken kann.

Re: Anlegen, Ändern und Löschen

Beitrag von msentaburlar (ForumUser / 16 / 2 / 0 ) » 09.03.2020 14:44
Hallo msfox,

danke für die Antwort. Also ich habe die Schritte 1 bis 5 schon erledigt. Am besten ich kopiere mein Methode da für Anlegen. Vielleicht kannst du bessere überblick hast. In Debbuger Bereich sehe ich, dass lo_el_test eine statische Attribute hat und die auch die angegebene Daten besitzt. Ich muss aber diese Daten in meinen Datenbanktabelle (vermutlich durch Hilfe von INSERT- Befehl) hinzufügen.

method ONACTIONANLGEN .
DATA lo_nd_test TYPE REF TO if_wd_context_node.

DATA lo_el_test TYPE REF TO if_wd_context_element.
DATA ls_test TYPE wd_this->element_test.

* navigate from <CONTEXT> to <TEST> via lead selection
lo_nd_test = wd_context->get_child_node( name = wd_this->wdctx_test ).

* @TODO handle non existant child
* IF lo_nd_test IS INITIAL.
* ENDIF.

* get element via lead selection
lo_el_test = lo_nd_test->get_element( ).

* @TODO handle not set lead selection
IF lo_el_test IS INITIAL.
ENDIF.

CALL METHOD lo_nd_test->set_lead_selection
EXPORTING
element = lo_el_test " INDEX
.
*INSERT DATTBL FROM lo_nd_test.


* @TODO fill static attributes
* ls_test = xxx->get_yyy( ).

* set all declared attributes
lo_el_test->set_static_attributes(
static_attributes = ls_test).

endmethod.

Re: Anlegen, Ändern und Löschen

Beitrag von msentaburlar (ForumUser / 16 / 2 / 0 ) » 09.03.2020 15:55
Hallo,

ich habe eben geschafft, dass ich in Datenbanktabelle neue Einträge anlegen kann. Ich habe noch folgende Code am Ende eingefügt und jetzt klappt es.

CALL METHOD lo_nd_test->set_lead_selection
EXPORTING
element = lo_el_test " INDEX
.

INSERT DATTBL FROM ls_test.


Ich brauche aber Hilfe bei der Löschen immer noch Hilfe. Wäre schön, wen jemand sich meldet.

Viele Grüße

msentaburalr

Re: Anlegen, Ändern und Löschen

Beitrag von msfox (ForumUser / 90 / 10 / 10 ) » 09.03.2020 21:08
...ich habe leider gerade kein SAP-System in Zugriff, daher aus dem Kopf.
Du brauchst noch einen zweiten Button für das Löschen mit einer Action.
In der Action lässt du dir dann das selectierte Element geben.

Code: Alles auswählen.

data(lo_element) = lo_nd_test->get_selected_element( ). "*
*****get_lead_selection( ) gibt es auch, musst du mal probieren.
if lo_element is bound."Wenn zuvor keine Zeile gewählt ist.
lo_element->get_static_attributes( static_attributes = ls_test ).
Delete from DATTBL where xxx = ls_test-xxx.
else.
"Fehlermeldung für Auswahl der Zeile.
"Oder, die höhere Kunst :): den Button deaktivieren, wenn keine Zeile markiert ist.
endif.

Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Aktuelle Forenbeiträge

Massenpflege Customer
vor 2 Stunden von Steffen gelöst 2 / 3058
Klasse CL_O2_DUMMY_CLASS
vor 4 Stunden von JohnLocklay 1 / 25
Fehler bei CATCH-Abfangung
vor 5 Stunden von STDIN gelöst 5 / 367
Eclipse: ungültiges Sperr-Handle
vor 5 Stunden von deejey 2 / 23