システム エレメントの使い方
グローバル ペイロールでは、累計ドライバを使用して複数変換を行う支給または控除の定義に使用できるシステム エレメントが標準で用意されています。これらのシステム エレメントの中でも最も重要なのは、CURR_DRIVER_VAL です。このシステム エレメントは、エレメントの計算ルールでドライバ累計がベースとして使用されている場合に、ドライバ累計の現在値を返します。
例: CURR_DRIVER_VAL の使い方
ドライバ累計を使用するエレメント (支給または控除) を定義する際に、ドライバ累計に基づいてエレメントを変換する他に、そのドライバ累計を計算ルールでも使用する場合があります。
たとえば、州課税対象総額に基づいて複数回の変換が行われる税控除 D1 を定義するとします。このエレメントは、以下のように定義されます。
州課税対象総額は、ユーザー キー "州" を持つ "State Taxable Gross" という名前の累計に含まれています。
この累計に基づいて、ベース×パーセントの計算ルールが定義されている税控除 D1 の変換が行われます。
パーセントには "州" に基づいて値を返すフォーミュラ、ベースには課税対象総額支給が定義されています。
エレメントの計算ルールを定義する際には、ベースに "State Taxable Gross" 累計を使用せずに、システム エレメント "CURR_DRIVER_VAL" を使用して、ドライバ累計の現在値を取得することができます。
システム エレメントを使用すると、以下のような利点があります。
処理中に、既存のドライバ累計インスタンスの値が変更されて、新しいインスタンスが作成され、ドライバ累計の正しい現在値が変わってしまう場合があります。
このような問題を避けるため、システム エレメント "CURR_DRIVER_VAL" によって既存の累計インスタンスのスナップショット (コピー) が作成されます。このスナップショットは、ドライバ実行対象の支給または控除が変換前にプロセス リストで検出されるたびに作成されるため、正しい現在値を使用してエレメントの変換を行うことが可能になります。
パフォーマンスの観点から見て、累計値が直接アクセスされる場合よりも、計算ルールで CURR_DRIVER_VAL が使用されている場合の方が、支給または控除のドライバ変換が迅速に行われます。
支給または控除の計算ルールでドライバ累計が直接使用されると、通常の累計値取得ロジックが起動され、累計アレイにある間違った行が返される可能性があります。
たとえば、ユーザー キーの値は、支給または控除の変換中に (たとえば、フォーミュラによって) 変更される場合があり、間違ったドライバ値 (行) が返される可能性があります。
注: グローバル ペイロールでは、有効な結果を得るため、ドライバ累計の代わりにシステム エレメント "CURR_DRIVER_VAL" を使用することをお勧めします。
その他のシステム エレメント
グローバル ペイロールでは、CURR_DRIVER_VAL のほかに、次のシステム エレメントが標準で用意されており、累計ドライバの実行対象となる支給または控除を定義する際に使用できます。
システム エレメント |
オカレンス レベル |
有効範囲 |
フィールド フォーマット |
|
---|---|---|---|---|
1 |
USER_FIELD_EXISTS |
エレメント |
セグメント全体 |
文字列 (0/1) |
2 |
DRIVER_EXISTS |
エレメント |
セグメント全体 |
文字列 (0/1) |
3 |
ACCUM_IS_DRIVER |
エレメント |
セグメント全体 |
文字列 (0/1) |
4 |
DRIVER_ELEM |
エレメント |
セグメント全体 |
PIN 番号 |
5 |
ED_ASSIGN_EXISTS |
エレメント |
支給/控除変換のみ |
文字列 (0/1) |
6 |
PI_EXISTS |
エレメント |
支給/控除変換のみ |
文字列 (0/1) |
7 |
DRIVER_EXISTS |
エレメント |
支給/控除変換のみ |
文字列 (0/1) |
8 |
UFS_ED_ASGN_EXISTS |
UFS ごと |
支給/控除変換のみ |
文字列 (0/1) |
9 |
UFS_PI_EXISTS |
UFS ごと |
支給/控除変換のみ |
文字列 (0/1) |
10 |
UFS_DRIVER_EXISTS |
UFS ごと |
支給/控除変換のみ |
文字列 (0/1) |
11 |
INSTANCE_NUM |
エレメント |
支給/控除変換のみ |
10 進数 |
12 |
ED_ASSIGN_INSTANCE_NUM |
インスタンスごと |
支給/控除変換のみ |
10 進数 |
13 |
ED_PROCESS_ORDER |
インスタンスごと |
支給/控除変換のみ |
10 進数 |
14 |
ED_ASSIGN_BGN_DT |
インスタンスごと |
支給/控除変換のみ |
日付 |
15 |
ED_ASSIGN_END_DT |
インスタンスごと |
支給/控除変換のみ |
日付 |
16 |
CURR_DRIVER_VAL |
インスタンスごと |
支給/控除変換のみ |
10 進数 |
17 |
UFS_PI_INST_FIRST |
インスタンスごと |
支給/控除変換のみ |
文字列 (Y/N) |
18 |
UFS_PI_INST_LAST |
インスタンスごと |
支給/控除変換のみ |
文字列 (Y/N) |
注: ELEM_IS_DRIVER を除く全てのシステム エレメントは、支給エレメントまたは控除エレメントの属性です。ELEM_IS_DRIVER は、累計の属性です。