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 / 4399 / 223 / 1182 ) »
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.
4378
Views
3
Antw.
3137
Views
CO, händische Leistungsverrechnung in Periode 13
von yorck » 01.02.2007 11:03 • Verfasst in Financials
1
Antw.
1304
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.
3783
Views
Globale Datums-Aufbereitung
von Tron » 20.09.2016 11:31 • Verfasst in Tips + Tricks & FAQs
6
Antw.
3931
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

Regex in where
Gestern von tar 8 / 370
Daten an Tabelle binden
vor 2 Tagen von Bright4.5 3 / 1636
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 288
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 529

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

Regex in where
Gestern von tar 8 / 370
Daten an Tabelle binden
vor 2 Tagen von Bright4.5 3 / 1636
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 288
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 529

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 2 Tagen von snooga87 1 / 221
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3403
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9953