Eigener Konvertierungs-Exit für Datum

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
10 Beiträge • Seite 1 von 1
10 Beiträge Seite 1 von 1

Eigener Konvertierungs-Exit für Datum

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Hallo,

ich hab ein Problem mit dem Konvertierungsexits.
Ich hab schön Brav nach dieser Anleitung ein eigener Exit angelegt nur mit einem Timestamp als Input.
http://www.saptechnical.com/Tutorials/ ... stom2.htm
Funktionsbaustein "INPUT" ist ohne Coding. Funktionsbaustin "Output" wandelt den entsprechenden Timestamp um.
Wenn ich ihn jetzt an meine Domäne hänge klappt das auch alles ganz wunderbar wie beschrieben.

Die Domäne habe ich einem Datenfeld zugewiesen.

Jetzt hätte ich gerne das ich einen Datenfeld vom Typ Char bekomme und ihn
mit einem Move in mein "neues Datenfeld schreibe" müsste er dann nicht automatisch konvertieren ?
Tut er leider nicht.
Zuletzt geändert von Trulchen am 03.07.2014 14:56, insgesamt 1-mal geändert.

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


Re: Eigener Konvertierungs-Exit für Datum

Beitrag von ewx (Top Expert / 4786 / 294 / 629 ) »
Richtig. tut er nicht. Du musst WRITE verwenden.

Re: Eigener Konvertierungs-Exit für Datum

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
ewx hat geschrieben:Richtig. tut er nicht. Du musst WRITE verwenden.
Tut er leider auch nicht :(

Code: Alles auswählen.

  
 lv_new_date TYPE zsit_wl_mesg_log_date.

  SELECT * FROM zsit_tproc_log INTO TABLE lt_result   WHERE id = mv_item_id ORDER BY msg_date.
    LOOP AT lt_result into ls_result.
    Write ls_result-msg_date to lv_new_date.
    ENDLOOP.
Wo können noch die Fehler sein ?
Er müsste mir ja direkt im Debugger das Datum konvertieren oder ? leider ist ls_new_date unkonvertiert gefüllt :(

Re: Eigener Konvertierungs-Exit für Datum

Beitrag von ewx (Top Expert / 4786 / 294 / 629 ) »
Probier mal, den Konv.Exit direkt zu verwenden:

Code: Alles auswählen.

WRITE xyz USING TO abc EDIT MASK '==ZZ123'.

Re: Eigener Konvertierungs-Exit für Datum

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Das geht jetzt !

Aber müsste es nicht rein theoretisch auch Automatisch funktionieren über die Domäne ????

Re: Eigener Konvertierungs-Exit für Datum

Beitrag von ewx (Top Expert / 4786 / 294 / 629 ) »
Das Quellfeld muss die Konvertierungsroutine besitzen, nicht das Zielfeld.
Die Funktionsbausteine müssen Coding enthalten - mindestens "OUTPUT = INPUT." -, ansonsten hast du ein Problem an anderer Stelle.
Warum das nun mit deinem an der Domäne hängenden Konv-Exit nicht funktioniert, kann ich nicht sagen.

Re: Eigener Konvertierungs-Exit für Datum

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
ewx hat geschrieben:Das Quellfeld muss die Konvertierungsroutine besitzen, nicht das Zielfeld.
Die Funktionsbausteine müssen Coding enthalten - mindestens "OUTPUT = INPUT." -, ansonsten hast du ein Problem an anderer Stelle.
Warum das nun mit deinem an der Domäne hängenden Konv-Exit nicht funktioniert, kann ich nicht sagen.

Code: Alles auswählen.

  SELECT * FROM zsit_tproc_log INTO TABLE lt_result   WHERE id = mv_item_id ORDER BY msg_date.
LOOP AT lt_result into ls_result.
    WRITE ls_result-msg_date  TO ls_test USING EDIT MASK '==ZDATE'.
    ls_result-msg_date = ls_test.
   MODIFY lt_result FROM ls_result TRANSPORTING msg_date.

ENDLOOP.
Quellfeld also ls_result-msg_date???
Wo ist da der Sinn ?

Re: Eigener Konvertierungs-Exit für Datum

Beitrag von ewx (Top Expert / 4786 / 294 / 629 ) »
Der Sinn eines Konvertierungsexits ist es, einen internen Wert so aufzubereiten, dass er für den Anwender verständlich ist, also z.B. aus 20140703 das Datum "03.07.2014" oder sogar "Donnerstag, 3. Juli 2014" macht.
Die Anzeige ist aber immer das Feld selbst und keine andere Variable.
Wieso machst du das überhaupt?

Code: Alles auswählen.

WRITE ls_result-msg_date  TO ls_test USING EDIT MASK '==ZDATE'.
    ls_result-msg_date = ls_test.
Intern brauchst du keine Umwandlung zu machen. Wenn du den Wert z.B. in einem ALV anzeigst, dann greift die Konvertierungsroutine bei der Ausgabe.
In deinem Fall ist das eher Blödsinn, denn msg_date ist (wahrscheinlich) nur 8-stellig:
msg_date = "2014703". => test = "03.07.2014". => msg_date = "03.07.20"

In der Domäne kannst du aber den Exit angeben und gibst dafür eine neue "Ausgabelänge" von 10 an, damit das aufbereitete Datum richtig angezeigt werden kann. Oder sogar 30, wenn du obiges Beispiel mit Name des Tages und Monats verwendest.

Frage ist also: Was willst du eigentlich erreichen?

Re: Eigener Konvertierungs-Exit für Datum

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Ich bekomme einen Wert aus der Datenbank ( Log Tabelle )
20140723150940
In meinem Alv soll er aber als 23.07.2014 15:09:40 angezeigt werden.

Re: Eigener Konvertierungs-Exit für Datum

Beitrag von ewx (Top Expert / 4786 / 294 / 629 ) »
Das sollte ohne weiteres hin- und herkopiere funktionieren. Damit deine Änderung an der Domäne zieht, musst du evtl. den ALV-Buffer zurück setzen oder den ALV so aufrufen, dass nicht gebuffert wird.
Es gibt bereits einen Konv.Exit: CONVERSION_EXIT_TIMES_OUTPUT

Seite 1 von 1

Vergleichbare Themen

6
Antw.
5785
Views
Suche CONVERSION EXIT für Datum
von a-dead-trousers » 30.06.2016 13:56 • Verfasst in ABAP Objects®
2
Antw.
3402
Views
SELECT-OPTION -> Datum und Datum - 7 Tage
von etalon » 08.09.2004 10:48 • Verfasst in ABAP® Core
7
Antw.
5777
Views
Convert Gregorianisches Datum -> Julianisches Datum
von michael baum » 06.06.2005 09:25 • Verfasst in ABAP® Core
4
Antw.
349
Views
Daten zwischen Datum A und Datum B
von cecslucas » 13.10.2022 09:44 • Verfasst in ABAP® für Anfänger
2
Antw.
4828
Views
Was ist der Unterschied zw. customer exit & user exit
von bohne » 07.02.2007 21:04 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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.