再計算/履歴抽出ルール エレメントの定義

再計算/履歴抽出ルール エレメントを定義するには、再計算/履歴抽出ルール コンポーネント (GP_HIST_RULE) を使用します。

ページ名

定義名

用途

再計算/履歴ページ

GP_PIN

エレメント名を付け、基本パラメータを定義します。

再計算/履歴抽出ルール - 処理期間ページ

GP_HIST_RULE1

再計算/履歴抽出ルールの処理期間の詳細を定義します。[ルール タイプ] で選択した値によっては、入力できないフィールドもあります。

パラメータ/マッピング ページ

GP_HIST_RULE2

再計算/履歴抽出ルールのフォーミュラを定義します。

再計算/履歴抽出ルール エレメントは、過去の期間からデータを取得するルールを設定するのに使用します。再計算/履歴抽出ルールは、フォーミュラおよび仮再計算で使用されます。

再計算/履歴抽出ルールは、フォーミュラのフィールド ベース定義ページで支給エレメントおよび控除エレメントに関連付けることができます。また、支給/控除結果テーブル、累計結果テーブル、その他のエレメントの結果テーブルに保存されているエレメントにも関連付けることができます。また、再計算/履歴抽出ルールは、仮再計算エレメントで再計算の期間を決定するのにも使用できます。

再計算/履歴抽出ルール エレメント、遡及計算、および仮再計算エレメントには、以下のような違いがあります。

  • 再計算/履歴抽出ルール エレメントでは、過去の期間からデータを取得するルールを設定できます。

  • 遡及計算では、過去の期間の再計算が可能で、その計算の結果は保持されます。

  • 仮再計算エレメントでは、過去の期間の再計算が可能ですが、その結果は保持されず、最終金額のみが現在の期間に渡されます。

再計算/履歴抽出ルールを定義するには、次の手順に従います。

  1. 再計算/履歴ページで、再計算/履歴抽出ルールの名称情報を定義します。

  2. 処理期間ページで、ルール タイプと処理対象の期間を定義します。

  3. パラメータ/マッピング ページで、再計算/履歴抽出ルールで使用するフォーミュラを定義します。

再計算/履歴抽出ルールは、フォーミュラのフィールド ベース定義ページで支給または控除エレメントに関連付けることができます。また、グローバル ペイロールの支給/控除結果テーブル (GP_RSLT_ERN_DED)、累計結果テーブル (GP_RSLT_ACUM)、その他のエレメントの結果テーブル (GP_RSLT_PIN) に格納されているエレメントにも関連付けることができます。さらに、仮再計算エレメントで再計算期間の決定に使用することもできます。

警告 再計算/履歴抽出ルール エレメントは、給与計算結果の最大のバージョン番号および最大のレビジョン番号を読み取ります。繰越遡及を使用してエレメントをさかのぼって再計算する際に、デルタが再計算エレメントに含まれ、さらに現在の期間にも繰り越されます。その結果、再計算/履歴抽出ルールで読み取られる結果に 2 度含まれることになります。

この問題を回避するには、累計 - レベル ページで、セグメント累計に対して [遡及処理] の [訂正を使用] をオンにします。

再計算/履歴抽出ルールは、正常に変換されると 1、正常に変換されないと 0 になります。この動作のしくみはアレイ エレメントと同じです。変換後の再計算/履歴抽出ルールは、以下のようにフォーミュラで使用できます。

IF HIST_RULE_TEST =1, THEN

(再計算/履歴抽出ルールによって値がロードされた変数エレメントを使用)

ELSE

(エラー処理)

END-IF

[最後に実行するフォーミュラ] に指定されているフォーミュラがエラーなしで変換された場合、またはそのフォーミュラが使用されず、[真の場合の停止処理] に指定されている変数の値が真の場合は、再計算/履歴抽出ルールの値は 1 に設定されます。

その他の場合、再計算/履歴抽出ルールの値は 0 に設定されます。SQL からデータは戻されません。

再計算/履歴抽出ルール エレメントの処理

再計算/履歴抽出ルールは、次のように処理されます。

  1. グローバル ペイロールの結果テーブルで必要なエレメントに値をロードする SQL が動的に作成されます。

    SQL の UNION を使って複数の結果テーブルから一度にデータを取得することができます。UNION を使用すると、再計算/履歴抽出ルールが呼び出されるたびに、データベースに直接アクセスが行われます。SELECT および一連の FETCH が毎回実行されます。このエレメント タイプの使用は、パフォーマンスに影響します。

  2. 列が変数にマッピングされます。

    これらの変数は、フォーミュラで使用することができます。

  3. 最初のフェッチで、最初に取得するセグメントのキーが設定されます。

    セグメントのキーに区切りが検出されるまで、レコードのフェッチは続けられます。入出力インターフェイス コピーブック (PINL) に、取得したエレメントの値がセットされます。エレメント マッピングでエレメントが見つからなかった場合は、ヌル値がセットされます。その後、プログラムにより [セグメント別に実行するフォーミュラ] で指定したフォーミュラの変換が要求されます。

  4. セグメントごとにフォーミュラの変換が実行されます。

  5. 平均計算などの追加の計算のために、[最後に実行するフォーミュラ] に指定されているフォーミュラが変換されます。

次の表にあるとおり、カレンダーやセグメントは最初に実行された順序と逆の順序で処理されます。

元の処理順序

再計算/履歴抽出ルールの処理順序

1 月の休暇欠勤カレンダー

1 月の給与計算カレンダー (セグメント 2、セグメント 2)

2 月の休暇欠勤カレンダー

2 月の給与計算カレンダー

2 月の給与計算カレンダー

2 月の休暇欠勤カレンダー

1 月の給与計算カレンダー (セグメント 2、セグメント 1)

1 月の休暇欠勤カレンダー

先行値の計算に使用されるフォーミュラ

期間別に実行されるフォーミュラ (CUM_COMP) には、以下のものがあります。

  • CUM_PERIOD_SAL + CUR_SAL = CUM_PERIOD_SAL: 支給額を計算します。

  • CUM_NUM_PERIODS + 1 = CUM_NUM_PERIODS: 期間を計算します。

最後に実行されるフォーミュラ (AVG_COMP) には以下のものがあります。

CUM_PERIOD_SAL/CUM_NUM_PERIODS = AVG_COMP: 期間で割った支給額を計算します。

再計算/履歴抽出名ページ (GP_PIN) を使用して、エレメントに名前を付け、基本パラメータを定義します。

注: GP_PIN というオブジェクト名のエレメント名共通ページで、エレメント名やその基本パラメータを全て定義します。エレメント名共通ページのページ タイトルや内容は、定義するグローバル ペイロール エレメントのタイプによって変わります。このページのフィールドについては全て、この製品ドキュメントの他のトピックで説明されています。

再計算/履歴抽出ルール - 処理期間ページ (GP_HIST_RULE1) を使用して、再計算/履歴抽出ルールの処理期間の詳細を定義します。

[ルール タイプ] で選択した値によっては、入力できないフィールドもあります。

画像: 再計算/履歴抽出ルール - 処理期間ページ

次の例では、再計算/履歴抽出ルール - 処理期間ページのフィールドおよびコントロールを説明します。

再計算/履歴抽出ルール - 処理期間ページ

注: 処理期間ページでは、期間の開始日終了日を指定します。その後で、選択した結果データを処理期間にマッピングします。エレメントのデータが期間内に存在しない場合、文字エレメントおよび日付エレメントに対しては空白が、数値エレメントおよび金額エレメントに対してはゼロがセットされます。

フィールドまたはコントロール

定義

ルール タイプ

仮再計算/履歴ルールのタイプを以下のオプションから選択します。

[仮再計算で使用]: この再計算/履歴抽出ルール エレメントを仮再計算エレメントで使用して、再計算する支給期間を決める場合は、このオプションを選択します。

[値の検索]: この再計算/履歴抽出ルール エレメントをフォーミュラで使用して、過去に計算した値を取得する場合は、このオプションを選択します。

遡及開始日付範囲

開始日タイプ、終了日タイプ、開始日エレメント、および終了日エレメントを定義して、この再計算/履歴抽出ルールの期間を設定します。[値の検索] ルール タイプを選択した場合、このフィールドは [遡及開始日付範囲] として表示されます。[仮計算で使用] ルール タイプを選択した場合、このフィールドは [先行開始日付範囲] として表示されます。

[開始日タイプ] および [終了日タイプ] の値は、以下の中から選択します。

ブラケット

[カレンダー日]: 日付に変換されるエレメントを指定する代わりに、日付を直接入力します。ルール タイプが [値の検索] の場合は遡及開始日を、[仮再計算で使用] の場合は先行開始日を、隣のフィールドで指定します。

日付

フォーミュラ

システム エレメント

変数

基準の選択

再計算/履歴抽出ルールで処理する GP_RSLT テーブル データの基準となる日付を指定します。有効値は、[支給日]、[期間終了日]、および [期間開始日] です。

実行時にステートメントをログに記録

このチェック ボックスをオンにすると、バッチ処理中にアレイ モジュールにより動的に作成される SQL ステートメント テキストを見ることができます。PeopleTools Configuration Manager でリダイレクト出力のオプションを選択すると、それらのアウトプットをファイルに出力することができます。

3 月 28 日から 6 月 27 日の期間について、3 か月間の給与 (エレメント SALARY) を決定する必要があります。以下は、GP_RSLT テーブル値の一覧です。

支給期間

結果

期間開始日

期間終了日

支払日

2003 年 1 月

100

2003 年 1 月 1 日

2003 年 1 月 31 日

2003 年 2 月 2 日

2003 年 2 月

100

2003 年 2 月 1 日

2003 年 2 月 28 日

2003 年 3 月 2 日

2003 年 3 月

100

2003 年 3 月 1 日

2003 年 3 月 31 日

2003 年 4 月 2 日

2003 年 4 月

100

2003 年 4 月 1 日

2003 年 4 月 30 日

2003 年 5 月 2 日

2003 年 5 月

100

2003 年 5 月 1 日

2003 年 5 月 31 日

2003 年 6 月 2 日

2003 年 6 月

100

2003 年 6 月 1 日

2003 年 6 月 30 日

2003 年 7 月 2 日

2003 年 7 月

100

2003 年 7 月 1 日

2003 年 7 月 31 日

2003 年 8 月 2 日

[期間開始日] を選択すると、再計算/履歴抽出ルールでは、6 月、5 月、4 月が処理されます。7 月は処理されません。7 月の期間開始日の 7 月 1 日は、遡及期間の開始日の 6 月 27 日より後の日付であるためです。同様に、3 月も処理されません。3 月の期間開始日の 3 月 1 日は、遡及期間の終了日の 3 月 28 日より前の日付であるためです。

注: 再計算/履歴抽出ルールでは、遡及開始日から処理が開始され、元の処理順序とは逆の順序で遡及終了日までさかのぼって各期間やセグメントが参照されます。

[期間終了日] を選択すると、再計算/履歴抽出ルールでは、5 月、4 月、3 月が処理されます。6 月は処理されません。6 月の期間終了日の 6 月 30 日は、遡及期間の開始日の 6 月 27 日より後の日付であるためです。同様に、2 月も処理されません。2 月の期間終了日の 2 月 28 日は、遡及期間の終了日の 3 月 28 日より前の日付であるためです。

[支給日] を選択すると、再計算/履歴抽出ルールでは、5 月、4 月、3 月が処理されます。6 月は処理されません。6 月の支給日の 7 月 2 日は、遡及期間の開始日の 6 月 27 日より後の日付であるためです。同様に、2 月も処理されません。2 月の支給日の 3 月 2 日は、遡及期間の終了日の 3 月 28 日より前の日付であるためです。

『PeopleTools: Data Management』を参照してください。

パラメータ/マッピング ページ (GP_HIST_RULE2) を使用して、再計算/履歴抽出ルールのフォーミュラを定義します。

画像: パラメータ/マッピング ページ

次の例では、パラメータ/マッピング ページのフィールドおよびコントロールを説明します。

パラメータ/マッピング ページ

注: 処理期間ページの [ルール タイプ] で指定した値によって、このページに表示されるフィールドは変化します。

給与計算を実行すると、[真の場合の停止処理] で指定された変数の値がゼロ以外になるか、または最後の過去の期間が処理されるまで、[セグメント別に実行するフォーミュラ] のフォーミュラが過去の期間ごとに変換されます。その後、[最後に実行するフォーミュラ] で指定されたフォーミュラが変換されます。

フィールドまたはコントロール

定義

セグメント別に実行するフォーミュラ

セグメント、または期間ごとに変換されるフォーミュラを指定します。

真の場合は処理を停止

変数を入力します。この変数がゼロ以外の値になるか、終了日に達するか、または処理するデータがなくなるまで、期間ごとにフォーミュラが変換され続けます。

最後に実行するフォーミュラ

期間処理が終了したときに変換するフォーミュラを指定します。

真の場合は期間を使用

このフィールドは、[仮再計算で使用] ルール タイプのときのみ表示されます。変数を入力します。[セグメント別に実行するフォーミュラ] フィールドで指定したフォーミュラが呼び出されるごとに、この変数の値が 0 と 1 のどちらに設定されているかが確認されます。1 に設定されると、フォーミュラが呼び出された期間が仮再計算処理で使用されます。

エレメント マッピング

[エレメント マッピング] グリッドには、再計算/履歴抽出ルールでグローバル ペイロールの結果テーブルからデータを取得するエレメントが一覧表示されます。

フィールドまたはコントロール

定義

エレメント タイプ

支給、控除、変数など、取得するエレメントのタイプを選択します。

過去の期間エレメント

値を取得するエレメントを指定します。

現在の期間エレメント

取得した値を格納する変数を指定します。ここに指定した変数は、[セグメント別に実行するフォーミュラ] フィールドで使用できるようになります。

スライス オプション

過去の期間内のエレメントの複数インスタンスを変換する方法を指定します。値は以下のとおりです。

  • スライスを合計: 全てのスライスが合計されます。

  • 最終スライスを使用: 最終スライスの値のみが使用されます。

  • スライスを合計 - 現在の雇用レコード: 全てのスライスが合計されますが、EMPL_RCD が現在の EMPL_RCD と等しいデータ行のみが使用されます。

  • [最終スライスを使用-現在の雇用レコード]: 最終スライスの値のみが使用されますが、EMPL_RCD が現在の EMPL_RCD と等しいデータ行のみが使用されます。