Pfelge-View als Modulpool nachprogrammiert mit TC + App Log

Benutzeroberflächen in SAP®-Systemen.
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Pfelge-View als Modulpool nachprogrammiert mit TC + App Log

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Hallo liebe Abap Gemeinde,

ich hab mir mal gedacht, zur kleine Fingerübung programmierste mal nen Pflege-View als Modulpool nach.
Soweit so gut, TC angelegt daten einlesen etc funktioniert alles bestens, aber nun stehe ich vor einem Rätsel.

Wenn ich auf den Button 'Ändern/Anzeigen' in einem Pflege-View klicke, dann werden die nicht Schlüsselfelder eingabebereit. (Das hab ich auch schon geschafft)
Allerdings kommt nun das schwierige. Ändert man 1-x Zeilen in dem Pflege-View, dann weiß das Programm beim Speichern, welche Zeilen geändert wurden sind und auch nur diese werden als 'geändert' verarbeitet. Im App-Log ist das dann auch schön zusehen.

Das mit dem App-Log hab ich auch in meinem Modulpool Prog, nur das mit dem wissen welche Zeilen geändert wurden und was, dass weiß ich nicht, denn ich kann kein 'action'-flag setzen, weil ich ja gar nicht weiß was geändert wurde. (wie ihr alle wisst ist SAP ja kein interaktives Programm, dementsprechend kann ich keine Flags setzen bis nicht ein Button geklickt wurde)

Woher weiß das Pflege-View welche Sätze geändert wurde?
Gibt es da ein Funktionsbaustein? (allerdings habe ich beim Debuggen des Pflege-View kein Aufruf eines Funktionsbaustein sehen können)

Table Control hat 3 Spalten, die ersten 2 sind schlüsselfelder (nicht änderbar) das 3te ist ein Txt Feld für Produktbezeichnung.
Die int. Liste die da verknüpft mit dem TC ist, hat zusätzlich ein action Feld und ein mark Feld(für Zeilenmarkieren)

Also wie kann ich das in meinem Programm (Modulpool) implementieren, dass auch ich weiß welche Zeilen geändert wurden, damit ich das Action-Flag setzen kann. Natürlich bevor ich auf SAVE klicke...man könnte sich ja umentscheiden wollen...

Thx 4 help

Gruß
Markus

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


Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Hi Markus,

im LOOP im PAI musst du dir mithilfe von MODULE ... ON REQUEST ein Module schreiben, dass in der entsprechenden Zeile ein Updatekennzeichen setzt. Neue Sätze bekommen ein 'I', geänderte ein 'U' oder so.
Je nach Programmierung muss man dann auch noch unterscheiden, ob ein Satz gelöscht wurde, der bereits auf der DB stand oder einer, der gerade neu eingetragen wurde.
Gruß, Enno

PS: Ich habe mich zwar auch gerade geärgert, dass als "Lösung" auf mein Problem die Antwort kam: "Warum probierst du das nicht anders...?" Aber: Warum "passt" dir der Pflege-View nicht? Wenn's wirklich nur zur Programmierpraxis sein soll, will ich nix gesagt haben... :oops:
Ansonsten kann man auch durch "Zeitpunkte" Funktionalität in gewissen Grenzen gut einbauen...

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Hi ewx.

Erstmal danke für deine Info.
Aber dieses Module existiert schon ;) Allerdings kann das nicht ausgeführt werden, da es ja keine UserCommands ausgeführt werden.

Wenn man in ein TableControl welches eingabebereite Zeilen hat, die Texte ändert, dann ändert man ja nur auf dem Bildschirm...PAI und somit das hilfreiche Modul kommen nie zu tragen. Klicke ich dann auf SAVE ist es zwar da, aber zu spät, da dann auch SAP nicht abwägen kann was geändert wird oder nicht...aus welchen Gründen auch immer...hier mal bisserl Code:

Code: Alles auswählen.

* PAI Loop Schleife für TableControl
  LOOP AT gt_mcdon.
    CHAIN.
      FIELD gs_totalsave-mcdonpr.
      FIELD gs_totalsave-mcdontx.

      MODULE mcdonalds_modify ON CHAIN-REQUEST.
    ENDCHAIN.
    FIELD gs_totalsave-mark
      MODULE mcdonalds_mark ON REQUEST.
  ENDLOOP.

MODULE mcdonalds_modify INPUT.
  MODIFY gt_mcdon
    FROM gs_totalsave
    INDEX mcdonalds-current_line.
ENDMODULE.
Das ganze ist wirklich nur zur Übung, das Pflege-View ist natürlich vorhanden und zu verschiedenen Zeitpunkten ist Code eingefügt :lol: (Ernsthaft würd ich mir doch für solch lapalien nicht die Arbeit machen das zu programmieren)

Werd jetzt erstmal nach hause gehen und morgen wieder aktiv weiter machen.

Schönen Abend allen.

Gruss
Markus
Zuletzt geändert von MarkusW am 30.01.2007 09:38, insgesamt 2-mal geändert.

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Wenn du auf SAVE klickst, sollten aber die MODULES aus dem TableControl noch ausgeführt werden...
Gruß, Enno

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
ewx hat geschrieben:Wenn du auf SAVE klickst, sollten aber die MODULES aus dem TableControl noch ausgeführt werden...
Gruß, Enno
Moin,

stimmt das ist so, hatte mich wohl falsch ausgedrückt, sorry.
Er hatte natürlich schon alle Modules ausgeführt, allerdings wusste das Prog nicht welcher Satz nun geändert wurde und welcher nicht.

Aber nachdem ich nun ne Nacht drüber geschlafen habe, habe ich den Fehler nun gefunden. Sieht man auch im geposteten Coding. Ich hab vergessen die Action zu setzen :roll:

So funzt es nun:

Code: Alles auswählen.

MODULE mcdonalds_modify INPUT.
  gs_totalsave-action = 'U'. <--- die Zeile ist Schuldig :P
  MODIFY gt_mcdon
    FROM gs_totalsave
    INDEX mcdonalds-current_line.
ENDMODULE.
Ist noch nicht die ideale Lösung, da nun alles nur 'Updates' sind, aber hab ja no bisserl zeit für die spielerei :twisted:

Thx erstmal
Gruß
Markus

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Wollt nur mal mitteilen dass ichs geschafft hab ;)

Das was als Pflege-View generiert wird, hab ich nun als Modulpool mal gecoded inkl. "Application Log" Funktion.


Ich sag euch, generiert euch nen Pflege-View ist viiiiiiiiiiiiel leichter :lol:

Gruß
Markus

Seite 1 von 1

Vergleichbare Themen

2
Antw.
1095
Views
CDS VIEW: Mehrere Tabellen aus einer CDS View updaten
von Abapanfänger » 03.07.2019 10:46 • Verfasst in ABAP® für Anfänger
2
Antw.
2340
Views
Selektionsvarianten für Modulpool
von SAP_ENTWICKLER » 07.01.2014 12:50 • Verfasst in ABAP® Core
29
Antw.
6482
Views
Parametertransaktion für einen Modulpool
von einar46 » 30.06.2015 07:35 • Verfasst in ABAP® Core
4
Antw.
1956
Views
Programme suchen mit Programmtyp xx (z.B. M^=Modulpool)
von gse » 29.06.2006 09:50 • Verfasst in ABAP® Core
1
Antw.
3353
Views
Aufruf eines Screens aus einem Modulpool
von stele » 25.06.2004 10:28 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

PDF-Anzeige unter EDGE
vor 5 Tagen von jocoder 2 / 75

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

PDF-Anzeige unter EDGE
vor 5 Tagen von jocoder 2 / 75

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Wochen von Lucyalison 1 / 132
Group Items auf einer Filterbar
vor 4 Wochen von Bright4.5 1 / 166