122
Oracle FastFormula ユーザーズ・ガイド リリース 11i 2000 8 部品番号 : J02610-01

Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

  • Upload
    lyminh

  • View
    234

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Oracle FastFormula

ユーザーズ・ガイド

リリース 11i

2000年 8月

部品番号 : J02610-01

Page 2: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Oracle FastFormulaユーザーズ・ガイド , リリース 11i

部品番号 : J02610-01

原本名:Using Oracle Fast Fomula

原本部品番号:A73295-02

Copyright © 1996, 2000, Oracle Corporation. All rights reserved.

Printed in Japan.

制限付権利の説明

プログラムの使用、複製または開示は、オラクル社との契約に記された制約条件に従うものとします。著作権、特許権およびその他の知的財産権に関する法律により保護されています。

当ソフトウェア(プログラム)のリバース・エンジニアリングは禁止されております。

このドキュメントの情報は、予告なしに変更されることがあります。オラクル社は本ドキュメントの無謬性を保証しません。

* オラクル社とは、Oracle Corporation(米国オラクル)または日本オラクル株式会社(日本オラクル)を指します。

危険な用途への使用について

オラクル社製品は、原子力、航空産業、大量輸送、医療あるいはその他の危険が伴うアプリケーションを用途として開発されておりません。オラクル社製品を上述のようなアプリケーションに使用することについての安全確保は、顧客各位の責任と費用により行ってください。万一かかる用途での使用によりクレームや損害が発生いたしましても、日本オラクル株式会社と開発元である Oracle Corporation(米国オラクル)およびその関連会社は一切責任を負いかねます。 当プログラムを米国国防総省の米国政府機関に提供する際には、『Restricted Rights』と共に提供してください。この場合次の Legendが適用されます。

Restricted Rights Legend

Programs delivered subject to the DOD FAR Supplement are "commercial computer software" and use, duplication and disclosure of the Programs shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement. Otherwise, Programs delivered subject to the Federal Acquisition Regulations are "restricted computer software" and use, duplication and disclosure of the Programs shall be subject to the restrictions in FAR 52.227-14, Rights in Data -- General, including Alternate III (June 1987). Oracle Corporation, 500 Oracle Parkway, Redwood City, CA 94065.

このドキュメントに記載されているその他の会社名および製品名は、あくまでその製品および会社を識別する目的にのみ使用されており、それぞれの所有者の商標または登録商標です。

Page 3: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

目次目次目次目次

1 Oracle FastFormula

Oracle FastFormula ............................................................................................................................................... 1-1

Oracle FastFormulaはどのようなものですか ? ........................................................................................ 1-1

Formulaはどのように使用しますか ? ........................................................................................................ 1-1

あらかじめ用意されている Formulaはありますか ? ............................................................................... 1-2Oracle FastFormulaの概要の概要の概要の概要 .................................................................................................................................. 1-2

Oracle FastFormulaの使用方法の使用方法の使用方法の使用方法 .......................................................................................................................... 1-3

給与計算 ........................................................................................................................................................... 1-3

有給休暇付与プラン ....................................................................................................................................... 1-3

福利厚生管理 ................................................................................................................................................... 1-4

QuickPaintレポート ...................................................................................................................................... 1-4

エレメント入力またはユーザー表の検証 ................................................................................................... 1-4

アサイメント・セット ................................................................................................................................... 1-4

PL/SQLからの FastFormulaのコール ...................................................................................................... 1-4

Oracle Business Intelligence Systems(OBIS)レポート ......................................................................... 1-4

Formulaコンポーネントの概要コンポーネントの概要コンポーネントの概要コンポーネントの概要 .......................................................................................................................... 1-5

Assignment文と Return文 .......................................................................................................................... 1-5

定数と変数 ....................................................................................................................................................... 1-5

入力のタイプ ................................................................................................................................................... 1-6

関数 ................................................................................................................................................................... 1-8

条件の組込み ................................................................................................................................................... 1-9Formula記述のテクニック記述のテクニック記述のテクニック記述のテクニック ................................................................................................................................ 1-11

Formulaにコメントを付ける ..................................................................................................................... 1-11

Alias文 ........................................................................................................................................................... 1-13

Default文 ....................................................................................................................................................... 1-13

i

Page 4: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

効率的な給与計算 Formulaの記述 ............................................................................................................ 1-14Formula参照参照参照参照 ........................................................................................................................................................ 1-16

給与計算給与計算給与計算給与計算 Formulaの入力パラメータの入力パラメータの入力パラメータの入力パラメータ ............................................................................................................... 1-17

定数定数定数定数 ......................................................................................................................................................................... 1-19変数変数変数変数 ......................................................................................................................................................................... 1-21

式式式式 ............................................................................................................................................................................. 1-25

算術演算子算術演算子算術演算子算術演算子 ............................................................................................................................................................. 1-25

関数関数関数関数 ......................................................................................................................................................................... 1-26

テキスト関数 ................................................................................................................................................. 1-26

UPPER ............................................................................................................................................................ 1-31

数値関数 ......................................................................................................................................................... 1-32

日付関数 ......................................................................................................................................................... 1-34

データ変換関数 ............................................................................................................................................. 1-36

値を表から検索する関数 ............................................................................................................................. 1-38

有給休暇タイプ Formula用の関数 ............................................................................................................ 1-39

Formulaをコールする関数 ......................................................................................................................... 1-42

グローバル変数を設定および取得する関数 ............................................................................................. 1-43

コメントコメントコメントコメント ................................................................................................................................................................. 1-44文文文文 ............................................................................................................................................................................. 1-44

Alias文 ........................................................................................................................................................... 1-45

Default文 ....................................................................................................................................................... 1-45

Input文 .......................................................................................................................................................... 1-46

Assignment文 .............................................................................................................................................. 1-47

IF文 ................................................................................................................................................................ 1-47

Return文 ........................................................................................................................................................ 1-49

Formulaのコンパイルのコンパイルのコンパイルのコンパイル ........................................................................................................................................ 1-50Formulaエラーエラーエラーエラー .................................................................................................................................................... 1-50

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム ..................................................................................................................................... 1-52

静的データベース・アイテム静的データベース・アイテム静的データベース・アイテム静的データベース・アイテム ............................................................................................................................. 1-52

有給休暇付与プラン情報 ............................................................................................................................. 1-52

応募者情報 ..................................................................................................................................................... 1-53

従業員アサイメント情報 ............................................................................................................................. 1-53

連絡先住所 ..................................................................................................................................................... 1-56

連絡先情報 ..................................................................................................................................................... 1-57

従業員の採用情報 ......................................................................................................................................... 1-58

従業員の採用情報(日本のみ) ................................................................................................................... 1-58

ii

Page 5: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

事業所詳細 ..................................................................................................................................................... 1-58

勤務先住所(米国のみ) ............................................................................................................................... 1-59

勤務先住所(英国のみ) ............................................................................................................................... 1-59

給与詳細 ......................................................................................................................................................... 1-59

給与詳細(日本のみ) ................................................................................................................................... 1-60

住所 ................................................................................................................................................................. 1-60

自宅住所詳細(米国のみ) ........................................................................................................................... 1-61

自宅住所詳細(英国のみ) ........................................................................................................................... 1-61

個人情報 ......................................................................................................................................................... 1-61

個人情報(日本のみ) ................................................................................................................................... 1-62

採用担当情報 ................................................................................................................................................. 1-62

管理者情報 ..................................................................................................................................................... 1-63

日付情報 ......................................................................................................................................................... 1-63

その他情報(日本のみ) ............................................................................................................................... 1-64

ユーザー定義表情報(日本のみ) ............................................................................................................... 1-64

動的データベース・アイテム動的データベース・アイテム動的データベース・アイテム動的データベース・アイテム ............................................................................................................................. 1-64

エレメント・データベース・アイテム ..................................................................................................... 1-64

等級レート・データベース・アイテム ..................................................................................................... 1-66

支給スケール・レートのデータベース・アイテム支給スケール・レートのデータベース・アイテム支給スケール・レートのデータベース・アイテム支給スケール・レートのデータベース・アイテム ......................................................................................... 1-66

付加フレックスフィールドのデータベース・アイテム ......................................................................... 1-67

キー・フレックスフィールドのデータベース・アイテム ..................................................................... 1-68

不就業のデータベース・アイテム ............................................................................................................. 1-68福利厚生管理の福利厚生管理の福利厚生管理の福利厚生管理の Formula .................................................................................................................................... 1-69

総合報酬総合報酬総合報酬総合報酬 Formulaタイプタイプタイプタイプ ................................................................................................................................... 1-69

ユーザー定義の関数ユーザー定義の関数ユーザー定義の関数ユーザー定義の関数 ............................................................................................................................................. 1-84JP関数関数関数関数 .................................................................................................................................................................... 1-85

例例例例 ............................................................................................................................................................................. 1-86

有給休暇有給休暇有給休暇有給休暇 Formulaのサンプルのサンプルのサンプルのサンプル ........................................................................................................................... 1-86

有給休暇期間の変更 ..................................................................................................................................... 1-93

有給休暇期間開始日の変更 ......................................................................................................................... 1-93

新規採用者の開始ルールの追加 ................................................................................................................. 1-94

時間または支払エレメントに基づいた累積値 ......................................................................................... 1-95

有給休暇一括付与の使用 ............................................................................................................................. 1-95

上限の変更 ..................................................................................................................................................... 1-96

継続勤務に使用する日付の変更 ................................................................................................................. 1-96

休止アサイメントのルールの追加 ............................................................................................................. 1-96

iii

Page 6: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

パートタイム従業員のルールの追加 ......................................................................................................... 1-97

長期勤続有給休暇の追加 ............................................................................................................................. 1-97

勤続期間に基づいた有給休暇付与期間の使用 ......................................................................................... 1-98

別の基準に基づいた有給休暇付与期間の使用 ......................................................................................... 1-99QuickPaint Formulaの編集の編集の編集の編集 ............................................................................................................................. 1-100

エレメント・エントリの検証エレメント・エントリの検証エレメント・エントリの検証エレメント・エントリの検証 ........................................................................................................................... 1-100

ユーザー表エントリの検証ユーザー表エントリの検証ユーザー表エントリの検証ユーザー表エントリの検証 ............................................................................................................................... 1-101Oracle FastFormula ........................................................................................................................................... 1-102

Oracle FastFormulaの使用の使用の使用の使用 .............................................................................................................................. 1-102

Formulaの記述または編集の記述または編集の記述または編集の記述または編集 .............................................................................................................................. 1-102グローバル値の定義グローバル値の定義グローバル値の定義グローバル値の定義 ........................................................................................................................................... 1-104

関数の登録関数の登録関数の登録関数の登録 ........................................................................................................................................................... 1-104

エレメントのための給与計算エレメントのための給与計算エレメントのための給与計算エレメントのための給与計算 Formulaの記述の記述の記述の記述 ............................................................................................. 1-106有給休暇付与プランの有給休暇付与プランの有給休暇付与プランの有給休暇付与プランの Formulaの記述の記述の記述の記述 ......................................................................................................... 1-106

Formulaタイプ ........................................................................................................................................... 1-107

必要な入出力 ............................................................................................................................................... 1-108

有給休暇 Formulaで行う必要のあるチェック ...................................................................................... 1-110

エレメント・スキップ・ルールのエレメント・スキップ・ルールのエレメント・スキップ・ルールのエレメント・スキップ・ルールの Formulaの記述の記述の記述の記述 ..................................................................................... 1-111

QuickPaint Formulaへの機能のコピーと追加への機能のコピーと追加への機能のコピーと追加への機能のコピーと追加 ............................................................................................. 1-112検証用検証用検証用検証用 Formulaの記述の記述の記述の記述 ..................................................................................................................................... 1-112

アサイメント・セットアサイメント・セットアサイメント・セットアサイメント・セット Formulaの編集の編集の編集の編集 ......................................................................................................... 1-113

Formulaの一括検証の一括検証の一括検証の一括検証 .......................................................................................................................................... 1-114

iv

Page 7: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Oracle FastFo

1

Oracle FastFormula

Oracle FastFormula

Oracle FastFormulaはどのようなものですかはどのようなものですかはどのようなものですかはどのようなものですか ?Oracle FastFormulaは、英単語と基本的な数学関数を使用して Formulaを記述する簡単な方法です。データベース構造やプログラミング言語を知らなくても、データベースの情報をFormulaで使用できます。

Formulaはどのように使用しますかはどのように使用しますかはどのように使用しますかはどのように使用しますか ?Formulaは、次の目的に使用します。

� 給与計算時にエレメントの結果値と実行結果を計算します。

� エレメント・エントリ値がアサイメントに対して有効かどうかを検証します。

� ユーザー表に対する入力が有効かどうかを検証します。

� アサイメント・セットにアサイメントを含める基準を指定します。

� 適格かどうかの判断など、福利厚生管理のルールを作成します。

� QuickPaintレポートで表示するデータベース情報を選択し、レポート用の計算を実行します。

� 給与計算時にエレメントのスキップ・ルールを指定します。

� 磁気テープ・ライターで必要な形式のレコードを準備します。ほとんどの国では、オラクル社のローカライズ・チームによって必要な Formulaを記述済みです。

� 給与計算中に法定チェックを実行します。

� 有給休暇の累積日数や期間、新規採用者が有給休暇の取得を開始できる時期、次の有給休暇期間に繰越可能日数などの有給休暇付与プランを指定します。

rmula 1-1

Page 8: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Oracle FastFormulaの概要

� カスタム・ライブラリから Formulaをコールすることによって、フォームを検証します。カスタム・ライブラリから Formulaをコールすると、業務規則を容易に作成、保守することもできます。PL/SQLからの Formulaのコールの詳細は、テクニカル・エッセイ『PL/SQLからの FastFormulaのコール』を参照してください。

Formulaを記述するときに、これらの Formulaの使用目的のうちのどの目的のために使用するかを明確にします。

あらかじめ用意されているあらかじめ用意されているあらかじめ用意されているあらかじめ用意されている Formulaはありますかはありますかはありますかはありますか ?はい。Oracle Payrollに必要なすべての税計算に関する Formulaが事前に定義されています。これらの Formulaは編集しないでください。税法が変更されると自動的にアップデートが提供されます。

有給休暇付与プランについても、多数の Formulaが事前に定義されています。これらのFormulaは、提供されているままの状態で使用することも、独自のプランのルールに合せてカスタマイズすることもできます。

US Oracle Payrollユーザーが支給項目と控除項目を定義すると、システムは、これらのエレメントの処理に必要な Formulaを自動的に生成します。必要に応じて、これらの生成された給与 Formulaを編集できます。その他の国では、いくつかの Formulaが事前に定義されている場合があります。また、定義するエレメントの処理に必要な数だけ他の Formulaを作成することもできます。

QuickPaintレポート用と Formulaのアサイメント・セットを、ウィンドウで入力する基準から作成できます。作成されたこれらの Formulaを編集して、より多くの機能を追加できます。

Oracle FastFormulaの概要の概要の概要の概要Formulaは、さまざまな入力パラメータに対し、繰り返し計算や比較を実行する Formulaです。給与計算を実行するウィンドウ、データベースまたは処理から入力を取り込み、値またはメッセージを戻します。Formulaの使用方法についての詳細は、「Oracle FastFormulaの使用方法」(1-3)を参照してください。

Oracle FastFormulasは、多くのコンポーネントから構成されています。この中には、Assignment文、異なるタイプの入力と式などがあります。

Formulaを記述するときには、標準の Formula作成技法を利用できます。これにより、誰もが読みやすく、使用しやすく、理解しやすい Formulaが作成できます。

最後に、Formulaには、単語や句読点について厳しいルールがあります。これにより、Oracle FastFormulaは正しく計算を行い、必要な妥当性チェックを実行できます。特定のコンポーネントのルールについては、「Formula参照」(1-16)を参照してください。

1-2 Oracle FastFormulaユーザーズ・ガイド

Page 9: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Oracle FastFormulaの使用方法

Oracle FastFormulaの使用方法の使用方法の使用方法の使用方法Oracle FastFormulaを使用すると、次のことができます。

� 給与計算

� 有給休暇付与プランのルールの定義

� 福利厚生管理のカスタム計算

� QuickPaintレポートの定義

� エレメント入力またはユーザー表の検証

� アサイメント・セットの編集

� ビジネス・ルールの設定と、他の PL/SQLアプリケーションからの呼び出し

� Oracle Business Intelligence Systemsレポートの定義

給与計算給与計算給与計算給与計算事前定義済の給与計算の Formulaを使用できます。Oracle Payrollには、事前定義のFormulaが組み込まれています。これらの Formulaを変更することはできませんが、コピーした Formulaを修正することは可能です。

US Oracle Payrollユーザーの場合は、 Oracle FastFormulaを使用して、支給項目タイプ、他の支払項目、Oracle Payrollで開始した控除項目についてシステムが生成した Formulaを編集できます。これらの編集は、「Formula」ウィンドウを使用して、生成された Formula(コピーではない )に直接書き込みます。

どの Oracle Payrollユーザーも、FastFormulaを使用して、給与計算、支給項目および控除項目を定義したエレメントのスキップ・ルールを記述できます。各エレメントに複数のFormulaを関連付けて、別のステータスの従業員アサイメントに異なる処理を実行できます。US Oracle Payrollユーザーの場合は、データベースに何回かアクセスする非常に複雑な計算を行う支給項目と控除項目に、固有のエレメントと Formulaを定義するだけです。

有給休暇付与プラン有給休暇付与プラン有給休暇付与プラン有給休暇付与プランOracle FastFormulaを使用すると、シードされた有給休暇タイプの Formulaを編集するか、独自に記述できます。有給休暇付与プランには、2つの Formulaが必要です。1つは、有給休暇の総日数を計算する Formulaで、もう 1つは有給休暇繰越プロセスの情報を戻すFormulaです。バッチ・エレメント・エントリ(BEE)を使用し、有給休暇付与プランに対して不就業を入力する場合は、3つ目の Formulaを作成できます。この Formulaは、BEEからコールされ、従業員が有給休暇の取得に適格かどうか判別します。関連項目 : 『Oracle HRMSユーザーズ・ガイド』の「有給休暇 Formula」

Oracle FastFormula 1-3

Page 10: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Oracle FastFormulaの使用方法

福利厚生管理福利厚生管理福利厚生管理福利厚生管理Oracle FastFormulaを使用すると、システムの福利厚生機能を強化できます。Formulaを使用して、企業の要件に合せてプランの設計をカスタマイズします。たとえば、適格の判別が容易でない場合に福利厚生の適格を計算するために Formulaを記述できます。

QuickPaintレポートレポートレポートレポート「QuickPaintレポート定義」ウィンドウでは、リストから「レポート定義」領域にデータベース・アイテムをペーストしたり、データにラベルを付けるためのテキストを自由に入力できます。 QuickPaintレポート定義を保存すると、Formulaが自動的に生成されます。QuickPaintから生成される Formulaには、条件論理や計算が含まれていません。報酬エレメントを合計したり、異なるアサイメントに関する異なるデータをレポートする場合などには、このような機能を追加します。

エレメント入力またはユーザー表の検証エレメント入力またはユーザー表の検証エレメント入力またはユーザー表の検証エレメント入力またはユーザー表の検証Oracle FastFormulaを使用すると、ユーザーは参照または最大値または最小値を使用して、入力値の項目をチェックします。ただし、より複雑な検証を実施する場合は、Formulaを記述し、エントリをチェックします。Formulaは、「エレメント・エントリ」ウィンドウ以外ではコールされません。他の方法でエントリを入力すると(バッチ・エレメント・エントリなど)これらは Formulaでチェックされません。

定義したユーザー表のエントリを検証するために Formulaを使用することもできます。

アサイメント・セットアサイメント・セットアサイメント・セットアサイメント・セット「アサイメント・セット」ウィンドウでアサイメント・セットを定義すると、Oracle FastFormulaは Formulaを生成して、現在入力済みのアサイメント・セットを定義します。ただし、各アサイメントで設定基準をチェックする順序は変更できます。

PL/SQLからのからのからのからの FastFormulaのコールのコールのコールのコールFormulaは PL/SQLアプリケーションからコールできます。そのためデータ項目への直接アクセスが可能となり、ローカライズされたビジネス・ルール用のカスタム・コードを作成できます。PL/SQLから FastFormulaをコールする方法については、『PL/SQLからのFastFormulaのコール』を参照してください。

Oracle Business Intelligence Systems((((OBIS)レポート)レポート)レポート)レポートFormulaを使用すると、HRMS OBISレポートを構成し、企業にとって重要な問題を解決できます。次のことが可能です。

1-4 Oracle FastFormulaユーザーズ・ガイド

Page 11: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formulaコンポーネントの概要

� マンパワー・レポートでは、企業におけるマンパワーの算出方法を定義できます。

� 労働時間分析レポートでは、定時時間内と残業時間の記録および報告方法に関する情報を設定できます。

� 不就業分析レポートでは、企業の標準時間を設定できます。

Oracle FastFormulaおよび OBISの詳細については、下記を参照してください。関連項目 : オラクル人事管理システム・レポートの設定 (Oracle Business Intelligence Systemユーザーズ・ガイド )

Formulaコンポーネントの概要コンポーネントの概要コンポーネントの概要コンポーネントの概要次の情報では、さまざまなコンポーネントを使用して Oracle Formulaを作成する方法を理解するのに役立つ一連の例を使用します。

簡単な例として、従業員の 1週間の勤務時間数に、この従業員の時給を乗算して、「Wage(賃金)」のエレメントの支給額を計算する場合を考えてみます。次のように Formulaを記述します。

wage = hours_worked * hourly_rateRETURN wage

Assignment文と文と文と文と Return文文文文1行目は wageのエレメントに単純に値を割り当てる Assignment文です。2行目は、Return文であり、wageの値を給与計算処理に戻します。

定数と変数定数と変数定数と変数定数と変数この例では、wageの値を計算していますが、値を定数にすることもできます(wage = 200など)。Oracle FastFormulaで wageの値を計算するには、変数 hours_workedと hourly_rateの値を受け取る必要があります。この例では、給与計算時のアサイメントによって設定する値が異なるため、これらは「変数」として扱います。

データ型データ型データ型データ型変数と定数には、次の 3つのデータ型があります。

� 数値

� テキスト

注意注意注意注意 :特定のコンポーネントの使用を制御するルールについて知りたい場合は、「Formula参照」を参照してください。

Oracle FastFormula 1-5

Page 12: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formulaコンポーネントの概要

� 日付

前述したwageの例の変数は数値です。

入力のタイプ入力のタイプ入力のタイプ入力のタイプ前述したように、Oracle FastFormulaでは、変数 hours_workedと hourly_rateの値を受け取る必要があります。次のように、値を受け取る方法は 3つあります。

� Formulaがコールされたときの入力として値を受け取る。

� データベース・アイテムから、データベースの値を検索する。

� 「グローバル」ウィンドウを使用して入力したグローバル値を使用する。

データベース・アイテムやグローバル値は、名称で参照するだけで、Formula内で使用できます。「Formula」ウィンドウでは、データベース・アイテムのリストを見ることができます。実行時に Formulaに渡す値を使用するには、Input文を記述する必要があります。

Input文文文文前述したwageの例では、hours_workedはエレメントのwageの入力パラメータと仮定しています。給与計算時にエレメント入力パラメータを Formulaに渡すには、次のようなInput文を定義します。

INPUTS ARE hours_workedwage = hours_worked * hourly_rateRETURN wage

Input文で使用する名称は、エレメント入力パラメータの名称と同じである必要があります。また、複数のワードはアンダースコア (_)でつなぐ必要があります。この例の入力パラメータ hours_workedは数値です。入力パラメータが数値以外の場合は、次のように、テキストまたは日付を Oracle FastFormulaに指示する必要があります。例 :

INPUTS ARE start_date (date)

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテムhourly_rateは、「等級レート」表から得られる標準レートと仮定します。これはデータベース・アイテムの例です。データベース・アイテムには、データにアクセスするパスを Oracle FastFormulaに指示する、ラベルまたは特殊なコード部分があります。オラクル人事管理システムでは、必要なほとんどのデータベース・アイテムが作成されるため、ユーザーが特別な処理を実行する必要はありません。これらのデータベース・アイテムには、フレックスフィールドのセグメントで保持する企業独自の情報と、アサイメント番号や等級などの基本的な情報が含まれています。

1-6 Oracle FastFormulaユーザーズ・ガイド

Page 13: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formulaコンポーネントの概要

「Formula」ウィンドウで、データベース・アイテムをリストから選択します。hourly_rateという等級レートに対応するデータベース・アイテムの名称は、実際にはgrade_hourly_rate_valueと表示されます。Formulaでは、この名称を使用します。

Oracle FastFormulaは、このような Formula特有の名称によって、「hourly_rateは等級レート表からのデータベース・アイテムである」ことを識別します。では、「この表のどのhourly_rateを使用するのかと」いうことをどのように識別するのでしょうか ? Oracle FastFormulaは、給与計算時に各エレメント・エントリから得られた情報を使用して、データベース・アイテムを識別します。コンテキストによって、次の要素を識別できます。

� ビジネス・グループ

� エレメントおよびエレメント・リンク

� 給与および給与計算

� 従業員および従業員アサイメント

関連項目 :「効率的な給与計算 Formulaの記述」(1-14)

グローバル変数グローバル変数グローバル変数グローバル変数会社名や、多数の従業員に適用される勤務地手当など、ほとんど変更しないが頻繁に参照する情報の格納には、グローバル値を使用します。「グローバル」ウィンドウを使用してグローバル値を定義したり変更します。

関連項目 :「グローバル値の定義」(1-104)

ローカル変数ローカル変数ローカル変数ローカル変数ローカル変数は、1つの Formulaだけに使用します。ローカル変数の値を変更するには、Assignment文でローカル変数に値を割り当てます。前述した wageの例では、wageがローカル変数です。wageは、次の Assignment文によって Formulaの値を受け取ります。

wage = hours_worked * hourly_rate

注意注意注意注意 :できれば、データベース・アイテムよりも効率的な Input文を使用してください。

注意注意注意注意 : Formula内で入力パラメータ、データベース・アイテム、グローバル値の値は変更できません。

Oracle FastFormula 1-7

Page 14: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formulaコンポーネントの概要

関数関数関数関数前述したwageの例の Assignment文では、簡単な乗算を使用して wageエレメントの値を計算しています。この他にも、次のように、加算、減算、除算、その他の関数を使用できます。例 :

bonus = GREATEST(days_at_work,163) + bonus_rate

この例の GREATEST関数は、変数 days_at_workの値が 163より大きい場合はこの変数の値を使用し、それ以外の場合は定数 163を使用するように、Oracle FastFormulaに指示します。

変数と定数のデータ型は、値に対する演算子と関数の実行を決定します。たとえば、加算演算子(+)を数値データやテキスト・データに使用し、除算演算子を数値データのみに使用します。

次のように変数を変換する特殊関数があります。

� 数値をテキストに (TO_TEXT)

� 日付をテキストに (TO_TEXT)

� テキストを日付に (TO_DATE)

� テキストを数値に (TO_NUM)

関連項目 :「関数」(1-26)

ネスト式ネスト式ネスト式ネスト式Assignment文では、必要な数の算術演算子と関数を使用できます。関数や計算は 1つの式であり、複数の式をネストして、高度な式を作成できます。計算の実行順序を Oracle FastFormulaに指示するには、次のようにカッコを使用します。例 :

ANNUAL_BONUS = trunc(((((salary_amount/100)*bonus_percentage)/183)*(days_between(end_period_date,start_date) + 1)), 2)

Oracle FastFormulaは、内側のカッコから外側のカッコへ、また左側から右側へ計算するため、計算順序は次のようになります。

1. salary_amount/100

2. 1.* bonus_percentage

3. 2. / 183

4. days_between (end_period_date, start_date)

5. 4. + 1

6. 3. * 5.

1-8 Oracle FastFormulaユーザーズ・ガイド

Page 15: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formulaコンポーネントの概要

7. TRUNC(6.,2)

ここでは、TRUNCは別の関数であることに注意してください。TRUNC関数は、数値を指定した小数点以下の桁数(この場合は 2)に丸めるときに使用します。

条件の組込み条件の組込み条件の組込み条件の組込み前述した簡単なwageエレメントの例では、戻り値は 1つだけで、すべてのアサイメントについて同様に計算されます。しかし、特定の従業員アサイメントのグループ、計算時期およびその他の要因によって、異なる計算が必要な場合があります。このような場合は、Formulaに条件を組み込んで計算を実行します。

単純な条件単純な条件単純な条件単純な条件例 :

IF age < 20 THEN training_allowance = 30ELSE training_allowance = 0

この例では、Formulaは、真偽条件 (この例では age<20)を使用して値をチェックします。条件が真の場合、Formulaは THEN句の後の文を処理します。条件が偽の場合、Formulaはこの文を無視し、ELSE句の後の文を処理します。ELSE句はオプションです。

複雑な条件複雑な条件複雑な条件複雑な条件前述した例の条件では、変数 (age)と定数 (20)を比較しています。次のように、関数や算術演算子を含む式を比較する、より高度な条件を組み込むことができます。例 :

IF (DAYS_BETWEEN(end_period_date, start_date)+1) >= threshold

DAYS_BETWEENは別の関数です。

ここまでに、2つの 比較演算子「小さい (<)」と「以上 (>=)」が出てきました。使用可能なすべての比較演算子の一覧を「Formula参照」に示します。

関連項目 :「Formula参照」(1-16)

WAS DEFAULTEDFormulaには、「WAS DEFAULTED」と呼ばれる特殊なタイプの条件があります。この条件は、入力パラメータやデータベース・アイテムにデフォルト値が設定されているかを調べるときに使用します。デフォルト値を設定するには、次のような Default文を使用します。例 :

DEFAULT FOR hourly_rate IS 3.00

Oracle FastFormula 1-9

Page 16: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formulaコンポーネントの概要

X = hours_worked * hourly_rateIF hourly_rate WAS DEFAULTEDTHEN MESG = 'Warning: hourly rate defaulted'

この例では、データベース・アイテム hourly_rateがNULLの場合に、Formulaはデフォルト値 3.00を使用し、警告メッセージを表示します。

組み合せた条件組み合せた条件組み合せた条件組み合せた条件論理演算子 AND、OR、NOTを使用すると、条件を組み合せることができます。

� ANDは、次のように複数の条件が真のときに処理する場合に使用します。

IF (days_between(end_period_date, start_date) + 1) >= 183AND employee_status = 'FULL TIME'THEN . . .

� ORは、次のように複数の条件のいずれかが真のときに処理する場合に使用します。

IF stock_level < 10000OR order_size >= 1500THEN . . .

� NOTは、次のように条件が偽のときに処理する場合に使用します。

IF NOT (months_between(purchase_date, system_date) => 60THEN . . .

Assignment文の場合と同様、条件のテスト順序を Oracle FastFormulaに指示するには、丸カッコを使用します。デフォルトでは、NOTが優先順位が最も高く、次に AND、ORの順になります。したがって、次に示す条件

IF X = 6 AND NOT Y = 7 OR P >= 6

は次のように解釈されます。

IF (X = 6 AND (NOT Y = 7)) OR P >= 6

カッコの使用方法によって、Formulaの内容はまったく異なります。

提案提案提案提案 :複数の条件を作成する場合は、Formulaの内容をすべてのユーザーが把握できるように、必ず丸カッコを使用してください。

条件に従う複数の処理条件に従う複数の処理条件に従う複数の処理条件に従う複数の処理ここまで、簡単な条件から複雑な条件を組み込む方法を説明してきましたが、必要に応じて高度な Formulaを記述します。簡単な条件の例では、条件の結果として、変数

1-10 Oracle FastFormulaユーザーズ・ガイド

Page 17: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formula記述のテクニック

training_allowanceに値が割り当てられます。値を割り当てるだけでなく、計算を実行したり値を戻す Formulaも記述できます。

たとえば次のように、預金を引き出す前に、銀行口座に十分な預金残高があるかどうかを調べる場合を考えてみます。

INPUTS ARE acct_balance, acct (text), debit_amtIF acct_balance >= debit_amtTHEN ( new_balance = acct_balance - debit_amt RETURN new_balance )ELSE ( message = 'Account No. ' + acct + ' - Insufficient Funds' message2 = 'Account Balance is ' + TO_TEXT(acct_balance) RETURN message, message2 )

このように、1つの Return文で 2つの変数を戻すことができます。

Formula記述のテクニック記述のテクニック記述のテクニック記述のテクニックFormulaを記述するときには、いくつかのテクニックに従って、読みやすく使いやすい、理解しやすい Formulaにする必要があります。

Formulaにコメントを付けるにコメントを付けるにコメントを付けるにコメントを付けるすべてのユーザーが Formulaの実行内容を把握できるように、Formulaにコメントを付けることをお薦めします。

たとえば、Formulaに次のような名称を付けます。

/* Formula: Attendance Bonus */

注意注意注意注意 :条件を使用して複数の処理を実行する場合は、THEN句や ELSE句の後は必ずカッコで囲みます。これらのカッコがない場合、Oracle FastFormulaは、条件に従って最初の文を実行しますが、その他の文は条件を無視して実行します。

Oracle FastFormula 1-11

Page 18: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formula記述のテクニック

さらに Formulaに関する次のような説明を付けます。

/* Use this formula to calculate the annual bonus for clerical staff. Employees receive either a percentage of their salary (if they have been present for 183 or more days in the last six months), or a pro rata bonus (if they have been in attendance for less than 183 days in the last six months). */

Oracle FastFormulaは、コメント・デリミタ「/*」と「*/」の間の内容をすべて無視します。また、Formulaの実行に影響を与えずに、Formulaの任意の場所にコメントを記述できます。

コメントを使用すると、Formulaの実行内容を部分的に説明できます。たとえば、賞与のパーセントの決定内容を説明するには、次のようなコメントを付けます。

INPUTS ARE salary_amount, start_date (date), end_period_date (date), bonus_percentage /* decided at board level */

また、現時点では使用しない式の一部分にコメントを付けることで、その部分を実行しないように指示できます。次の例では、ステータスが「フルタイム」の従業員に賞与を支給するため、5行目に employee_statusが含まれていますが、ステータスの範囲が未定のため、現時点では入力が不要な 5行目をコメント・デリミタで囲みます。

INPUTS ARE salary_amount, start_date (date), end_period_date (date), bonus_percentage /* decided at board level */ /* employee_status (text) */

Formulaを入力するときは、コメントと空白を自由に使用してください。こうすることで、Formulaが読みやすく理解しやすくなり、パフォーマンスや使用メモリー容量への影響もありません。また、特に処理順序を制御するためのカッコを使用する場合は、インデントを使用してください。

また、Formulaの先頭行のコメントは、次のような情報を含めておくことをお薦めします。

� Formula名と Formulaを使用する簡単な目的の説明

� Formulaの入力に関する説明

警告警告警告警告 : コメントの中にコメントを記述しないでください。このような記述コメントの中にコメントを記述しないでください。このような記述コメントの中にコメントを記述しないでください。このような記述コメントの中にコメントを記述しないでください。このような記述をすると、をすると、をすると、をすると、Oracle FastFormulaは構文エラーを返します。は構文エラーを返します。は構文エラーを返します。は構文エラーを返します。

1-12 Oracle FastFormulaユーザーズ・ガイド

Page 19: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formula記述のテクニック

� 更新が必要な変数と定数のリスト

� Formulaの直接結果を受け取るエレメントの入力パラメータに関する説明

� Formulaの計算に関する説明

� Formulaの実行結果が反映される支給項目、控除項目、クレジット情報を管理する事務所の名称、住所、電話番号などの管理情報

� Formulaの修正日付、編集内容の入力者名または変更理由

Alias文文文文システムは、データベース・アイテムを作成すると、これに名称を付けますが、冗長な名称は Formulaで使用するには不便な場合があります。データベース・アイテム(またはグローバル値)の名称自体は短くできませんが、次に示すように、別の短い名称を設定してFormulaで使用します。例 :

ALIAS as_overtime_qualifying_length_of_service AS ot_qls

その Formula内では、この別名(この例では ot_qls)を、実際の変数と同様に使用できます。

Default文文文文入力パラメータやデータベース・アイテムにデフォルト値を設定するには、Default文を使用します。Formulaを実行したときに、データベース・アイテムがNULLの値がない場合や入力パラメータが作成されていない場合は、Formulaは次のようなデフォルト値を使用します。例 :

DEFAULT FOR hourly_rate IS 3.00X = hours_worked * hourly_rateIF hourly_rate WAS DEFAULTED THEN MESG = 'Warning: hourly rate defaulted'

この例では、hourly_rateというデータベース・アイテムにデフォルト値 3.00を設定します。データベースで hourly_rateがNULLの場合に、Formulaはデフォルト値 3.00を使用します。Formulaは、'WAS DEFAULTED'を使用してデフォルト値が使用された部分をチェックし、このような部分を検出した場合は警告メッセージを表示します。

注意注意注意注意 :短い名称のローカル変数にデータベース・アイテムを割り当てるよりも、別名を使用する方が効果的です。

Oracle FastFormula 1-13

Page 20: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formula記述のテクニック

効率的な給与計算効率的な給与計算効率的な給与計算効率的な給与計算 Formulaの記述の記述の記述の記述通常の給与計算に関して、次のような一般的ガイドラインがあります。

� エレメントの Formulaが冗長なほど、処理時間は長くなります。

� 1つのアサイメントに対して入力するエレメントが多いほど、処理時間は長くなります。

� 通常、2つの関連エレメントをそれぞれ短い Formulaに割り当てるよりも、1つのエレメントを長い Formulaに割り当てた方が、処理時間は短くなります。

� エレメントと Formulaの数は、処理効率にはほとんど影響しません。処理時間に影響するのは、アサイメントごとのエレメント数です。

変数名と別名変数名と別名変数名と別名変数名と別名読みやすくするため、短くて理解しやすい名称を使用してください。名称の長さは、パフォーマンスや使用メモリー容量には影響しません。データベース・アイテムやグローバル値の名称が長い場合は、別名を使用します。

Input文文文文可能な限り、データベース・アイテムよりも Input文を使用してください。こうすることで、Formulaの処理効率を大幅に向上できます。入力パラメータ用にデータベースにアクセスする必要がなくなるため、給与計算処理をスピード・アップできます。

効率的でない例

Salary = Salary_annual_salary / 12 RETURN Salary

効率的な例

INPUTS ARE Annual_salarySalary = Annual_salary / 12 RETURN Salary

注意注意注意注意 :データベース・アイテムに値がない場合は、Default文を使用します。「データベース・アイテム」ウィンドウには「必須デフォルト」チェック・ボックスがあります。データベース・アイテムに値がない可能性がある場合は、このチェック・ボックスをチェックします。「データベース・アイテム」ウィンドウを表示するには、「Formula」チェック・ウィンドウの「アイテム表示」ボタンを選択します。

1-14 Oracle FastFormulaユーザーズ・ガイド

Page 21: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formula記述のテクニック

日付リテラル日付リテラル日付リテラル日付リテラルオペランドが変数以外の場合は、TO_DATE関数を使用しないでください。

効率的でない例

Start_date = TO_DATE ( '1992-01-12 00:00:00' )

効率的な例

Start_date = '1992-01-12 00:00:00' (date)

単一式単一式単一式単一式1つの式で表現すると、Formulaが簡潔になり混乱が生じません。

効率的でない例

Temp = Salary / Annualizing_factorTax = Temp * 3

効率的な例

Tax = (Salary / Annualizing_factor) * 3

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム必要以外は、データベース・アイテムを参照しないでください。Formulaで必要と思われるすべてのデータベース・アイテムを、Formulaの先頭行に一括記述すると、実際には、不要なデータベースをコールするため処理速度が遅くなります。

効率的でない例

S = SalaryA = AgeIF S < 20000 THEN

IF A < 20 THENTraining_allowance = 30

ELSETraining_allowance = 0

効率的な例

IF Salary < 20000 THENIF Age < 20 THENTraining_allowance = 30

ELSETraining_allowance = 0

Oracle FastFormula 1-15

Page 22: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formula参照

効率的でない例では、常に年齢がデータベースから取り出されるのに対し、効率的な例では、給与が 20000以下の場合のみ年齢をデータベースから取り出します。

UK HRMSのバランス累計期間のバランス累計期間のバランス累計期間のバランス累計期間Formulaでは、バランス累計期間はできるだけ単一アサイメントにのみ使用してください。複数のアサイメントにはより多くの計算が必要なので、処理時間が長くなります。給与計算での純粋な複数アサイメントの数は、通常はそれほど多くなく、少数存在しているだけなら処理時間全体が顕著に増加する原因にはなりません。ただし、複数アサイメントのバランス累計期間を一般的な Formulaに不要にリンクすると、問題が発生することがあります。

Formula参照参照参照参照Fomulaは、文とコメントから構成されています。文は、Oracle FastFormulaに Formulaの基本情報単位である定数および変数の処理方法を指示します。Formulaの計算を記述する文には、Assignment文と If文の 2つの重要なタイプがあります。これらの文には、算術演算子および関数を使用して、定数および変数を操作する式を入れることができます。使用できる演算子と関数および結果は、定数と変数のデータ型によって異なります。If文では、1 つの式が比較演算子を使用して、別の式と比較され、条件を作成します。条件は、論理演算子を使用して結合できます。

これらの各コンポーネントの使用方法についてはルールがあります。詳細については、コンポーネントの説明を参照してください。

このような Formulaコンポーネントの例をサンプルに示します。

1-16 Oracle FastFormulaユーザーズ・ガイド

Page 23: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

給与計算 Formulaの入力パラメータ

サンプルサンプルサンプルサンプル Formulaのコンポーネントのコンポーネントのコンポーネントのコンポーネント

給与計算給与計算給与計算給与計算 Formulaの入力パラメータの入力パラメータの入力パラメータの入力パラメータ給与計算に使用する Formulaの多くは、必要な情報の一部またはすべてをエレメントの入力パラメータから取得します。

たとえば、「Salary(給与)」という固定処理エレメントを使用して、一部の従業員に給与を支給する場合を考えてみます。「Salary」エレメントには、annual_salaryという入力パラメータがあります。次のように、入力パラメータを 12分割する Formulaが必要です。

INPUTS ARE annual_salarySalary = annual_salary/12 RETURN Salary

Oracle FastFormula 1-17

Page 24: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

給与計算 Formulaの入力パラメータ

Formulaに関連付けているエレメントの入力パラメータにアクセスする場合は、Input文を使用する方法が最も効率的です。ただし、Formulaがその他のエレメントの入力パラメータを使用する場合は、エレメント対応するデータベース・アイテムにアクセスする必要があります。

たとえば、Formulaで annual_salaryという入力パラメータを使用して「Bonus(賞与)」エレメントを計算する場合は、データベース・アイテムを次のように使用します。

IF Salary_annual_salary > 20000THENBonus = bonus_rate * (sales_achieved - sales_threshold)

ここで、データベース・アイテム名が 2つの部分から構成されることに注意してください(入力パラメータ名 (annual_salary)と、その前に付けられたエレメント名 (Salary))。エレメント入力パラメータのデータベース・アイテムの名称は、このルールに従って付けられます。

エレメント入力パラメータの複数入力エレメント入力パラメータの複数入力エレメント入力パラメータの複数入力エレメント入力パラメータの複数入力エレメントを定義するとき、給与期間にエレメントに対して複数の入力が可能です。

たとえば、「Wages(賃金)」のエレメントを使用して、一部の週給制従業員に賃金を支給する場合を考えてみます。「Wages」エレメントには、hours_workedという入力パラメータがあります。この入力パラメータ hours_workedに対して、毎週 5回定期的に入力します。

Wagesを計算するには、1日の勤務時間に、等級レート表から受け取る従業員の標準レートを乗算しますので、Formulaは次のように記述します。

INPUTS ARE hours_workedWages = hours_worked * standard_rateRETURN Wages

給与計算時に、この Formulaが 5回実行され、各入力に対して 1つずつ、全部で 5つの個別の結果値が算出されます。

次に、Input文のかわりにWages_hours_workedというデータベース・アイテムを使用する場合を考えてみます。入力値に対応するデータベース・アイテムは、給与期間内に実行したすべての入力を合計合計合計合計します。

注意注意注意注意 : Input文を使用する場合は、値が NULLになる入力パラメータがないか確認してください。このような入力パラメータがあると、Formulaでエラーが発生することがあります。Default文を使用すると、このような問題を避けることができます。

1-18 Oracle FastFormulaユーザーズ・ガイド

Page 25: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

定数

給与期間の入力パラメータの合計を参照するときにこの機能は大変有用です。ただし、この値が、使用したいのは合計値であるか、よく確認する必要があります。この例では、データベース・アイテムを使用すると間違った結果が返されます。

Wages_hours_workedにより 1つの値が算出されますが、この値は各週の給与期間に 5回入力した合計値合計値合計値合計値です。給与計算時に、Formulaは 5回実行され、各回ごとに週の合計勤務時間を使用して給与を算出します。

数値だけに有効なデータベース・アイテム数値だけに有効なデータベース・アイテム数値だけに有効なデータベース・アイテム数値だけに有効なデータベース・アイテムエレメントに対して複数入力を許可している場合、文字、日付、時間などのデータ型の入力パラメータには、入力値のデータベース・アイテムは作成されません。これは、給与期間中に、このようなタイプの入力値は合計できないからです。合計できるのはデータ型が数値のときだけです。数値の入力パラメータには、次のようなデータ型があります。

� 時間

� 整数

� 通貨

� 番号

デフォルト値、最小値、最大値など、その他のデータベース・アイテムは、数値以外の入力パラメータに対しても作成できます。

定数定数定数定数Formulaで処理したり使用できる情報はすべて、定数または変数です。

定数や変数のデータ型は、その定数や変数が保持できるデータの種類を示します。一般的に、1つの式には、同じデータ型の定数と変数を使用します。

定数は、Formulaで使用する実際の値です。Oracle FastFormulaでは、定数を、変数に保持せずに直接使用します。

定数には、次の 3つのタイプがあります。

� 数値

� テキスト

� 日付

注意注意注意注意 : 1つのエレメントに対して複数入力を許可する場合は、エレメントの入力値に対するデータベース・アイテムの使用に注意してください。データベース・アイテムは、すべての入力の合計値を保持します。この中には、給与計算時に実行した Formulaの中間結果の入力も含まれます。

Oracle FastFormula 1-19

Page 26: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

定数

数値定数数値定数数値定数数値定数数値定数を入力する場合は、引用符を使用しません。負数の前には、(-)記号を付けます。小数点の後に、その数値の小数部を付けることができます。(科学分野のような)指数や浮動小数点の表記法は、使用しないでください。たとえば、22や 10e1.24などは数値定数としては使用できません。数値の中にはコンマや空白は使用できません。したがって、10,000や 10 000.00は、数値定数として使えません。

有効な数値定数の例を次に示します。

� 63

� 3.55

� -2.3

� - 0.33

� - .2

� 10000

テキスト定数テキスト定数テキスト定数テキスト定数テキスト定数は、一重引用符(')で囲みます。テキスト定数には、空白を含むことができます。テキスト定数内の引用符(')は、('')のように引用符を 2回書きます。この表記は二重引用符 (")とは異なることに注意してください。有効なテキスト定数の例を次に示します。

� 'J. Smith'

� 'P O''Donnell'

� '1234'

� 'Manager'

� '12 Union Road'

� 'The Bonus this year is 23%'

日付定数日付定数日付定数日付定数日付定数は、日付を含みます。日付を一重引用符(')で囲み、その後に、丸カッコで(date)と囲みます。日付形式は YYYY-MON-DD HH24:MI:SSまたは DD-MON-YYYYを使用します。異なる言語設定で Formulaをコンパイルする場合は、最初の形式を使用することをお薦めします。

有効な日付定数の例を次に示します。

� '1989-03-12 00:00:00' (date)

� '12-MAR-1989' (date)

1-20 Oracle FastFormulaユーザーズ・ガイド

Page 27: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

変数

変数変数変数変数情報にアクセスする場合は、Formulaに変数を使用します。変数は、頻繁に変更する値を保持できます。

変数が保持できる情報のタイプは、変数のデータ型によって異なります。

� 数値

� テキスト

� 日付

変数の型を指定する必要はありません。Oracle FastFormulaでは、変数の使用方法から型が判断されます。たとえば、ある変数を 'J. Smith'と設定した場合は、テキスト変数であると解釈されます。

また、テキスト文字列に数値を加えるなど、ユーザーが矛盾する演算を行うと、警告が表示されます。

Oracle FastFormulaの変数には、次の 3つの種類があります。

変数の種類は、Formulaが変数を使用する方法を決定します。

ローカル変数ローカル変数ローカル変数ローカル変数ローカル変数は、1つの Formulaだけで使用します。Formula内のローカル変数の値を変更するには、Assignment文を使用してローカル変数に値を割り当てます。

ローカル変数を使用して、Formulaでデータを保存できます。別の計算の実行中にデータを一時的に保持したり、データをアプリケーションに戻すこともできます。

ローカル変数 annual_leaveの例を次に示します。

/* Formula: Annual Leave Formula */IF years_service >= 10THEN

annual_leave = 25ELSE

annual_leave = 20 + FLOOR (years_service/2)RETURN annual_leave

ローカル変数ローカル変数ローカル変数ローカル変数 1つの Formulaでのみ定義する変数。

グローバル変数グローバル変数グローバル変数グローバル変数 任意の Formulaで定義する変数。

データーベース・アイテムデーターベース・アイテムデーターベース・アイテムデーターベース・アイテム アプリケーションのデータベース内に存在するアイテム。

Oracle FastFormula 1-21

Page 28: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

変数

グローバル値グローバル値グローバル値グローバル値グローバル値は、どの Formulaからも参照できます。会社名や、多数の従業員に適用される勤務地手当など、ほとんど変更しないが頻繁に参照する情報の格納には、グローバル値を使用します。グローバル値はデートトラックされるため、前もって変更しておくことが可能です。

Formulaを使用してグローバル値を変更することはできません。グローバル値を変更するには、「グローバル」ウィンドウを使用します。グローバル値は、ビジネス・グループ内のすべての Formulaに対して使用できます。

関連項目 :「グローバル値の定義」(1-104)

グローバル値を使った Formulaを次に示します。

/* Formula: HAZARD ALLOWANCE FORMULA */IF basic_hours > hazard_limitTHEN hazard_allowance = 2.30ELSE hazard_allowance = 2,00RETURN hazard_allowance

この例では、hazard_limitがグローバル値です。従業員の危険手当が増加するポイントを反映するように事前に設定されています。

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテムは、アプリケーションのデータベース内に格納されており、ラベルが付けられています。このラベルはユーザー表には表示されませんが、システムはこのラベルを使用してデータを検索します。

データベース・アイテムには、次のように 2つのタイプがあります。

� 静的データベース・アイテムは、システム定義されています。静的データベース・アイテムには、従業員の性別、生年月日、勤務先および給与期間の開始日と終了日など、標準的な情報が含まれています。

� 動的データベース・アイテムは、ユーザーが次の要素を定義することで生成されます。

� エレメント

� バランス

� 不就業タイプ

� 等級レートと支給スケール・レート

� フレックスフィールド・セグメント

1-22 Oracle FastFormulaユーザーズ・ガイド

Page 29: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

変数

エレメント、支払と入力パラメータ、バランス、不就業タイプ、等級レート、支給スケール・レート、フレックスフィールドのセグメントの名称は、生成されるデータベース・アイテム名の一部となります。こうすることで、「Formula」ウィンドウで使用できるすべてのデータベース・アイテムを表示するときに、必要なデータベース・アイテムを識別できます。

フレックスフィールドのセグメントの定義は、「要求の発行」ウィンドウから「付加フレックスフィールド・データベース・アイテム」を実行するまで、データベース・アイテムになりません。その他の定義は、定義をデータベースに保存した時点でデータベース・アイテムになります。

関連項目 :

「静的データベース・アイテム」(1-52)

「動的データベース・アイテム」(1-64)

データベース・アイテムは、これらを使用するコンテキストに固有のものです。たとえば、hourly_rateというデータベース・アイテムを使用することで、処理中の特定のアサイメントに対して適切な時給を設定します。

グローバル値と同様、データベース・アイテムも、Formulaの中では変更できません。

変数の種類とデータ型を決定するルール変数の種類とデータ型を決定するルール変数の種類とデータ型を決定するルール変数の種類とデータ型を決定するルールFormula内の変数のデータ型と種類を判断するルールを次に示します。

1. 次のように、ユーザーが Input文の中で名称を付けた入力を、変数にできます。

INPUTS ARE salary_amount,start_date (date)frequency (text)

文の中の変数にデータ型を指定しないと、Oracle FastFormulaは、この変数のデータ型を「数値」として解釈します。

2. 変数が入力できない場合、Oracle FastFormulaは、変数が最初に使用されたグローバル値のリストを参照します。変数がリストにある場合、Oracle FastFormulaはリストからデータ型を判断します。

3. リストに変数がない場合、Oracle FastFormulaは、データベース・アイテムのリストを検索します。この場合も同様に、変数がリスト内にあれば、Oracle FastFormulaはデータ型を判断します。

4. グローバル値の中にもデータベース・アイテムの中にも変数がない場合は、Oracle FastFormulaは、その変数をローカル変数として処理します。Oracle FastFormulaは、ユーザーの変数の使用方法から、データ型を判断します。

Oracle FastFormula 1-23

Page 30: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

変数

ただし、変数がグローバル値またはデータベース・アイテムの場合は、Formulaの中の変数の値を変更するとエラーになります。

変数がローカル変数の場合、その変数が Formulaで最初に使用される時点では値が含まれていません。したがって、条件や式の中で変数を使用する前に、変数に値を割り当てる必要があります。値が正常に割り当てられていないと、Formulaを検証または実行しようとした時点で、エラーが発生します。

提案提案提案提案 :エラーを防ぐには、Formula内のローカル変数が最初に現れる部分に、値を割り当ててください。

変数に名称を付ける変数に名称を付ける変数に名称を付ける変数に名称を付ける変数名は、1つ以上のワードから構成されます。複数のワードがある場合は、アンダースコアで結合します。ワードの先頭文字は英文字 (A-Z)である必要がありますが、この後の文字には英数字 (A-Z、0-9)を使用できます。変数名に使用する文字列の最大の長さは、80文字です。

Oracle FastFormulaでは、大文字と小文字を区別しません。したがって、EMPLOYEE_NAMEと Employee_nameは同じ変数として識別します。

次の予約語は、変数名として使用できません。

また、誤って数字として処理される場合があるので、数字のみで構成される単語も使用できません。

データベース・アイテム名やグローバル値名が、Formulaで使用するには長すぎて不都合な場合があります。このような場合は、別の短い名称を設定して Formulaで使用できます。別名の設定には、Alias文を使用します。

関連項目 :「文」(1-44)

ALIAS AND ARE AS

DEFAULT DEFAULTED ELSE EXECUTE

FOR IF INPUTS IS

NOT OR RETURN THEN

USING WAS

1-24 Oracle FastFormulaユーザーズ・ガイド

Page 31: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

算術演算子

式式式式式は、定数と変数を算術演算(+, -, *, /)と関数で結び特定のデータ型の値を戻します。たとえば、式 (3 + 2)は 5を戻す式のため、データ型は数値です。

式は、次のようなフォーマットで表現されます。

SUBEXPRESSION [operator SUBEXPRESSION ...]

つまり、複数の 'subexpressions'(部分式)を組合せて 1つの式を構成します。たとえば、部分式 (3 + 2)とMONTHS_BETWEEN(start_date, end_date)を組合せると次のような式になります。

(3 + 2) + MONTHS_BETWEEN(start_date, end_date)

また、次の例のように関数の中で式を使用することもできます。

salary = GREATEST(minimum_wage, (hourly_rate * hours_worked))

式のデータ型式のデータ型式のデータ型式のデータ型式のデータ型を判断するためのルールは簡単です。式のオペランドは通常同じデータ型を使用し、通常は、これが式全体のデータ型になります。たとえば次の式では、すべてのオペランドは数値のため、式自身も数値になります。

GREATEST(minimum_wage, (hourly_rate * hours_worked))

ただし、次のような例外もあります。

DAYS_BETWEEN(date1, date2)MONTHS_BETWEEN(date1, date2)

これらの式には日付型のオペランドがありますが、戻り値は数値型です。

したがって、

4 + days_between(start_date, todays_date)

この式は、数値結果を戻します。

算術演算子算術演算子算術演算子算術演算子変数と定数の処理方法を決める算術演算子を式に含めることができます。たとえば、演算子「+」は、2つの項目を加算することを示します。

除算、減算、乗算演算子は、数値オペランド以外には使用できません。オペランドには、変数、定数、部分式があります。次の場合は、Formulaエラーが発生します。

� 減算結果が、負数として大きすぎる。

� 乗算結果が大きすぎる。

Oracle FastFormula 1-25

Page 32: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

� 除算の第 2オペランドが 0(ゼロ )になる。

いずれの場合も、Formulaとして適切かどうかは、Oracleデータベースに設定された限界値によって決まります。

加算演算子は、数値だけでなくテキスト型のオペランドにも使用できます。演算結果が 240文字を超える場合は、Formulaエラーが発生します。

テキスト定数には、二重引用符 (")でなく一重引用符 (') を使用します。たとえば、

string1 = 'will 'result_string = 'Pigs ' + string1 + 'fly'

は、ローカル変数 result_stringを 'Pigs will fly'に設定します。

関数関数関数関数Oracle FastFormulaには、データをさまざまな方法で処理する関数が用意されています。関数によっては、1つのデータ型しか処理しないもの、2つのデータ型を処理できるもの、3つのデータ型をすべて処理するものがあります。

さまざまな関数について、3つのデータ型およびデータ型を変換する関数に分類して説明します。式が戻す演算結果のデータ型が、オペランドのデータ型と異なる説明も後述します。

一部の関数では、データが Oracle Applications表から検索されます。このような関数については、「値を表から検索する関数」および「有給休暇タイプ Formula用の関数」の項で説明します。一部の関数では、SQL*Plusでグローバル変数を設定および使用できます。このような関数については、「グローバル変数を設定および取得する関数」の項で説明します。

次に、関数の一般的な形式を示します。

NAME OF FUNCTION(operand, operand, . .)

算術演算子の場合と同様、関数のオペランドにも、変数、定数、完全式を使用できます。オペランドがテキスト文字列である場合は、引用符で囲む必要があります。

テキスト関数テキスト関数テキスト関数テキスト関数

DEBUGDEBUG(expr)

この関数は、文字列を受け取り、DBMS_OUTPUT文を使用して文字列をコンソールに出力します。この関数は、新しい Formulaをテストするときに使用して、その処理を追跡し、エラーになる場所を特定します。

1-26 Oracle FastFormulaユーザーズ・ガイド

Page 33: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

CHRCHR(n)

CHR関数は、データベース・キャラクタ・セット内の数値オペランド nと同等のバイナリ値を持つ文字を戻します。

/* CHR (10) used to add a newline to the end of REPORT_TEXT2. */ REPORT_TEXT2 = 'Warning the Transaction Limit has been exceeded'

GREATESTGREATEST(expr, expr[,expr] . . .)

GREATEST_OF(expr, expr[,expr] . . .)

GREATEST関数は、すべてのテキスト文字列オペランドの値を比較します。この関数は、アルファベット順の最後のオペランドの値を戻します。基準に適合するオペランドが複数ある場合、Oracle FastFormulaは、この中の最初のオペランドを戻します。

INITCAPINITCAP(expr)

INITCAP関数は、各単語の最初の文字を大文字にし、その他の文字をすべて小文字にした式 exprを戻します。単語は、空白または英数字以外の文字で区切られます。

INSTRINSTR(expr1,expr2[,n[,m]])

INSTRは、expr1の n番目の文字から開始して、expr2のm番目のオカレンスを検索し、このオカレンスの 1文字目にあたる expr1内の文字位置を戻します。nが負の場合は、Oracle FastFormulaにより、expr1の最後から後方にカウントおよび検索されます。mの値は正である必要があります。nとmのデフォルト値はどちらも 1で、Oracle FastFormulaが expr1の最初の文字から expr2の最初のオカレンスの検索を開始することを意味します。戻り値は、nの値にかかわらず、expr1の先頭からの相対であり、文字数で表されます。検索に失敗した場合(expr1の n番目の文字より後に expr2がm回見つからなかった場合)、戻り値は 0です。

INSTRBINSTRB(expr1,expr2[,n[,m]])

nと戻り値が文字数ではなくバイト数で表されることを除き、INSTRと同じです。単一バイトのデータベース・キャラクタ・セットでは、INSTRBは INSTRと同等です。

Oracle FastFormula 1-27

Page 34: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

LEASTLEAST(expr, expr[,expr] . . .)

LEAST_OF(expr, expr[,expr] . . .)

LEAST関数は、すべてのテキスト文字列オペランドの値を比較します。この関数は、アルファベット順の最初のオペランドの値を戻します。基準に適合するオペランドが複数ある場合、Oracle FastFormulaは、この中の最初のオペランドを戻します。

LENGTHLENGTH(expr)

LENGTH関数は、テキスト文字列オペランド exprの文字数を戻します。

LENGTHBLENGTHB(char)

LENGTHB関数は、文字列内の charの長さを戻します。charのデータ型が CHARの場合、長さには末尾の空白もすべて含まれます。charが NULLの場合、この関数は NULLを戻します。

LOWERLOWER(expr)

LOWER関数は、文字列オペランド exprをすべて小文字にして戻します。戻り値のデータ型は、引数 exprと同じです。

LPAD(expr, n[,pad])

LPAD関数は、テキスト文字列オペランド exprの左に、長さが nになるまで pad内の文字シーケンスをパディングして、戻します。padのデフォルトは空白です。exprが nより長い場合、LPADでは、nに合せて exprの一部が戻されます。

例 :

/* A is set to 'XYXYXhello' */A = LPAD ('hello, 10, 'XY')

/* A is set to 'hell' */

注意注意注意注意 :この関数結果のデータ型は「数値」です。

1-28 Oracle FastFormulaユーザーズ・ガイド

Page 35: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

A = LPAD ('hello', 4 )

LTRIM(expr[,set])

LTRIM関数は、テキスト文字列オペランド exprの一番左から、set内の文字をすべて削除して戻します。setのデフォルトは空白です。set内に exprの一番左の文字がない場合は、exprが戻されます。

例 :

/* A is set to 'def' */A = LTRIM ('abcdef','abc')

/* A is set to 'abcdef' */A = LTRIM ('abcdef','bc')

REPLACE(expr, search_string[,replacement_string])

REPLACE関数は、search_stringのすべてのオカレンスを replacement_stringで置換したテキスト文字列オペランド exprを戻します。replacement_stringが省略されているか NULLの場合は、search_stringのすべてのオカレンスが削除されます。search_stringが NULLの場合は、exprが戻されます。REPLACEを使用して、ある文字列を別の文字列で置換したり、文字列を削除したりできます。

例 :

SELECT REPLACE ('JACK and JUE','J','BL') "Changes"FROM DUAL

Changes-------BLACK and BLUE

RPAD(expr, n[,pad])

RPAD関数は、テキスト文字列オペランド exprの右に、長さが nになるまで pad内の文字シーケンスをパディングして、戻します。padのデフォルトは空白です。exprが nより長い場合、RPADでは、nに合せて exprの一部が戻されます。

例 :

/* A is set to 'helloXYXYX' */A = RPAD ('hello, 10, 'XY')

Oracle FastFormula 1-29

Page 36: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

/* A is set to 'hell' */A = RPAD ('hello', 4 )

RTRIM(expr[,set])

RTRIM関数は、テキスト文字列オペランド exprの一番右から、set内の文字をすべて削除して戻します。setのデフォルトは空白です。set内に exprの一番右の文字がない場合は、exprが戻されます。

例 :

/* A is set to 'abc' */A = RTRIM ('abcdef','def')

/* A is set to 'abcdef' */A = RTRIM ('abcdef','bc')

SUBSTRINGSUBSTR(expr, m[,n])

SUBSTRING(expr, m[,n])

SUBSTRING関数は、テキスト文字列オペランド exprのm文字から始まる n文字の長さの部分文字列を戻します。第 3オペランドを省略した場合、部分文字列は、exprのm文字から最後までの文字列になります。

提案提案提案提案 :次の例のように、部分文字列の開始位置を指定する前に、必ず文字列長を確認してください。

/* Check that the tax code starts with GG */IF length(Tax_code) <= 2THEN

(message = 'Tax code is too short'RETURN message)

IF substr( Tax_code, 1, 2) = 'GG' THEN ...

注意注意注意注意 :第 1オペランドは、テキスト・オペランドです。第 2、第 3オペランドは数値オペランドです。この関数結果のデータ型は「テキスト」です。

1-30 Oracle FastFormulaユーザーズ・ガイド

Page 37: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

また、Tax_codeが少なくとも 2つの文字 'GG'で始まるかどうかをチェックするには、次のように記述します。

IF Tax_code LIKE 'GG%' THEN ...

SUBSTRB(expr, m [,n])

引数mと nが文字数ではなくバイト数で表現されることを除き、SUBSTRと同じです。単一バイトのデータベース・キャラクタ・セットでは、SUBSTRBは SUBSTRと同等です。

TRANSLATE(expr, from, to)

TRANSLATE関数は、from内の各文字のすべてのオカレンスを to内の対応する文字で置換したテキスト文字列オペランド exprを戻します。expr内の文字のうち、from内にない文字は置換されません。引数 fromには、toより多くの文字を含めることができます。この場合、fromの末尾にある余分な文字には、対応する文字が to内にありません。これらの余分な文字が rexp内にある場合は、その文字が戻り値から削除されます。Oracle FastFormulaでは、空の文字列はNULLとして解釈され、この関数の引数が NULLの場合は NULLが戻されます。

TRIMTRIM(trim_characterFROM trim_source)

TRIM関数では、文字列から先頭または末尾の文字(あるいはその両方)を切り捨てることができます。trim_characterまたは trim_sourceが文字リテラルの場合は、一重引用符で囲む必要があります。LEADINGまたは TRAILINGを指定して、先頭または末尾の文字を削除できます。どちらも指定しないと、trim_characterと等しい先頭と末尾両方の文字が削除されます。

UPPERUPPER(expr)

UPPER関数は、テキスト文字列を大文字に変換します。

Oracle FastFormula 1-31

Page 38: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

数値関数数値関数数値関数数値関数

ABSABS(n)

ABS関数は、数値オペランド nの絶対値を示す正数を戻します。

オペランドの値が正の場合は、そのままの値を戻します。オペランドが負の場合は、値の符号を反転して正の値を戻します。

例 :

ABS (-17)returns 17

FLOORFLOOR(n)

FLOOR関数は、数値オペランド nの整数部を戻します。

オペランドの値に、小数点以下の数値が含まれている場合は、小数点以下を切り捨てて整数を戻します。

例 :

FLOOR(35.455)returns 35

GREATESTGREATEST(n, n[,n] . . .)

GREATEST_OF(n, n[,n] . . .)

GREATEST関数は、すべてのオペランドを比較して最大値を戻します。

LEASTLEAST(n, n[,n] . . .)

LEAST_OF(n, n[,n] . . .)

LEAST関数は、すべてのオペランドを比較して最小値を戻します。

POWERPOWER(m,n)

mの乗を戻します。基数mと指数 nには任意の数値を指定できますが、mが負の場合は、nが整数である必要があります。

1-32 Oracle FastFormulaユーザーズ・ガイド

Page 39: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

ROUNDROUND(n[, m])

ROUND関数は、mのフォーマットに応じて、数値 nを小数点以下m桁および日付に四捨五入します。数値の場合、第 1オペランドは Oracle FastFormulaが四捨五入する値、第 2オペランドは Oracle FastFormulaが四捨五入する位置です。日付の場合、ROUNDは、Yearや Dayなどのmのフォーマット・モデルで指定された単位に四捨五入した nを戻します。指定できる有効なフォーマットの詳細は、『Oracle SQLリファレンス』を参照してください。

例 :

ROUND(2.3401, 2)returns 2.34

ROUND (2.3461, 2)returns 2.35

ROUND (TO_DATE('27-OCT-1992', 'DD-MON-YYYY'), 'YEAR') returns 01-JAN-1993

ROUNDUPROUNDUP(n[,m])

ROUND_UP(n[, m])

ROUNDUP関数は、数値 nを小数部m桁で切り上げます。第 1オペランドは Oracle FastFormulaが切り上げる値、第 2オペランドは切り上げる位置を示します。丸め位置より下位の桁が 0(ゼロ )の場合、値は変わりません。丸め位置より下位の桁が 0(ゼロ )以外の場合、丸め位置の値は 1だけ大きくなります。

例 :

ROUND_UP(2.3401, 2)returns 2.35

ROUND_UP(2.3400, 2)returns 2.34.

TRUNCTRUNC( n [, m ])

TRUNCATE(n[, m])

TRUNC関数は、数値 nを小数点以下m桁に切り捨てます。第 1オペランドは切り捨てる値、第 2オペランドは切捨て位置です。TRUNCは、mのフォーマット・モデルで指定された単位に切り捨てた日の時刻部分を持つ nも戻します。mを省略した場合、dは最も近い日付に切り捨てられます。デフォルト・モデル 'DD'では、切り捨てた後の日付の深夜 0時が戻されます。

Oracle FastFormulaは、指定した丸め位置より下位の桁をすべて切り捨てます。

例 :

Oracle FastFormula 1-33

Page 40: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

TRUNC(2.3401, 2)returns 2.34.

TRUNC(TO_DATE('27-OCT-1992', 'DD-MON-YYYY'), 'YEAR') returns 01-JAN-1992

日付関数日付関数日付関数日付関数

ADD_DAYSADD_DAYS(date, n)

ADD_DAYS関数は、日付に日数を加算します。結果として、カレンダに沿った日付が得られます。

例 :

ADD_DAYS ('30-DEC-1990' (date), 6)returns 5 JAN 1991

ADD_MONTHSADD_MONTHS(date, n)

ADD_MONTHS関数は、日付に月数を加算します。結果として、カレンダに沿った日付が得られます。

ADD_YEARSADD_YEARS(date, n)

ADD_YEARS関数は、日付に年数を加算します。結果として、カレンダに沿った日付が得られます。

GREATESTGREATEST(date1, date2[,date3]. . .)

GREATEST関数は、すべてのオペランドを比較して最後の日付を戻します。

注意注意注意注意 : Oracle FastFormulaは、数値 nの小数部を無視します。

注意注意注意注意 : Oracle FastFormulaは、数値 nの小数部を無視します。

注意注意注意注意 : Oracle FastFormulaは、数値 nの小数部を無視します。

1-34 Oracle FastFormulaユーザーズ・ガイド

Page 41: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

LAST_DAYLAST_DAY(d)

LAST_DAY関数は、を含む月の最終日の日付を戻します。この関数を使用して、現在の月の残りの日数を判断できます。

LEASTLEAST(date1, date2[,date3] . . .)

LEAST関数は、すべてのオペランドを比較して最初の日付を戻します。

DAYS_BETWEENDAYS_BETWEEN(date1, date2)

DAYS_BETWEEN関数は、2つの日付の間の日数を戻します。第 1オペランドの日付の方が後の場合、結果は正の値になります。第 1オペランドの日付の方が先の場合、結果は負の値になります。この関数でも、実際のカレンダに沿った戻り値が得られます。

例 :

DAYS_BETWEEN('1995/06/27 00:00:00' (date), '1995/07/03 00:00:00' (date))returns -5

MONTHS_BETWEENMONTHS_BETWEEN(date1, date2)

MONTHS_BETWEEN関数は、2つの日付の間の月数を戻します。第 1オペランドの日付の方が後の場合、結果は正の値になります。第 1オペランドの日付の方が先の場合、結果は負の値になります。この関数でも、実際のカレンダに沿った戻り値が得られます。

結果が月数として割り切れない(日数の余りが出る)場合、日数の部分は小数表示されます。

NEW_TIMENEW_TIME(d, zl,z2)

注意注意注意注意 :結果のデータ型は、「数値」になります。

注意注意注意注意 :結果のデータ型は、「数値」になります。

Oracle FastFormula 1-35

Page 42: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

ゾーン z1の日時がの時点のゾーン z2での日時を戻します。引数 z1と z2には、次のいずれかのテキスト文字列を指定できます。

NEXT_DAYNEXT_DAY(d, expr)

NEXT_DAY関数は、exprで指定された曜日の、日付 dより後の最初の日付を戻します。引数 exprには、セッションの日付言語で表した曜日を指定する必要があります。戻り値の時、分および秒コンポーネントは、引数 dと同じです。

データ変換関数データ変換関数データ変換関数データ変換関数データ変換関数は、あるデータ型から別のデータ型へ変換するときに使用します。たとえば、給与を示す数値を戻す式があり、この値を印刷メッセージ(文字の値)に含める場合があります。メッセージの一部として数値を印刷するには、TO_TEXT関数を使用して、給与の値を数値から文字の値に変換します。

CONVERT(expr, dest_char_set[,source_char_set])

CONVERT関数は、あるキャラクタ・セットから別のキャラクタ・セットに文字列を変換します。expr引数は、変換される値です。dest_char_set引数は、exprの変換先のキャラクタ・セット名です。source_char_set引数は、exprがデータベースに格納されるときに使用されたキャラクタ・セットの名前です。デフォルト値はデータベース・キャラクタ・セットです。

ASTまたは ADT 大西洋標準時または夏時間

BSTまたは BDT ベーリング標準時または夏時間

CSTまたは CDT 中央標準時または夏時間

ESTまたは EDT 東部標準時または夏時間

GMT グリニッジ標準時

HSTまたは HDT アラスカ・ハワイ標準時または夏時間

MSTまたはMDT 山岳部標準時または夏時間

NST ニューファンドランド標準時

PSTまたは PDT 太平洋標準時または夏時間

YSTまたは YDT ユーコン標準時または夏時間

1-36 Oracle FastFormulaユーザーズ・ガイド

Page 43: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

INSTR(expr1,expr2[,n[,m]])

INSTRは、expr1の n番目の文字から開始して、expr2のm番目のオカレンスを検索し、このオカレンスの 1文字目にあたる expr1内の文字位置を戻します。nが負の場合は、Oracle FastFormulaにより、後方にカウントおよび検索されます。

NUM_TO_CHARNUM_TO_CHAR(n, format)

指定されたフォーマットで、数値 nのデータ型を「数値」から「テキスト」に変換します。この関数は、SQL TO_CHAR関数と同じです。

NUM_TO_CHAR(amount, '$9,990.99')

この関数は、最初のドル・マーク ($)、3桁ごとのコンマ、2桁の小数部の付いた形で、値を戻します。指定可能な有効数値フォーマットの完全なリストは、『SQL言語リファレンス・マニュアル』を参照してください。

TO_DATETO_DATE (expr[, format])

式 exprのデータ型を、「テキスト」から「日付」に変換します。フォーマットを指定しない場合は、「テキスト」型の式のフォーマットを 'YYYY/MM/DD HH24:MI:SS'にする必要があります。また、日と年の部分は、次のように数字で記述します。

/* legal */date_1 = TO_DATE ('12 January 89', 'DD Month YY')/* illegal */date_1 = TO_DATE ('12 January Nineteen-Eighty-Nine',

'DD Month Year')

date_1 = '1989/01/12 00:00:00'(date)

注意注意注意注意 :定数から日付変数を割り当てる方が、次のようにかなり効果的です。

注意注意注意注意 :フォーマットを指定しない場合は、「テキスト」型の式のフォーマットを YYYY/MM/DD HH24:MI:SSまたは DD-MON-YYYYにする必要があります。

Oracle FastFormula 1-37

Page 44: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

TO_NUMBERTO_NUM(expr)

TO_NUMBER(expr)

式 exprのデータ型を、「テキスト」から「数値」に変換します。有効な数値に変換できる式を指定する必要があります。たとえば‘Type 24'という式は変換できませんが、‘1234'というテキスト式は変換できます。10進値の場合は、'4.5'のように、常に小数点としてピリオドを使用する必要があります。

TO_TEXTTO_TEXT(n) TO_TEXT (date1 [, format])

TO_CHAR(n) TO_CHAR(date1 [, format])

DATE_TO_TEXT(n) (date1 [, format])

TO_TEXT関数は、次の変換を行います。

� 数値 nのデータ型を「数値」から「テキスト」に変換します。デフォルトの数値フォーマットは、'4.5'のように、ピリオドの小数点を持ちます。

� 日付 date1のデータ型を「日付」から「テキスト」に変換します。オプションの formatには、'DD-MM-YYYY'のようなテキスト文字列を指定する必要があります。デフォルトのフォーマットは 'YYYY/MM/DD HH24:MI:SS'です。

例 :

birthdate = '21-JAN-1960' (date) mesg = 'Birthdate is: ' + TO_CHAR (birthdate)/* sets mesg to 'Birthdate is: 1960/01/21 00:00:00' */ mesg = 'Birthdate is: ' + TO_CHAR (birthdate, 'DD-MON-YY')/* sets mesg to 'Birthdate is: 21-JAN-60' */ mesg = 'Birthdate is: ' + TO_CHAR (birthdate,

'DD Month Year')/* sets mesg to 'Birthdate is: 21 January Nineteen-Sixty' */

値を表から検索する関数値を表から検索する関数値を表から検索する関数値を表から検索する関数

GET_LOOKUP_ MEANINGGET_LOOKUP_MEANING(lookup_type , lookup_code)

1-38 Oracle FastFormulaユーザーズ・ガイド

Page 45: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

Oracle FastFormulaは、GET_LOOKUP_MEANING関数を使用して参照コードの内容を解釈します。この関数は、参照を基にした任意の付加フレックスフィールドや開発者定義のフレックスフィールドの項目に使用できます。

例 :

GET_LOOKUP_MEANING ('ETH_TYPE', PEOPLE_GB_ETHNIC_ORIGIN)

GET_TABLE_VALUEGET_TABLE_VALUE(table_name, column_name, row_value[,effective date])

GET_TABLE_VALUE関数は、ユーザー定義表のセルの値を戻します。セルを識別するために、3つのオペランド (table_name、column_name、row_value)を必ず指定してください。日付オペランドは、オプションです。日付を指定しない場合、この関数は、有効日のセルの値を戻します。

この関数は、ユーザー表検証 Formulaや QuickPaint Formulaでは使用できません。

例 :

GET_TABLE_VALUE('WAGE RATES', 'Wage Rate', Rate_Code)

RAISE_ERRORRAISE_ERROR(application_ID, message name)

この関数では、Formula内から関数エラー・メッセージを生成できます。アプリケーションIDと、生成する Oracle Applicationsエラー・メッセージmessage_nameを受け取ります。

例 :

ERROR = RAISE_ERROR(800, 'error_name')

有給休暇タイプ有給休暇タイプ有給休暇タイプ有給休暇タイプ Formula用の関数用の関数用の関数用の関数標準の FastFormula関数に加えて、有給休暇 Formulaと繰越 Formulaに便利な次の関数があります。

CALCULATE_PAYROLL_PERIODSこの関数には、パラメータがありません。給与 IDコンテキストを使用します。その給与計算について、ある年の給与期間数を計算し、グローバル変数PAYROLL_YEAR_NUMBER_OF_PERIODSにその値を設定します。たとえば、この関数は、カレンダ月の給与計算についてグローバル変数を 12に設定します。

例 :

E = CALCULATE_PAYROLL_PERIODS

Oracle FastFormula 1-39

Page 46: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

GET_ABSENCEGET_ABSENCE(start date, calculation date)

この関数は、2つの日付間の有給休暇付与プランに計上される不就業の合計日数を計算します。次のような不就業がすべてカウントされます。

� 開始日と終了日がある

� 入力で与えられた 2つの日付またはその間に開始する

例 :

TOTAL_ABSENCE = GET_ABSENCE('01-JAN-1999'(date), '31-DEC-1999'(date))

GET_CARRY_OVERGET_CARRY_OVER(start date, calculation date)

この関数は、2つの入力日付またはその間に有効日のある繰越エレメント・エントリに記録されている日数または時間数を戻します。これらの日付間に有効なエレメント・エントリが複数ある場合は、時間数または日数が合計されます。

繰越エレメント・エントリには有効期限もあり、使用されていない繰越は、その有効期限を過ぎると失われます。計算日(calculation date)が有効期限より後の場合、関数は、開始日(start date)と計算日の間の不就業をチェックします。従業員が取得した不就業を合計すると繰越日数になる場合は、失効する前にすべて使用されたので、関数は合計繰越日数を戻します。不就業の合計が繰越より少ない場合、関数は合計不就業時間を戻し、残りの繰越は失われます。

たとえば、繰越が 10日で、有効期限までに取得された不就業が 6日の場合、関数は 6を戻します。残りの 4日の繰越は失効し、失われます。

GET_OTHER_NET_CONTRIBUTIONGET_OTHER_NET_CONTRIBUTION(start date, calculation date)

この関数は、2つの日付間にある不就業または繰越以外の合計日数を計算します。「計算ルール」ウィンドウに追加されたすべてのエレメントのエレメント・エントリを検索します。2つの入力日付またはその間に有効日のあるすべてのエントリの日付または時間が合計されます。

GET_PAYROLL_PERIODGET_PAYROLL_PERIOD(date)

この関数は、入力日付を含む給与期間を判断し、開始日、終了日および期間番号を含むグローバル変数を設定します。正常に終了した場合は 0を戻し、そうでない場合はエラーを戻します。

1-40 Oracle FastFormulaユーザーズ・ガイド

Page 47: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

次の例は、この関数を使用した後、GET_DATEおよび GET_NUMBER関数を使用して、グローバル変数に設定した値を取得する方法を示しています。

E = GET_PAYROLL_PERIOD(Calculation_date)Calculation_Period_SD = GET_DATE('PAYROLL_PERIOD_START_DATE')Calculation_Period_ED = GET_DATE('PAYROLL_PERIOD_END_DATE')Calculation_Period_PNUM = GET_NUMBER('PAYROLL_PERIOD_NUMBER')

GET_ACCRUAL_BANDGET_ACCRUAL_BAND(number)

この関数は、指定された勤続期間に該当する有給休暇付与期間を判断します。その付与期間の ANNUAL_RATE、UPPER_LIMITおよび CEILING値を含むグローバル変数を設定します。ANNUAL_RATEは、この有給休暇期間に取得する必要のある量です。UPPER_LIMITは、従業員が次の有給休暇付与期間に進むために経過する必要のある勤続期間です。CEILINGは、従業員が取得できる最大の時間数または日数です。この関数は、正常に終了した場合は 0を戻し、そうでない場合はエラーを戻します。

次の例は、この関数を使用した後、GET_NUMBER関数を使用して、グローバル変数に設定した値を取得する方法を示しています。

IF (GET_ACCRUAL_BAND(Years_Service) = 0 THEN(Annual_Rate = GET_NUMBER('ANNUAL_RATE')Upper_Limit = GET_NUMBER('UPPER_LIMIT')Ceiling = GET_NUMBER('CEILING')ELSE( ... [processing for error] ....))

GET_PERIOD_DATESGET_PERIOD_DATES(date1, unit, date2, number)

この関数は、unitの入力と numberで指定された長さ(2か月など)の期間の開始日と終了日を判断します。有効な unitは、D(日)、M(月)およびW(週)です。期間は date1を含み、date2からの(または date2から溯って)単位期間の倍数である日付に開始します。

この関数は、グローバル変数 PERIOD_START_DATEと PERIOD_END_DATEに値を移入します。正常に終了した場合は 0を戻し、そうでない場合はエラーを戻します。

例 :

Error = GET_PERIOD_DATES('1-FEB-1999'(date), 'M', '15-DEC-1998'(date), 1)

この例は、PERIOD_START_DATEに 15-JAN-1999を移入し、PERIOD_END_DATEに 14-FEB-1999を移入します。

Oracle FastFormula 1-41

Page 48: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

date2より前に開始する期間の例 :

Error = GET_PERIOD_DATES('1-FEB-1999'(date), 'M', '15-APR-1999'(date), 2)

この例は、PERIOD_START_DATEに 15-JAN-1999を移入し、PERIOD_END_DATEに 14-MAR-1999を移入します。

GET_ASSIGNMENT_STATUSGET_ASSIGNMENT_STATUS(date)

この関数は、指定された日付のアサイメント状況を判断します。グローバル変数ASSIGNMENT_EFFECTIVE_SD、ASSIGNMENT_EFFECTIVE_EDおよびASSIGNMENT_SYSTEM_STATUSに値を移入します。正常に終了した場合は 0を戻し、そうでない場合はエラーを戻します。

例 :

ERROR = GET_ASSIGNMENT_STATUS('01-JAN-1999'(date))

PUT_MESSAGEPUT_MESSAGE(expr)

この関数は、「有給休暇」フォームによって Formulaの最後に出力されるスタックにメッセージを追加します。

例 :

E = PUT_MESSAGE('The assignment is not yet eligible for accrual')

Formulaをコールする関数をコールする関数をコールする関数をコールする関数これらの関数では、別の Formulaを 1回またはループでコールできます。これらの関数では、すべてのコンテキストが有給休暇 Formulaタイプで使用できる必要があります。

CALL_FORMULACALL_FORMULA(formula name)

この関数は、入力と出力のない、指定された Formulaを実行します。

LOOP_CONTROLLOOP_CONTROL(formula name)

この関数は、別の Formulaを繰り返しコールします。コールされる Formulaには、戻りパラメータ 'CONTINUE_LOOP'が必要です。ループは、関数が CONTINUE_LOOP内に 'Y'

1-42 Oracle FastFormulaユーザーズ・ガイド

Page 49: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数

以外の値を検出するまで続きます。'N'が検出されると、関数は 0(成功)を戻します。別の値を検出した場合は、1(エラー)を戻します。

グローバル変数を設定および取得する関数グローバル変数を設定および取得する関数グローバル変数を設定および取得する関数グローバル変数を設定および取得する関数次の関数を使用して、Formula内から SQL*Plusのグローバル変数を設定および使用できます。

SET_TEXT, SET_NUMBER, SET_DATESET_TEXT(variable name, value)

SET_NUMBER(variable name, value)

SET_DATE(variable name, value)

これらの関数は、グローバル変数名および設定する値を受け取ります。グローバル変数が存在するかどうかを判断し、存在しない場合は新規グローバル変数を作成します。正常に終了した場合は 0を戻し、正常に終了しなかった場合は 1を戻します。

例 :

E = SET_NUMBER('UPPER_LIMT', 0)E = SET_DATE('CONTINUOUS_SERVICE_DATE', service_start_date)

GET_TEXT, GET_NUMBER, GET_DATEGET_TEXT(variable name)

GET_NUMBER(variable name)

GET_DATE(variable name)

これらの関数は、グローバル変数名を受け取り、その値を戻します。グローバル変数が見つからない場合は、NULLを戻します。

例 :

Calculation_Period_SD = GET_DATE('PAYROLL_PERIOD_START_DATE')

CLEAR_GLOBALSこの関数は、SET_TEXT、SET_NUMBERおよび SET_DATEを使用して設定されたすべてのグローバル変数の値をNULLに設定します。入力はありません。正常に終了した場合は 0を戻し、正常に終了しなかった場合はエラーを戻します。

Oracle FastFormula 1-43

Page 50: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

コメント

REMOVE_GLOBALSこの関数は、すべてのグローバル変数を削除します。入力はありません。正常に終了した場合は 0を戻し、正常に終了しなかった場合はエラーを戻します。

ISNULLISNULL(variable name)

テキスト、数値または日付値がNULLかどうかをテストする 3つの関数のセットです。値がNULLの場合は Yを戻し、それ以外の場合は Nを戻します。

例 :

IF IS_NULL(VARIABLE_NAME) = 'Y' THENERROR = SET_NUMBER(VARIABLE_NAME, 0)

コメントコメントコメントコメント1つの Formulaに、任意の数のコメントを含めることができます。また、コメントは、Formula内に自由に配置できます。

コメントはスラッシュとアスタリスク(/*)で始まり、アスタリスクとスラッシュ(*/)で終わります。Oracle FastFormulaは、このようなコメント・デリミタの付いたテキストをすべて無視します。

文文文文文は、Oracle FastFormulaが実行する命令です。次のようにユーザーが使用できる文は 6種類あります。

� Alias文

� Assignment文

� Default文

� If文

� Input文

� Return文

警告警告警告警告 : コメントの中にコメントを記述しないでください。このような記述コメントの中にコメントを記述しないでください。このような記述コメントの中にコメントを記述しないでください。このような記述コメントの中にコメントを記述しないでください。このような記述をすると、をすると、をすると、をすると、Oracle FastFormulaは構文エラーを返します。は構文エラーを返します。は構文エラーを返します。は構文エラーを返します。

1-44 Oracle FastFormulaユーザーズ・ガイド

Page 51: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

If文の中に、Assignment文、Return文、ネストした If文を含めることができるため、高度な Formulaを作成できます。

文の順序文の順序文の順序文の順序1. Alias文(使用する場合)

2. Default文(使用する場合)

3. Input文(使用する場合)

4. その他の文

Alias文文文文Alias文の構文を次に示します。

ALIAS varname1 AS varname2

ここでは、varname1は既存のデータベース・アイテムまたはグローバル値です。varname2は、システムにはない、または Formulaで以前に使用したことがない一意の名称です。

システム内の既存の変数に対して別名を定義するには、Alias文を使用します。データベース・アイテムとグローバル値に対して、別名を宣言できます。

Alias文は、必ず Formulaの先頭に配置します。

Default文文文文Default文の構文を次に示します。

DEFAULT FOR <varname> IS <constant>

ここでは、varnameは入力パラメータまたはデータベース・アイテムです。constantは、varnameと同じデータ型の定数値です。

入力パラメータやデータベース・アイテムにデフォルト値を設定するには、Default文を使用します。Formulaを実行したときに、データベース・アイテムに値がない場合や入力パラメータが作成されていない場合は、Formulaは次のようなデフォルト値を使用します。

次のように、Default文を 'WAS DEFAULTED'と組み合せて使用すると、デフォルト値を使用した場所を抽出できます。例 :

DEFAULT FOR hourly_rate IS 3.00X = hours_worked * hourly_rateIF hourly_rate WAS DEFAULTED THEN MESG = 'Warning: hourly rate defaulted'

Oracle FastFormula 1-45

Page 52: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

この例では、hourly_rateというデータベース・アイテムにデフォルト値 3.00を設定します。データベースで hourly_rateがNULLの場合に、Formulaはデフォルト値 3.00を使用し、警告メッセージを表示します。

Input文文文文Input文の構文を次に示します。

INPUTS ARE varname1(data type)[, varname2 (data type)] ...

エレメントから Formulaに入力パラメータを渡すときに Input文を使用します。

例 :

INPUTS ARE bonus (number), start_date (date)

この場合はデフォルトのデータ型のため、数値変数のデータ型を宣言する必要はありません。1つのエレメントに対して 15個までの入力パラメータを設定できます。

次の場合を除いて、Input文は、必ず Formulaの文頭に配置します。

� 常に Formulaの文頭に配置する Alias文

� 入力パラメータにデフォルト値を設定する Default文

入力変数かデータベース・アイテムか入力変数かデータベース・アイテムか入力変数かデータベース・アイテムか入力変数かデータベース・アイテムかFormulaに関連付けたエレメントの入力パラメータを取り出す場合は、必ず Input文を使用します。データベース・アイテムを使用すると、Formulaはコードを実行し、パスをチェックしてデータベース・アイテムを取り出します。

効率的な例

INPUTS ARE wage_rate, hours_workedwage = wage_rate * hours_workedRETURN wage

効率的でない例

注意注意注意注意 :データベース・アイテムに値がない場合は、Default文を使用します。「データベース・アイテム」ウィンドウには「必須デフォルト」チェック・ボックスがあります。データベース・アイテムに値がない場合は、このチェック・ボックスをチェックします。「データベース・アイテム」ウィンドウを表示するには、「Formula」ウィンドウの「アイテム表示」ボタンを選択します。

1-46 Oracle FastFormulaユーザーズ・ガイド

Page 53: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

wage = wage_wage_rate * wage_hours_workedRETURN wage

Assignment文文文文ローカル変数の値を設定するには、Assignment文を使用します。Assignment文の構文を次に示します。

varname = expression

例 :

rate = hourly_rate + 14wage = hours_worked * rate

Oracle FastFormulaは、文の右側の式を評価して、式の左側の変数に結果を代入します。Formulaが値を変更できるのはローカル変数だけなので、Assignment文の左側は必ずローカル変数である必要があります。

IF文文文文一連の文を実行するかどうかを制御する条件を定義するには、If文を使用します。

If文には、THEN句、ELSE句という 2つの句があります。

� THEN句では、条件が真の場合に実行する内容を定義します。

� ELSE句では、条件が偽の場合に実行する内容を定義します。

If文は、ネストした他の文を含めることができる唯一の文で、別の IF文を含めることも可能です。

文の構文文の構文文の構文文の構文If文の構文を次に示します。

IF [NOT] condition[logical operator] [NOT] conditionTHEN statement [statement ..]ELSE statement [statement ..]

If文には、1つの条件を含めるだけでなく、論理演算子で組み合せた複数の条件を含めることもできます。AND、ORおよび NOTが論理演算子です。最初の 2つの演算子は条件を論理的に組み合わせ、3番目の演算子は条件を否定します。

� AND演算子を使用すると、両方の条件が真の場合に、これらの組合せが真になります。

Oracle FastFormula 1-47

Page 54: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

� OR演算子を使用すると、いずれかの条件が真の場合に、これらの組合せが真になります。

� また、各条件の前に「NOT」演算子を付けると、条件の真偽を反転できます。したがって、条件 Xが真のとき、NOT Xは偽になります。

条件の構文条件の構文条件の構文条件の構文条件には、次のような有効な構文があります。

expression comparator expression

式にした値は、比較演算子を使用して記述した方法で比較されます。2つの式の戻り値は同じデータ型を戻す必要があります。比較演算子は 8つあり、それぞれの作用は、比較する値のデータ型によって異なります。

比較演算子比較演算子比較演算子比較演算子 記号記号記号記号 データ型データ型データ型データ型 内容内容内容内容

等しい = すべて 2つの式の値が完全に等しいと、条件が真になります。テキストの場合は、式の中の大文字と小文字が一致する必要があります。したがって、'Smith'と 'SMITH'は等しくありません。

等しくない !=<>><

すべて 第 1式の結果が第 2式の結果値と等しくないときに、条件が真になります。

より大きい > すべて 第 1式が第 2式より、アルファベット順で後になるか、数値的に大きいか、日付が後のときに、条件が真になります。

より小さい < すべて 第 1式が第 2式より、アルファベット順で先になるか、数値的に小さいか、日付が先のときに、条件が真になります。

以上 >==>

すべて 「より大きい」演算子または「等しい」演算子の返す結果が真のときに、条件が真になります。

以下 <==<

すべて 「より小さい」演算子または「等しい」演算子の返す結果が真のときに、条件が真になります。

相似 LIKE テキスト 2つのテキスト式が LIKE構文ルールに一致するときに、条件が真になります。テキストにワイルドカードを含めて、特定の文字で始まるパターンやワードと一致するテキストを検索できます。- パーセント記号(%)はその場所にある任意の数の文字を示します。- アンダースコア(_)はその場所にある 1つの文字を示します。

1-48 Oracle FastFormulaユーザーズ・ガイド

Page 55: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

データベース・アイテムと入力パラメータの検証に使用するWAS DEFAULTEDと呼ばれる特殊な比較演算子があります。入力パラメータやデータベース・アイテムに使用できる値が存在しないとき、Formulaはデフォルト値を使用します。WAS DEFAULTED比較演算子を含む条件は、次のようにデフォルト値が使用された場合に真になります。

DEFAULT FOR employee_middle_name IS ' ' IF employee_middle_name WAS DEFAULTED THEN /* special processing */

カッコの使用方法を修正するカッコの使用方法を修正するカッコの使用方法を修正するカッコの使用方法を修正するTHEN句または ELSE句の中で複数の文をグループ化する場合は、文のグループを丸カッコで囲みます。丸カッコがない場合、Oracle FastFormulaが条件に従って実行するのは THEN句または ELSE句の直後の文だけであり、その他の文は無条件に実行されます。たとえば、次の Formulaを実行すると、High_salaryは常に 'Y'に設定されます。

High_salary = 'N'IF Salary > 20000 THEN Tax = Salary * .25 High_salary = 'Y'

このような場合は、丸カッコを使用して次のように記述します。

High_salary = 'N'IF Salary > 20000 THEN ( Tax = Salary * .25 High_salary = 'Y' )

Return文文文文ローカル変数に値を設定してアプリケーションに値を戻すには、Return文を使用します。Oracle FastFormulaは、任意の数の変数を戻します。また、変数に値を含める必要はありません。

例 :

/* Formula: LONDON ALLOWANCE FORMULA */

相似でない NOT LIKE

テキスト 2つのテキスト式が LIKE構文ルールに一致しないときに、条件が真になります。

比較演算子比較演算子比較演算子比較演算子 記号記号記号記号 データ型データ型データ型データ型 内容内容内容内容

Oracle FastFormula 1-49

Page 56: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formulaのコンパイル

INPUTS ARE this_months_extra (number)London_allowance = (grade_pay/20 + this_months_extra)RETURN London_allowance

Formulaがデータ型をすでに認識しているため、Return文の中のローカル変数のデータ型は宣言する必要がありません。

Oracle FastFormulaは、Return文に達すると Formulaの実行を停止します。Return文以降の文はすべて無視されます。

Formulaのコンパイルのコンパイルのコンパイルのコンパイル「Formula」ウィンドウで Formulaを作成したり編集した場合は、「検証」ボタンを選択してFormulaをコンパイルします。

複数の Formulaを同時にコンパイルするには、「要求の発行」ウィンドウを使用して「Formulaの一括検証」処理を実行します。たとえば、Formulaを含む法定情報をアップグレードする場合にこの処理を実行します。

FormulaエラーエラーエラーエラーOracle FastFormulaの実行時に発生するエラーには、次の 2つの種類があります。

� 検証時エラーは、「Formula」ウィンドウで Formula検証を実行するときに発生します。エラーの内容を説明するエラー・メッセージが表示されます。

ほとんどのエラーは、入力ミスによる構文エラーです。

� 実行時エラーは、Formulaの実行時に問題があると発生します。通常は、Formulaまたはアプリケーションのデータベースのデータに原因があります。

実行時に発生する Oracle FastFormulaの代表的なエラーを次に示します。

� 未初期化変数未初期化変数未初期化変数未初期化変数 : 未初期化ローカル変数とは、Formulaの実行時に値が設定されていないローカル変数のことです。「未初期化」という用語は、変数の使用前に値を割り当ててないことを意味します。このような変数があると、Return文を除くすべての文でエラーが発生します。次に例を示します。

IF (tax_band < 2000) THEN tax = salary / 8IF (tax_band > 2000)

注意注意注意注意 :関数を使用する Formulaをコンパイルした後でその関数を変更した場合は、その変更内容を有効にするために、Formulaを再コンパイルする必要があります。

1-50 Oracle FastFormulaユーザーズ・ガイド

Page 57: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formulaエラー

THEN tax = salary / 10IF tax > 1000 THEN ...

この Formulaでは、tax_bandが 2000に設定されると、変数「tax」に対して、「未初期化変数」というメッセージを返します。

� 0(ゼロ)による除算(ゼロ)による除算(ゼロ)による除算(ゼロ)による除算 : 数値を 0(ゼロ)で除算すると、論理的な結果が得られません。0(ゼロ)で除算すると、Oracle FastFormulaは、エラーを示すコードをアプリケーションに通知します(アプリケーションはコードに対応する適切な処理を実行します)。

次の Formulaのように 0(ゼロ)による除算が発生するような場合は、必ずチェックしてください。

x = salary/contribution_proportion

この Formulaでは、contribution_proportionが 0(ゼロ)に設定されると、エラーが発生します。この Formulaでは、次のようにして 0(ゼロ)による除算をチェックします。

IF contribution_proportion = 0THEN (message = 'The contribution proportion is not valid.' RETURN message)ELSE x = salary/contribution_proportion

� データがありませんデータがありませんデータがありませんデータがありません : データベース内に存在すると思われたデータベース・アイテムが、見つかりませんでした。このメッセージは、「アプリケーションのデータにエラーがある」ことを示します。

� 行が多すぎる行が多すぎる行が多すぎる行が多すぎる : アプリケーションに対するデータベース・アイテムの定義が原因で、データベースから複数の値が取り出されました。

� 値が許容範囲を越えている値が許容範囲を越えている値が許容範囲を越えている値が許容範囲を越えている : このエラーは、次のような原因で発生します。

� 文字列の長さが最大長(240文字)を超えるとき。

� 数値を丸めるときの桁数指定が大きすぎる(round(1,100)など)。

� 39-DEC-1990などの無効な日付を使用したとき。

� 数値が無効数値が無効数値が無効数値が無効 : このエラーは、数値として意味をなさないアイテムがデータベース・アイテムに含まれているときだけ発生します。

� NULLデータありデータありデータありデータあり :NULLでないはずのデータベース・アイテムの値が、NULLであることが検出されました。「データベース・アイテム」ウィンドウを使用して、データベース・アイテムを必須デフォルトとして作成した場合は、Default文を使用してください。

Oracle FastFormula 1-51

Page 58: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

データベース・アイテム

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテムこのトピックでは、Fomulaの記述と QuickPainレポートの定義のために、オラクル人事管理システムで使用可能なデータベース・アイテムをリストします。このデータベース・アイテムは、2つのリストにグループ分けされています。

� 「静的データベース・アイテム」(1-52)

� 「動的データベース・アイテム」(1-64)

システムには、静的データベース・アイテムがあらかじめ組み込まれていますが、ユーザーはこれを変更できません。新規エレメントやその他の業務に必要な情報を定義するときに、オラクル人事管理システムは、動的データベース・アイテムを作成します。

静的データベース・アイテム静的データベース・アイテム静的データベース・アイテム静的データベース・アイテムシステムには、静的データベース・アイテムがあらかじめ組み込まれていますが、ユーザーはこれを変更できません。

有給休暇付与プラン情報有給休暇付与プラン情報有給休暇付与プラン情報有給休暇付与プラン情報

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

ACP_CARRIED_OVER_DATE アサイメントと有給休暇付与プランの最新繰越エレメント・エントリに格納されている有効日

ACP_CARRIED_OVER_PTO 最新繰越エレメント・エントリに格納されているアサイメントの有給休暇日数

ACP_CATEGORY 有給休暇付与プランのカテゴリ

ACP_CONTINUOUS_SERVICE_DATE 従業員の調整済み勤続期間

ACP_ENROLLMENT_END_DATE 有給休暇付与プランに従業員を登録する最終日

ACP_ENROLLMENT_START_DATE 有給休暇付与プランに従業員を登録する開始日

ACP_INELIGIBLE_PERIOD_LENGTH 有給休暇付与プランの不適格期間の長さ(数字)

ACP_INELIGIBLE_PERIOD_TYPE 有給休暇付与プランの不適格期間の長さを測定する単位(月など)

ACP_NAME 有給休暇付与プランの名称

ACP_SERVICE_START_DATE 従業員の勤続期間の開始日

ACP_START 新規採用者に対する有給休暇付与プランの開始日を決定するルール

1-52 Oracle FastFormulaユーザーズ・ガイド

Page 59: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

静的データベース・アイテム

応募者情報応募者情報応募者情報応募者情報

従業員アサイメント情報従業員アサイメント情報従業員アサイメント情報従業員アサイメント情報

ACP_TERMINATION_DATE 従業員の勤続期間の最終日

ACP_UNITS_OF_MEASURE 有給休暇を累計するときの単位(時間数または日数)

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

APL_DATE_END 応募を終了した日付

APL_DATE_RECEIVED 応募を開始した日付

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

ASG_ASSIGNMENT_SEQUENCE デフォルトのアサイメント番号

ASG_DATE_FROM アサイメント情報が有効になる日付

ASG_DATE_TO アサイメント情報を終了する日付

ASG_EMPLOYMENT_CATEGORY アサイメントの雇用カテゴリ

ASG_END_TIME アサイメントの標準終了時刻

ASG_FREQ 勤務形態

ASG_GRADE 従業員の等級

ASG_GRADE_DATE_FROM アサイメント等級情報が有効になる日付

ASG_GRADE_DATE_TO アサイメント等級情報を終了する日付

ASG_GROUP 従業員グループ

ASG_HOURS アサイメントの標準労働時間

ASG_INT_ADDR_LINE アサイメントの社内住所

ASG_JOB 従業員の役職

ASG_JOB_DATE_FROM アサイメント役職情報が有効になる日付

ASG_JOB_DATE_TO アサイメント役職情報を終了する日付

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

Oracle FastFormula 1-53

Page 60: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

静的データベース・アイテム

ASG_LAST_CHANGE_REASON 給与の変更理由

ASG_LAST_PERFORMANCE_DATE 前回の業績考課日

ASG_LAST_PERFORMANCE_LOCATION 前回の業績考課事業所

ASG_LAST_PERFORMANCE_RATING 前回の業績考課レート

ASG_LAST_PERFORMANCE_TYPE 前回の業績考課タイプ

ASG_LAST_PROC_PAYROLL_NAME 最後にアサイメントを処理した給与

ASG_LAST_PROC_PERIOD_ID 最後にアサイメントを処理した期間 ID

ASG_LAST_PROC_PERIOD_NAME 最後にアサイメントを処理した期間名

ASG_LAST_PROC_PERIOD_NUMBER 最後にアサイメントを処理した期間番号

ASG_LAST_PROPOSED_SALARY_CHANGE 提示給与の変更

ASG_LAST_PROPOSED_SALARY_PERCENT パーセントで表示する提示給与の変更

ASG_LAST_SALARY_CHANGE_APPROVED 前回の提示給与の変更が承認されたかどうかを示す

ASG_LAST_SALARY_DATE 前回の給与変更日

ASG_LOCATION 従業員の事業所

ASG_LOC_INACTIVE_DATE 事業所情報を終了する日付

ASG_MANAGER アサイメントが管理職のアサイメントかどうかを示す(yes/no)

ASG_NEXT_PERFORMANCE_DATE 次の業績レビュー日

ASG_NEXT_SALARY_DATE 次の給与変更日

ASG_NUMBER アサイメント番号

ASG_ORG 従業員の組織

ASG_ORG_DATE_FROM アサイメント組織情報が有効になる日付

ASG_ORG_DATE_TO アサイメント組織情報を終了する日付

ASG_PAYROLL 従業員の給与

ASG_PERFORMANCE_REVIEW_FREQUENCY アサイメントの業績レビュー期間

ASG_PERFORMANCE_REVIEW_PERIOD アサイメントの業績レビュー頻度

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

1-54 Oracle FastFormulaユーザーズ・ガイド

Page 61: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

静的データベース・アイテム

ASG_PER_STATUS_DP (支給日時点の)アサイメントの従業員ステータス

ASG_POSITION 従業員の職階

ASG_POS_DATE_FROM アサイメント職階情報が有効になる日付

ASG_POS_DATE_TO アサイメント職階情報を終了する日付

ASG_POS_END_TIME アサイメント職階の標準終了時刻

ASG_POS_FREQ アサイメント職階の勤務形態

ASG_POS_HOURS 職階の標準労働時間

ASG_POS_PROB_PERIOD アサイメント職階の試用期間

ASG_POS_START_TIME アサイメント職階の標準開始時刻

ASG_PRIMARY 従業員のプライマリ・アサイメントかどうかを示す(yes/no)

ASG_PROB_END_DATE 試用期間終了日

ASG_PROB_PERIOD アサイメントの試用期間

ASG_PROB_UNITS アサイメントの試用期間単位

ASG_REC_FULL_NAME 採用担当者の氏名

ASG_RELIEF 現行の職階該当者がいない場合の交代要員

ASG_SALARY 従業員の現行給与

ASG_SALARY_BASIS アサイメントの給与ベース(支払頻度)「月例給与」など

ASG_SALARY_BASIS_CODE アサイメントの支払ベース参照コード

ASG_SALARY_BASIS_NAME アサイメントの給与ベース名

ASG_SALARY_ELEMENT 表示エレメント名

ASG_SALARY_ELEMENT_VALUE_NAME 表示入力パラメータ名

ASG_SALARY_GRADE_RATE 表示レート名

ASG_SALARY_RATE_BASIS 給与レート・ベース

ASG_SALARY_REVIEW_FREQUENCY アサイメントの給与レビュー頻度

ASG_SALARY_REVIEW_PERIOD アサイメントの給与レビュー期間

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

Oracle FastFormula 1-55

Page 62: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

静的データベース・アイテム

連絡先住所連絡先住所連絡先住所連絡先住所

ASG_START_DATE アサイメントの開始日

ASG_START_TIME アサイメントの標準開始時刻

ASG_STATUS アサイメントのプライマリ・ステータス

ASG_SUCCESSOR 職階の後任職階名

ASG_SUP_FULL_NAME 管理者の氏名

ASG_TYPE 従業員アサイメントか応募者アサイメントかを示す

ASG_VACANCY 必要要員情報の名前

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

CON_ADR_CITY 連絡先の町名または市区名

CON_ADR_COUNTRY 連絡先の国名

CON_ADR_DATE_FROM 連絡先に連絡できる最初の日付

CON_ADR_DATE_TO 連絡先に連絡できる最終日

CON_ADR_LINE_1 連絡先の住所の第 1行

CON_ADR_LINE_2 連絡先の住所の第 2行

CON_ADR_LINE_3 連絡先の住所の第 3行

CON_ADR_PHONE_1 連絡先の第 1電話番号

CON_ADR_PHONE_2 連絡先の第 2電話番号

CON_ADR_PHONE_3 連絡先の第 3電話番号

CON_ADR_POSTAL_CODE 連絡先の郵便番号

CON_ADR_REGION_1 連絡先地域の第 1行

CON_ADR_REGION_2 連絡先地域の第 2行

CON_ADR_REGION_3 連絡先地域の第 3行

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

1-56 Oracle FastFormulaユーザーズ・ガイド

Page 63: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

静的データベース・アイテム

連絡先情報連絡先情報連絡先情報連絡先情報

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

CON_AGE 連絡先の年齢

CON_APP_NUMBER 連絡先の応募者番号

CON_CURRENT_APP 連絡先が現在の応募者かどうかを示す(yes/no)

CON_CURRENT_EMP 連絡先が現在の従業員かどうかを示す(yes/no)

CON_DATE_OF_BIRTH 連絡先の生年月日

CON_DISABLED 連絡先が障害者かどうかを示す(yes/no)

CON_EMP_NUMBER 連絡先の従業員番号

CON_END_DATE 連絡先情報を終了する日付

CON_FIRST_NAME 連絡先の名

CON_FULL_NAME 連絡先の氏名

CON_KNOWN_AS 連絡先の呼称

CON_LAST_NAME 連絡先の姓

CON_MARITAL_STATUS 連絡先の婚姻区分

CON_MIDDLE_NAMES 連絡先のミドル・ネーム

CON_NATIONALITY 連絡先の国籍

CON_PERSON_TYPE 連絡先の Personタイプ - 「従業員」または「応募者」など

CON_RELATIONSHIP 従業員に対する連絡先の続柄

CON_SEX 連絡先の性別

CON_START_DATE 連絡先情報が有効になる日付

CON_TITLE 連絡先の肩書き

CON_WORK_PHONE 連絡先の勤務先電話番号

Oracle FastFormula 1-57

Page 64: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

静的データベース・アイテム

従業員の採用情報従業員の採用情報従業員の採用情報従業員の採用情報

従業員の採用情報(日本のみ)従業員の採用情報(日本のみ)従業員の採用情報(日本のみ)従業員の採用情報(日本のみ)

事業所詳細事業所詳細事業所詳細事業所詳細

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

EMP_HIRE_DATE 従業員の入社日

EMP_LAST_PROCESS_DATE 最後に従業員を処理した日付

EMP_LEAVING_REASON 従業員の退職理由

EMP_TERM_ACCEPTED_BY 従業員通知の承認者

EMP_TERM_DATE 従業員の退職日

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

EMP_LEAVING_REASON_CODE 従業員の退職理由コード(日本のみ)

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

LOC_ADR_LINE_1 アサイメントの勤務先住所の第 1行

LOC_ADR_LINE_2 アサイメントの勤務先住所の第 2行

LOC_ADR_LINE_3 アサイメントの勤務先住所の第 3行

LOC_ADR_POSTAL_CODE アサイメントの勤務先住所の郵便番号

LOC_ADR_REGION_1 アサイメントの地域の第 1行

LOC_ADR_REGION_2 アサイメントの地域の第 2行

LOC_ADR_REGION_3 アサイメントの地域の第 3行

LOC_ADR_PHONE_1 アサイメントの勤務先の第 1電話番号

LOC_ADR_PHONE_2 アサイメントの勤務先の第 2電話番号

LOC_ADR_PHONE_3 アサイメントの勤務先の第 3電話番号

LOC_ADR_CITY アサイメントが勤務する町名または郡市区名

LOC_ADR_COUNTRY アサイメントが勤務する国名

1-58 Oracle FastFormulaユーザーズ・ガイド

Page 65: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

静的データベース・アイテム

勤務先住所(米国のみ)勤務先住所(米国のみ)勤務先住所(米国のみ)勤務先住所(米国のみ)

勤務先住所(英国のみ)勤務先住所(英国のみ)勤務先住所(英国のみ)勤務先住所(英国のみ)

給与詳細給与詳細給与詳細給与詳細

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

LOC_ADR_US_COUNTY アサイメントの勤務する郡名(米国のみ)

LOC_ADR_US_STATE アサイメントの勤務する州名(米国のみ)

LOC_ADR_US_STATE_CODE アサイメントが勤務する州コード(米国のみ)

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

LOC_ADR_UK_COUNTY アサイメントの勤務する郡名(英国のみ)

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

PAY_PERIODS_PER_YEAR 年間の支給対象期間数

PAY_PROC_PERIOD_CUT_OFF_DATE 給与期間の締日

PAY_PROC_PERIOD_DATE_PAID 給与支払日

PAY_PROC_PERIOD_DIRECT_DEPOSIT_DATE 給与期間の給与振込日

PAY_PROC_PERIOD_END_DATE 給与期間の最終日

PAY_PROC_PERIOD_ID 給与期間 ID

PAY_PROC_PERIOD_NAME 給与期間名

PAY_PROC_PERIOD_NUMBER 現在の当期間番号

PAY_PROC_PERIOD_PAY_ADVICE_DATE 給与期間の給与支払日

PAY_PROC_PERIOD_START_DATE 給与期間の開始日

Oracle FastFormula 1-59

Page 66: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

静的データベース・アイテム

給与詳細(日本のみ)給与詳細(日本のみ)給与詳細(日本のみ)給与詳細(日本のみ)

住所住所住所住所

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

PAY_JP_PROC_PERIOD_REGULAR_PAYMENT_DATE

給与期間の固定の支給日(日本のみ)

PAY_JP_PROC_PERIOD_ELEMENT_SET_NAME エレメント・セット名(日本のみ)

PAY_PROC_PERIOD_LEGISLATIVE_PARAMETERS 国別パラメータ(日本のみ)

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

PER_ADR_CITY 町名または市区名

PER_ADR_COUNTRY 国名

PER_ADR_DATE_FROM この住所に連絡できる最初の日付

PER_ADR_DATE_TO この住所に連絡できる最後の日付

PER_ADR_LINE_1 住所の第 1行

PER_ADR_LINE_2 住所の第 2行

PER_ADR_LINE_3 住所の第 3行

PER_ADR_PHONE_1 第 1電話番号

PER_ADR_PHONE_2 第 2電話番号

PER_ADR_PHONE_3 第 3電話番号

PER_ADR_POSTAL_CODE 郵便番号

PER_ADR_REGION_1 地域の第 1行

PER_ADR_REGION_2 地域の第 2行

PER_ADR_REGION_3 地域の第 3行

1-60 Oracle FastFormulaユーザーズ・ガイド

Page 67: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

静的データベース・アイテム

自宅住所詳細(米国のみ)自宅住所詳細(米国のみ)自宅住所詳細(米国のみ)自宅住所詳細(米国のみ)

自宅住所詳細(英国のみ)自宅住所詳細(英国のみ)自宅住所詳細(英国のみ)自宅住所詳細(英国のみ)

個人情報個人情報個人情報個人情報

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

PER_ADR_US_COUNTY 郡名(米国のみ)

PER_ADR_US_STATE 州名(米国のみ)

PER_ADR_US_STATE_CODE 州コード(米国のみ)

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

PER_ADR_UK_COUNTY 自宅の郡名(英国のみ)

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

PER_AGE 年齢

PER_APPLICANT_NUMBER 応募者番号

PER_CURRENT_APP 現在の応募者かどうかを示す(yes/no)

PER_CURRENT_EMP 現在の従業員かどうかを示す(yes/no)

PER_DATE_OF_BIRTH 生年月日

PER_DATE_VERIFIED 従業員が自分の個人データを最後に確認した日付

PER_DISABLED 障害者かどうかを示す(yes/no)

PER_EMP_NUMBER 従業員番号

PER_FIRST_NAME 名

PER_FULL_NAME 氏名

PER_KNOWN_AS 呼称

PER_LAST_NAME 姓

PER_MAIL_DESTINATION 郵送先

PER_MARITAL_STATUS 婚姻区分

Oracle FastFormula 1-61

Page 68: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

静的データベース・アイテム

個人情報(日本のみ)個人情報(日本のみ)個人情報(日本のみ)個人情報(日本のみ)

採用担当情報採用担当情報採用担当情報採用担当情報

PER_MIDDLE_NAMES ミドル・ネーム

PER_NATIONALITY 国籍

PER_NATIONAL_IDENTIFIER 国別識別子

PER_PERSON_TYPE Personタイプ - 「従業員」または「応募者」など

PER_PREV_LAST_NAME 旧姓

PER_SEND_EXPENSES 費用送付先(自宅 /勤務先)

PER_SEX 性別

PER_TITLE 肩書き

PER_WORK_PHONE 勤務先電話番号

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

PER_SEX_CODE 性別コード(日本のみ)

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

REC_CURRENT_APP 採用担当者が現在の応募者かどうかを示す(yes/no)

REC_CURRENT_EMP 採用担当者が現在の従業員かどうかを示す(yes/no)

REC_EMP_NUMBER 採用担当者の従業員番号

REC_GRADE 採用担当者の等級

REC_INT_ADDR_LINE 採用担当者の社内住所

REC_JOB 採用担当者の役職

REC_LOCATION 採用担当者の勤務先

REC_MANAGER アサイメントが管理職のアサイメントかどうかを示す(yes/no)

REC_ORG 採用担当者の組織名

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

1-62 Oracle FastFormulaユーザーズ・ガイド

Page 69: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

静的データベース・アイテム

管理者情報管理者情報管理者情報管理者情報

日付情報日付情報日付情報日付情報

REC_PERSON_TYPE 採用担当者の Personタイプ - 「従業員」または「応募者」など

REC_POSITION 採用担当者の職階

REC_WORK_PHONE 採用担当者の勤務先電話番号

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

SUP_CURRENT_EMP 管理者が現在の従業員かどうかを示す(yes/no)

SUP_DATE_FROM 管理者情報が有効になる日付

SUP_DATE_TO 管理者情報を終了する日付

SUP_EMP_NUMBER 管理者の従業員番号

SUP_GRADE 管理者の等級

SUP_INT_ADDR_LINE 管理者の社内住所

SUP_JOB 管理者の役職

SUP_LOCATION 管理者の勤務先

SUP_MANAGER アサイメントが管理職のアサイメントかどうかを示す(yes/no)

SUP_ORG 管理者の組織

SUP_PERSON_TYPE 管理者の Personタイプ

SUP_POSITION 管理者の職階

SUP_WORK_PHONE 管理者の勤務先電話番号

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

SESSION_DATE FND_SESSIONSからの有効日

SYSDATE システム日付

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

Oracle FastFormula 1-63

Page 70: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

動的データベース・アイテム

その他情報(日本のみ)その他情報(日本のみ)その他情報(日本のみ)その他情報(日本のみ)

ユーザー定義表情報(日本のみ)ユーザー定義表情報(日本のみ)ユーザー定義表情報(日本のみ)ユーザー定義表情報(日本のみ)

動的データベース・アイテム動的データベース・アイテム動的データベース・アイテム動的データベース・アイテム新規エレメントやその他の業務に必要な情報を定義するときに、オラクル人事管理システムは、動的データベース・アイテムを作成します。

エレメント・データベース・アイテムエレメント・データベース・アイテムエレメント・データベース・アイテムエレメント・データベース・アイテム新規エレメントを定義すると、オラクル人事管理システムは、新規エレメントに関連するさまざまなデータベース・アイテムを作成します。これらのデータベース・アイテムを容易に識別するため、作成処理では、各アイテムにエレメント名 <ENAME>を加えます。また、入力パラメータ名 <INAME>に対するデータベース・アイテムも作成します。

「エレメント」ウィンドウを使用してエレメントを定義するときに作成されるデータベース・アイテム一覧を、次に示します。

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

共_労保_情報共_労保_情報共_労保_情報共_労保_情報 _雇保事業主雇保事業主雇保事業主雇保事業主 _業種業種業種業種 従業員が雇用される適用事業場の業種(日本のみ)

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

<ユーザー定義表名><ユーザー定義表名><ユーザー定義表名><ユーザー定義表名> _<行タイトル><行タイトル><行タイトル><行タイトル> _下限下限下限下限 ユーザー定義表行の下限値(日本のみ)

<ユーザー定義表名><ユーザー定義表名><ユーザー定義表名><ユーザー定義表名> _<行タイトル><行タイトル><行タイトル><行タイトル> _上限上限上限上限 ユーザー定義表行の上限値(日本のみ)

<ユーザー定義表名><ユーザー定義表名><ユーザー定義表名><ユーザー定義表名> _<列名><列名><列名><列名> _最小最小最小最小 ユーザー定義表列の最小値(日本のみ)

<ユーザー定義表名><ユーザー定義表名><ユーザー定義表名><ユーザー定義表名> _<列名><列名><列名><列名> _最大最大最大最大 ユーザー定義表列の最大値(日本のみ)

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

<ENAME>_BEN_CLASS エレメントの福利厚生分類

<ENAME>_CLASSIFICATION エレメントの分類

<ENAME>_CLOSED_FOR_ENTRY yes/noフラグ。ローカル言語に翻訳されます。yesの場合は、新規エレメント・エントリを作成できませんが、既存のエレメント・エントリを変更できます。

1-64 Oracle FastFormulaユーザーズ・ガイド

Page 71: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

動的データベース・アイテム

上記のデータベース・アイテムの他に、オラクル人事管理システムでは、複数入力を許可しないよう定義したエレメントに対して、次の 4つのアイテムを作成します。

<ENAME>_CLOSED_FOR_ENTRY_CODE yes/noフラグ。yesの場合は、新規エレメント・エントリを作成できませんが、既存のエレメント・エントリを変更できます。

<ENAME>_COSTABLE_TYPE エレメントの原価タイプ(参照表から)

<ENAME>_COSTABLE_TYPE_CODE エレメントの原価タイプ(コード値)

<ENAME>_COUNT エレメント・エントリ件数

<ENAME>_END_DATE エレメントを終了する日付

<ENAME>_INPUT_CURRENCY_CODE エレメントの入力通貨コード

<ENAME>_LENGTH_OF_SERVICE エレメントの適合勤続年数

<ENAME>_OUTPUT_CURRENCY_CODE エレメントの出力通貨コード

<ENAME>_PROCESSING_PRIORITY エレメントの計算順位

<ENAME>_QUALIFYING_AGE エレメントの適合年齢

<ENAME>_QUALIFYING_UNITS_CODE 勤続期間条件に適合する単位(コード値)

<ENAME>_QUALIFYING_UNITS 勤続期間条件に適合する単位(参照表から)

<ENAME>_REPORTING_NAME エレメントのレポート名

<ENAME>_STANDARD_LINK Yes/noフラグ。yes=標準、no=任意

<ENAME>_STANDARD_LINK_CODE Yes/noフラグ。yes=標準、no=任意

<ENAME>_<INAME>_UNIT_OF_MEASURE

エレメントの表示単位(参照表から)

<ENAME>_<INAME>_UNIT_OF_MEASURE_CODE

エレメントの表示単位(コード値)

<ENAME>_<INAME>_DEFAULT エレメントのデフォルト入力値

<ENAME>_<INAME>_MIN エレメントの最小入力値

<ENAME>_<INAME>_MAX エレメントの最大入力値

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

<ENAME>_<INAME>_ENTRY_VALUE エレメント値

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

Oracle FastFormula 1-65

Page 72: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

支給スケール・レートのデータベース・アイテム

上記の共通リストの他に、オラクル人事管理システムは、複数入力を許可し、データ型を数値(時間、整数、通貨または番号)に定義したエレメントに対して、次のデータベース・アイテムを作成します。

<ENAME> <INAME>ENTRYの単位は、固定処理エレメントと変動処理エレメントの両方に対して生成され、ユーザーが定義可能です。オラクル人事管理システムは、PAY_INPUT_VALUES_F表で指定された表示単位で入力値を取り出すように、定義テキストを変更できます。

等級レート・データベース・アイテム等級レート・データベース・アイテム等級レート・データベース・アイテム等級レート・データベース・アイテム等級レートを定義すると、オラクル人事管理システムは、等級レートに関連するさまざまなデータベース・アイテムを作成します。これらのデータベース・アイテムを容易に識別するため、作成処理では、各アイテムに等級レート名 <NAME>を加えます。

「等級レート」ウィンドウを使用して等級レートを定義するときに作成されるデータベース・アイテム一覧を、次に示します。

支給スケール・レートのデータベース・アイテム支給スケール・レートのデータベース・アイテム支給スケール・レートのデータベース・アイテム支給スケール・レートのデータベース・アイテム支給スケール・レートを定義すると、オラクル人事管理システムは、この支給スケール・レートに関連するさまざまなデータベース・アイテムを作成する処理を実行します。この

<ENAME>_<INAME>_USER_ENTERED_CODE

エレメント・エントリのレベルで値が存在するかどうかを示す(yes/no)

<ENAME>_<INAME>_START_DATE エレメント開始日

<ENAME>_<INAME>_END_DATE エレメント終了日

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

<ENAME>_<INAME>_ENTRY_VALUE 複数入力の場合の要約エレメント値

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

GRADE_<NAME>_VALUE 等級レートの値

GRADE_<NAME>_MINIMUM 等級レートの最小値

GRADE_<NAME>_MAXIMUM 等級レートの最大値

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

1-66 Oracle FastFormulaユーザーズ・ガイド

Page 73: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

支給スケール・レートのデータベース・アイテム

データベース・アイテムを容易に識別するため、作成処理では、このアイテムにレート名<NAME>を加えます。

付加フレックスフィールドのデータベース・アイテム付加フレックスフィールドのデータベース・アイテム付加フレックスフィールドのデータベース・アイテム付加フレックスフィールドのデータベース・アイテム付加フレックスフィールド・セグメントを定義するときは、「要求の発行」ウィンドウから「付加フレックスフィールド・データベース・アイテム」処理を実行し、これらのセグメントを QuickPaintで使用できるようにします。この処理では、次の一覧に示す各付加フレックスフィールドに対して、データベース・アイテムを作成します。

これらのデータベース・アイテムを容易に識別するため、作成処理では、各データベース・アイテムに付加フレックスフィールドのセグメント名 <SEGMENT_NAME>を加えます。

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

SPINE_<NAME>_VALUE 支給スケール・レートの値

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

PEOPLE_<SEGMENT_NAME> 「追加個人情報詳細」付加フレックスフィールドのデータベース・アイテム

PAYROLLS_<SEGMENT_NAME> 「追加給与詳細」付加フレックスフィールドのデータベース・アイテム

ASSIGNMENTS_<SEGMENT_NAME> 「追加アサイメント詳細」付加フレックスフィールドのデータベース・アイテム

GRADES_<SEGMENT_NAME> 「追加等級詳細」付加フレックスフィールドのデータベース・アイテム

ABSENCES_<SEGMENT_NAME> 「追加不就業詳細」付加フレックスフィールドのデータベース・アイテム

ABSENCE_TYPES_<SEGMENT_NAME> 「追加不就業タイプ詳細」付加フレックスフィールドのデータベース・アイテム

PERSON_ADDRESSES_<SEGMENT_NAME> 「追加住所詳細」付加フレックスフィールドのデータベース・アイテム

EVENTS_<SEGMENT_NAME> 「追加イベント詳細」付加フレックスフィールドのデータベース・アイテム

JOBS_<SEGMENT_NAME> 「追加役職詳細」付加フレックスフィールドのデータベース・アイテム

CONTACTS_<SEGMENT_NAME> 「追加続柄詳細」付加フレックスフィールドのデータベース・アイテム

PERIODS_OF_SERVICE_<SEGMENT_NAME>

「追加勤続年数詳細」付加フレックスフィールドのデータベース・アイテム

Oracle FastFormula 1-67

Page 74: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

支給スケール・レートのデータベース・アイテム

キー・フレックスフィールドのデータベース・アイテムキー・フレックスフィールドのデータベース・アイテムキー・フレックスフィールドのデータベース・アイテムキー・フレックスフィールドのデータベース・アイテムキー・フレックスフィールド・セグメントを定義するときは、「要求の発行」ウィンドウから「キー・フレックスフィールド・データベース・アイテム」処理を実行し、これらのセグメントを QuickPaintで使用できるようにします。この処理では、次の一覧に示す各キー・フレックスフィールドに対して、データベース・アイテムを作成します。

これらのデータベース・アイテムを容易に識別するため、作成処理では、各データベース・アイテムにキー・フレックスフィールドのセグメント名 <SEGMENT_NAME>を加えます。

各ビジネス・グループに対して、この処理を実行します。BUSINESS_GROUP_IDを参照フィールドに使用して、コンテキスト依存キー・フレックスフィールド体系を定義する場合は、これらのフレックスフィールドのセグメントに対するデータベース・アイテムも、この処理で作成されます。「キー・フレックスフィールド・データベース・アイテム作成」処理でサポートされる参照フィールドは、BUSINESS_GROUP_IDだけです。

不就業のデータベース・アイテム不就業のデータベース・アイテム不就業のデータベース・アイテム不就業のデータベース・アイテム不就業タイプを定義すると、オラクル人事管理システムは、この不就業タイプに関連するさまざまなデータベース・アイテムを作成する処理を実行します。このデータベース・アイテ

RECRUITMENT_ACTIVITIES_<SEGMENT_NAME>

「追加採用活動詳細」付加フレックスフィールドのデータベース・アイテム

POSITION_<SEGMENT_NAME> 「追加職階詳細」付加フレックスフィールドのデータベース・アイテム

APPLICATIONS_<SEGMENT_NAME 「追加応募詳細」付加フレックスフィールドのデータベース・アイテム

ORGANIZATION_<SEGMENT_NAME> 「追加組織単位詳細」付加フレックスフィールドのデータベース・アイテム

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

GRADE_KF_<SEGMENT_NAME> 「等級」キー・フレックスフィールドのデータベース・アイテム

JOB_KF_<SEGMENT_NAME> 「役職」キー・フレックスフィールドのデータベース・アイテム

POS_KF_<SEGMENT_NAME> 「職階」キー・フレックスフィールドのデータベース・アイテム

GROUP_KF_<SEGMENT_NAME> 「Peopleグループ」キー・フレックスフィールドのデータベース・アイテム

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

1-68 Oracle FastFormulaユーザーズ・ガイド

Page 75: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

福利厚生管理の Formula

ムを容易に識別するため、作成処理では、このアイテムにレート名 <ABSENCE_NAME>を加えます。

福利厚生管理の福利厚生管理の福利厚生管理の福利厚生管理の FormulaOracle FastFormulaには、福利厚生管理に使用できる多くの Formulaタイプがあります。たとえば、適用除外条項および他の特別の場合のシナリオでは、福利厚生加入者のサブセットに特別な処理を定義する FastFormulaルールを書き込む必要があります。

Oracle FastFormulaを使用して以下を計算できます。

� 一定期間における個人の労働時間数

� 個人の勤続期間

� 生命保険プランの最大補償範囲額

� 加入者の適格

� その他の福利厚生関連機能

Standard Benefitsまたは Oracle Advanced Benefitsを使用するために Formulaを書き込んだ後、適切なウィンドウの「ルール」フィールドで Formulaを選択して、プラン設計にリンクします。

データベース・アイテムデータベース・アイテムデータベース・アイテムデータベース・アイテム 摘要摘要摘要摘要

<ABSENCE_NAME>_CUM_BALANCE 不就業タイプの累積バランス

Oracle FastFormula 1-69

Page 76: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

総合報酬 Formulaタイプ

総合報酬総合報酬総合報酬総合報酬 Formulaタイプタイプタイプタイプ次の表に、オラクル人事管理システムで福利厚生を管理する際に使用できる Formulaタイプを示します。

Formulaタイプタイプタイプタイプ

摘要摘要摘要摘要 コンテキストコンテキストコンテキストコンテキスト 入力パラメータ入力パラメータ入力パラメータ入力パラメータ 戻り値戻り値戻り値戻り値 サンプル・ルールサンプル・ルールサンプル・ルールサンプル・ルール

労働時間計算

適格、補償範囲または福利厚生、掛金およびレート計算に使用する労働時間を決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id

Hrs_Wkd_Fctr_Id; Hrs_Wkd_Fctr.Valの値、最小値、最大値

金額 個人の最近の給与期間の労働時間合計数を決定します。

年齢計算 適格、補償範囲または福利厚生、掛金、レート計算に使用する年齢値を決定します。

" Age_Fctr.Valの値、最小値、最大値

金額

勤続期間計算

適格、補償範囲または福利厚生、掛金、レート計算に使用する勤続期間値を決定します。

" LOS_Fctr_Id; LOS_Fctr.Valの値、最小値、最大値

金額

報酬計算 適格、補償範囲または福利厚生、掛金、レート計算に使用する総合報酬額を決定します。

" Comp_Lvl_Fctr_Id; Comp_Lvl_Fctr.Valの値、最小値、最大値

金額 対象年の初めからの支給額と、前年の総合報酬の福利厚生バランス・タイプおよび前年の賞与福利厚生バランス・タイプでバランス定義された個人の現行基本給の支給額を合計し、総計を戻します。

レート値計算

個人のレート額を計算します。ベース・レートまたは変数レートの計算に使用することもできます。

" Acty_Base_Rt_IdまたはVrbl_Rt_Id; Acty_Base_Rt.Valの値、最小値、最大値 ; Vrbl_Rt_Prfl.Valの値、最小値、最大値

金額 現在、個人がこのプランに登録している場合または過去 2年間に登録していた場合、レートはその個人が現在支払っているレートに等しくなります。登録していない場合は、レートは Xと等しくなります。

1-70 Oracle FastFormulaユーザーズ・ガイド

Page 77: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

総合報酬 Formulaタイプ

掛金値計算

個人用掛金額を計算します。

" Acty_Base_Rt_Id、Vrbl_Rt_Id、Actl_Prem_IdまたはCvg_Amt_Calc_Mthd_Id; Acty_Base_Rt.Valの値、最小値、最大値

金額 掛金額は、50,000より少ない補償範囲額の.05倍に等しくなります。

照合金額計算

照合金額を計算します。

" " 金額 部門 Aに勤務する従業員は、5%の照合額を得ます。その他の全従業員は、4%の照合額を得ます。

最小補償範囲額計算

一人当たりの最小補償範囲額または福利厚生の額を計算します。

" " 金額 福利厚生グループ Aの場合、最低金額は $100です。福利厚生グループ Bの場合、最低金額は $200です。

最大補償範囲額計算

一人当たりの最大補償範囲額または福利厚生の額を計算します。

" " 金額 最大補償範囲額は現行の登録補償範囲額に等しく、現行の登録がない場合は、最大$100,000になります。

期間累計値計算

個人が特定のアクティビティ・レートにかけられる最大期間累計値を決定します。

" 金額

補償範囲額計算

一人当たりの補償範囲額または福利厚生の額を計算します。

" 金額

年齢決定日付

年齢計算の開始日を決定します(たとえば、次のプラン年の初日)。

" 日付 個人が年間登録イベントにある場合、10/1/99が戻されます。新規採用、再雇用、有給休暇からの復帰またはパートタイムからフルタイムへの変更の結果、個人が有資格者になった場合は、そのイベントが起こった日付を戻します。

Oracle FastFormula 1-71

Page 78: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

総合報酬 Formulaタイプ

労働時間決定日付

労働時間計算の開始日を決定します(たとえば、次のプラン年の初日)。

" 日付 個人が年間登録イベントにある場合は、10/1/99を戻します。新規採用、再雇用、有給休暇からの復帰またはパートタイムからフルタイムへの変更の結果、個人が有資格者になった場合は、そのイベントが起こった日付を戻します。

使用する勤続期間日付

勤続期間が計算される下位日付を決定します(例、元の入社日または再雇用日付)。

" 日付 個人の不就業の行から開始日を戻し、個人が休暇した経過時間を決定します。

勤続期間決定日付

勤続期間が計算される上位日付を決定します(例、次の月始め)。

" 日付 個人の不就業の行から開始日を戻します。

報酬決定日付

時間報酬が計算される上位日付を決定します(例、次のプラン年の初日)。

" 日付

処理タイプ支払期日

処理タイプを完了させる日付を決定します(例、ライフ・イベント作成日から 90日)。

" 日付 個人が現在登録済の場合は、ライフ・イベント作成日から 60日。個人が現在登録済でない場合は、ライフ・イベント作成日から 30日。

加入適格開始日

個人の加入適格の開始日を決定します。

" 日付 イベント日付に 6か月加算して戻します。

加入適格終了日

個人の加入適格の終了日を決定します。

" 日付 現在のアサイメント上の組織が Aの場合は、イベント日付に等しい日付を戻します。それ以外の場合、戻り日付はイベント日付の後、次月の開始日と等しくなります。

登録補償範囲開始日

加入者の登録補償範囲の開始日を決定します。

" 日付 プランに加入していなかった期間に基づいた補償範囲開始日。

1-72 Oracle FastFormulaユーザーズ・ガイド

Page 79: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

総合報酬 Formulaタイプ

登録補償範囲終了日

加入者の登録補償範囲の終了日を決定します。

" 日付 計算された勤続期間が5年より少ない場合は、現行の月の終わりまでになります。計算された勤続期間が 5年以上の場合は、イベント日付後 6か月の終わりまでになります。

扶養家族補償範囲開始日

扶養家族の補償範囲開始日を決定します。

" 日付 イベントの 31日以内に出生届が提出される場合、補償範囲開始日は生年月日になります。その他の場合、補償範囲開始日は通知の日付になります。

扶養家族補償範囲終了日

扶養家族の補償範囲終了日を決定します。

" 日付 続柄タイプが配偶者ありの場合、補償範囲はイベントの日付で終わり、続柄タイプが子の場合、補償範囲はイベントの翌月の最終日で終わります。

レート開始日

加入者の登録結果のレートを開始する日付を決定します。

" 日付 レートは、現行の登録のレート終了日後に開始します。

レート終了日

加入者の登録結果のレートを終了する日付を決定します。

" 日付 レートは、個人の次の給与期間の前日で終わります。

加入適格 個人が、関連付けられた報酬オブジェクトに適格かどうかを決定します。(これは、適格プロファイル・ルール・エンティティで使用されるルールです。)

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id、Balance_Date

Y/N

Oracle FastFormula 1-73

Page 80: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

総合報酬 Formulaタイプ

扶養家族適格

個人が、加入者により報酬オブジェクトで補償されるのに適格かどうかを決定します。

" Y/N 扶養家族は、従業員勤務事業所が 001で扶養家族が 21歳未満の場合または従業員勤務事業所が 001ではなく扶養家族が 25歳未満の場合に適格となります。

登録機会 報酬オブジェクトを個人の選択肢にするかどうかを決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id

BEN_ENRT_MTHD値の1つ : Aまたは E; またはN

転送イベントの結果、加入者がすでに HMOに登録済みで、そのHMOが新しい位置で使用できない場合に、HMOにのみ登録できます。

送信予定日

連絡が個人に送信される日付を決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id、Cm_Typ_Id

日付 加入者の編成が {org1}または {org2}に等しい場合、登録周期 14日が再開します。加入者の編成が {org1}または{org2}に等しくない場合は、登録周期 7日が再開します。

端数処理 数値を指定位置または小数に端数処理します。

なし 金額 次の $500に四捨五入される金額 - $250

パーセント端数処理

パーセントを指定位置または小数に端数処理します。

金額

自動登録方法

報酬オブジェクトで個人が自動的に登録される条件を決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id

BEN_ENRT_MTHD値の1つ : Aまたは E; またはN

同じプラン年に再雇用された場合は、有効な福利厚生をリストアします。

1-74 Oracle FastFormulaユーザーズ・ガイド

Page 81: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

総合報酬 Formulaタイプ

控除予定 この個人に使用される控除予定を決定します。

" BEN_DED_SCHED値の 1つ

交渉団体コードがNULL値でない場合は、"月の第 2期 "を戻し、NULL値の場合は、"支払期間ごと "を戻します。

支払予定 この個人に使用される支払予定を決定します。

" BEN_PYMT_SCHED値の1つ

交渉団体コードがNULL値でない場合は、"月の第 2期 "を戻し、NULL値の場合は、"支払期間ごと "を戻します。

保留処理を割り当てるデフォルト

個人の選択が休止になっている場合に適用可能なデフォルト・オプション、または個人に割り当てる福利厚生を決定します。

" BEN_DFLT_TO_ASN_PNDG_CTFN値の 1つ

個人が前に有効であった時点で持っていた有効な福利厚生をリストアします(注意 : 個人は、COBRAなどその他の選択肢を持つことができるので、最近の福利厚生をリストアすることはできません)。

登録証明書が必要

個人が、登録または特定のプラン、オプションや福利厚生の選択に証明書を提供する必要がある条件を決定します。

" Y/N 加入者が報酬オブジェクトに登録しており、過去 12か月内に証明書を提供済みである場合は、証明書を提供する必要はありません。

扶養家族証明書が必要

個人が、指名された扶養家族の証明書を提供する必要がある条件を決定します。

" Y/N

受取人証明書が必要

個人が、指名された受取人の証明書を提供する必要がある条件を決定します。

" Y/N

放棄証明書が必要

個人が、加入を放棄するときに証明書を提供する必要がある条件を決定します。

" Y/N

Oracle FastFormula 1-75

Page 82: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

総合報酬 Formulaタイプ

要検査 連絡の検査が必要かどうかを決定します。必要な場合は、個人の連絡の "検査フラグ "が'Yes'に設定されます。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id、Cm_Typ_Id

Y/N 加入者の部門 = "法人 "または加入者の HCE標識 = "Y"の場合は、"YES"を戻します。

適切な連絡

この連絡およびトリガーで、連絡を送信するかどうかを決定し、送信先を制限します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Ler_Id、Cm_Typ_Id

Y/N 個人が年間登録イベントにあり、今日の日付が登録期間終了日から7日以内の場合は、"No"を戻します。

連絡タイプ

連絡を送信するかどうかを決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Ler_Id、Cm_Typ_Id

Y/N

必須決定 プラン内のこのオプションを登録プロセスの一部として(オプションではなく)個人に割り当てる必要があるかどうかを決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id

Y/N

1-76 Oracle FastFormulaユーザーズ・ガイド

Page 83: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

総合報酬 Formulaタイプ

選択後の編集

登録結果で編集を実行します。たとえば、加入者の配偶者も登録されている場合、加入者の配偶者が同じ会社に勤務している場合。

" Y/Nおよびテキスト

加入者が、配偶者のライフ・プラン・タイプで非放棄を選択する場合、加入者の生命保険料と等価またはそれ以上の保険料を選択する必要があります。

不完全月按分方法

使用する値を決定します : 受取日、給与期間終了日または支払期間終了日。いくつの給与期間が残留しているかを決定するときおよびエレメント・エントリが開始するときに使用する日付を按分プロセスに通知します。

" 次の値の 1つ: BEN_PRTL_MO_DET_MTHD

加入者が月次支給で、月の 8日と 15日の間で医療保険プランに登録している場合、通常の月次価格の 75%が戻ります。

不完全年の補償範囲制限

補償範囲の不完全年の最大補償範囲額を決定します。プランで定義された標準最大配分値ではなく、プラン年に残留する月数に基づいて配分される最大値を決定できます。

" 金額

不完全月有効日決定

使用する値を決定します : 受取日、支払期間終了日または給与支給期日。残っている給与期間の数を決定するとき、およびエレメント・エントリが開始するときに使用する日付を配分プロセスに通知します。

" 次の値の 1つ:BEN_PRTL_MO_EFF_DT_DET

無証明書の精算許可

証明書が放棄されるケースを識別します。

" Y/N

報酬オブジェクト選択

コンカレント・マネージャ・プロセスでプロセスに組み込む報酬オブジェクトを決定します。

" Y/N フレックスおよび非フレックス・プログラムだけにデフォルト・プロセスを実行します。加入プロセス選択モードは、導出要因を使用する全報酬オブジェクトの適格性を決定します。

Oracle FastFormula 1-77

Page 84: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

総合報酬 Formulaタイプ

個人選択 コンカレント・マネージャ・プロセスにおける処理に組み込む個人を決定します。

" Y/N 特定の組織で勤務していた以前の加入者をすべて選択します。

家族の検証

個人が1つまたは複数の特定タイプの連絡先を持っているか、または配偶者あり、配偶者と 1人の子供あり、1人以上の子供あり、などのタイプかどうかを決定します。

" Y/N

5パーセント所有者

このプランおよび規約で、個人が規約で定義されたように 5パーセント所有者とみなされるかどうかを決定します。

" Y/N

高額報酬 このプランおよび規約で、個人が規約で定義されたように "高額報酬 "対象者とみなされるかどうかを決定します。

" Y/N

キー従業員

このプランおよび規約で、個人が規約で定義されたように "キー従業員 "とみなされるかどうかを決定します。

" Y/N

サービス値のブレーク

サービス値のブレーク " 金額

サービス中断の決定

サービスの中断が発生したかどうか、この中断を無視することが可能かどうかを決定します。

" Y/N

拠出金無区別

個別の従業員の課税前報酬額を、高額および低額報酬オブジェクトの合計の課税前報酬と比較します。

" Y/N

1-78 Oracle FastFormulaユーザーズ・ガイド

Page 85: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

総合報酬 Formulaタイプ

補償範囲無区別

プランに加入する資格のある個人の合計数から、制定された要因のために加入できない個人数を差し引いた数字と実際の加入者数を比較します。

" Y/N

抽出個人データ・エレメント

データ・エレメント項目として組み込まれる個人情報またはアサイメント情報を指定します。このルール・タイプは、アサイメント情報で実行された計算の結果を戻すことも可能です。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、

テキスト

抽出個人追加

システム抽出用の個人またはアサイメント・レベルの追加または除外を指定します。

" Y/N

連絡使用 連絡使用要件が満たされているかどうかを決定します。要件が満たされている場合、連絡はこの使用方法にトリガーされる必要があります。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Ler_Id、Cm_Typ_Id

Y/N

デフォルト登録

プラン内のこのオプションを、デフォルト登録プロセスの一部分として個人に割り当てるべきかどうかを決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id

登録期間開始日

登録期間が始まる日付を決定します。 日付

登録期間終了日

登録期間が終了する日付を決定します。

" 日付

Oracle FastFormula 1-79

Page 86: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

総合報酬 Formulaタイプ

ポップアップ・メッセージ

ポップアップ・メッセージが表示されるかどうか、どのフォームで表示されるかを決定します。

" Y/N 10x給与で生命保険を選択した加入者には、給与が 50kより小さくなると、登録フォームに警告メッセージが表示されます。

日付で結果として生ずるライフ・イベントの変移

ライフ・イベントが変移されると、このルールは、結果として生ずるライフ・イベントに使用する日付を決定します。

" 日付

ライフ・イベントの変移評価

ライフ・イベントを変移して削除するか、変移して無効にするかまたはそのどちらも必要ないかを決定します。

" 次の値の 1つ: BEN_EVAL_DT: 縮小または無効または現状維持

受給権付与

個人の値を決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id、Balance_Date

パーセント

扶養家族補償範囲の変更

扶養家族が '追加のみ'、'取消しのみ '、'追加および取消し 'または 'どちらもなし 'のいずれになるかを決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id

Y/N

1-80 Oracle FastFormulaユーザーズ・ガイド

Page 87: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

総合報酬 Formulaタイプ

ライフ・イベント評価

このライフ・イベントが有効であるかまたはライフ・イベント情報(例、ステータス、無効日付、未処理日)を変更する必要があるかどうかを決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Ler Id

Y/N、ステータス・コード、未処理日、処理日。

使用する最大待機期間

最大待機期間が計算される下位日付を決定します(例、元の入社日または再雇用日付)。

" 日付

待機期間値と単位

個人に適用される待機期間および表示単位を決定します。

" 金額および単位

登録の最大期間値と表示単位

最長登録期間と報酬オブジェクトの表示単位を決定します。

" 金額および単位

ライフ・イベントの原因となる個人変更

変更されたデータに基づいて、このライフ・イベントが個人に有効かどうかを決定します。

" Y/N

ライフ・イベントの原因となる関連個人変更

変更されたデータに基づいて、このライフ・イベントが関連する個人に有効かどうかを決定します。

" Y/N

ロールオーバーのための加入者適格

この個人が、フレックス・クレジットを特定の報酬オブジェクトに転換できるかどうかを決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id、Balance_Date

Y/N

支払の受取期限

支払がないかまたは遅れているかを決定します。

" Y/N

Oracle FastFormula 1-81

Page 88: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

総合報酬 Formulaタイプ

ライフ・イベント理由の適時性

ライフ・イベントが適時方法でレポートされているかどうかを決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id

Y/N

登録の必須期間

報酬オブジェクトで個人が選択可能な選択肢の最早の登録抹消日付を決定します。

" 日付

レート下限

アクティビティ・レートまたは変数レートを比較する下限値の決定に使用される額を計算します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、 Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id、Balance_Date

金額

レート上限

アクティビティ・レートまたは変数レートを比較する上限値の決定に使用される額を計算します。

" 金額

補償範囲下限

アクティビティ、変数補償範囲または福利厚生の下限の決定に使用される額を計算します。

" 金額

補償範囲上限

アクティビティ、変数補償範囲または福利厚生の上限の決定に使用される額を計算します。

" 金額

掛金下限 アクティビティまたは変数掛金の下限の決定に使用される額を計算します。

" 金額

1-82 Oracle FastFormulaユーザーズ・ガイド

Page 89: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

総合報酬 Formulaタイプ

掛金上限 アクティビティまたは変数掛金の上限の決定に使用される額を計算します。

" 金額

登録の最大期間

登録の期間ルールは、個人が、最大期間のプランまたはオプションに登録済みであるかどうかを決定するときに使用される下位日付を決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id

Y/N

登録決定日付の最大期間

個人が、最大期間のプランまたはオプションに登録済みであるかどうかを決定するときに使用される下位日付を決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id

日付

不完全月按分値計算

不完全月登録の値を計算します。

" パーセント

計算に追加される変数レート

変数レート結果が使用されるときに新規値を計算します。

" 変数レート計算の結果

金額 結果を 102%倍します。

セグメント原価計算方法

金額が COST KEY ALLOCATION KEY FLEXFIELDのセグメントに基づいて原価計算される方法を決定します。

" キー原価割当フレックスフィールド・セグメント

登録データ・エレメントの抽出

データ・エレメント項目として組み込まれる登録情報を指定します。この Formulaタイプは、登録情報で実行された計算の結果を戻すことも可能です。

ビジネス・グループ ID、有効日、アサイメント ID、Pl_Id、Opt_Id、Ler_Id

テキスト

Oracle FastFormula 1-83

Page 90: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

総合報酬 Formulaタイプ

最大クレジット・ロールオーバー値

個人が別のプランまたはオプションに転換できる最大額を決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id

金額

超過クレジットのデフォルト処理

超過クレジットの割当て方法を決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id

BEN_DFLT_EXCS_TRTMT_CDの値の1つ

年間選択値の比例配分

最小または最大年間選択値の配分方法を決定します。

ビジネス・グループ ID、有効日、管轄区域コード、組織ID、アサイメント ID、Pgm_Id、Pl_Typ_Id、Pl_Id、Opt_Id、Ler_Id

金額

抽出転記プロセス

この Formulaは、追加システム抽出プロセスを提供し、すべての抽出レコードを書き込んだ後に呼び出されます。

ビジネス・グループ ID、有効日

EXT_RSLT_ID(これは、ben_ext_rslt表とben_ext_rslt_dtl表で見つかります )。

なし。すべての処理はFormula関数を介して実行する必要があります。コミットは、コール・プログラムで実行されます。

中間合計、レコード削除、ソート変更、形式フィールド、更新値などを挿入できます。

1-84 Oracle FastFormulaユーザーズ・ガイド

Page 91: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

JP関数

ユーザー定義の関数ユーザー定義の関数ユーザー定義の関数ユーザー定義の関数関数によってデータをさまざまな方法で処理できます。関数には、1つのデータ型しか処理しないもの、2つのデータ型を処理できるもの、3つのデータ型を処理するものがあります。

Oracle FastFormulaには多くの関数が用意されています(関連項目 : 「関数」(1-26))。また、必要に応じて、他の関数を作成することもできます。これは 2つのステップからなります。まず新しい PL/SQL関数を作成し、次にそれを「関数の定義」ウィンドウでシステムに登録します。

ユーザー定義の関数の作成に当たっては、次に挙げる 2つの制約に注意してください。

� 現行リリースの Oracle Payrollでは、INタイプのパラメータの関数しか定義できません。これは、ユーザー定義関数は 1つしか値を返さないことを意味します。IN OUTおよび OUTタイプのパラメータはサポートされていません。

� ユーザー定義の関数にはコミット、ロールバック、セーブポイントの文は使用しないようにしてください。このような文を使用した場合、給与計算でデータ整合性の問題が発生する恐れがあります。さらに、FastFormulaは読込み専用ツールなので、関数ではデータの変更をデータベースに保存しないようにしてください。

JP関数関数関数関数次に示す関数は、日本語の法定 Formulaで使用するように登録されています。

CHECK_FORMAT(expr, fmt)

CHECK_FORMAT関数は TRUEまたは FALSEを返して、次のようにテキスト文字列オペランド exprが fmt型と一致することを検証します。

0:0-9 数字のみ、省略不可

9:0-9 数字のみ、省略可

A:A-Z 大文字のアルファベットのみ、省略不可

P:A-Z 大文字のアルファベットのみ、省略可

a:a-z 小文字のアルファベットのみ、省略不可

p:a-z 小文字のアルファベットのみ、省略可

L:0-9、A-Z 数字と大文字のアルファベットのみ、省略不可

C:0-9, A-Z 数字と大文字のアルファベットのみ、省略可

Oracle FastFormula 1-85

Page 92: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

JP関数

例 :

CHECK_FORMAT ('123456ABC', '999999PPL')はTRUEを返します。

CHECK_DATE_FORMAT(date, date fmt)

CHECK_DATE_FORMAT関数は TRUEまたは FALSEを返して、日付オペランドが所定の日付 fmtと一致していることを検証します。

例 :

CHECK_DATE_FORMAT ('19990623', 'YYYYMMDD')は TRUEを返します。

GET_LAST_ASSACT(date1, date2)

GET_LAST_ASSACT関数は、date1と date2の間で classification_nameが「SEQUENCED」の最新 assignment_action_idを返します。classification_nameが「SEQUENCED」のAction_typesは、次のとおりです。

ORG_EXISTS(organization_id, org_class)

l:0-9, a-z 数字と小文字のアルファベットのみ、省略不可

c:0-9, a-z 数字と小文字のアルファベットのみ、省略可

ACTION_TYPE 内容内容内容内容 CLASSIFICATION_NAME

B バランス調整 SEQUENCED

F 前払 SEQUENCED

I バランス初期化 SEQUENCED

O 遡及計算 SEQUENCED

Q QuickPay実行 SEQUENCED

R 実行 SEQUENCED

V リバーサル SEQUENCED

Z パージ SEQUENCED

1-86 Oracle FastFormulaユーザーズ・ガイド

Page 93: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇 Formulaのサンプル

ORG_EXISTS関数は TRUEまたは FALSEを返して、組織 IDが組織クラスにあることを検証します。

例 :

ORG_EXISTS(12345, 'JP_KENPO')

例例例例

有給休暇有給休暇有給休暇有給休暇 Formulaのサンプルのサンプルのサンプルのサンプルこのトピックでは、有給休暇 Formulaで有給休暇付与プランのさまざまなルールをインプリメントする方法について説明します。この方法は、シードされたPTO_SIMPLE_MULTIPLIER式に似た簡単な Formulaを基にしています。サンプル Formulaは、次のルールのプランを対象としています。

� 1月 1日から始まる 1カレンダ年の有給休暇期間

� 月次有給休暇期間と月ごとに 2日間で固定されている有給休暇

� Formulaで固定されている 20日間の有給休暇の上限

� 新規採用者の有給休暇付与は、入社日、プラン登録日、継続勤務日のいずれか最も新しい日付から開始します。従業員をプランに登録するときに入力パラメータとして入力できます。

最上位レベルの Formulaは、ループ内で別の Formulaを繰り返しコールし、各期間の有給休暇付与を計算します。次の式は、最上位の Formula(PTO_ONE_YEAR_MULTIPLIER)とループ内の Formula(PTO_PERIOD_ACCRUAL)です。

1. /*----------------------------------------------NAME : PTO_ONE_YEAR_MULTIPLERThis formula calculates the dates between whichan assignment is to accrue time----------------------------------------------*/

2. DEFAULT FOR ACP_CONTINUOUS_SERVICE_DATE IS '31-DEC-4712' (date)3. DEFAULT FOR ACP_TERMINATION_DATE IS '31-DEC-4712' (date)4. DEFAULT FOR ACP_ENROLLMENT_START_DATE IS '31-DEC-4712' (date)5. DEFAULT FOR ACP_SERVICE_START_DATE IS '31-DEC-4712' (date)

6. INPUTS ARE

Oracle FastFormula 1-87

Page 94: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇 Formulaのサンプル

Calculation_Date (date)

7. E = SET_NUMBER('CEILING', 20)8. E = SET_NUMBER('ACCRUAL_RATE', 2)

9. Accruing_Frequency = 'M' /* Month */10. Accruing_Multiplier = 1

11. E = SET_TEXT('ACCRUING_FREQUENCY', Accruing_Frequency)12. E = SET_NUMBER('ACCRUING_MULTIPLIER', Accruing_multiplier)

13. Beginning_Of_Calculation_Year = to_date ('0101'||to_char(Calculation_Date,'YYYY'),'DDMMYYYY')

14. E = SET_DATE('BEGINNING_OF_CALCULATION_YEAR', Beginning_Of_Calculation_Year)

15. /*----------------------------------------------- Set the start and end dates of the first accrual period in the calculation year. -----------------------------------------------*/

16. E = GET_PERIOD_DATES (Beginning_of_Calculation_Year, Accruing_Frequency, Beginning_Of_Calculation_Year, Accruing_Multiplier)

17. First_Period_SD = get_date('PERIOD_START_DATE')18. First_Period_ED = get_date('PERIOD_END_DATE')

19. /*---------------------------------------------- Set the Calculation_Date to the Termination Date if not null --------------------------------------------- */

20. IF NOT (ACP_TERMINATION_DATE WAS DEFAULTED) THEN (21. IF (ACP_TERMINATION_DATE < Calculation_Date) THEN (22. Calculation_Date = ACP_TERMINATION_DATE ) )

1-88 Oracle FastFormulaユーザーズ・ガイド

Page 95: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇 Formulaのサンプル

23. /* ---------------------------------------------- Get the last whole period prior to the Calculation Date and ensure that it is within the Year (if the Calculation Date is the End of a Period then use that period) ---------------------------------------------- */

24. E = GET_PERIOD_DATES(Calculation_Date, Accruing_Frequency, Beginning_of_Calculation_Year, Accruing_Multiplier)

25. Calculation_Period_SD = get_date('PERIOD_START_DATE')26. Calculation_Period_ED = get_date('PERIOD_END_DATE')

27. IF (Calculation_Date <> Calculation_Period_ED) THEN (28. E = GET_PERIOD_DATES (ADD_DAYS(Calculation_Period_SD,-1), Accruing_Frequency, Beginning_of_Calculation_Year, Accruing_Multiplier)29. Calculation_Period_SD = get_date('PERIOD_START_DATE')30. Calculation_Period_ED = get_date('PERIOD_END_DATE') )

31. /* ---------------------------------------------- Set the Continuous Service Global Variable using the Continuous Service Date (if it was entered when the employee enrolled in the plan) and otherwise using hire date, whilst also ensuring that the continuous service date is before the Calculation Period. --------------------------------------------- */

32. IF (ACP_CONTINUOUS_SERVICE_DATE WAS DEFAULTED) THEN33. ( E = set_date('CONTINUOUS_SERVICE_DATE', ACP_SERVICE_START_DATE) )34. ELSE (35. E = set_date('CONTINUOUS_SERVICE_DATE', ACP_CONTINUOUS_SERVICE_DATE) )

Oracle FastFormula 1-89

Page 96: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇 Formulaのサンプル

36. Continuous_Service_Date = get_date('CONTINUOUS_SERVICE_DATE')

37. /* --------------------------------------------- Determine the date on which PTO actually starts accruing based on Continuous Service Date, the Start Date of the Calculation Year, and plan Enrollment Start Date. Remember, we have already determined whether to use hire date or CSD at lines 32 to 35 above. ---------------------------------------------- */

38. Actual_Accrual_Start_Date = greatest(ACP_ENROLLMENT_START_DATE, Continuous_Service_Date, First_Period_SD)

39. /* --------------------------------------------- Determine the start and end date of the first accrual period to use in the accrual calculation. Get the start and end dates of the accrual period in which the Actual Accrual Start Date falls. If the Actual Accrual Start Date does not fall on the first day of this period, start accruing from the next period. -----------------------------------------------*/

40. IF Actual_Accrual_Start_Date > First_Period_SD THEN (41. E = GET_PERIOD_DATES(Actual_Accrual_Start_Date, Accruing_Frequency, Beginning_Of_Calculation_Year, Accruing_Multiplier)42. Accrual_Start_Period_SD = get_date('PERIOD_START_DATE')43. Accrual_Start_Period_ED = get_date('PERIOD_END_DATE')44. IF Actual_Accrual_Start_Date > Accrual_Start_Period_SD THEN (45. E = GET_PERIOD_DATES (add_days(Accrual_Start_Period_ED,1), Accruing_Frequency, Beginning_of_Calculation_Year, Accruing_Multiplier)46. Accrual_Start_Period_SD = get_date('PERIOD_START_DATE')47. Accrual_Start_Period_ED = get_date('PERIOD_END_DATE') ) )

1-90 Oracle FastFormulaユーザーズ・ガイド

Page 97: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇 Formulaのサンプル

48. ELSE (49. Accrual_Start_Period_SD = First_Period_SD50. Accrual_Start_Period_ED = First_Period_ED )

51. /* -------------------------------------------- Now set up the information that will be used when looping through the periods --------------------------------------------- */

52. IF Calculation_Period_ED >= Accrual_Start_Period_ED THEN (53. E = set_date('PERIOD_SD',Accrual_Start_Period_SD)54. E = set_date('PERIOD_ED',Accrual_Start_Period_ED)55. E = set_date('LAST_PERIOD_SD',Calculation_Period_SD)56. E = set_date('LAST_PERIOD_ED',Calculation_Period_ED)57. E = set_number('TOTAL_ACCRUED_PTO',0)58. E = LOOP_CONTROL('PTO_PERIOD_ACCRUAL')59. Total_Accrued_PTO = get_number('TOTAL_ACCRUED_PTO') )

60. IF Accrual_Start_Period_SD > Calculation_Period_ED THEN (61. Accrual_Start_Period_SD = First_Period_SD )

62. Effective_start_date = Accrual_Start_Period_SD63. Effective_end_date = Calculation_Date64. Accrual_end_date = Calculation_Period_ED

65. RETURN Total_Accrued_PTO,66. Effective_start_date,67. Effective_end_date,68. Accrual_end_date

ループループループループ Formula1. /* ---------------------------------------------- NAME : PTO_PERIOD_ACCRUAL This formula calculates the dates between which an assignment is to accrue time ------------------------------------------------*/

2. /*------------------------------------------------ Get the global variable to be used in this formula ------------------------------------------------*/

Oracle FastFormula 1-91

Page 98: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇 Formulaのサンプル

3. Continuous_Service_Date = get_date('CONTINUOUS_SERVICE_DATE')4. Total_Accrued_PTO = get_number('TOTAL_ACCRUED_PTO')5. Period_SD = get_date('PERIOD_SD')6. Period_ED = get_date('PERIOD_ED')7. Last_Period_SD = get_date('LAST_PERIOD_SD')8. Last_Period_ED = get_date('LAST_PERIOD_ED')9. Accrual_Rate = get_number('ACCRUAL_RATE')10. Accruing_Frequency = get_text('ACCRUING_FREQUENCY')11. Accruing_Multiplier = get_number('ACCRUING_MULTIPLIER')12. Beginning_of_Calculation_Year = get_date('BEGINNING_OF_CALCULATION_YEAR')13. Ceiling = get_number('CEILING')

14. /* ---------------------------------------------- Calculate the Amount Accrued this Period -----------------------------------------------*/

15. Period_Accrued_PTO = Accrual_Rate

16. /*----------------------------------------------- Calculate any absence or bought/sold time etc. to be accounted for in this period. -----------------------------------------------*/

17. Absence = GET_ABSENCE(Period_ED, Beginning_of_Calculation_Year)18. CarryOver = GET_CARRY_OVER(Period_ED, Beginning_of_Calculation_Year)19. Other = GET_OTHER_NET_CONTRIBUTION(Period_ED, Beginning_of_Calculation_Year)

20. Period_Others = CarryOver + Other - Absence

21. /* ---------------------------------------------- Now establish whether the Accrual this period has gone over the ceiling if one exists -----------------------------------------------*/

22. IF (Ceiling > 0) THEN (23. IF (Total_Accrued_PTO + Period_Accrued_PTO + Period_Others > Ceiling) THEN (24. Amount_Over_Ceiling = Total_Accrued_PTO + Period_Accrued_PTO + Period_Others - Ceiling25. IF (Amount_Over_Ceiling > Period_Accrued_PTO)

1-92 Oracle FastFormulaユーザーズ・ガイド

Page 99: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇 Formulaのサンプル

THEN (26. Period_Accrued_PTO = 0 )27. ELSE (28. Period_Accrued_PTO = Period_Accrued_PTO - Amount_Over_Ceiling ) ) )

29. /*----------------------------------------------- Set the Running Total -----------------------------------------------*/

30. E = set_number ('TOTAL_ACCRUED_PTO',Total_Accrued_PTO + Period_Accrued_PTO)

31. /* ---------------------------------------------- Establish whether the current period is the last one, if so end the processing, otherwise get the next period -----------------------------------------------*/

32. IF Period_SD = Last_Period_SD THEN (33. Continue_Processing_Flag = 'N' )34. ELSE (35. E = GET_PERIOD_DATES(ADD_DAYS(Period_ED,1), Accruing_Frequency, Beginning_of_Calculation_Year, Accruing_Multiplier)36. E = set_date('PERIOD_SD', get_date('PERIOD_START_DATE'))37. E = set_date('PERIOD_ED', get_date('PERIOD_END_DATE'))38. Continue_Processing_Flag = 'Y' )

39. Return Continue_Processing_Flag

Oracle FastFormula 1-93

Page 100: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇 Formulaのサンプル

有給休暇期間の変更有給休暇期間の変更有給休暇期間の変更有給休暇期間の変更有給休暇期間は、変数 Accruing_Frequencyおよび Accruing_Multiplier(最上位レベルの 9行と 10行の Formula)によって決定されます。Accruing_Frequencyは、M(月)、D(日)、またはW(週)に設定できます。たとえば、頻度をWに設定し、乗数を 2に設定すると、2週間ごとの時間で有給休暇が付与されます。

これらの例では、カレンダを使用して、有給休暇期間の長さを測定します。給与期間も使用できます。この場合は、変数 Accruing_Frequencyおよび Accruing_Multiplierを設定する必要はありません。行 16、24、28、41、および 45で、get_period_datesへのコールをget_payroll_periodへのコールに置き換えます。たとえば、24から 26行を次のように置き換えます。

E = GET_PAYROLL_PERIOD (ADD_DAYS(Calculation_Period_SD, -1))CALCULATION_PERIOD_SD = get_date('PAYROLL_PERIOD_START_DATE')CALCULATION_PERIOD_ED = get_date('PAYROLL_PERIOD_END_DATE')

有給休暇期間開始日の変更有給休暇期間開始日の変更有給休暇期間開始日の変更有給休暇期間開始日の変更有給休暇期間の開始日は、サンプルの最上位レベルの Formulaの 13行目で 1月 1日に設定します。別の固定日(6月 1日など)を使用するには、この行を次のように置き換えます。

Beginning_Of_Calculation_Year = to_date ('0106'||to_char(Calculation_Date,'YYYY'),'DDMMYYYY')

If Beginning_Of_Calculation_Year > Calculation_Date then( Beginning_Of_Calculation_Year = add_months(Beginning_Of_Calculation_Year, -12))

従業員の有給休暇期間をその入社日から始めるには、13行目を次のように置き換えます。

Beginning_Of_Calculation_Year = to_date( to_char(ACP_SERVICE_START_DATE,'DD-MM') || to_char(Calculation_Date,'YYYY'),'DDMMYYYY')

If Beginning_Of_Calculation_Year > Calculation_Date then( Beginning_Of_Calculation_Year = add_months(Beginning_Of_Calculation_Year, -12))

この例では、ACP_SERVICE_START_DATEデータベース・アイテムを使用していますが、他のアイテムも使用できます。

1-94 Oracle FastFormulaユーザーズ・ガイド

Page 101: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇 Formulaのサンプル

新規採用者の開始ルールの追加新規採用者の開始ルールの追加新規採用者の開始ルールの追加新規採用者の開始ルールの追加このサンプル Formulaでは、新規採用者の有給休暇付与が、入社日、プラン登録日または継続勤務日のいずれか最も新しい日付から開始します。ただし、最上位レベルの有給休暇Formulaで、プランに開始ルールが定義されているかどうかを確認できます。シードされたPTO_PAYROLL_CALCULATION Formulaは、これを行う方法を示しています。

要約すると、この Formulaでは、次の計算が行われます。

� プランに入力された開始ルールを検査し、それに応じて First_Eligible_To_Accrue_Dateを計算します。

� First_Eligible_To_Accrue_Date以降の最初の完全な有給休暇期間を取得します。

� Actual_Accrual_Start_Dateが First_Eligible_To_Accrue_Dateより後になっていることを確認する。そうでない場合は、 Accrual_Start_Periodの開始日と終了日をFirst_Eligible_To_Accrue_Periodの開始日と終了日に設定する。これは、サンプルFormulaの 40から 50行に影響します。

シードされた開始ルールには、入社日、入社日以降のカレンダ年の始めおよび入社日の 6か月後の 3つがあります。別の開始ルールが必要な場合は、参照タイプUS_ACCRUAL_START_TYPEの値として定義します。

その後、次の形式の行を Formulaに追加します。

IF (ACP_START = '<your new Lookup Value>') THEN (First_Eligible_To_Accrue_Date = <calculation for start date>)

時間または支払エレメントに基づいた累積値時間または支払エレメントに基づいた累積値時間または支払エレメントに基づいた累積値時間または支払エレメントに基づいた累積値累積値を決めるエレメント入力パラメータに、データベース・アイテムを作成する必要があります。プランの加入者は、労働時間 10時間ごとに 1時間の有給休暇が与えられると仮定します。このルールは、次のような Formulaに当てはめることができます。

Accrual = ACP_HOURS_WORKED / 10

ここで、ACP_HOURS_WORKEDはデータベース・アイテムです。この種の計算は、一般に、ループ Formulaで行われます。

有給休暇一括付与の使用有給休暇一括付与の使用有給休暇一括付与の使用有給休暇一括付与の使用サンプルの Formulaでは、プランの加入者が、毎月一定時間の有給休暇が与えられることを前提としています。しかし、プランの中には、加入者が有給休暇期間の開始時にすべての有給休暇が付与されることもあります。この場合は、各有給休暇期間で Formulaをループさせる必要はありません。

Oracle FastFormula 1-95

Page 102: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇 Formulaのサンプル

これは、カレンダ年ごとに 20日の有給休暇付与を想定した非常に基本的な Formulaの例です。この例には、不適格ルールや開始ルールはありません。また、対象年の一部に対する有給休暇も計算しません(1年の途中でプランに加入した従業員など)。

INPUTS ARECalculation_Date (date)

Total_Accrued_PTO = 20Effective_start_date = to_date('0101'||to_char(calculation_date, 'YYYY'))Effective_end_date = to_date('3112'||to_char(calculation_date, 'YYYY'))Accrual_end_date = to_date('0101'||to_char(calculation_date, 'YYYY'))

RETURN Total_Accrued_PTO, Effective_start_date, Effective_end_date, Accrual_end_date

上限の変更上限の変更上限の変更上限の変更サンプルの最上位レベルの Formulaでは、上限が 7行目で設定されています。ユーザーは、Formula内で上限を変更したり、0に設定して上限を除去したりできます。

E = SET_NUMBER('CEILING', 0)

また、「有給休暇付与期間」ウィンドウまたはユーザー表を使用して、上限を Formula外で設定できます。

継続勤務に使用する日付の変更継続勤務に使用する日付の変更継続勤務に使用する日付の変更継続勤務に使用する日付の変更継続勤務日は、新規採用者の有給休暇付与の開始日を決定する式の中で使用されます。プランの有給休暇付与期間が勤続期間に基づいている場合は、この日付によって、従業員が取得できる有給休暇の日数が決まります。

このサンプルでは、勤続期間は、データベース・アイテム ACP_SERVICE_START_DATEを使用して入社日から計算します。または、従業員のプランへの登録時に勤続期間が入力された場合(データベース・アイテム ACP_CONTINUOUS_SERVICE_DATE)、継続勤務日の入力パラメータから計算されます。また、別のデータベース・アイテムを定義して使用することもできます。たとえば、最上位レベルの Formulaの 32から 36行を次のように置き換えます。

E = set_date('CONTINUOUS_SERVICE_DATE', <NEW_DATABASE_ITEM>)

Continuous_Service_Date = get_date('CONTINUOUS_SERVICE_DATE')

1-96 Oracle FastFormulaユーザーズ・ガイド

Page 103: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇 Formulaのサンプル

休止アサイメントのルールの追加休止アサイメントのルールの追加休止アサイメントのルールの追加休止アサイメントのルールの追加有給休暇付与プランによっては、特定のタイプの休暇で従業員が有給休暇を取得できない場合があります。産前産後休暇や研修休暇などがそれに該当します。この場合は、Formulaを使用してアサイメント状況を確認する必要があります。

たとえば、「休止」状況のアサイメントが有給休暇時間を付与できないと仮定します。ASG_STATUSデータベース・アイテムを使用して、アサイメント状況の値を取得できます。8行目を次のように置き換えます。

IF ASG_STATUS = 'Suspended' THEN( E = SET_NUMBER('ACCRUAL_RATE', 0))ELSE( E = SET_NUMBER('ACCRUAL_RATE', 2))

パートタイム従業員のルールの追加パートタイム従業員のルールの追加パートタイム従業員のルールの追加パートタイム従業員のルールの追加ASG_EMPLOYMENT_CATEGORYデータベース・アイテムを使用して、アサイメントがパートタイムかフルタイムなのかを確認できます。

パートタイム従業員にはフルタイム従業員の半分の割合しか有給休暇が与えられず、上限が低いと仮定すると、7行と 8行を次のものに置き換えます。

IF ASG_EMPLOYMENT_CATEGORY = 'FULL TIME' then( E = SET_NUMBER('CEILING', 20) E = SET_NUMBER('ACCRUAL_RATE', 2))ELSE( E = SET_NUMBER('CEILING', 10) E = SET_NUMBER('ACCRUAL_RATE', 1))

パートタイム従業員に対し、フルタイムと比較した勤務時間の比率に応じて有給休暇のレートを変更する場合は、HR要員計画を設定して各アサイメントの値を入力できます。その後、要員計画値のデータベース・アイテムを定義する必要があります。

長期勤続有給休暇の追加長期勤続有給休暇の追加長期勤続有給休暇の追加長期勤続有給休暇の追加「有給休暇」ウィンドウで、従業員に与えた長期勤続休暇の日数を確認するには、別個の有給休暇付与プランを設定する必要があります。それ以外の場合は、有給休暇を標準の有給休

Oracle FastFormula 1-97

Page 104: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇 Formulaのサンプル

暇付与プランに入れることができます。次に示す方法で、有給休暇の上限を使用せずに、長期勤続有給休暇を 1つの有給休暇期間に追加します。

従業員は、15年間の勤続後に 1回、10日分多く有給休暇が与えられるとします。最初に、最上位レベルの Formulaの 57行目の後に次のように追加して、ループ Formulaでアクセスできる変数を設定します。

e = set_number('LONG_SERVICE_ACCRUAL', 0)

次に、ループ Formula内で勤続年数を計算して、従業員に長期勤続休暇の取得資格があるかどうかを確認します。13行目の後に次のように追加します。

years_service = floor(months_between(period_ed, continuous_service_date)/12)

次に、長期勤続有給休暇がすでに追加されているかどうかを調べるために、後で使用できる変数を設定します。29行目の後に、次のように追加します。

long_service_accrual = get_number('LONG_SERVICE_ACCRUAL')

IF (years_service > 15) and long_service_accrual = 0 THEN( long_service_accrual = 10 e = set_number('LONG_SERVICE_ACCRUAL', long_service_accrual))ELSE( long_service_accrual = 0)

最後に、上限を無視して、合計有給休暇に長期勤続有給休暇を追加します。30行目を次のように置き換えます。

E = set_number('TOTAL_ACCRUED_PTO',Total_Accrued_PTO + Period_Accrued_PTO + long_service_accrual)

勤続期間に基づいた有給休暇付与期間の使用勤続期間に基づいた有給休暇付与期間の使用勤続期間に基づいた有給休暇付与期間の使用勤続期間に基づいた有給休暇付与期間の使用シード・ループ Formulaは、勤続期間(「有給休暇付与期間」ウィンドウに入力した期間)を基準にして有給休暇付与期間を使用します。サンプル Formulaが有給休暇付与期間を使用するよう変更するには、次のようにします。

最上位レベルの最上位レベルの最上位レベルの最上位レベルの Formulaで、次のことを行います。で、次のことを行います。で、次のことを行います。で、次のことを行います。� 7行目と 8行目を削除します。

� 57行目の後に次のように追加します。

1-98 Oracle FastFormulaユーザーズ・ガイド

Page 105: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇 Formulaのサンプル

E = set_number('ANNUAL_RATE',0)E = set_number('UPPER_LIMIT',0)E = set_number('CEILING',0)

ループループループループ Formulaでは、次のことを行いますでは、次のことを行いますでは、次のことを行いますでは、次のことを行います� 9行目、10行目、11行目および 13行目を削除します。

� 12行目の後に次のように追加します。

Annual_Rate = get_number('ANNUAL_RATE')Upper_Limit = get_number('UPPER_LIMIT')Ceiling = get_number('CEILING')

Years_Service = Floor(Months_Between(Period_ED, Continuous_Service_Date)/12)

/*----------------------------------------------If the Upper Limit was defaulted or years serviceis greater than or equal to the upper limit ofthe current band reset the globals to theappropriate band.-----------------------------------------------*/

IF (Upper_Limit = 0 OR Years_Service >= Upper_Limit) THEN( If (GET_ACCRUAL_BAND(Years_Service) = 0) THEN ( Annual_Rate = get_number('ANNUAL_RATE') Upper_Limit = get_number('UPPER_LIMIT') Ceiling = get_number('CEILING') ) ELSE /*function returned an error */ ( Continue_Processing_Flag = 'N' Return Continue_Processing_Flag ))

Accrual_Rate = Annual_Rate / 12

勤続期間単位の変更勤続期間単位の変更勤続期間単位の変更勤続期間単位の変更通常、「有給休暇付与期間」ウィンドウに入力する期間は年数を示します。ただし、Formulaを変更すると、6か月などの別の単位で期間を解釈できます。上記のサンプルで、有給休暇付与期間を使用するようにループ Formulaを変更するには、次の行で「12」を「6」に置き換えます。

Oracle FastFormula 1-99

Page 106: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

QuickPaint Formulaの編集

Years_Service = Floor(Months_Between(Period_ED, Continuous_Service_Date)/12)

別の基準に基づいた有給休暇付与期間の使用別の基準に基づいた有給休暇付与期間の使用別の基準に基づいた有給休暇付与期間の使用別の基準に基づいた有給休暇付与期間の使用必要な値を格納するユーザー表を設定できます。例 :

この他に、基準の組合せ(等級と勤続期間など)に基づいた有給休暇付与期間にもできます。この場合は、格納する値(累積値、上限、最大繰越日数など)ごとに別個のユーザー表を設定する必要があります。累積値の表は、次のようになります。

ユーザー表のデータを Formulaで使用するには、GET_TABLE_VALUE関数を使用します。

yearly_accrual = get_table_value(<table_name>, <column_name>, <row_value>, <effective_date>)

有効日のパラメータはオプションです。例 :

yearly_accrual = get_table_value ('MY_TABLE', 'GRADE A', 5)

QuickPaint Formulaの編集の編集の編集の編集生成した QuickPaint Formulaに何かを追加する場合は、必ずコピーした Formulaを使用して編集します。元の Formulaを編集すると、QuickPaint定義から Formulaが再生成される場合に、編集内容が上書きされてしまいます。

次の例では、自動生成された QuickPaint Formulaを編集して、レポートで使用する入力パラメータの合計を求める Line 09を追加しています。

LINE01=''LINE02=' Pay Items Value this PeriodLINE03=''LINE04=' Salary Value :' + TO_TEXT(trunc((SALARY_ANNUAL/12),2))

有給休暇付与有給休暇付与有給休暇付与有給休暇付与 上限上限上限上限 最大繰越最大繰越最大繰越最大繰越

等級 A 20 25 5

等級 B 24 25 8

等級等級等級等級 A 等級等級等級等級 B

勤続年数が 0年から 5年 20 25

勤続年数が 5年から 50年 24 28

1-100 Oracle FastFormulaユーザーズ・ガイド

Page 107: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

エレメント・エントリの検証

LINE05=' Item 1 Value :' + TO_TEXT(ITEM_1_PAY_VALUE)LINE06=' Item 2 Value :' + TO_TEXT(ITEM_2_PAY_VALUE)LINE07=' Bonus Value :' + TO_TEXT(BONUS_AMOUNT)LINE08=' __________________'LINE09=' Total :'+ TO_TEXT(trunc(((SALARY_ANNUAL/12)+ITEM_1_PAY_VALUE+ITEM_2_PAY_VALUE+BONUS_AMOUNT),2))LINE10=''LINE11=''LINE12=''RETURN LINE01, LINE02, LINE03, LINE04, LINE05, LINE06, LINE07,LINE08, LINE09, LINE10, LINE11, LINE12,

エレメント・エントリの検証エレメント・エントリの検証エレメント・エントリの検証エレメント・エントリの検証FastFormulaを使用して、エレメント入力パラメータに入力した値を検証できます。たとえば、エントリが指定の範囲内にあることや、事前定義値を超えていないことを確認できます。

次に示す Formulaは、「給与」エレメントの入力値が 200.000を超えてないかを検証します。

給与エレメント給与エレメント給与エレメント給与エレメント

/* Formula Name: Salary Range *//* Formula Type: Element Input Validation */

INPUTS ARE entry_value (text)IF TO_NUM(entry_value) > 200000THEN( formula_status = 'e' formula_message = 'Too much money . . . try again!')ELSE( formula_status = 's'

Oracle FastFormula 1-101

Page 108: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

ユーザー表エントリの検証

formula_message = 'Fine')RETURN formula_status, formula_message

ユーザー表エントリの検証ユーザー表エントリの検証ユーザー表エントリの検証ユーザー表エントリの検証FastFormulaを使用して、定義するユーザー表に入力した値を検証できます。たとえば、エントリが指定の範囲内にあることや、マイナスの金額でないことを確認できます。

次に示す Formulaは、組合費一覧表の組合 Aの列に入力された控除項目が 10.00 と 20.00の間にあるかを検証します。

/* Formula Name: Union A Dues Validation *//* Formula Type: User Table Validation */

INPUTS ARE entry_value (text)IF TO_NUMBER(entry_value) < 10.00 ORTO_NUMBER(entry_value) > 20.00THEN( formula_status = 'e' formula_message = 'Error: Union A dues must be between $10.00 and $20.00.')ELSE( formula_status = 's' formula_message = ' ')RETURN formula_status, formula_message

Oracle FastFormulaOracle FastFormulaでは、英語版のワープロ機能や基本計算機能を使用して、Formulaを簡単に記述できます。データベース体系やプログラミング言語が分からなくても、データベースの情報を Formulaで使用できます。

� 「Formulaの記述または編集」(1-102)

� 「グローバル値の定義」(1-104)

� 「関数の登録」(1-104)

� 「エレメントのための給与計算 Formulaの記述」(1-106)

� 「有給休暇付与プランの Formulaの記述」(1-106)

1-102 Oracle FastFormulaユーザーズ・ガイド

Page 109: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formulaの記述または編集

� 「エレメント・スキップ・ルールの Formulaの記述」(1-111)

� 「QuickPaint Formulaへの機能のコピーと追加」(1-112)

� 「検証用 Formulaの記述」(1-112)

� 「アサイメント・セット Formulaの編集」(1-113)

� 「Formulaの一括検証」(1-114)

Oracle FastFormulaの使用の使用の使用の使用

Formulaの記述または編集の記述または編集の記述または編集の記述または編集「Formula」ウィンドウを使用して Formulaの記述と編集を行います。

次の手順で次の手順で次の手順で次の手順で Formulaの記述や編集を実行します。の記述や編集を実行します。の記述や編集を実行します。の記述や編集を実行します。1. Formulaを使用しはじめる日付を有効日に設定します。

2. 新しい Formulaを記述するには、Formula名を入力してタイプを選択します。既存のFormulaを編集するには、Formula名を問い合せます。

3. 「編集」ボタンを選択して「Formulaの編集」ウィンドウを開くと、新しい Formulaを記述したり既存の Formulaを編集できます。

4. データベース・アイテムを選択するには、「アイテムの表示」ボタンを選択して「データベース・アイテム」ウィンドウを表示し、問合せを実行します。「データベース・アイテム」ウィンドウから「Formulaの編集」ウィンドウにデータベース・アイテムをコピー、ペーストします。

5. Formulaの記述や編集が終了したら、「検証」ボタンを選択して Formulaをコンパイルします。

この処理では、Formula内の構文エラーも検証します。

6. Formulaの検証が正しく終了したら、Formulaを保存します。

注意注意注意注意 : Formulaをいったんコンパイルすると、新しい関数や、最初にコンパイルした後で既存の関数に対して行った変更は使用されません。オラクル人事管理システムをログアウトして再びログインする必要があります。その後 Formulaをコンパイルすると、新しい関数や既存関数への変更も組み込まれます。

Oracle FastFormula 1-103

Page 110: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

グローバル値の定義

7. 次の操作は、Formulaタイプによって異なります。

� Formulaのタイプが「Oracle Payroll」の場合は、「Formula実行結果ルール」ウィンドウを使用して Formulaをエレメントに関連付ける必要があります。

� Formulaのタイプが「エレメント・スキップ」の場合は、「エレメント」ウィンドウの「スキップ・ルール」フィールドで Formulaを選択します。

� Formulaのタイプが「エレメント・パラメータ入力の検証」の場合は、エレメントを定義するときに、「入力パラメータ」ウィンドウの「Formula」フィールドでFormulaを選択します。

� Formulaのタイプが「ユーザー表検証」の場合は、ユーザー表構造を定義するときに、「列」ウィンドウの「Formula」フィールドで Formulaを選択します。

� Formulaのタイプが「有給休暇」、「最大繰越日数」または「有給休暇不適格」の場合は、「有給休暇付与プラン」ウィンドウで選択します。

� Formulaのタイプが「有給休暇サブ Formula」の場合は、タイプ「有給休暇」の別の Formulaからコールします。

� Formulaが福利厚生の管理に使用される場合、該当する福利厚生ウィンドウの「ルール」フィールドで Formulaを選択します。

論理エラーを完全に取除くため、(使用を想定して試験的に給与計算を行うなど)予定している Formulaと同じ Formulaを使用してテストしてください。

グローバル値の定義グローバル値の定義グローバル値の定義グローバル値の定義会社名や賞与の計算に使用する企業独自のパーセント値など、ほとんど変更しないが頻繁に参照する情報の格納には、グローバル値を使用します。名称でグローバル値を参照することにより、Formulaでグローバル値を変数として使用できます。

Formulaを使用してグローバル値を変更することはできません。グローバル値を変更するには「グローバル」ウィンドウを使用します。グローバル値はデートトラックされるため、有効日を事前に変更できます。

グローバル値は、ビジネス・グループ内のすべての Formulaに対して使用できます。

次の手順でグローバル値を定義します。次の手順でグローバル値を定義します。次の手順でグローバル値を定義します。次の手順でグローバル値を定義します。1. グローバル値を使用しはじめる日付を有効日に設定します。

2. 名称、データ型(数値、テキスト、日付)、値を入力します。摘要も入力できます。

1-104 Oracle FastFormulaユーザーズ・ガイド

Page 111: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

関数の登録

関数の登録関数の登録関数の登録関数の登録新しい関数を登録するには、名称を付けて定義した後、コンテキストとパラメータを作成します。コンテキストは隠しパラメータ環境値で、関数には渡されません。

パラメータと FF_CONTEXTS表のコンテキストの両方が関数で必要な場合、関数ヘッダー内の順序は、まずコンテキスト、その後に関数パラメータが続きます。ただし、FastFormulaから関数をコールする場合、必要なのは関数パラメータだけです。

たとえば、3つのコンテキストと 5つのパラメータで、合計 8つの値が必要な関数があるとします。この場合、8つの値はすべて関数ヘッダーに列挙しますが、関数のコールに使用するのは 5つのパラメータだけです。

登録できる関数には次の 2つの区分があります。

� 外部関数外部関数外部関数外部関数 :これは、すでに FastFormulaに標準装備されている PL/SQL関数群に追加的に用意する PL/SQL関数です。外部関数ではコンテキストとパラメータを使用できます。

� ユーザー定義関数ユーザー定義関数ユーザー定義関数ユーザー定義関数 :この区分は、将来のリリースで削除される予定なので、使用しないことをお薦めします。外部関数区分として新しい関数を定義してください。

次の手順で次の手順で次の手順で次の手順で Oracle FastFormulaに新しい関数を登録します。に新しい関数を登録します。に新しい関数を登録します。に新しい関数を登録します。1. 新しい関数の一意の名称を入力します。

2. データ型として、日付、数値またはテキストを選択します。

3. 関数の区分として外部かユーザー定義のいずれかを選択します。

4. 関数に別の名称が必要な場合は、別名を入力します。関数の使用目的を説明する摘要も入力できます。「別名」のフィールドも摘要のフィールドも入力はオプションです。

5. 関数の定義を入力します。<パッケージ名 >.<関数名 >という書式を使用してください。

6. 入力内容を保存します。

次の手順でコンテキストの使用方法とパラメータ情報を入力します。次の手順でコンテキストの使用方法とパラメータ情報を入力します。次の手順でコンテキストの使用方法とパラメータ情報を入力します。次の手順でコンテキストの使用方法とパラメータ情報を入力します。1. 「コンテキスト使用」ボタンを選択します。

2. 「コンテキスト使用」ウィンドウで、必要なだけコンテキスト項目を選択します。各コンテキストのデータ型は自動的に表示されます。

Oracle FastFormula 1-105

Page 112: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

エレメントのための給与計算 Formulaの記述

3. 入力内容を保存します。このとき各コンテキストの連番が自動的に入力されます。

4. 「コンテキスト使用」ウィンドウを閉じて、「パラメータ」ボタンを選択します。

5. 関数定義に必要なパラメータまたは演算子を「パラメータ」ウィンドウで選択します。タイプと区分は自動的に表示されます。

6. パラメータをオプションにする場合は、「オプション」チェック・ボックスをチェックします。

7. パラメータへのコールを 1度で終わらせないようにする場合は、「続行」チェック・ボックスをチェックします。

8. 入力内容を保存します。

エレメントのための給与計算エレメントのための給与計算エレメントのための給与計算エレメントのための給与計算 Formulaの記述の記述の記述の記述独自の給与計算エレメントを定義した場合は、支給項目や控除項目を計算するためのFormulaを記述できます。

効率的な給与計算 Formulaの記述方法については、「Formula記述のテクニック」(1-11)を参照してください。給与計算 Formulaでのエレメント入力値の使用方法の詳細は、「給与計算 Formulaの入力パラメータ」(1-17)を参照してください。

次の手順でエレメントとその次の手順でエレメントとその次の手順でエレメントとその次の手順でエレメントとその Formulaを定義します。を定義します。を定義します。を定義します。1. エレメントとその計算方法を設計します。

2. 入力パラメータの検証に必要な Formulaを記述します(Formulaタイプが「エレメント・パラメータ入力の検証」の場合)。

3. 必要に応じ、給与計算時にエレメントのスキップ・ルールを定義する Formulaを記述します(Formulaタイプが「エレメント・スキップ」の場合)。

注意注意注意注意 : FastFormulaをコールする機能、すなわち QuickPaintまたは給与処理によって、FastFormulaが FF_CONTEXTS表との間でアクセス可能なコンテキストが決まります。

注意注意注意注意 :パラメータを「続行」として定義するには、同時にオプションとして定義する必要があります。ただし、オプションのパラメータは必ずしも続行である必要はありません。

1-106 Oracle FastFormulaユーザーズ・ガイド

Page 113: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇付与プランの Formulaの記述

4. ステップ 2と 3で記述した Formulaがある場合は、その Formulaを参照するエレメントを定義します。

5. 実行結果を計算する1つ以上の Formulaを記述します(Formulaタイプが Oracle Payrollの場合)。

6. 「Formula実行結果ルール」ウィンドウで、「Oracle Payroll」タイプの各 Formulaをエレメントに関連付け、「このエレメントの Formula戻り値によって何が発生するか」を指定します。

有給休暇付与プランの有給休暇付与プランの有給休暇付与プランの有給休暇付与プランの Formulaの記述の記述の記述の記述各有給休暇付与プランには、2つの Formulaを対応付ける必要があります。1つは有給休暇残余日数の総計を計算する有給休暇 Formula、もう 1つは有給休暇期間の終了時に繰越プロセスからコールされる繰越 Formulaです。

BEE(バッチ・エレメント・エントリ)検証によってコールされる第 3の Formulaを関連付けることもできます。この検証では、有給休暇付与プランに対応する不就業エレメントのエントリをチェックします。この不適格 Formulaでは、付与された有給休暇を使用する資格がアサイメントにあるかどうかをチェックします。不適格期間の終了日は、プランの有給休暇Formulaと同じ方法で計算する必要があります。「有給休暇付与プラン」ウィンドウで不適格期間を入力する場合は、この Formulaは不要です。

いくつかの Formulaはシードされています。『Oracle HRMSユーザーズ・ガイド』の「シードされた有給休暇タイプ Formula」を参照してください。これらの Formulaをそのまま使用することもできますが、必要なプラン・ルールを提供するために独自の Formulaを作成することもできます。

このトピックの内容は、次のとおりです。

� 有給休暇付与プランに対応する Formulaのタイプ

� 有給休暇 Formula、繰越 Formulaおよび不適格 Formulaで必要な入出力

� 有給休暇 Formulaでエラーを回避するために必要なチェック

有給休暇 Formulaのサンプルと、プラン・ルール全体に組み込むための変更方法は、「有給休暇 Formulaのサンプル」(1-86)

注意注意注意注意 :異なるアサイメント状況に対して Formulaを分けて使用する場合は、複数の Formulaを 1つのエレメントに関連付けます。また、1つのFormulaを複数のエレメントに対しても使用できます。このとき、Formulaが Input文によって結果値や入力パラメータを参照する場合は、各エレメントの結果値と入力パラメータの名称が同じである必要があります。

Oracle FastFormula 1-107

Page 114: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇付与プランの Formulaの記述

Formulaタイプタイプタイプタイプ有給休暇付与プランに対応する Formulaには、いくつかのタイプがあります。Formulaを適切なタイプで定義しないと、その Formulaは「有給休暇付与プラン」ウィンドウで選択できません。

必要な入出力必要な入出力必要な入出力必要な入出力有給休暇付与プランに独自の Formulaを作成する場合は、次の INPUT文と RETURN文を使用する必要があります。これらの文には余分な行を追加しないでください。関数またはデータベース・アイテムを使用して、その他の入力を取得できます。次の値は、すべての有給休暇 Formulaタイプでコンテキストとして使用できます。したがって、これらの値を入力またはデータベース・アイテムとして取り出す必要はありません。

� ASSIGNMENT_ID

� DATE_EARNED

� ACCRUAL_PLAN_ID

� BUSINESS_GROUP_ID

� PAYROLL_ID

一部の Formula関数は、有給休暇タイプの Formula専用に定義されています。これらの関数は、コンテキストの一部またはすべてを要求し、不就業合計、有給休暇付与期間、給与カレンダなどの有給休暇計算に必要な値を戻します。「有給休暇タイプ Formula用の関数」(1-39)を参照してください。必要なその他の関数を定義し、登録できます。

Formulaタイプタイプタイプタイプ 値リストでの表示値リストでの表示値リストでの表示値リストでの表示 用途用途用途用途

有給休暇 有給休暇 Formulaフィールド プランの有給休暇残余日数を計算する最上位レベルの Formula。

有給休暇サブ Formula -- 最上位レベルの Formulaからコールされる Formula。たとえば、期間ごとの残余日数を計算する Formulaなど。

最大繰越日数 繰越 Formulaフィールド 繰越プロセスでコールされるFormula。

有給休暇不適格 不適格 Formulaフィールド 必要に応じて BEEからコールされ、付与された有給休暇を使用する資格がアサイメントにあるかどうかを指定する Formula。

1-108 Oracle FastFormulaユーザーズ・ガイド

Page 115: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇付与プランの Formulaの記述

有給休暇有給休暇有給休暇有給休暇 Formulaの入出力の入出力の入出力の入出力入力は次のとおりですCalculation_Date (date)

/* Formulaの本体 */

RETURN total_accrued_pto, effective_start_date, effective_end_date, accrual_end_date

繰越繰越繰越繰越 Formulaの入出力の入出力の入出力の入出力入力は次のとおりですcalculation_date (date),accrual_term (text)

/* Formulaの本体 */

RETURN max_carryover, effective_date, expiry_date

入力入力入力入力 摘要摘要摘要摘要

Calculation_Date この日付までの有給休暇が計算されます。

出力出力出力出力 摘要摘要摘要摘要

total_accrued_pto この期間に付与された有給休暇の総計。

effective_start_date 有給休暇の開始日。通常は、この有給休暇期間の開始日ですが、プラン・ルールによっては、プラン登録日、入社日、調整勤続日になる場合もあります。

effective_end_date 通常は計算日ですが、従業員が退職した場合は退職日になります。また、従業員がプランを解約した場合は、プラン・エレメント・エントリの終了日になります。

accrual_end_date これはオプションの出力です。シードされた Formulaでは、部分的な有給休暇期間が考慮されないので、計算日より前の完全な有給休暇期間の最終日になります。

入力入力入力入力 摘要摘要摘要摘要

calculation_date 有給休暇期間に該当する任意の日付。

accrual_term 'PREVIOUS'または 'CURRENT'。calculation_dateを含む有給休暇期間の最終日か、calculation_dateを含む期間の直前の有給休暇期間かを示します。

Oracle FastFormula 1-109

Page 116: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇付与プランの Formulaの記述

不適格不適格不適格不適格 Formulaの入出力の入出力の入出力の入出力入力は次のとおりですcalculation_date (date),

/* Formulaの本体 */

RETURN assignment_eligible

有給休暇有給休暇有給休暇有給休暇 Formulaで行う必要のあるチェックで行う必要のあるチェックで行う必要のあるチェックで行う必要のあるチェックシードされた Formulaには、日数をチェックして、従業員が有給休暇の取得に適格かどうかを調べる文が入っています。作成した Formulaにもこれらのチェックを組み込んでください。

退職日退職日退職日退職日アサイメントに退職日があるかどうかチェックします。退職日が計算日より前であれば、退職日までの有給休暇を計算します。Formulaで部分的な有給休暇期間を処理していない場合は、退職日が最初の有給休暇期間の終了日よりも前かどうかをチェックし、退職日のほうが前の場合は、有給休暇の総計をゼロに設定します。

出力出力出力出力 摘要摘要摘要摘要

max_carryover 従業員が繰越可能な最大日数。この値は、有給休暇付与期間によって異なります。

effective_date 有給休暇期間の最終日(現在または前回のどちらであるかが入力で判別されます)。たとえば、カレンダ年を基準にした有給休暇付与プランでは、この値は 31-DEC-YYYYになります。

expiry_date 繰り越した有給休暇の取得期限。この日付までに取得しないと、その有給休暇は失われます。この出力はオプションです。

入力入力入力入力 説明説明説明説明

calculation_date エレメント・エントリの有効日。

出力出力出力出力 説明説明説明説明

assignment_eligible 'Y'または 'N'。Yの場合は、他の検証がすべて正常に終了すると、BEEは不就業エレメントのエントリを作成します。Nの場合、BEEは不就業入力のバッチ・ラインに警告を生成します。

1-110 Oracle FastFormulaユーザーズ・ガイド

Page 117: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

有給休暇付与プランの Formulaの記述

登録終了日登録終了日登録終了日登録終了日プランでアサイメントの登録に終了日があるかどうかをチェックします。終了日が計算日よりも前であれば、終了日時点の有給休暇を計算します。Formulaで部分的な有給休暇期間を処理していない場合は、終了日が最初の有給休暇期間の終わりよりも前かどうかをチェックし、終了日のほうが前の場合は、有給休暇の総計をゼロに設定します。

計算日計算日計算日計算日計算日が最初の有給休暇期間の終了日よりも前の場合は、Formulaで部分的な有給休暇期間を処理していない限り、有給休暇の総計をゼロに設定します。

入社日入社日入社日入社日従業員の入社日または継続勤務日をチェックします。Formulaで部分的な有給休暇期間を処理している場合は、この日付が計算日よりも前かどうかをチェックし、前でない場合は、有給休暇の総計をゼロに設定します。Formulaで部分的な有給休暇期間を処理していない場合は、この日付が、現在の計算で使用されている最後の完全な有給休暇期間よりも前かどうかをチェックします。従業員が計算日前の完全な有給休暇期間に勤務していなかった場合は、有給休暇の総計をゼロに設定します。

プランの新規加入者の開始日プランの新規加入者の開始日プランの新規加入者の開始日プランの新規加入者の開始日従業員がいつから有給期間の対象となるのかをチェックします。これは、一般にプランの登録日か、または Formulaで部分的な有給休暇期間を処理していない場合、プランの登録日以降に開始する最初の期間になります。この日付(または期間)が計算日(計算期間)よりも後の場合は、有給休暇をゼロに設定します。

不適格期間不適格期間不適格期間不適格期間不適格期間(新規加入者への有給休暇付与が開始しても、取得はできないため、期間が終了するまでは付与されなかったように見える期間)をチェックします。不適格期間が計算日(または、Formulaで部分的な有給休暇期間を処理しない場合は、計算の対象になる最後の有給休暇期間の終了日 )時点でまだ終了していない場合は、有給休暇の総計をゼロに設定します。

注意注意注意注意 :シードされたサンプルの Formulaでは、入社日の 6か月後、入社日以降のカレンダ年の開始日など、プランの他の開始日との調整方法がわかります。

Oracle FastFormula 1-111

Page 118: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

エレメント・スキップ・ルールの Formulaの記述

エレメント・スキップ・ルールのエレメント・スキップ・ルールのエレメント・スキップ・ルールのエレメント・スキップ・ルールの Formulaの記述の記述の記述の記述給与計算の方針で条件的なエレメント処理が必要な場合は、給与計算時にエレメントを処理するか、スキップする条件を定義する Formulaを作成できます。たとえば、次のような内容を Formulaで指定できます。

� Union_Fees_Paidバランスが 10000以下の場合は、計算時に毎回「組合費」エレメントを処理する。

スキップ・ルールを定義する Formulaは、そのエレメントに対して定義されている他の処理ルール(例 : エレメントが通常処理される期間を決定する処理頻度)との間で整合性がとれている必要があります。スキップ・ルールは、そのエレメントに対する適切な他の処理ルールに違反できないことに注意してください。

各エレメントに関連付けることが可能なエレメント・スキップ・ルール Formulaは、1つだけです。「エレメント」ウィンドウのリストから Formulaを選択するには、エレメントを定義する前に、必ず Formulaを記述して検証します。

次の手順でスキップ・ルールを定義する次の手順でスキップ・ルールを定義する次の手順でスキップ・ルールを定義する次の手順でスキップ・ルールを定義する Formulaを記述します。を記述します。を記述します。を記述します。1. 「Formula」ウィンドウで、Formulaタイプのエレメント・スキップを選択します。

2. 必要な数の入力パラメータを使用できます。Formulaは「テキスト」タイプのローカル変数を設定して値を戻します。また、この変数名は skip_flagにする必要があります。

この変数の戻り値の文字が yで始まる( 'Yes'など)ときは、エレメントに対するすべての処理をスキップします。そうでない場合は、エレメントは通常通り処理されます。

Union_Fees_Paid バランスが 10000以上の場合は、「組合費」エレメントを処理しないように定義したスキップ・ルール Formulaを次のように記述します。

IF Union_Fees_Paid > 10000 THEN

skip_flag = 'yes' ELSE

skip_flag = 'no'RETURN skip_flag

QuickPaint Formulaへの機能のコピーと追加への機能のコピーと追加への機能のコピーと追加への機能のコピーと追加QuickPaintレポート定義を保存すると、Formulaが自動的に生成されます。QuickPaintから生成される Formulaには、条件論理や計算が含まれていません。報酬エレメントを合計したり、異なるアサイメントに関する異なるデータをレポートする場合などには、このような機能を追加します。

1-112 Oracle FastFormulaユーザーズ・ガイド

Page 119: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

検証用 Formulaの記述

次の手順で次の手順で次の手順で次の手順で QuickPaint Formulaのコピーを作成します。のコピーを作成します。のコピーを作成します。のコピーを作成します。1. 「Formula」ウィンドウで、QuickPaint Formulaを問い合せます。QuickPaint Formula

の名称は、QuickPaintレポートと同じです。

2. 「編集」ボタンを選択します。「Formulaの編集」ウィンドウで、Formulaを選択してコピーします。

3. 「編集」メニューから「新規レコード」を選択します。

4. 編集したコピーの Formula名を入力し、「QuickPaint」を選択します。

5. QuickPaint Formulaのテキストを「Formulaの編集」ウィンドウにペーストします。

6. 入力内容を保存します。

検証用検証用検証用検証用 Formulaの記述の記述の記述の記述Oracle FastFormulaを使用して、エレメント入力パラメータや、定義するユーザー表にユーザーが入力する値を検証できます。

次の手順で検証目的のための次の手順で検証目的のための次の手順で検証目的のための次の手順で検証目的のための Formulaを記述します。を記述します。を記述します。を記述します。1. Formulaを記述して検証します。

「エレメント」ウィンドウまたは「列」ウィンドウのリストから Formulaを選択できるように、エレメントまたは表を定義する前にこれを行う必要があります。

2. エレメントまたは表を定義します。

3. 「Formula」ウィンドウで、Formulaタイプの「エレメント・パラメータ入力の検証」または「ユーザー表検証」を選択します。

検証するルール検証するルール検証するルール検証するルール� entry_valueという名称でテキスト型の入力パラメータを少くとも 1つ定義します。

� Formulaは、検証のステータス(成功またはエラー)を示すローカル変数を設定して値を戻します。この変数名は formula_statusに設定し、値は 's'(成功)または 'e'(エラー)である必要があります。

注意注意注意注意 :生成した QuickPaintの Formulaに何かを追加する場合は、必ずコピーした Formulaを使用します。元の Formulaを編集すると、QuickPaint定義から Formulaが再生成されることで、編集内容が上書きされます。

Oracle FastFormula 1-113

Page 120: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

アサイメント・セット Formulaの編集

� オプションで、Formulaによって説明メッセージを表示する、テキスト変数を戻すことができます。変数名は formula_messageである必要がありますが、テキストの内容は自由です。また、「成功」、「エラー」を示すステータスを両方設定して戻すこともできます。

� Formulaは、他の結果は戻しません。

さらに次のルールに従って、エレメント入力パラメータの検証 Formulaを記述する必要があります。

� Formula内で他の結果値や入力パラメータは使用できません。

� 他の結果値や入力パラメータに値を戻すことはできません。

すべての入力値は、テキスト・アイテムとしてデータベースに格納されます。したがって、日付や数値の入力値を検証する場合は、次のように、Oracle FastFormulaの変換機能を使用して、テキストを、日付型または数値型の変数に変換します。

TO_NUM (entry_value)TO_DATE(entry_value,'DD-MON-YYYY')

アサイメント・セットアサイメント・セットアサイメント・セットアサイメント・セット Formulaの編集の編集の編集の編集通常は、アサイメント・セット Formulaを編集する必要はありません。ただし、条件をANDまたは ORで結合して、アサイメント・セットを定義する複数の基準を入力した場合、生成される条件の丸カッコを変更するために Formulaを編集する場合があります。丸カッコを変更すると、条件の検証順序が変わります。

アサイメント・セットの Formulaを表示するには、「Formula」ウィンドウで問い合せます。Formulaタイプは「アサイメント・セット」であり、Formula名はアサイメント・セット名と同じです。アサイメント・セット Formulaを編集するには、QuickPaint Formulaの場合と同様にコピーを作成します。

Formulaの一括検証の一括検証の一括検証の一括検証Formulaに複数のバージョンがある場合は、Formulaの一括検証プロセスを使用して、1つのプロセス内のすべてのバージョンをコンパイルできます。たとえば、Formulaを含む法定情報をアップグレードするときに、このプロセスを実行します。

次の手順で次の手順で次の手順で次の手順で Formulaの一括検証を実行します。の一括検証を実行します。の一括検証を実行します。の一括検証を実行します。1. 「新規要求の発行」ウィンドウで「単一要求」を選択します。

2. 「名称」フィールドで、「Formulaの一括検証」を選択します。

スケジュール・オプションを使用して、このプロセスを実行する時期を定義できます。

1-114 Oracle FastFormulaユーザーズ・ガイド

Page 121: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formulaの一括検証

注意注意注意注意 : Formulaをコンパイルした後、その Formulaで使用している関数を変更した場合、変更を有効にするには Formulaを再コンパイルする必要があります。

Oracle FastFormula 1-115

Page 122: Oracle FastFormula ユーザーズ・ガイド リリース11ഀ 目次 1 Oracle FastFormula Oracle FastFormula 1-1 Oracle FastFormulaはどのようなものですか

Formulaの一括検証

1-116 Oracle FastFormulaユーザーズ・ガイド