ビジネス・ルールでの日付の計算
ビジネス・ルールで日付を計算できます。
-
ビジネス・ルールには、
Scheduled Ship Date minus 1
などの日付演算を実行する関数が事前定義されていません。 -
データ型およびオブジェクト階層の問題を回避するために、ビジネス・ルールを使用してファクトで日付演算を実行することはできません。 ただし、オーケストレーション・プロセスで日付算術を実行するルールを作成できます。
-
日付属性は、タイムスタンプ・データ型を使用します。
ここでは、If文を使用してfline
を履行明細の別名として設定する例を示します。 予定出荷日の時間を現在の日付と比較し、比較変換にミリ秒を使用します。
If fline.scheduleShipDate.time>=CurrentDate.date.timeInMillis
別の例として、現在の日付の3日後に到着予定日を計算するコードがあります。
If fline.scheduleArivalDate.time>= CurrentDate.date.timeInMillis+3*24*60*60*1000
説明
-
3は日数です。
-
24は1日の時間数です。
-
60は、1時間の分数です。
-
60は、1時間の秒数です。
-
1000は、1秒のミリ秒数です。
オーケストレーション・プロセスの明細選択基準のビジネス・ルールを設定するダイアログを次に示します。
ノート
ルール・パート |
コード |
---|---|
リクエスト到着日が現在の日付の3日より前に発生する場合は、このステップをスキップします。 |
|
処理 |
新規アサート
|
THEN句でこの種類の計算を使用する場合は、ルールで元の値が変更または上書きされないようにしてください。 ルールが結果オブジェクトに移入される前に、計算を保持するために一時属性を割り当てる必要がある場合があります。
一時属性の作成
Timestampオブジェクトを使用して、データ属性へのオフセットを提供するなど、一時属性を作成します。 たとえば、「予定出荷日の3日前」です。 新規割当処理では、属性の新規インスタンスを作成し、別名を指定して初期値を設定します。
オーケストレーション・プロセスのビジネス・ルールのリード・タイム式の例を次に示します。fline
は履行明細オブジェクトを表し、DateTimeは一時属性です。
処理 |
コード |
---|---|
新規割当て |
|
変更 |
|
新規アサート |
|
拡張モードでの日付関数の使用
機能 |
例 |
---|---|
|
|
|
|
|
|
|
|
ノート
-
これらの関数は、Timestampオブジェクトで宣言する一時属性など、Timestampデータ型の属性ごとに使用します。
-
属性を選択した後、関数を手動で入力できます。 式ビルダーを開き、関数タブをクリックして、日付属性の横にあるフォルダを開くこともできます。
-
compareToを除く各関数の形式はtrueまたはfalseで、この形式では引用符は必要ありません。
-
compareToで使用される形式は次のとおりです。
-
-1
。 compareToの左側にあるオブジェクトは、compareToの右側にあるオブジェクトの前に実行されます。 -
0
。 compareToの左側のオブジェクトは、compareToの右側のオブジェクトと同時に実行されます。 -
1。 compareToの左側のオブジェクトは、compareToの右側のオブジェクトの後に発生します。
-