Convert Datum in DB

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

Convert Datum in DB

Beitrag von nkuhn (ForumUser / 30 / 0 / 0 ) »
Hallo zusammen,

Ich habe ein Problem und zwar lese ich aus einem Excel File Daten ins SAP System. Dies mache ich mit dem Funktionsbaustein ALSM_EXCEL_TO_INTERNAL_TABLE. Danach schreibe ich die Daten von der internen Tabelle in eine DB-Tabelle.

Diese DB-Tabelle vergleiche ich dann mit einer anderen. Und hier tritt das Problem auf. In der DB-Tabelle mit den Excel Daten sind alle Werte als CHAR's abgespeichert weil ich sie nur so vom Excel lesen kann. Jetzt muss ich aber ein Datum in der DB-Tabelle(mit Exceldaten) mit einem anderen Wert in einer anderen DB-Tabelle vergleichen. Dieser ist aber vom Datentyp ein Date.

Hat jemand eine Ahnung wie ich diese konvertieren kann? Und dann DB mit den neuen Werten füllen kann?

Vielen Dank für Eure Hilfe.

Mfg.

Nicolas

PS. Ich habe es mal so versucht aber dann kommt ein Laufzeitfehler (TABLE_ILLEGAL_STATEMENT):

DATA: excel_date TYPE d.

SELECT * FROM zbc_excel INTO CORRESPONDING FIELDS OF TABLE t_excel.

LOOP AT t_excel INTO wa_excel.
excel_date = wa_excel-bisdatum.
ENDLOOP.

MODIFY t_excel FROM wa_excel.

MODIFY zbc_excel FROM TABLE t_excel.

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


Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
Hallo Nicolas,

ich gehe mal davon aus, das dein Textfeld so aussieht (15.03.2007)

Dann sollte dein loop wie folgt aussehen:

field symbols: <excel> type wa_excel.

LOOP AT t_excel assigning <excel>.
concatenate: <excel>-bisdatum+6(4)
<excel>-bisdatum+3(2)
<excel>-bisdatum(2) into excel_date.
ENDLOOP.


Damit hätte dein Datum den richtigen Aufbau.

Das Modify t_excel FROM wa_excel entfällt durch das arbeiten mit Feldsymbolen. Solltest du die Änderung mit Modify machen, gehört das Modify in den LOOP, da du schließlich alle Tabellenzeilen ändern willst und nicht dur die letzte Zeile.

Gruß

Thomas

Beitrag von nkuhn (ForumUser / 30 / 0 / 0 ) »
Vielen Dank Thomas für deine Hilfe. Das habe ich soweit eingebaut. Jetzt noch eine Frage, wie ist "wa_excel" zu deklarieren.

Bei mir kommt eine Fehlermeldung: "Der Typ "wa_excel" ist unbekannt."

wa_excel habe ich bis anhin so deklariert:

Data:
wa_excel TYPE zbc_excel.

Mfg.

Nicolas

Beitrag von nkuhn (ForumUser / 30 / 0 / 0 ) »
Ich habe es jetzt so gelöst:

DATA: excel_date TYPE d.
TYPES: wa_excel TYPE zbc_excel.

SELECT * FROM zbc_excel INTO CORRESPONDING FIELDS OF TABLE t_excel.

FIELD-SYMBOLS <excel> TYPE wa_excel.

LOOP AT t_excel ASSIGNING <excel>.
CONCATENATE: <excel>-bisdatum+6(4)
<excel>-bisdatum+3(2)
<excel>-bisdatum(2) INTO excel_date.
excel_date = wa_excel-bisdatum.
MODIFY t_excel FROM wa_excel.
MODIFY zbc_excel FROM TABLE t_excel.
ENDLOOP.

Leider funktioniert der Vergleich der beiden Daten immer noch nicht.

Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
Hi,

Hier noch mal ein Besipiel für deinen Vergleich:

data: begin of zbc_excel,
bisdatum(10) type c,
end of zbc_excel.

DATA: excel_date like sy-datum,
vgl_date like sy-datum value '20070315',
t_excel like standard table of zbc_excel.

FIELD-SYMBOLS <excel> like zbc_excel.

zbc_excel-bisdatum = '13.10.2006'.
append zbc_excel to t_excel.

zbc_excel-bisdatum = '15.03.2007'.
append zbc_excel to t_excel.

LOOP AT t_excel ASSIGNING <excel>.
CONCATENATE: <excel>-bisdatum+6(4) <excel>-bisdatum+3(2)
<excel>-bisdatum(2) INTO excel_date.

if excel_date = vgl_date.
write: / 'Daten sind Gleich:', excel_date.
else.
write: / 'Daten ungleich :', excel_date, vgl_date.
endif.
ENDLOOP

Wo machst du eigentlcih einen Vergleich? ecel-date = wa_excel-bisdatum brauchst du nicht, da die werte durch das Feldsymbol direkt in der Tabelle t_excel geändert werden ODER ist das dein Vergleich. Wenn JA, dann fehlt irgendwie ein IF.
Das MODIFY FROM TABLE braucht sdu nur einmal nach dem LOOP und das
andere MODIFY kannst du lsöchen, da die Änderung duch das assign automatisch in der Tabelle stattfindet.

Gruß Thomas

Beitrag von nkuhn (ForumUser / 30 / 0 / 0 ) »
Vielen Dank.

Der Vergleich ist schon klar, nur muss die DB-Tabelle diesen neuen konvertierten Wert am Ende enthalten, Weil ich ja zwei DB-Tabellen miteinander vergleiche.

Das ist das Problem.

Mfg.

Nicolas

Seite 1 von 1

Vergleichbare Themen

7
Antw.
6310
Views
Convert Gregorianisches Datum -> Julianisches Datum
von michael baum » 06.06.2005 09:25 • Verfasst in ABAP® Core
23
Antw.
8377
Views
Convert
von Marc K. » 22.08.2012 16:17 • Verfasst in ABAP® für Anfänger
8
Antw.
7163
Views
Convert SAP Memory to PDF
von Knirpsi » 18.01.2012 16:46 • Verfasst in ABAP® Core
10
Antw.
5660
Views
Convert String to PDF
von Johannes9090 » 13.10.2014 17:15 • Verfasst in ABAP® für Anfänger
11
Antw.
7193
Views
Convert String to Byte etc...
von stony007_de » 19.11.2013 18:23 • Verfasst in ABAP Objects®

Ü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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor einer Stunde von Bright4.5 1 / 35
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1695
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8299