Zeitlinien in CER-Regeln erstellen

Zeitliniendaten werden üblicherweise außerhalb von Regeln durch CER-Clients erstellt und zum Füllen eines CER-Attributs mit dem Mechanismus "specify" verwendet.

CER enthält jedoch auch einige Ausdrücke, mit deren Hilfe Zeitlinien direkt in CER-Regeln erstellt werden können:

Timeline und Interval

Ein Zeitlinie kann nativ in CER-Regeln erstellt werden, indem zunächst explizit eine Liste von Intervallen erstellt und anschließend diese Liste zur Erstellung einer Zeitlinie verwendet wird.

In der Praxis sind solche festgelegten Zeitlinien eher als rein temporäre Maßnahmen geeignet, wenn Sie Ihr Regelwerk ausarbeiten.

Abbildung 1. Beispiel für die Erstellung einer Zeitlinie mit "Timeline" und "Interval"
<?xml version="1.0" encoding="UTF-8"?>
<RuleSet name="Example_Timeline"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation=
"http://www.curamsoftware.com/CreoleRulesSchema.xsd">

  <Class name="CreateTimelines">

    <!-- This example uses <initialvalue> to set the value valid
         from the start of time. -->
    <Attribute name="aNumberTimeline">
      <type>
        <javaclass name="curam.creole.value.Timeline">
          <javaclass name="Number"/>
        </javaclass>
      </type>
      <derivation>
        <Timeline>
          <intervaltype>
            <javaclass name="Number"/>
          </intervaltype>
          <!-- Value from start of time -->
          <initialvalue>
            <Number value="0"/>
          </initialvalue>
          <!-- The remaining intervals -->
          <intervals>
            <fixedlist>
              <listof>
                <javaclass name="curam.creole.value.Interval">
                  <javaclass name="Number"/>
                </javaclass>
              </listof>
              <members>
                <Interval>
                  <intervaltype>
                    <javaclass name="Number"/>
                  </intervaltype>
                  <start>
                    <Date value="2001-01-01"/>
                  </start>
                  <value>
                    <Number value="10000"/>
                  </value>
                </Interval>
                <Interval>
                  <intervaltype>
                    <javaclass name="Number"/>
                  </intervaltype>
                  <start>
                    <Date value="2004-12-01"/>
                  </start>
                  <value>
                    <Number value="12000"/>
                  </value>
                </Interval>

              </members>
            </fixedlist>

          </intervals>
        </Timeline>

      </derivation>
    </Attribute>


    <!-- This example does not use <initialvalue>. -->
    <Attribute name="aStringTimeline">
      <type>
        <javaclass name="curam.creole.value.Timeline">
          <javaclass name="String"/>
        </javaclass>
      </type>
      <derivation>
        <Timeline>
          <intervaltype>
            <javaclass name="String"/>
          </intervaltype>

          <!-- The list of intervals must include one valid from the
             null date (start of time), otherwise an error will
             occur at runtime, if this expression is evaluated. -->
          <intervals>
            <fixedlist>
              <listof>
                <javaclass name="curam.creole.value.Interval">
                  <javaclass name="String"/>
                </javaclass>
              </listof>
              <members>
                <Interval>
                  <intervaltype>
                    <javaclass name="String"/>
                  </intervaltype>
                  <start>
                    <!-- "from the start of time" -->
                    <null/>
                  </start>
                  <value>
                    <String value="Start of time string"/>
                  </value>
                </Interval>
                <Interval>
                  <intervaltype>
                    <javaclass name="String"/>
                  </intervaltype>
                  <start>
                    <Date value="2001-01-01"/>
                  </start>
                  <value>
                    <String value="2001-only String"/>
                  </value>
                </Interval>
                <Interval>
                  <intervaltype>
                    <javaclass name="String"/>
                  </intervaltype>
                  <start>
                    <Date value="2002-01-01"/>
                  </start>
                  <value>
                    <String value="2002-onwards String"/>
                  </value>
                </Interval>
              </members>
            </fixedlist>
          </intervals>
        </Timeline>
      </derivation>
    </Attribute>
  </Class>
</RuleSet>

existencetimeline

Einige Geschäftsobjekte besitzen ein natürliches Start- und Enddatum, die zusammen einen Zeitraum für die Existenz des Geschäftsobjekts angeben. Das Startdatum und/oder das Enddatum kann optional sein. In diesen Fällen ist für den Existenzzeitraums des Geschäftsobjekts kein Ende definiert.

Beispiele:

Das Startdatum und das Enddatum für ein Geschäftsobjekt können verwendet werden, um die Zeit in die folgenden drei Perioden (oder weniger, falls entweder kein Startdatum oder kein Enddatum angegeben ist) zu unterteilen:

Häufig ist es möglich, einem Geschäftsobjekt für jeden dieser Zeiträume einen anderen Wert zuzuschreiben und aus diesen Werten eine Zeitlinie zu erstellen. CER enthält einen Ausdruck existencetimeline, um auf der Grundlage von optionalen Start- und Enddatumsangaben eine Zeitlinie für Werte vor der Existenz, während der Existenz und nach der Existenz zu erstellen.

Falls das Startdatum nicht vorhanden ist, enthält die Zeitlinie kein Intervall für die Zeit vor der Existenz. Wurde für einen Gegenstand beispielsweise kein Kaufdatum eingetragen, gilt sein effektiver Wert vom Beginn der Zeit an ohne einen Zeitraum mit "Nullwert".

Ist das Enddatum nicht vorhanden, enthält die Zeitlinie kein Intervall für die Zeit nach der Existenz. Falls beispielsweise für einen Gegenstand kein Verkaufsdatum bekannt ist, bleibt der Wert des Gegenstandes bis zu einer anderslautenden Mitteilung (also beliebig weit in die Zukunft hinein) erhalten.

Details über die Verwendung von Zeitlinien im CER-Editor enhält der Abschnitt Existenzzeitlinie.