Prüfen ob Langtext verändert wurde

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

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

Prüfen ob Langtext verändert wurde

Beitrag von Sava (ForumUser / 70 / 5 / 1 ) »
Hallo zusammen,

ich versuche gerade zu prüfen ob ein Langtext vor dem Speichern einer Maßnahme verändert wurde. Leider weiß ich nicht ganz wie ich das am besten anstellen kann? Hat vielleicht jemand einen kleinen Ideenanstoß?

VG,
Sava

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


Re: Prüfen ob Langtext verändert wurde

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Hallo Sava,

ich weiß zwar nicht wo du das prüfen willst, bzw. für was. Aber hast du schon die üblichen User-Exits und BAdI's abgeklappert? Es gibt sicher einen, der dir eine vorher-nachher-Tabelle bereitstellt, mit denen du dann testen kannst.
Gruß,
der Matze

Re: Prüfen ob Langtext verändert wurde

Beitrag von Sava (ForumUser / 70 / 5 / 1 ) »
Hallo Matze,

es geht im Prinzip darum, dass wenn der Langtext verändert worden ist, beim Speichern eine Email versendet werden soll. Das mit der Email habe ich alles hinbekommen.
Folgenden Plan habe ich: Ich lese den Inhalt aus dem Langtext mit dem Funktionsbaustein READ_TEXT aus. Der Funktionsbaustein READ_TEXT gibt mir den aktuellen bzw. veränderten Langtext vor dem Speichern wieder. Jetzt muss ich nur noch auf den Langtext aus der Datenbank kommen, um den aktuellen Langtext mit dem älteren Langtext vor dem Speichern zu vergleichen. Ich habe vor den Langtext nun aus der STXL Tabelle heraus zu bekommen, jedoch ist dort der Langtext dekodiert. Hat jemand noch eine andere Idee?

Also nochmals zu meiner Anforderung:
Langtext aus der DB: Ich bin ein Langtext
Langtext vor dem Speichern: Ich bin ein Langtext der verändert wurde

Vor dem Speichern sollen diese beiden Strings verglichen werden, falls sie sich unterscheiden soll eben eine Aktion vor dem Speichern ausgelöst werden.

Viele Grüße,
Sava

Re: Prüfen ob Langtext verändert wurde

Beitrag von ralf.wenzel (Top Expert / 4011 / 209 / 283 ) »
Und wenn du einfach statt der STXL die STXH nimmst und Datum und Uhrzeit der letzten Änderung mit den Daten vergleichst, die du beim READ_TEXT rauskriegst?

Also: FuBau READ_TEXT/Struktur HEADER vs. STXH, jeweils die Felder TDLDATE und TDLTIME vergleichen.
Bild
Ralf Wenzel Heuristika SAP-Development -- 25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Prüfen ob Langtext verändert wurde

Beitrag von Sava (ForumUser / 70 / 5 / 1 ) »
Hallo Ralf,

habe ich schon versucht, aber leider liefert mir die Read_Text Funktion keine aktuelle Änderungszeit sondern nur die alte der letzten Speicherung. Was, wie ich finde total komisch ist. Der geänderte Langtext wird angezeigt (t_lines), jedoch nicht das Änderungsdatum. Trotzdem vielen Dank für deine Idee.

VG,
Sava

Re: Prüfen ob Langtext verändert wurde

Beitrag von ralf.wenzel (Top Expert / 4011 / 209 / 283 ) »
Dann lies den Text selbst mit READ_TEXT und vergleiche die Texte.
Bild
Ralf Wenzel Heuristika SAP-Development -- 25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Prüfen ob Langtext verändert wurde

Beitrag von JHM (Top Expert / 1225 / 2 / 204 ) »
Sava hat geschrieben:Also nochmals zu meiner Anforderung:
Langtext aus der DB: Ich bin ein Langtext
Langtext vor dem Speichern: Ich bin ein Langtext der verändert wurde
An welcher Stelle kommst du denn an die Texte (welche TA, welche UserExits).

Der FuBa READ_TEXT liest ja die STXL/STXH.
Die FuGr hat aber ein lokales Gedächnis, der auch den geänderten Text hält, bevor dieser auf die DB geschrieben wird. Dies kann dann schon Probleme machen.

Am einfachsten ist es den Text vor der Änderung zu lesen und global zu merken und dann nach der Textänderung (also vor dem Speichern) den Text erneut zu lesen (beides mal mit READ_TEXT). Dafür brauchst du natürlich zwei Codingabschnitte (UserExit, EnhancementPoint, etc...).


Wenn für die Textänderung ein Änderungsbeleg geschrieben wird, dann könnte man sich je nach gewünschter Aktion auch an diesen anhängen (per Änderungzeiger bzw. WorkflowEvent). Dafür fehlen aber noch weiter Informationen (welche TA, welche Aktion genau, direkte/verzögerte Aktion, etc....).
Gruß Hendrik

Re: Prüfen ob Langtext verändert wurde

Beitrag von ewx (Top Expert / 4918 / 332 / 655 ) »
Probier mal:

Code: Alles auswählen.

  DATA BEGIN OF catalog OCCURS 50.
          INCLUDE STRUCTURE tcatalog.
  DATA END OF catalog.
  IMPORT catalog FROM MEMORY ID 'SAPLSTXD'.
In CATALOG stehen die geänderten Langtextheader. Wurde ein Text erfasst, so steht in FUNCTION ein "I".
Wenn ein Text geändert wurde, enthält FUNCTION ein "U".

Re: Prüfen ob Langtext verändert wurde

Beitrag von Sava (ForumUser / 70 / 5 / 1 ) »
Vielen Dank für eure Ideen. Ich hab etwas herum gebastelt und hab es letztendlich hinbekommen. Für die Nachwelt: Ich habe per Read_Text den aktuellen geänderten Text vor dem Speichern in einen String gelesen. Dann habe ich den nicht aktuellen Inhalt aus der Tabelle STXL gelesen und in einen String gelesen und beide mit einander verglichen um dann ein Ergebnis zu erhalten, ob der Text geändert worden ist oder nicht. Der Langtext ist in der STXL Tabelle als HexCode gespeichert. Dekodiert habe ich ihn mit folgender Syntax (https://scn.sap.com/thread/1907053 „Thomas Zloch Mar 24,2011 10.51“).

Ich denke aber der Code von ewx hätte auch klappen können :up: Danke!

Seite 1 von 1

Vergleichbare Themen

4
Antw.
8877
Views
HTML-Viewer-Control verändert HTML-Quelltext
von paramedic78 » 07.01.2013 14:50 • Verfasst in ABAP® für Anfänger
2
Antw.
2025
Views
Langtext PDFForm
von eschi78 » 02.07.2008 13:55 • Verfasst in ABAP® Core
2
Antw.
3198
Views
Langtext im Innenauftrag
von Mr. ABAP » 07.12.2006 09:15 • Verfasst in Financials
2
Antw.
3657
Views
Listbox nur Langtext
von Balflear » 22.06.2012 09:41 • Verfasst in Dialogprogrammierung
5
Antw.
5203
Views
Langtext suche
von F12_man » 07.01.2008 09:41 • Verfasst in ABAP® Core

Ü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

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.