1 Themenübersicht
Dieses Dokument gibt eine Übersicht über die Datentypen, ihre Bedeutung und ihre technischen Eigenschaften.
In den folgenden Kapiteln werden die vorhandenen Datentypen mit ihren grundlegenden Eigenschaften und die wichtigsten jeweils zur Verfügung stehenden APIs aufgelistet. Die Abbildung und Verwendbarkeit der Datentypen ist vom jeweiligen Kanal abhängig und in folgenden weiterführenden Dokumentationen beschrieben:
- Abbildung auf der Datenbank: Einführung: Datenbanken
- Abbildung auf der Toolshell: Toolshell
- Abbildung im Business Integration Service (BIS): Einführung: Datenaustausch, Entfernte BIS-Schnittstellen
- Abbildung auf der grafischen Oberfläche: Oberflächenentwicklung
2 Zielgruppe
Entwickler
3 Beschreibung
Die Beschreibung der APIs ist folgendermaßen aufgeteilt:
- Primitiver Typ: Datentyp, wie er in der Anwendung „Entwicklungsobjekte“ definiert wird.
- Logischer Datentyp: Der logische Datentyp, der als Basis für eigene Datentypen verwendet werden kann. Bei einigen Typen (z. B. Bool, Property) ist die Verwendung des logischen Datentyps oder einer entsprechenden Ableitung für die Funktionalität unumgänglich.
- Datentyp für Abfragen: Der logische Datentyp, der oder dessen Ableitungen für Abfragen verwendet werden. Für die meisten Datentypen ist kein abweichender logischer Datentyp für Abfragen notwendig.
- GUI-Feld: Dies ist die Java-Klasse, die für eine Eingabe bzw. Ausgabe eines Wertes dieses Datentyps in der graphischen Oberfläche verwendet werden kann.
- GUI-Feld für Abfragen: Dies ist die Java-Klasse, die für eine Eingabe bzw. Ausgabe einer Abfrage auf Werten dieses Datentyps in der graphischen Oberfläche verwendet werden kann. Diese Felder erlauben je nach Datentyp Mehrfachangaben, Bereiche oder die Verwendung von Platzhaltern. Sie werden insbesondere in Suchen und in Cockpit-Anwendungen verwendet. Je nach Fall kann ein GUI-Feld in einem speziellen Modus für Abfragen („SelectionMode“) verwendet werden oder ein spezielles Abfragefeld existiert.
- Prüfungen: Die Klasse „cisag.pgm.util.RepositoryValidation“ und einige andere Klassen ermöglichen auf der Basis des Datentyps zusammen mit seiner Data-Description, Werte zu überprüfen und „generisch“ Meldungen zu senden. So kann beispielsweise geprüft werden, ob ein „String“ angegeben wurde und die zulässige Maximallänge nicht überschritten wird. Die Verwendung dieser APIs vereinfacht die Erstellung von Prüfungen und reduziert die Menge identischer Meldungen.
- Null-Werte: Der Persistenzdienst behandelt Null-Werte beim Setzen in Business Objects und beim Lesen aus der Datenbank. Wenn die set-Methoden von Business Objects den Wert null erlauben, ist beschrieben wie der Persistenzdienst mit diesem Wert beim Schreiben auf die Datenbank umgeht. Weiterhin wird beschrieben, wie der Wert NULL auf der Datenbank (z.B. entstanden durch Outer Joins), vom Persistenzdienst aufbereitet wird.
- Hilfeklassen: Für das Erzeugen von Werten und elementaren Operationen auf Werten eines Datentyps existieren zumeist eine oder mehrere Hilfeklassen mit dem Namen „…Utility“. Zu diesen Operationen gehören beispielsweise das Erzeugen eines Wertes, das Überprüfen, ob ein Wert angegeben wurde, und das Konvertieren eines Wertes in eine benutzerspezifische Darstellung für die Verwendung in Meldungen. Die Methoden dieser Klassen liefern im Allgemeinen nur Werte und erzeugen selbst keine Meldungen.
3.1 Boolsche Datentypen
Boolsche Datentypen sind die einfachste Form eines Datentyps. Ein solcher Datentyp kann nur die Werte „true“ oder „false“ annehmen. Wird dieser Datentyp auch für die Typisierung eines Parameters eines Toolshell-Befehls verwendet, so können für diesen Parameter die Werte „true“ und „false“ angegeben werde oder der Parameter kann ausgelassen werden.
3.1.1 Boolean
Java-Typ | boolean |
Primitiver Typ | boolean |
Logischer Datentyp | com.cisag.pgm.datatype.Boolean |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.BooleanField com.cisag.pgm.gui.CheckBox |
GUI-Feld für Abfragen | com.cisag.pgm.gui.BooleanField |
Prüfungen | – |
Hilfsklassen | com.cisag.pgm.datatype.CisNumberFactory
getBoolean |
Null-Werte | Der Wert null ist kein gültiger Wert und wird vom Persistenzdienst als false zurückgegeben. |
Besonderheiten | – |
3.1.2 Bool
Der Datentyp „Bool“ entspricht im Wesentlichen dem Datentyp „Boolean“. Der einzige Unterschied besteht darin, dass der Datentyp „Bool“ bei Toolshell-Befehlen verwendet wird, um Parameter zu typisieren, deren Angabe dem Wert „true“ und deren Fehlen dem Wert „false“ entspricht und eine explizite Angabe des Wertes nicht erforderlich ist.
Die Verwendung des logischen Datentyps oder einer entsprechenden Ableitung ist für die Funktionalität unumgänglich.
Java-Typ | boolean |
Primitiver Typ | boolean |
Logischer Datentyp | com.cisag.pgm.datatype.Bool |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.BooleanField
com.cisag.pgm.gui.CheckBox |
GUI-Feld für Abfragen | com.cisag.pgm.gui.BooleanField |
Prüfungen | – |
Hilfsklassen | com.cisag.pgm.datatype.CisNumberFactory
getBoolean |
Besonderheiten | Wird für boolsche Parameter bei Toolshell-Befehlen verwendet. Bei „Bool“-Parametern, deren Standardwert „true“ ist, kann „-no<Parameter>“ anstelle von „-<Parameter>:false“ verwendet werden.
Die Verwendung des logischen Datentyps, oder einer entsprechenden Ableitung, ist für die Funktionalität unumgänglich. |
3.2 Zahlen
3.2.1 Byte
Java-Typ | byte |
Primitiver Typ | byte |
Logischer Datentyp | com.cisag.pgm.datatype.Byte |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.ByteField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.DecimalSelectionField |
Prüfungen | – |
Hilfsklassen | com.cisag.pgm.datatype.CisNumberFactory
getByte com.cisag.pgm.datatype.ConverterBase |
Null-Werte | Der Wert null ist kein gültiger Wert und wird vom Persistenzdienst als Zahl 0 zurückgegeben. |
Besonderheiten | – |
3.2.2 Short
Java-Typ | short |
Primitiver Typ | short |
Logischer Datentyp | com.cisag.pgm.datatype.Short |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.ShortField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.DecimalSelectionField |
Prüfungen | – |
Hilfsklassen | com.cisag.pgm.datatype.CisNumberFactory
· getShort com.cisag.pgm.datatype.ConverterBase |
Null-Werte | Der Wert null ist kein gültiger Wert und wird vom Persistenzdienst als Zahl 0 zurückgegeben. |
Besonderheiten | – |
3.2.3 Integer
Java-Typ | int |
Primitiver Typ | int |
Logischer Datentyp | com.cisag.pgm.datatype.Integer |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.IntegerField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.DecimalSelectionField |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
isIntegerBetween |
Hilfsklassen | com.cisag.pgm.datatype.CisNumberFactory
getInteger com.cisag.pgm.datatype.ConverterBase |
Null-Werte | Der Wert null ist kein gültiger Wert und wird vom Persistenzdienst als Zahl 0 zurückgegeben. |
Besonderheiten | – |
3.2.4 Long
Java-Typ | long |
Primitiver Typ | long |
Logischer Datentyp | com.cisag.pgm.datatype.Long |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.LongField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.DecimalSelectionField |
Prüfungen | – |
Hilfsklassen | com.cisag.pgm.datatype.CisNumberFactory
· getLong com.cisag.pgm.datatype.ConverterBase |
Null-Werte | Der Wert null ist kein gültiger Wert und wird vom Persistenzdienst als Zahl 0 zurückgegeben. |
Besonderheiten | – |
3.2.5 Dezimalzahlen
Java-Typ | com.cisag.pgm.datatype.CisDecimal |
Primitiver Typ | Dezimalzahl |
Logischer Datentyp | Keiner, da der primitive Typ die Parameter „Maximale Länge“ und „Nachkommastellen“ hat. |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.DecimalField com.cisag.pgm.gui.PercentField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.DecimalSelectionField |
Prüfungen | – |
Hilfsklassen | com.cisag.pgm.datatype.CisDecimalSelectionUtility
com.cisag.pgm.datatype.CisNumberFactory getCisDecimal com.cisag.pgm.datatype.ConverterBase |
Null-Werte | Der Wert null ist kein gültiger Wert und wird vom Persistenzdienst als Zahl 0 gespeichert und zurückgegeben. |
Besonderheiten | – |
3.2.6 Float
Der Datentyp „Float“ wird im System normalerweise nicht verwendet, da er Fließkommawerte und somit potenziell implizit gerundete Werte darstellt. Im System werden Dezimalzahlen verwendet. Einzig einige GUI-Klassen verwenden diesen Datentyp im Rahmen von Layout-Definitionen.
Java-Typ | float |
Primitiver Typ | float |
Logischer Datentyp | com.cisag.pgm.datatype.Float |
Datentyp für Abfragen | – |
GUI-Feld | – |
GUI-Feld für Abfragen | – |
Prüfungen | – |
Hilfsklassen | com.cisag.pgm.datatype.CisNumberFactory
getFloat com.cisag.pgm.datatype.ConverterBase |
Null-Werte | Der Wert null ist kein gültiger Wert und wird vom Persistenzdienst als Zahl 0 zurückgegeben. |
Besonderheiten | Wird normalerweise nicht im Datenmodell verwendet. Stattdessen werden Dezimalzahlen verwendet. |
3.2.7 Double
Der Datentyp „Double“ wird im System normalerweise nicht verwendet, da er Fließkommawerte und somit potenziell implizit gerundete Werte darstellt. Im System werden Dezimalzahlen verwendet. Einzig einige GUI-Klassen verwenden diesen Datentyp im Rahmen von Layout-Defintionen.
Java-Typ | double |
Primitiver Typ | double |
Logischer Datentyp | com.cisag.pgm.datatype.Double |
Datentyp für Abfragen | – |
GUI-Feld | – |
GUI-Feld für Abfragen | – |
Prüfungen | – |
Hilfsklassen | com.cisag.pgm.datatype.CisNumberFactory
getDouble com.cisag.pgm.datatype.ConverterBase |
Null-Werte | Der Wert null ist kein gültiger Wert und wird vom Persistenzdienst als Zahl 0 zurückgegeben. |
Besonderheiten | Wird normalerweise nicht im Datenmodell verwendet. Stattdessen werden Dezimalzahlen verwendet. |
3.3 Zeichen
3.3.1 Character
Java-Typ | char |
Primitiver Typ | char |
Logischer Datentyp | com.cisag.pgm.datatype.Character |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.CharacterField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.CharacterField |
Prüfungen | – |
Hilfsklassen | – |
Null-Werte | Der Wert null ist kein gültiger Wert und wird vom Persistenzdienst als Leerzeichen zurückgegeben. |
Besonderheiten | Wird normalerweise nicht im Datenmodell verwendet. Stattdessen werden Strings der Länge 1 verwendet. |
3.3.2 String
Java-Typ | java.lang.String |
Primitiver Typ | String |
Logischer Datentyp | Keine, da der primitive Typ die Parameter „Maximale Länge“ und „Mehrsprachig“ hat. |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.TextField com.cisag.pgm.gui.MultiLineTextField com.cisag.pgm.gui.TextPane com.cisag.pgm.gui.HTMLEditor com.cisag.pgm.gui.HTMLPane |
GUI-Feld für Abfragen | com.cisag.pgm.gui.TextSelectionField |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isStringSpecified · isStringFormatValid · isStringValid |
Hilfsklassen | com.cisag.pgm.datatype.CisStringUtility |
Null-Werte | Der Wert null ist kein gültiger Wert und wird vom Persistenzdienst als leerer String gespeichert und zurückgegeben. |
Besonderheiten | – |
3.3.3 Text
Texte sind „Strings“ unbestimmter Länge.
Java-Typ | java.lang.String |
Primitiver Typ | Text |
Logischer Datentyp | com.cisag.pgm.datatype.Text |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.TextField com.cisag.pgm.gui.MultiLineTextField com.cisag.pgm.gui.TextPane com.cisag.pgm.gui.HTMLEditor com.cisag.pgm.gui.HTMLPane |
GUI-Feld für Abfragen | com.cisag.pgm.gui.TextSelectionField |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isStringSpecified · isStringFormatValid · isStringValid |
Hilfsklassen | com.cisag.pgm.datatype.CisStringUtility |
Null-Werte | Der Wert null ist kein gültiger Wert und wird in Business Objects als leerer String gespeichert. |
Besonderheiten | Alle Attribute eines Business Objects, die vom primitiven Typ „Text“ sind, werden in der Datenbank in einem einzigen Attribut „_clob“ zusammengefasst. Daher ist die Verwendung dieser Attribute in OQL-Anweisungen und ODBC nicht möglich. |
3.3.4 URI-String
Java-Typ | java.lang.String |
Primitiver Typ | Text |
Logischer Datentyp | com.cisag.pgm.datatype.URIString com.cisag.pgm.datatype.FolderURIString com.cisag.pgm.datatype.FileURIString |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.DocumentField com.cisag.pgm.gui.FolderField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.DocumentField com.cisag.pgm.gui.FolderField |
Prüfungen | com.cisag.pgm.util.RepositoryValidation.URIFlag
com.cisag.pgm.util.RepositoryValidation isURIStringValid |
Hilfsklassen | com.cisag.pgm.util.CisFile
com.cisag.pgm.util.CisFileLogic |
Besonderheiten | URIs für den Zugriff auf das Dateisystem beginnen immer mit dem Präfix „file:///“. Absolute URIs für den Zugriff auf den Knowledge Store besitzen eine interne Darstellung („kstore://“) und eine externe Darstellung („https://<Basis-URL des SAS/kstore/…“). In der Datenbank darf nur eine vom Application-Server unabhängige interne Darstellung gespeichert werden. Alternativ kann in der Datenbank eine relative URI mit Bezug auf den Standard-Arbeitsbereich der jeweiligen Datenbank gespeichert werden. In diesem Fall können Datenbanken auch konsistent kopiert werden, da die relativen Angaben im Gegensatz zu absoluten Angaben gültig bleiben.
Siehe auch Typ Text. |
3.3.5 Property
Propertys sind Einstellungen in Property-Dateien. Dieser Datentyp wird verwendet, um mögliche Einstellungen zu identifizieren und ihnen eine Direkthilfe zuzuordnen. Nähere Informationen zu Propertys und Property-Dateien finden Sie in der Dokumentation ERP-Properties und der Dokumentation Hilfe zur Property anzeigen (dspprphlp).
Java-Typ | java.lang.String |
Primitiver Typ | Text |
Logischer Datentyp | com.cisag.pgm.datatype.Property |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.TextField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.TextSelectionField |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isStringSpecified · isStringFormatValid · isStringValid |
Hilfsklassen | java.lang.Boolean java.lang.System |
Besonderheiten | Der logische Datentyp einer Property muss vom logischen Datentyp „com.cisag.pgm.datatype.Property“ abgeleitet sein. Für betriebswirtschaftliche Einstellungen ungeeignet, da die Werte der Properties immer für alle Datenbanken eines Systems bzw. Application-Servers gelten.
Siehe auch Typ „Text“. |
3.4 Binärdatentypen
3.4.1 Binary
Java-Typ | byte[] |
Primitiver Typ | Binär |
Logischer Datentyp | Keine, da der primitive Typ die Parameter „Maximale Länge“ und „Nachkommastellen“ hat. |
Datentyp für Abfragen | – |
GUI-Feld | – |
GUI-Feld für Abfragen | – |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
isBinarySpecified |
Hilfsklassen | com.cisag.pgm.datatype.ByteArrayUtility |
Null-Werte | Der Wert null ist ein gültiger Wert und kann in Business Objects verwendet werden. |
Besonderheiten | Zuweisungen an Stellen im byte-Array sind nicht zulässig, wenn das byte-Array aus einem Business Object stammt. Die Zuweisung gefährdet die Integrität des Application Servers. |
3.4.2 GUID
Die GUID ist eine technische Identifizierung der Objekte. Die GUID ist ein byte-Array mit der Länge von 16 bytes. Die meisten Business Objects im System verwenden eine einzelne GUID als Primärschlüssel. Hierdurch können die Verwendungen dieses Primärschlüssels als Fremdschlüssel in andere Business Objects einfach und uniform abgebildet werden.
Java-Typ | byte[] |
Primitiver Typ | GUID |
Logischer Datentyp | com.cisag.pgm.datatype.Guid |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.GuidField
Für Fremdschlüssel: Die Ableitungen von com.cisag.pgm.gui.EntityField bzw. com.cisag.pgm.gui.SimpleEntityField. |
GUI-Feld für Abfragen | Für Fremdschlüssel: Die Ableitungen von com.cisag.pgm.gui.EntityField bzw. com.cisag.pgm.gui.SimpleEntityField. |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isGuidDefined · isGuidSepecified · isGuidValid |
Hilfsklassen | com.cisag.pgm.datatype.Guid |
Null-Werte | Der Wert null ist ein gültiger Wert und kann in Business Objects verwendet werden. |
Besonderheiten | Zuweisungen an Stellen im byte-Array sind nicht zulässig, wenn das byte-Array aus einem Business Object oder aus einer Funktion der PGM-Schnittstelle stammt. Die Zuweisung gefährdet die Integrität des Application Servers. |
3.4.3 BLOB
Java-Typ | com.cisag.pgm.datatype.CisBlob
com.cisag.pgm.datatype.CisBlobContainer |
Primitiver Typ | BLOB |
Logischer Datentyp | com.cisag.pgm.datatype.Blob |
Datentyp für Abfragen | – |
GUI-Feld | – |
GUI-Feld für Abfragen | – |
Prüfungen | – |
Hilfsklassen | com.cisag.pgm.datatype.DatatypeUtility
com.cisag.pgm.datatype.CisParameterListSerializer |
Null-Werte | Der Wert null ist kein gültiger Wert und wird vom Persistenzdienst als leerer Blob zurückgegeben. |
Besonderheiten | In einem Business Object kann höchstens ein Attribut vom Typ „BLOB“ enthalten sein. |
3.5 Valueset
3.5.1 Valueset
Ein Valueset ist eine Werteaufzählung. Die zugehörigen Valueset-Elemente ent-halten dabei die konkreten Ausprägungen der Aufzählung. Ein Element besteht aus einem positiven short-Wert, einem Konstantennamen und einer übersetzbaren Bezeichnung. In der Regel wird zu jedem Valueset eine Java-Klasse „generiert“, in der die Konstanten definiert sind. Der Name eines Elements wird dabei als Konstantenname und der short-Wert als Konstantenwert benutzt.
Java-Typ | Derselbe Name wie das Valueset. |
Primitiver Typ | Valueset |
Logischer Datentyp | Standardmäßig derselbe Name wie das Valueset. |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.ValueSetField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.ValueSetField |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isValueSetDefined · isValueSetValid |
Hilfsklassen | com.cisag.pgm.datatype.CisValueSetUtility |
Besonderheiten | Der Initialwert für Valuesets in Java ist „0“. Dieser Wert ist jedoch kein zulässiger Wert in der Aufzählung der Konstantenwerte und verfügt insbesondere auch nicht über eine für den Benutzer verständliche Übersetzung. Aus diesem Grund sollte auf die Verwendung des Initialwertes „0“ grundsätzlich verzichtet werden. Besser ist, stets die zugehörige Data-Description als „Pflichtfeld“ zu kennzeichnen“ und einen expliziten Wert „NONE“, „UNKOWN“ oder Ähnliches mit einer sprechenden Bezeichnung zu verwenden. |
3.6 Zeit und Datum
Im Rahmen der Behandlung von Zeit- und Datumsangaben existiert eine Reihe von besonderen Datentypen. Die Grundlage für die aufgeführten Unterscheidungen ist der logische Datentyp eines Wertes.
Grundlage für die Abbildung und Behandlung von Zeit- und Datumsangaben ist die Zeitzone. Zusammen mit weiteren Angaben definiert sie einen Kalender. Dieser ist die Grundlage für Operationen, die mit Kalenderwochen arbeiten.
Zusätzlich haben folgende Fragestellungen Einfluss auf die Wahl des Datentyps:
- Ist der Wert eine absolute Zeitangabe (Datum, Datum und Tageszeit), eine relative Zeitangabe (Dauer, Tageszeit) oder ein symbolische Zeitangabe (jede Woche)?
- Hat der Wert einen Bezug zu einer Zeitzone?
- Hat der Wert die Genauigkeit Datum oder die Genauigkeit Zeitstempel?
Für die Fälle, in denen die vom Persistenzdienst „generierten“ Attribute „validFrom“ und „validUntil“ verwendet werden, bestehen weitere Wahlmöglichkeiten bei der Einstellung der Zeitabhängigkeit im Entwicklungsobjekt „Business Object“.
folgende Möglichkeiten bestehen:
- Keine
- Immer neuen Datensatz einfügen
- Immer aktuellen Satz schreiben
- Gesteuert durch Anwendung
- Gesteuert durch Anwendung, Datum mit Zeitzone
- Gesteuert durch Anwendung, Zeitstempel mit Zeitzone
In diesen Fällen wird
- zusätzlich das Attribut „_timeZoneGuid“ „generiert“,
- das Attribut „validFrom“ und das Attribut „validUntil“ als Zeitstempel „generiert“,
- das Attribut „validFrom“ als lokales Gültig-Ab-Datum oder als lokaler Gültig-Ab-Zeitstempel interpretiert,
- das Attribut „validUntil“ als lokales Gültig-Bis-Datum oder als lokaler Gültig-Bis-Zeitstempel interpretiert.
Die Bestandteile von Gültigkeitsintervallen werden mithilfe der Standardfelder visualisiert. Die Hilfeklasse „com.cisag.pgm.gui.ValidFromUntilSupport“ ermöglicht zwei Felder zu einem „Von-Bis-Feld“ zusammenzufassen.
3.6.1 Zeitzone
Eine Zeitzone (technisch „TimeZone“) definiert die Zeitverschiebung bezüglich Greenwich Mean Time. Die effektive Verschiebung ist dabei im Allgemeinen von den Sommerzeitregeln dieser Zeitzone und somit vom Tag innerhalb eines Jahres abhängig. Im System sind die verfügbaren Zeitzonen fest vorgegeben. Referenzen auf Zeitzonen werden in Form einer GUID des zugehörigen Business Object „TimeZone“ gespeichert. Das Business Object „TimeZone“ befindet sich auf der Repository-Datenbank. Der Ursprung einer Zeitzone ist praktisch immer ein Kalender. Daher existiert kein spezielles GUI-Feld und existieren keine speziellen APIs zur Behandlung einer Zeitzone außerhalb eines Kalenders.
Java-Typ | byte[] |
Primitiver Typ | GUID |
Logischer Datentyp | com.cisag.pgm.datatype.TimeZoneGuid |
Datentyp für Abfragen | – |
GUI-Feld | – |
GUI-Feld für Abfragen | – |
Prüfungen | Siehe Kalender |
Hilfsklassen | com.cisag.pgm.datatype.CisTimeZoneUtility |
Besonderheiten | Die Zeitzone ist Bestandteil eines Kalenders. Sie wird entweder zusammen mit einem Kalender oder zusammen mit einem Datum und einem Kalender geprüft. |
3.6.2 Kalender
Die Angabe einer Zeitzone ist ausreichend, um eine Zeitangabe in ein Datum und eine Tageszeit umzurechnen. Um die Grenzen einer Kalenderwoche (KW) zu berechnen, sind zwei weitere Angaben notwendig. Dies sind die Festlegungen welcher Wochentag als der erste Tag der Woche angesehen wird (Attribut „firstDayOfWeek“), in Frankreich im Allgemeinen der Sonntag, in Deutschland der Montag) und ab wie vielen Tagen die KW 1 als KW 1 und nicht mehr als KW53 interpretiert wird (Attribut „MinimalDaysInFirstWeek“). Die Zeitzone plus diese beiden Werte zusammen bilden im System einen Kalender (technisch „Calendar“, in Java das Interface „com.cisag.pgm.datatype.CisCalendar“). In der Anwendung „Customizing“ kann auf der Ebene des Systems ein System-Kalender definiert werden. Für jede Organisation wird ebenfalls ein Kalender festgelegt. Durch die Auswahl einer Organisation als Kontext in der Standard-Symbolleiste kann der aktuelle Kalender der Session umgeschaltet werden. Die Umstellung der Organisation hat unterschiedliche Auswirkungen in den verschiedenen Anwendungen. Der Tooltip zum Feld für die Auswahl der Organisation gibt Auskunft darüber. In der Regel hat der Organisationswechsel Auswirkung auf die Darstellung von Zeitangaben. Bei Zeitstempeln wird der dargestellte Wert neu berechnet, bei lokalen Zeitangaben wird die Zeitzone angezeigt, wenn sie von der Zeitzone des Kontextes abweicht. Ist in der Session keine OLTP-Datenbank aktiv, so gilt der System-Kalender.
Der jeweils aktive Kalender und seine Zeitzone werden in der Statuszeile angezeigt. Im Tooltip zur Zeitzone werden die Eigenschaften der Zeitzone und des Kalenders dargestellt.
Tooltip zu den Kalender-Einstellungen in der Statuszeile
Die aktuelle Tageszeit in der Statuszeile wird immer bezogen auf den aktiven Kalender aufbereitet. Neben dem aktuellen Datum wird im Tooltip die Tageszeit dargestellt, ob die Zeitzone über eine Unterscheidung zwischen Sommer und Winterzeit verfügt und welche Zeitverschiebung aktuell aktiv ist.
Tooltip zu den Zeiteinstellungen in der Statuszeile
Java-Typ | com.cisag.pgm.datatype.CisCalendar |
Primitiver Typ | Complex |
Logischer Datentyp | com.cisag.pgm.datatype.CisCalendar |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.CisCalendarField |
GUI-Feld für Abfragen | – |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isCisCalendarDefined · isCisCalendarValid |
Hilfsklassen | com.cisag.pgm.datatype.CisCalendarUtility com.cisag.pgm.appserver.CisContext |
Besonderheiten | – |
3.6.3 Zeitstempel
Ein Zeitstempel (technisch „TimeStamp“) ist ein Wert, der einen Punkt auf der UTC-Zeitachse definiert. Die Genauigkeit eines Zeitstempels ist immer Millisekunde. Der Wert eines Zeitstempels ist absolut und von der Zeitzone unabhängig und wird technisch als long-Wert innerhalb einer Instanz der Java-Klasse java.util.Date repräsentiert. Die Aufbereitung eines Zeitstempels als menschenlesbarer Text erfordert immer eine Zeitzone. Der gleiche Zeitstempel hat abhängig von der Zeitzone, die für die Aufbereitung verwendet wird, eine andere Text-Darstellung. Bei der Aufbereitung sind auch Sommer- und Winterzeit zu berücksichtigen. Sie führen unter anderem dazu, dass nicht jeder Wert in jeder Zeitzone darstellbar oder eindeutig ist.
Alle Zeitstempel auf der Oberfläche (z. B. die Zeit in der Statuszeile) werden bzgl. der Zeitzone des aktiven Kontexts aufbereitet. Die Zeitzone für Zeitstempel wird nur ein Mal in der Statuszeile angezeigt. Ändert sich die Zeitzone durch den Wechsel der Organisation, so werden die Darstellungen aller Zeitstempel aktualisiert. Bei Anwendungen erfolgt dies standardmäßig mit dem Aufruf der Methode taskSwitch() durch das System und das damit verbundene erneute Setzen der Werte in den Feldern. Möchte eine Anwendung selbst auf das Umschalten der Organisation reagieren, um beispielsweise eine Sicherheitsabfrage anzuzeigen, dann kann sie eine eigene Action für dieses Ereignis setzen. In diesem Fall wird taskSwitch() nicht automatisch aufgerufen und die Anwendung muss die Feldinhalte vor und nach dem Anzeigen des Dialog-Fensters die Felder selbst aktualisieren.
Im Wertebereich des Zeitstempels bestehen folgende symbolische Werte und Intervalle:
- UNDEFINED_TIME_STAMP
Dieser Wert repräsentiert den nicht angegeben Zeitstempel.
- MIN_TIME_STAMP
Dieser Wert repräsentiert minus unendlich, d. h. den Zeitstempel, der kleiner ist als alle anderen angegebenen Zeitstempel. Auf der Datenbank wird er gespeichert als „31.12.0001 23:02:00.000 GMT“.
- MAX_TIME_STAMP
Dieser Wert repräsentiert plus unendlich, d. h. den Zeitstempel, der größer ist als alle anderen angegebenen Zeitstempel. Auf der Datenbank wird er gespeichert als „31.12.4712 00:00:00.000 GMT“.
Daneben bestehen folgende Werte, die nicht direkt von Anwendungen erzeugt oder auf die zugegriffen werden. Sie werden bei der Umrechnung einer Eingabe bzw. bei der Ausgabe der oben genannten symbolischen Werte verwendet.
Hinweis:
Die nachfolgend aufgeführten Werte dürfen nicht persistent gemacht werden. Die zugehörigen Prüfklassen müssen verhindern, dass diese Werte innerhalb einer Transaktion gespeichert werden.
- MIN_TIME_STAMP_LIMIT
Alle Werte kleiner als dieser Wert werden als MIN_TIME_STAMP interpretiert. Aktuell „01.01.1800 00:00:00.000 GMT“.
- MAX_TIME_STAMP_LIMIT
Alle Werte größer gleich diesem Wert werden als MAX_TIME_STAMP interpretiert. Aktuell „01.01.4000 00:00:00.000 GMT“.
- MIN_TIME_STAMP_EXTERNAL
Dies ist der Wert für die menschenlesbare Darstellung von MIN_TIME_STAMP. Aktuell „01.01.1000 00:00:00.000 GMT“.
- MAX_TIME_STAMP_EXTERNAL
Dies ist der Wert für die menschenlesbare Darstellung von MAX_TIME_STAMP. Aktuell „31.12.9999 00:00:00.000 GMT“.
- Ungültige Zeitstempel
Falsche Benutzereingabe für ungültige Zeitstempel führen zu ungültigen GUIDs, ähnlich wie bei EntityFields. Diese werden verwendet, um in entsprechend typisierten Variablen die Werte bis zur Prüfung zwischenzuspeichern.
Gültige Werte für Zeitstempel.
Rechenoperationen auf Zeitstempeln müssen die symbolischen Werte beachten. Beispielsweise ergibt „MIN_TIME_STAMP + 1 s = MIN_TIME_STAMP“.
Hinweis:
Der Wert „null“ ist kein gültiger Zeitstempel. Der leere Zeitstempel ist UNDEFINED_TIME_STAMP. Die Verwendung von „null“ als Wert für einen Zeitstempel ist ein Programmierfehler.
Hinweis:
in Crystal Reports und im ODBC-Treiber weicht der Wertebereich für Zeitstempel von den hier dagestellten Werten ab.
Alle Angaben von Gültigkeiten, z. B. bei der Zeitabhängigkeit von Business Objects im Persistenzdienst, sind im Allgemeinen Zeitstempel.
Java-Typ | java.util.Date | |
Primitiver Typ | Zeitstempel | |
Logischer Datentyp | com.cisag.pgm.datatype.TimeStamp com.cisag.pgm.datatype.ValidFrom com.cisag.pgm.datatype.ValidUntil |
|
Datentyp für Abfragen | com.cisag.pgm.-datatype.CisDateSelection | |
GUI-Feld | com.cisag.pgm.gui.TimeStampField | |
GUI-Feld für Abfragen | com.cisag.pgm.gui.CisDateSelectionField | |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isTimeStampDefined · isTimeStampValid · isTimeIntervalDefined · isTimeIntervalValid |
|
Hilfsklassen | com.cisag.pgm.datatype.CisTimeStampUtility com.cisag.pgm.datatype.CisDateFormat com.cisag.pgm.datatype.CisDateInfo com.cisag.pgm.datatype.CisDateParseResult |
|
Null-Werte | Der Wert null ist kein gültiger Wert und wird vom Persistenzdienst als UNDEFINED_TIME_STAMP gespeichert und zurückgegeben. | |
Besonderheiten | – |
3.6.4 Lokaler Zeitstempel
An allen Stellen, an denen eine Zeitangabe unabhängig vom Kontext gleich aufbereitet werden soll (lokale Zeitangabe), muss außer dem eigentlichen Zeitstempel auch noch die Zeitzone gespeichert werden. Dies ist die Zeitzone bezüglich derer der Wert aufbereitet wird. Bei der Eingabe wird immer diese Zeitzone verwendet, um die Eingabe zu „parsen“. Die Zeitzone des aktuell aktiven Kalenders hat, anders als bei Zeitstempeln, keinen Einfluss auf den Wert einer lokalen Zeitangabe. Einzig die Anzeige der Zeitzone entfällt, wenn bei der Ausgabe einer lokalen Zeitangabe ihre Zeitzone mit der Zeitzone des aktuell aktiven Kalenders übereinstimmt.
Zur Laufzeit werden lokale Zeitangaben als Objekte vom komplexen Typ „CisDate“ repräsentiert. Ein „CisDate“ besteht aus einem Zeitstempel und einer Referenz auf eine Zeitzone. Für die Speicherung der Zeitzone von lokalen Zeitangaben bestehen zwei Möglichkeiten. Entweder besitzt ein Attribut vom Typ „CisDate“ eine eigene Spalte für die Speicherung der Zeitzone oder das Business Object stellt eine gemeinsame Zeitzone für seine Attribute zur Verfügung. Ein Business Object kann auch beide Arten von lokalen Zeitangaben gleichzeitig enthalten. Die Verwendung einer gemeinsamen Zeitzone für eine Teilmenge der Attribute reduziert die Anzahl der in der Datenbank benötigten Spalten.
Bespiel:
- _timeZoneGuid: Generiertes Attribut
- attributeDate: CisAttributeDate
- date: TimeStamp
- timeZoneGuid: GUID
- objectDate1: CisObjectDate
- date: TimeStamp
- objectDate2: CisObjectDate
- date: TimeStamp
Der Zugriff auf die Attribute liefert in allen drei Fällen ein „CisDate“. Hierbei verwenden die Attribute „objectDate1“ und „objectDate2“ die gleiche Zeitzone. Diese wird im Attribut „timeZoneGuid“ abgelegt und ist nach dem ersten Speichern des Business Objects unveränderbar. Bei transienten Business Objects wird beim Setzen eines „CisDate“ in eines dieser Attribute auch die Zeitzone des Business Objects gesetzt.
Die Behandlung von lokalen Datumsangaben unterscheidet sich technisch nicht von der Behandlung lokaler Zeitstempel. Jedoch werden Datumsangaben bei der Ein- und Ausgabe besonders behandelt.
- Bei der Ausgabe wird der Tageszeit-Anteil nicht visualisiert
- Bei der Eingabe wird der Tageszeit-Anteil als „00:00“ angenommen
Bei Datumsangaben, die einen „Bis-Zeitpunkt“ repräsentieren, wird zudem die Ein- und Ausgabe um einen Kalendertag verschoben durchgeführt. Die Eingabe „31.12.2003“ bei einem „Bis-Datum“ wird als „01.01.2004 00:00:00.000“ gespeichert. Hierdurch wird erreicht, dass die Angabe „01.01…-31.12…“ tatsächlich einem ganzen Jahr inklusive dem letzten Tag entspricht.
Hinweis:
Sowohl lokale Zeitstempel als auch lokale Datumsangaben werden als Instanzen von „CisDate“ interpretiert. Nur im Zusammenhang mit einem logischen Datentyp kann entschieden werden, wie die Ein- bzw. Ausgabe erfolgen muss.
Java-Typ | com.cisag.pgm.datatype.CisDate |
Primitiver Typ | Komplex |
Logischer Datentyp | com.cisag.pgm.datatype.CisAttributeTimeStamp
com.cisag.pgm.datatype.CisObjectTimeStamp |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.CisDateField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.CisDateSelectionField |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isCisDateDefined · isCisDateValid |
Hilfsklassen | com.cisag.pgm.datatype.CisDateUtility com.cisag.pgm.datatype.CisDateFormat com.cisag.pgm.datatype.CisDateInfo com.cisag.pgm.datatype.CisDateParseResult |
Besonderheiten | – |
3.6.5 Lokales Datum
Die Behandlung von lokalen Datumsangaben unterscheidet sich technisch nicht von der Behandlung von lokalen Zeitstempeln. Jedoch werden Datumsangaben bei der Ein- und Ausgabe besonders behandelt.
- Bei der Ausgabe wird der Tageszeit-Anteil nicht visualisiert
- Bei der Eingabe wird der Tageszeit-Anteil als „00:00“ angenommen
Java-Typ | com.cisag.pgm.datatype.CisDate |
Primitiver Typ | Komplex |
Logischer Datentyp | com.cisag.pgm.datatype.CisAttributeDate com.cisag.pgm.datatype.CisObjectDate |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.CisDateField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.CisDateSelectionField |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isCisDateDefined · isCisDateValid |
Hilfsklassen | com.cisag.pgm.datatype.CisDateUtility com.cisag.pgm.datatype.CisDateFormat com.cisag.pgm.datatype.CisDateInfo com.cisag.pgm.datatype.CisDateParseResult |
Besonderheiten | – |
3.6.6 Lokales Bis-Datum
Bei Datumsangaben, die einen „Bis-Zeitpunkt“ repräsentieren, wird zudem die Ein- und Ausgabe um einen Kalendertag verschoben durchgeführt. Die Eingabe „31.12.2003“ bei einem „Bis-Datum“ wird als „01.01.2004 00:00:00.000“ gespeichert. Hierdurch wird erreicht, dass die Angabe „01.01…-31.12…“ tatsächlich einem ganzen Jahr inklusive dem letzten Tag entspricht.
Java-Typ | com.cisag.pgm.datatype.CisDate |
Primitiver Typ | Komplex |
Logischer Datentyp | com.cisag.pgm.datatype.CisAttributeDateUntil
com.cisag.pgm.datatype.CisObjectDateUntil |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.CisDateField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.CisDateSelectionField |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isCisDateDefined · isCisDateValid |
Hilfsklassen | com.cisag.pgm.datatype.CisDateUtility com.cisag.pgm.datatype.CisDateFormat com.cisag.pgm.datatype.CisDateInfo com.cisag.pgm.datatype.CisDateParseResult com.cisag.pgm.gui.ValidFromUntilSupport |
Besonderheiten | – |
3.6.7 Lokales Gültig-Ab-Datum
Java-Typ | java.util.Date |
Primitiver Typ | Zeitstempel |
Logischer Datentyp | com.cisag.pgm.datatype.CisObjectDateFrom com.cisag.pgm.datatype.CisObjectDateValidFrom |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.TimeStampField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.CisDateSelectionField |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isTimeStampDefined · isTimeStampValid · isTimeIntervalDefined · isTimeIntervalValid |
Hilfsklassen | com.cisag.pgm.datatype.CisTimeStampUtility com.cisag.pgm.datatype.CisDateFormat com.cisag.pgm.datatype.CisDateInfo com.cisag.pgm.datatype.CisDateParseResult com.cisag.pgm.gui.ValidFromUntilSupport |
Besonderheiten | – |
3.6.8 Lokaler Gültig-Ab-Zeitstempel
Java-Typ | java.util.Date |
Primitiver Typ | Zeitstempel |
Logischer Datentyp | com.cisag.pgm.datatype.CisObjectTimeStampFrom
com.cisag.pgm.datatype.CisObjectTimeStampValidFrom |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.TimeStampField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.CisDateSelectionField |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isTimeStampDefined · isTimeStampValid · isTimeIntervalDefined · isTimeIntervalValid |
Hilfsklassen | com.cisag.pgm.datatype.CisTimeStampUtility com.cisag.pgm.datatype.CisDateFormat com.cisag.pgm.datatype.CisDateInfo com.cisag.pgm.datatype.CisDateParseResult com.cisag.pgm.gui.ValidFromUntilSupport |
Besonderheiten | – |
3.6.9 Lokales Gültig-Bis-Datum
Java-Typ | java.util.Date |
Primitiver Typ | Zeitstempel |
Logischer Datentyp | com.cisag.pgm.datatype.CisObjectDateValidUntil |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.TimeStampField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.CisDateSelectionField |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isTimeStampDefined · isTimeStampValid · isTimeIntervalDefined · isTimeIntervalValid |
Hilfsklassen | com.cisag.pgm.datatype.CisTimeStampUtility com.cisag.pgm.datatype.CisDateFormat com.cisag.pgm.datatype.CisDateInfo com.cisag.pgm.datatype.CisDateParseResult com.cisag.pgm.gui.ValidFromUntilSupport |
Besonderheiten | – |
3.6.10 Lokaler Gültig-Bis-Zeitstempel
Java-Typ | java.util.Date |
Primitiver Typ | Zeitstempel |
Logischer Datentyp | com.cisag.pgm.datatype.CisObjectTimeStampValidUntil |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.TimeStampField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.CisDateSelectionField |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isTimeStampDefined · isTimeStampValid · isTimeIntervalDefined · isTimeIntervalValid |
Hilfsklassen | com.cisag.pgm.datatype.CisTimeStampUtility com.cisag.pgm.datatype.CisDateFormat com.cisag.pgm.datatype.CisDateInfo com.cisag.pgm.datatype.CisDateParseResult com.cisag.pgm.gui.ValidFromUntilSupport |
Besonderheiten | – |
3.6.11 Tageszeit
Eine Tageszeit (technisch „TimeOfDay“) ist ein Spezialfall eines lokalen Zeitstempels. Hierbei ist die Zeitzone auf „GMT“ festgelegt und nur der Zeitanteil des Zeitstempels am 1.1.1970 wird betrachtet. Dadurch dass die Zeitzone festgelegt ist, entfällt die Notwendigkeit sie zu speichern. Die Angabe „00:00“ wird somit als „01.01.1970 00:00 GMT“ verwaltet und gespeichert. In Java entspricht somit „00:00“ dem Wert „new Date(0)“ und „23:59.59.999“ dem Wert „new Date(86399999)“.
Java-Typ | java.util.Date |
Primitiver Typ | Zeitstempel |
Logischer Datentyp | com.cisag.pgm.datatype.TimeOfDay |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.TimeOfDayField |
GUI-Feld für Abfragen | – |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isTimeOfDayDefined · isTimeOfDayValid |
Hilfsklassen | com.cisag.pgm.datatype.CisTimeOfDayUtility |
Besonderheiten | – |
3.6.12 Technische Dauer
Eine technische Dauer (technisch „Duration“) ist eine Anzahl Millisekunden oder Nanosekunden. Beispiele hierfür sind die Laufzeit eines Application-Servers oder eines Verarbeitungsauftrages oder auch die Angabe eines Timeouts. Die Darstellung einer technischen Dauer erfolgt unabgängig von einem Kalender als „w Wochen t Tage h Stunden m Minuten s Sekunden mm Millisekunden“. Zusätzlich existiert eine kurze Darstellung und das Weglassen von „0“-Bestandteilen am Ende.
Java-Typ | long |
Primitiver Typ | Long |
Logischer Datentyp | com.cisag.pgm.datatype.Duration com.cisag.pgm.datatype.NanoDuration |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.DurationField |
GUI-Feld für Abfragen | – |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isDurationDefined · isDurationValid · isDurationAtLeast |
Hilfsklassen | com.cisag.pgm.datatype.CisDurationUtility |
Besonderheiten | Um die technische Dauer zu verwenden, ist eine Ableitung der angegebenen logischen Datentypen zwingend Voraussetzung. |
3.6.13 Fachliche Dauer
Die fachliche Dauer speichert im Gegensatz zur technischen Dauer keine exakten, sondern einen symbolischen Wert, z. B. „1 Quartal“.
Java-Typ | com.cisag.app.general.Duration |
Primitiver Typ | Komplex |
Logischer Datentyp | com.cisag.app.general.Duration |
Datentyp für Abfragen | com.cisag.pgm.datatype.CisQuantitySelection |
GUI-Feld | com.cisag.app.general.gui.DurationField |
GUI-Feld für Abfragen | com.cisag.app.general.gui.DurationSelectionField |
Prüfungen | com.cisag.app.general.log.DurationValidation |
Hilfsklassen | com.cisag.app.general.log.DurationLogic |
Besonderheiten | – |
3.6.14 Zeitintervall (zwei Zeitstempel)
Ein Zeitintervall (technisch „TimeInterval“) ist ein nach oben offenes Intervall von Zeitstempeln „[from, until)“. Abhängig von der konkreten Anforderung werden beide Grenzen oder nur eine der beiden Grenzen gespeichert. Hierbei werde im Datenmodell entsprechende Einzel-Felder vom Typ Zeitstempel verwendet werden, da auf diesen Indizes definiert werden können.
Java-Typ | com.cisag.pgm.datatype.CisTimeInterval |
Primitiver Typ | Komplex |
Logischer Datentyp | com.cisag.pgm.datatype.CisTimeInterval |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.TimeStampField |
GUI-Feld für Abfragen | – |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isTimeIntervalDefined · isTimeIntervalValid |
Hilfsklassen | com.cisag.pgm.datatype.CisTimeIntervalUtility |
Besonderheiten | – |
3.6.15 Symbolisches Intervall
Ein symbolisches Intervall (technisch „SymbolicInterval“) beschreibt eine Regel für eine Menge von wiederkehrenden Zeitpunkten, z. B. „Jeden 1. Tag im Monat um 01:00“. Zusammen mit einem Kalender, einem Startzeitpunkt und einer Anzahl kann hieraus die Sequenz der nächsten Zeitstempel berechnet werden, die der Regel genügen.
Java-Typ | com.cisag.pgm.datatype.CisSymbolicInterval |
Primitiver Typ | Komplex |
Logischer Datentyp | com.cisag.pgm.datatype.CisSymbolicInterval |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.SymbolicIntervalField |
GUI-Feld für Abfragen | – |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isSymbolicIntervalDefined · isSymbolicIntervalValid |
Hilfsklassen | com.cisag.pgm.datatype.CisSymbolicIntervalUtility |
Besonderheiten | – |
3.6.16 Termin
Ein Termin (technisch „PointInTime“) ist eine Zeitspanne, deren Beginn mit einer vordefinierten Genauigkeit (Jahr, Quartal, Monat, Kalenderwoche, Tag) und einem vordefinierten Kalender festgelegt wird.
Beispiele:
Kalenderwoche – „24/2004“, Tag – „01.02.2004“
Zusätzlich enthält der Termin einen Offset, z. B. „+3 Tage“, „-1 Kalenderwoche“. Dieses Offset stellt eine Terminverschiebung dar und wird verwendet, um einen Zeitstempel zu berechnen, der die Grundlage für die Suche nach Terminen und die Sortierung von Terminen darstellt.
Java-Typ | com.cisag.pgm.datatype.CisPointInTime |
Primitiver Typ | Komplex |
Logischer Datentyp | – |
Datentyp für Abfragen | – |
GUI-Feld | com.cisag.pgm.gui.CisPointInTimeField |
GUI-Feld für Abfragen | com.cisag.pgm.gui.CisDateSelectionField |
Prüfungen | com.cisag.pgm.util.RepositoryValidation
· isPointInTimeDefined · isPointInTimeValid |
Hilfsklassen | com.cisag.pgm.datatype.CisPointInTimeUtility |
Besonderheiten | Bei einer Abfrage wird nur über das Zeitstempelattribut gesucht und sortiert. Es repräsentiert den gesamten Wert in einer mit anderen Zeitstempeln vergleichbaren Form. |
3.7 Rechnungswesen
In den Business Objects des Rechnungswesen-Servers werden keine besonderen Datentypen verwendet. Auf die zugehörigen Business Objects im Namensraum „com.varag.app.database.obj“ bieten der Persistenzdienst, die OQL-Suchen und der ODBC-Treiber lesenden Zugriff. Da keine schreibenden Zugriffe erlaubt sind, existieren auch keine Prüf- oder Hilfsklassen.
3.7.1 Rechnungswesen-Boolean
Java-Typ | char |
Primitiver Typ | char |
Logischer Datentyp | com.cisag.pgm.datatype.VarialBoolean |
Datentyp für Abfragen | – |
GUI-Feld | – |
GUI-Feld für Abfragen | – |
Prüfungen | – |
Hilfsklassen | – |
Besonderheiten | Der Wert „true“ wird als „T“, der Wert „false“ als „F“ gespeichert. |
3.7.2 Rechnungswesen-Valueset
Java-Typ | java.lang.Integer |
Primitiver Typ | Decimal(2,0) |
Logischer Datentyp | com.cisag.pgm.datatype.VarialValueSet |
Datentyp für Abfragen | – |
GUI-Feld | – |
GUI-Feld für Abfragen | – |
Prüfungen | – |
Hilfsklassen | – |
Besonderheiten | Nur interne Verwendung. |
3.7.3 Rechnungswesen-Objekt-Identifikation
Java-Typ | byte[] |
Primitiver Typ | Decimal(18,0) |
Logischer Datentyp | com.cisag.pgm.datatype.VarialObjectID |
Datentyp für Abfragen | – |
GUI-Feld | – |
GUI-Feld für Abfragen | – |
Prüfungen | – |
Hilfsklassen | – |
Besonderheiten | Nur interne Verwendung. |
3.7.4 Rechnungswesen-Datum
Java-Typ | java.util.Date |
Primitiver Typ | SQL-Date |
Logischer Datentyp | com.cisag.pgm.datatype.VarialDate |
Datentyp für Abfragen | – |
GUI-Feld | – |
GUI-Feld für Abfragen | – |
Prüfungen | – |
Hilfsklassen | – |
Besonderheiten | Nur interne Verwendung. |
3.7.5 Rechnungswesen-Zeitstempel
Java-Typ | java.util.Date |
Primitiver Typ | SQL-Date |
Logischer Datentyp | com.cisag.pgm.datatype.VarialTimestamp com.cisag.pgm.datatype.VarialObjectTS |
Datentyp für Abfragen | – |
GUI-Feld | – |
GUI-Feld für Abfragen | – |
Prüfungen | – |
Hilfsklassen | – |
Besonderheiten | Nur interne Verwendung. |