Datums-Periode abprüfen

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

Datums-Periode abprüfen

Beitrag von hazey (ForumUser / 1 / 0 / 0 ) »
Hallo zusammen,

mein Problem:

ich will eine Datums-Periode(z.B 05.05.2011 - 09.05.2011) in einer Tabelle speichern. Das ist kein Problem. Nur wenn für diese Periode darf kein weiterer Eintrag, der diese Periode schneidet erstellt werden.

Beispiel:
Für die Periode 10.5.2011 - 10.06.2011 ist ein Eintrag vorhanden. Wenn nun eine Periode für den 12.05.2011 - 22.05.2011 angelegt wird, ist das ungültig, da für ein ebereits bestehende Periode, keine weitere angelegt werden kann, welche eine alte Periode schneidet.
Ebenso darf keine Periode vom 09.05.2011 - 12.06.2011 angelegt werden, da dieser zeitraum einen bereits bestehenden schneidet.

Habt ihr Ideen wie ich das am Besten löse? Vielleicht durch einen Select? Oder Loop über die Tabelle?

Ihr könntet mir auch schon helfen, indem ihr mir sagt, wie ich eine Periode(zB. 12.05.2011 - 22.05.2011) in eine interne Tabelle schreib. Das heißt jedes einzelne Datum steht in einer Zeile:
12.05.2011
13.05.2011
14.05.2011
..
...
....
22.05.2011

Das Problem hierbei ist, wie mache ich das mit Monatswechsel am Besten?


Danke und viele Grüße,

Marco

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


Re: Datums-Periode abprüfen

Beitrag von a-dead-trousers (Top Expert / 4421 / 224 / 1189 ) »
Hi1!

Bei der Speicherung hast du zwei Möglichkeiten:
- Start (Datum) und Zeitraum in Tagen (Integer)
- oder Beginn (Datum) und Ende (Datum)
je nachdem, was du bevorzugt machen willst.

Der Vergleich ist ab Besten zu realisieren, wenn du die Daten einmalig komplett aus der Datenbank ausliest und den Verlgeich im Programm selbst durchführst.
Du willst den Zeitraum A bis B prüfen, also brauchst du nur einen Tabellen-Loop über deine bestehenden Einträge machen und prüfen ob "<A> between <Start> and <Ende> or <B> between <Start> and <Ende>".

Code: Alles auswählen.

type-pools:
  abap.

data:
  ls_data type ... "Neuer Datensatz
  ld_okay type abap_bool,
  lt_data type standard table of ... with default key.

field-symbols:
  <ls_data> type ...

ld_okay = abap_true.
loop at lt_data assigning <ls_data>.
  if ls_data-start between <ls_data>-start and <ls_data>-end or ls_data-end between <ls_data>-start and <ls_data>-end.
    ld_okay = abap_false.
  endif.
endloop.

if ld_okay eq abap_true.
* In Ordnung
else.
* Nicht in Ordnung.
endif.
Was Datumsberechnungen und Monatswechsel angeht:
Wenn du in ABAP zu einem Datum A, X Tage (Integer) hinzuaddierst erhällst du das richtige Datum!

Code: Alles auswählen.

data:
  ld_datum type D.

ld_datum = '20111231'. "31.12.2011
add 32 to ld_datum. "oder ld_datum = ld_datum + 32
write ld_datum. "01.02.2012
lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

2
Antw.
4548
Views
3
Antw.
3233
Views
CO, händische Leistungsverrechnung in Periode 13
von yorck » 01.02.2007 11:03 • Verfasst in Financials
1
Antw.
1353
Views
HR: In welcher Periode wurde ein Infoty geändert?
von sgevolker » 09.10.2006 17:23 • Verfasst in ABAP® für Anfänger
0
Antw.
3899
Views
Globale Datums-Aufbereitung
von Tron » 20.09.2016 11:31 • Verfasst in Tips + Tricks & FAQs
6
Antw.
4030
Views
Datums Eingabe Query
von h1as » 23.07.2013 15:50 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Arbeitszeiten zum Arbeitsplatz
vor 11 Stunden von wolli 2 / 2057
Feldwerte vergleichen
vor 11 Stunden von a-dead-trousers 6 / 1624
Auftrag & Posititen ZZFELD ändern
vor 2 Tagen von ewx 11 / 701

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

Arbeitszeiten zum Arbeitsplatz
vor 11 Stunden von wolli 2 / 2057
Feldwerte vergleichen
vor 11 Stunden von a-dead-trousers 6 / 1624
Auftrag & Posititen ZZFELD ändern
vor 2 Tagen von ewx 11 / 701

Unbeantwortete Forenbeiträge

OPD Druck im SPOOL
vor einer Woche von Manfred K. 1 / 2000
Export von Spools in XLSX
vor 2 Wochen von abapamateur 1 / 3681
Feldberechnung ME32K
vor 3 Wochen von ZF_SAPler 1 / 3941