変数の型
システム・ツールキットは Business Automation Studio で提供されているため、作成する各 ワークフロー自動化 およびツールキットは、共通のシステム・データにアクセスできます。 システム・ツールキットには、以下の変数のカテゴリーが用意されています。
- 基本タイプ
- 基本タイプでは、ビジネス・オブジェクトというカスタム変数型を作成できます。 すべての基本タイプのリストについては、以下の表を参照してください。
- システム型
- システム・タイプは、変更できない組み込みの変数タイプです。 すべてのシステム・タイプのリストについては、 プロセスおよびサービス・フローにおけるJavaScript APIを参照してください。
基本タイプ | 説明 |
---|---|
String |
変数に英数字を入力できます。 |
Integer |
小数位がなく、範囲が -2147483648 から 2147483647 までの数字 (45 、20 など) を入力できます。 |
Decimal |
IEEE 754 倍精度の小数位がある数字 (45.3 、20.13 など) を入力できます。 |
Date |
変数に日時の形式を入力できます。 |
Time |
変数に時刻として日付形式を入力できます。 ユーザーが時刻を入力すると、その変数がシンボル・テーブルに入力される前に日付に変換されます。 |
Selection |
ユーザーが使用できる項目のリストを指定できます。ユーザーが選択できる項目は 1 つのみです。 選択項目は異なる値のリストであり、各値はストリングです。 Selection 変数は、実行時に Coach フォーム上にリストまたはラジオ・ボタンとして表示されます。 |
Boolean |
値には true または false を指定できます。 ブール値は、実行時に Coach フォーム上にチェック・ボックスとして表示されます。 |
Structure |
Structure 型を使用する場合は、カスタム Structure 型を作成し、そのプロパティーを定義する必要があります。 構造は、同じサブジェクトに関連するビジネス・データを再グループ化します。 例えば、Customer 構造に、lastName 、firstName 、homeNumber 、streetAddress などのエレメントを入れる場合があります。 |
カスタム変数タイプ
カスタム変数型は、ビジネス・オブジェクトを使用して定義されます。 システム・ツールキットで提供されている定義済みのビジネス・オブジェクトでニーズが満たされない場合は、独自のビジネス・オブジェクトを作成できます。 システムデータツールキットで提供されている一般的なビジネスオブジェクトの詳細については、「システムデータツールキット」 を参照してください。
- カスタム変数型の検証
- 単純型定義を使用するカスタム変数型の検証設定を定義できます。 これらの検証ルールは、以下の状況で検査されます。
- 例えば、スクリプトが tw.local 変数に値を割り当てる場合や、サービス結果が tw.local 変数にマップされる出力マッピングの場合など、そのようなタイプのプロセスまたはサービスの変数に値を割り当てると、値の妥当性検査が行われます。
- 整数カスタム変数型および 10 進数カスタム変数型の検証
- 整数および 10 進数のビジネス・オブジェクト定義の場合、最小値と最大値を定義して範囲を指定できます。 例えば、最小値に 0、最大値に 100 を指定 (最小値と最大値の両端の値を含む) した場合、負の値にも 100% を超える値にもできないパーセンテージをユーザーが指定する変数に使用可能な型が生成されます。
精度とスケールを指定することにより、10 進数および小数点以下の桁数を制限できます。
検証設定をサーバー構成のビジネス・オブジェクト構成にどのように解釈させる必要があるかを指定します。
表 2. 精度およびスケールの検証のプロパティー プロパティ- タイプ デフォルト値 説明 precision-validation-on-server-enabled
ブール いいえ 変数が設定されている場合に精度設定の検証を有効にするために使用します。
precision-validation-strip-trailing-zeros
ブール いいえ 精度が検証される前に、小数点の後の後続ゼロを削除するために使用します。
precision-validation-type
enum (equals、lessOrEquals) 等しい このプロパティーが
equal
に設定されている場合、変数値の精度は、変数タイプで指定されている精度と等しくなければなりません。 このプロパティーがlessOrEquals
に設定されている場合、変数値の精度は、変数型に指定された値以下でなければなりません。scale-validation-strip-trailing-zeros
ブール いいえ スケールが検証される前に、小数点の後の後続ゼロを削除するために使用します。
scale-validation-type
enum (equals、lessOrEquals) 等しい このプロパティーが
equals
に設定されている場合、変数値のスケールは、変数型に指定された値と等しくなければなりません。 このプロパティーがlessOrEquals
に設定されている場合、値のスケールは、変数型に指定された値以下でなければなりません。
precision-validation-on-server-enabled
プロパティーを true
に設定したが、他のすべての設定はデフォルトのままにした場合、以下の値が有効になります。- 123.45
- 1234.56 (精度が正しくありません。5 ではなく 6 を指定します)
- 12.34 (精度が正しくありません。5 ではなく 4 を指定します)
- 12.345 (スケールが正しくありません。2 ではなく 3 を指定します)
- 1234.1 (スケールが正しくありません。2 ではなく 1 を指定します)
以下の JavaScript 式も検証エラーが発生します。これは、JavaScript が実行時に後続ゼロを削除するのが、値を割り当てる前であるためです。
tw.local.variable = 123.40
以下の JavaScript 式は検証エラーが発生しません。これは、ストリングが正常に検証されてから、変数値を設定するための値に自動的に変換されるためです。
tw.local.variable = "123.40"
totalDigits
および fractionDigits
) として使用するには、以下の表に示すように構成フラグを設定する必要があります。この属性 | タイプ |
---|---|
precision-validation-on-server-enabled |
はい |
precision-validation-strip-trailing-zeros |
はい |
precision-validation-type |
lessOrEquals |
scale-validation-strip-trailing-zeros |
はい |
scale-validation-type |
lessOrEquals |
- 123.45
- 12.34
- 123.4
- 123
- 1234.56 (精度が正しくありません。最大値に 5 ではなく 6 を指定します)
- 12.345 (スケールが正しくありません。最大値に 2 ではなく 3 を指定します)
スクリプトの数値計算
JavaScript を使用して、プロセスまたはサービス・ステップ内でプログラムを作成できます。 倍精度は、変数の数値を保管するために使用されます。
スクリプトで計算を実行する際は、この精度に関係する可能性がある制限に注意してください。 例えば、1000.06 と 0.01 を加算する場合、数学的に正しい結果は 1000.07 です。 一方で、JavaScript で数値を加算する場合、結果は 1000.0699999999999 になります。
数学的に正しい計算を必要とする場合は、これらの計算を JavaScript コード外で実行してください。 例えば、BigDecimal クラスと BigInteger クラスを使用して、Java プログラムで完全な精度で計算を実行できます。 結果を完全な精度でプロセス変数またはサービス変数に格納する必要がある場合は、数値をストリングとしてフォーマット設定し、ご使用の変数でストリング・データ型を使用することができます。
NaN
または Infinity
の値をデータベースに保管することはできません。 そのような変数の値を計算する場合、結果が NaN
または Infinity
ではないことを確認してください。NaN または Infinity である場合、SystemOut.log ファイルにエラーが書き込まれます。