CER 규칙으로 타임라인 구성

일반적으로 타임라인은 CER의 클라이언트가 규칙 외부에서 작성하며 지정 메커니즘을 사용하여 CER 속성의 값을 채우는 데 사용합니다.

그러나 CER에는 CER 규칙에서 직접 타임라인을 작성하는 다음과 같은 표현식도 포함되어 있습니다.

타임라인 및 간격

타임라인은 우선 간격 목록을 명시적으로 작성한 다음 타임라인을 작성하는 데 이 목록을 사용하여 CER 규칙에서 고유하게 작성할 수 있습니다.

실제로 이러한 고정 타임라인은 사용자가 규칙 세트를 구체화하는 동안 임시 척도로만 사용할 수 있습니다.

그림 1. 타임라인과 간격을 사용하여 타임라인을 작성하는 예제
<?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">

    <!-- 이 예에서는 <initialvalue>를 사용하여 시작 시간으로부터
         유효한 값을 설정합니다. -->
    <Attribute name="aNumberTimeline">
      <type>
        <javaclass name="curam.creole.value.Timeline">
          <javaclass name="Number"/>
        </javaclass>
      </type>
      <derivation>
        <Timeline>
          <intervaltype>
            <javaclass name="Number"/>
          </intervaltype>
          <!-- 시작 시간의 값 -->
          <initialvalue>
            <Number value="0"/>
          </initialvalue>
          <!-- 나머지 간격 -->
          <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>


    <!-- 이 예는 <initialvalue>를 사용하지 않습니다. -->
    <Attribute name="aStringTimeline">
      <type>
        <javaclass name="curam.creole.value.Timeline">
          <javaclass name="String"/>
        </javaclass>
      </type>
      <derivation>
        <Timeline>
          <intervaltype>
            <javaclass name="String"/>
          </intervaltype>

          <!-- 간격 목록에는 null 날짜(시작 시간)로부터 유효한
             한 날짜가 포함되어야 합니다. 그렇지 않으면 이 표현식을 평가하는 경우
             런타임 시 오류가 발생합니다. -->
          <intervals>
            <fixedlist>
              <listof>
                <javaclass name="curam.creole.value.Interval">
                  <javaclass name="String"/>
                </javaclass>
              </listof>
              <members>
                <Interval>
                  <intervaltype>
                    <javaclass name="String"/>
                  </intervaltype>
                  <start>
                    <!-- "시작 시간으로부터" -->
                    <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

일부 비즈니스 오브젝트에는 자연스럽게 발생하는 시작 날짜 및 종료 날짜가 있으며 이러한 날짜를 함께 사용하여 비즈니스 오브젝트의 존재 기간이 지정됩니다. 시작 날짜 및 종료 날짜 중 하나 또는 둘 모두가 선택사항이 될 수 있습니다. 이 경우 비즈니스 오브젝트의 존재 기간은 조정이 가능하게 됩니다.

예에는 다음이 포함될 수 있습니다.

비즈니스 오브젝트의 시작 및 종료 날짜는 시간을 다음 세 가지 기간(시작 날짜나 종료 날짜가 공백인 경우 보다 적은 수)으로 구분하는 데 사용할 수 있습니다.

비즈니스 오브젝트의 각 기간에 서로 다른 값을 할당하고 이러한 값에서 타임라인을 작성하면 편리한 경우가 종종 있습니다. CER에는 선택적인 시작 날짜와 종료 날짜에 따른 존재 전/존재/존재 후 값으로 구성된 타임라인을 작성하는 existencetimeline 표현식이 포함되어 있습니다.

시작 날짜가 없는 경우 타임라인에 존재 전 간격이 없습니다. 예를 들어, 자산에 구매 날짜가 기록되지 않은 경우 실효값은 기간이 "0 값"인 시작 시간부터 적용됩니다.

종료 날짜가 없는 경우 타임라인에 존재 후 간격이 없습니다. 예를 들어, 자산에 판매 날짜가 없으면 추후에 통보될 때까지(즉, 임의로 먼 미래에) 자산의 가치가 보유됩니다.

CER 편집기에서 존재 타임라인을 사용하는 방법에 대한 세부사항은 존재 타임라인의 내용을 참조하십시오.