24 給与バッチ・ローダー・ファイルのロード
この章の内容は次のとおりです。
概要
「ファイルからのバッチのロード」は、ソース・ファイルのデータをアップロード用に給与バッチに変換する場合に使用できるフロー・パターンです。このフローは単独で送信することも、定期的に自動的にデータをロードするために作成するフローに含めることもできます。手動またはWebサービスを使用してフローを送信するときに、必要に応じて変換Formulaを指定してデータを変換できます。
前提
この手順では、次のことを前提としています。
-
これらの手順を実行するユーザーが人材管理統合スペシャリストのロールを持っていること。
-
Oracle WebCenter Contentにアップロードできるソース・ファイルがあるか、すでにアップロードされており、コンテンツIDがわかっていること。次の表は、コンテンツ・サーバーにファイルをアップロードする方法の3つの例を示しています。
例 詳細 「ファイルのアップロード」フロー・タスク
ファイル・システムのソース・ファイルを参照して、ファイルからのバッチのロード・フローの一部としてアップロードします。「ファイルのアップロード」フロー・タスクを使用すると、フローの送信時にファイルのコンテンツIDを指定する必要がありません。
UploadTool Javaユーティリティ
ローカルまたはリモートのファイル・システムからコンテンツ・サーバーにファイルをプログラムでアップロードして、そのコンテンツIDを取得します。
詳細は、My Oracle Support (https://support.oracle.com)の『給与バッチ・ローダーの使用ガイド』(2030268.1)の「HCMデータ・ローダーの自動化」の添付資料を参照してください。
Oracle WebCenter Contentのアプリケーション
ファイル・システムのソース・ファイルを参照して、コンテンツ・サーバーにチェック・インし、そのコンテンツIDを取得します。詳細は、『Oracle Fusion Middleware Oracle WebCenter Contentの使用』ガイドを参照してください。
前提条件
ファイルから給与バッチを作成する前に、次の表の特性の前提条件を満たしていることを確認します。
特性 | 前提条件 |
---|---|
データ変換 |
ソース・ファイルのデータを変換する必要がある場合は、バッチ・ローダーFormulaタイプを使用して変換Formulaを作成してコンパイルします。「給与計算」作業領域で「FastFormulaの管理」タスクを使用します。 |
ファイル暗号化 |
暗号化されたファイルをロードする前に、安全なファイル転送のために暗号化キーが存在していることを確認します。これには、サービス要求の作成、PGPキー・ペアの生成および暗号化キーの共有が含まれます。 フローまたはWebサービスの実行時に選択するプロセス構成グループに対して、「給与バッチ・ローダー暗号化タイプ」のパラメータ値を指定します。有効な値はPGPSIGNED、PGPUNSIGNEDおよびNONEです。「設定および保守」作業領域で「給与プロセス構成の管理」タスクを使用して、プロセス構成グループの処理パラメータを指定します。 |
その他の処理パラメータ |
必要に応じて、「設定および保守」作業領域で「給与プロセス構成の管理」タスクを使用して、プロセス構成グループのパラメータを追加します。処理パラメータには、「バッチ・エラー・モード」、「ロギング領域」、「ロギング・カテゴリ」、「スレッド」などがあります。 |
バッチの手動作成
次の手順は、すでにアップロードされているファイルからバッチを作成するために手動でフローを送信する方法を示しています。
-
「チェックリスト」作業領域で「給与フローの送信」タスクを使用して、「ファイルからのバッチのロード」フロー・パターンを選択します。
-
フローの名前を入力します。
-
すでにコンテンツ・サーバーにソース・ファイルが存在する場合はコンテンツIDを入力し、存在しない場合は「コンテンツID」フィールドを空白のままにします。
-
バッチの名前を入力します。
-
オプションで、変換Formulaとプロセス構成グループを選択します。
-
フローを送信して「OKしてチェックリストを表示」をクリックします。
-
コンテンツIDを指定した場合は、ファイルのアップロードの対象の行を選択し、右クリックして「完了としてマーク」を選択します。そうでない場合は、ファイルのアップロード中に次の手順を実行します。
-
アップロードの対象の行で、「タスクに進む」をクリックします。
-
「添付の管理」をクリックします。
-
「参照」をクリックしてアップロードするファイルを選択して、「OK」をクリックします。
-
「完了」をクリックします。
-
-
「ファイルのアップロード」タスクと「バッチのロード」タスクが完了と表示されるまで、「リフレッシュ」をクリックします。
-
次のように、バッチ・コンテンツを確認します。
-
「バッチの確認」タスクの対象の行で、「タスクに進む」をクリックします。
-
バッチ・ローダー・ワークブックをダウンロードして開きます。
-
国別仕様データ・グループを選択して「検索」をクリックします。
-
「ファイルからのバッチのロード」フローの送信時に入力したバッチ名をダブルクリックします。
-
バッチ・コンテンツ・シートで、「給与の追加」などのタスク処理名をダブルクリックします。
-
コンテンツを確認してワークブックを保存し、加えた変更をアップロードします。
-
-
次のように、バッチを転送します。
-
「チェックリスト」または「給与管理」の作業領域で「プロセスまたはレポートの送信」タスクを使用して、「バッチの転送」フロー・パターンを選択します。
-
フローの名前を入力します。
-
転送するバッチを検索して選択します。
-
フローを送信します。
-
バッチ作成の自動化
「バッチの作成」タスクと「バッチの転送」タスクを組み合せて単一のフロー・パターンにすることができます。その後、フロー処理Webサービスを使用して、自動化のためのユーザー定義のフローをコールできます。必要に応じて変換Formulaを指定してデータを変換します。
給与データ・ロードの自動化: 手順
フロー処理サービスWebサービスを使用して、給与関連データやエレメント・エントリをスケジュールに従ってロードするプロセスを自動化します。
フローにより、給与バッチ・ローダーを使用してファイルがバッチにロードされ、ステージング表からアプリケーション表にバッチが転送されます。
フロー・パターンにより、給与バッチ・ローダーを使用してファイルがバッチにロードされ、ステージング表からアプリケーション表にバッチが転送されます。
データ・ロードを自動化するには、次のことを行う必要があります。
-
ロードおよび転送フロー・パターンをコピーして、フロー・パターンを作成します。
-
タスクの順序を確認します。
-
すべてのパラメータが使用可能かどうかを検証します。
-
フロー・タスク・パラメータを選択して編集し、「バッチのロード」タスクと「バッチの転送」タスクをリンクします。
オプションでフローを送信するときには、次のことを指定する必要があります。
-
ソース・データが暗号化されている場合または他の処理パラメータが必要である場合は、フロー・パラメータとしてのプロセス構成グループ。
-
個人番号からアサイメント番号を導出するなど、変換する必要があるデータがソース・ファイルに含まれる場合は、ファイル変換Formula。
フロー・パターンのコピーおよび編集
次の手順を実行します。
-
「チェックリスト」作業領域で「給与フロー・パターンの管理」タスクを選択します。
-
ロードおよび転送を検索して選択し、「コピー」をクリックします。
-
「フロー・パターンのコピー」ダイアログ・ボックスで、次の表に示すように、フィールドを設定します。
フィールド 値 名前
フロー処理サービスでフロー・パターンを識別するために使用するものと同じ名前を入力します。
国別仕様データ・グループ
オプションで、このフローへのアクセスを制限する国別仕様データ・グループを選択します。
-
「保存してクローズ」をクリックします。
-
新しいフロー・パターンを検索して選択し、「編集」をクリックします。
注意: コピーの作成時に国別仕様データ・グループを選択した場合は、新しいフロー・パターンを検索するときにその国別仕様データ・グループを選択する必要があります。 -
「タスク順序」ページで、「タスク」列と「次のタスク」列をレビューして、タスクが「フローの開始」、「バッチのロード」、「バッチの転送」、「フローの終了」の順序であることを確認します。
-
オプションで、「パラメータ」ページで、次の表に示すようにフロー・パラメータを選択して編集します。
注意: 変換Formulaでプロセス構成グループの事前構成済パラメータを使用している場合は、使用する値がデフォルトですでに指定されているため、このステップは必要ありません。パラメータ名 パラメータ基準 基準値 プロセス構成グループ
SQLバインド後
select action_param_group_id from pay_action_param_groups where action_param_group_name = 'Configuration Group Name that has the encryption type to be used'
変換Formula
SQLバインド後
select max(formula_id) from ff_formulas_vl ff, ff_formula_types ft where ff.formula_type_id = ft.formula_type_id and ft.formula_type_name = 'Batch Loader' and ff.formula_name = 'Name of formula to be used'
-
「タスク」タブをクリックします。次のように、「バッチのロード」タスクを編集します。
-
「タスク」タブで、「バッチのロード」を選択し、「編集」をクリックして、「タスクに進む」をクリックします。
-
「基本情報」ページで「バッチ」パラメータを選択し、「編集」をクリックします。
-
バッチ・パラメータ詳細セクションの「使用」フィールドで、「出力パラメータ」を選択して、「次」をクリックします。
-
オプションで、所有権情報を入力します。
-
オプションで、期間および通知情報を入力して、「送信」をクリックします。
-
-
次のように、「バッチの転送」タスクを編集します。
-
「タスク」タブで、「バッチの転送」を選択し、「タスクに進む」をクリックします。
-
「基本情報」ページで「バッチ」パラメータを選択し、「編集」をクリックします。
-
バッチ・パラメータ詳細セクションの「パラメータ基準」フィールドで、「フローにバインド」を選択します。
-
「基準値」フィールドで、「バッチのロード」、「送信」、「バッチ」を選択して、「次」をクリックします。
-
オプションで、所有権情報を入力します。
-
オプションで、通知情報を入力して、「送信」をクリックします。
-
-
「給与フロー・パターンの管理」ページで、「送信」をクリックします。
自動化のためのプログラムの作成
プログラムによって、コンテンツ・サーバーにソース・ファイルがアップロードされ、フロー処理サービスWebサービスのためのコンテンツIDが取得されます。

この場合、次のパラメータを指定すると、プログラムによってフロー処理Webサービスがコールされます。
-
ユーザー定義のフロー・パターン(「ファイルからのバッチのロード」のコピー)の名前
-
アップロードしたファイルのコンテンツID
-
送信中のフロー・インスタンスを識別する一意の名前
-
作成後に送信するバッチの一意の名前
-
特殊処理用のプロセス構成グループ名(オプション)
-
変換Formula名(オプション)
フロー処理サービスWebサービスの詳細は、『Oracle HCM CloudのためのSOAP Webサービス』ガイドを参照してください。ファイルのアップロードを自動化するためのその使用の例については、My Oracle Support (https://support.oracle.com)の『HCMデータ・ローダー・ユーザー・ガイド』(1664133.1)の添付資料を参照してください。
給与バッチ・アップロードのファイル形式およびデータ変換: 重要な選択
「ファイルからのバッチのロード」プロセスでは、フラット・ファイルからデータが取得されて、アップロード用にそのデータが給与バッチ・ローダー・ワークブックに移動されます。フラット・ファイルの形式の要件は、ファイル内のデータのタイプまたは順序を変換するかどうかに応じて異なります。このトピックでは、様々なファイル形式の要件について説明します。
バッチ・ローダー・ワークブックでオプションである場合でも、使用するタスクおよびタスク名のワークブックのすべての列がフラット・ファイルで表される必要があります。
変換しない場合のファイル形式(デフォルトの形式)
ソース・ファイル内の属性と順序が、必要なタスクおよびタスク処理のワークブックで予期されるものと同じである場合は、変換は必要ありません。ファイルには、タスク名、タスク処理名、およびアップロードする各レコードのデータが含まれる必要があります。
次の例は、アサイメント番号によって、USの国別仕様データ・グループの異なる給与に3人の個人を追加するファイルのコンテンツを示しています。
Payroll Relationship|Add Payroll||E34567|Monthly Payroll|2015-01-01|US LDG
Payroll Relationship|Add Payroll||E5897|Weekly Payroll|2015-01-01|US LDG
Payroll Relationship|Add Payroll||E9736456|Monthly Payroll|2015-01-01|US LDG
タスク名とタスク処理名が含まれており、各レコードのアップロードする値の前には参照名がありません。参照名は、この例には適用できないため、空白になっています。「エレメント・エントリの作成」などの他のタスク処理では、通常はエレメント名である参照名の値が使用されます。
データ変換を実行するファイル
バッチ・ローダー・ワークブックで求められる順序になるようにファイル内の属性の順序を変更するなどの、基本的なデータの変換を行う場合は単純なFormulaを使用します。個人番号をアサイメント番号に変換するなど、属性を変換する場合は、より複雑なFormulaを使用します。
次の例は、アサイメント番号によって、異なる給与に3人の個人を追加するファイルのコンテンツを示しています。データ、給与名およびアサイメント番号がバッチ・ローダー・ワークブックとは異なる順序であるため、変換Formulaを使用して位置を変更します。すでにFormulaでタスクとタスク処理が指定されているため、このファイル形式では、列の属性値から直接開始できます。
2015-10-10|Monthly Payroll|E34567
2015-10-10|Weekly Payroll|E5897
2015-10-10|Monthly Payroll|E9736456
変換Formula
バッチ・ローダーFormulaには、1つ以上のタスク名とタスク処理に対する値が含まれる必要があります。潜在的に、同じFormulaと単一のバッチで、異なるタスクを使用して、異なるタイプのデータをロードできます。
次のFormulaの例では、タスク名にPayroll Relationship、タスク処理名にAdd Payrollを指定しています。
/*Batch Related Outputs*/
TASK='Payroll Relationship'
TASKACTION='Add Payroll'
次のFormulaの例では、タスク名にElement Entry、タスク処理名にCreate Element Entry、タスク処理参照にPay Period Amountを指定しています。
/*Batch Related Outputs*/
TASK='Element Entry'
TASKACTION='Create Element Entry'
ACTIONREFERENCE='Pay Period Amount'
デリミタ
値を区切るデフォルトのデリミタは、パイプ文字です。ファイルで異なるデリミタを使用する場合は、必要なデリミタをバッチ・ローダー変換Formulaで設定する必要があります。次の例では、デリミタとしてカンマが指定されています。
/* Calculations */
IF OPERATION='FILETYPE' THEN
OUTPUTVALUE='DELIMITED'
ELSE IF OPERATION='DELIMITER' THEN
OUTPUTVALUE=','
バッチ・ローダーFormulaタイプ
ファイルからバッチをロードするときにアプリケーションが情報を取得する方法は、バッチ・ローダーFormulaタイプによって制御されます。アップロードするファイルを変換する必要がある場合は、「FastFormulaの管理」ページでバッチ・ローダーFormulaを作成します。
バッチ・ローダーFormulaを作成する理由として、次のものがあげられます。
-
ファイル内の属性の位置を割り当てるため(予期される順序ではないため)。
-
ファイル内の属性を、値セットを使用して導出する別の属性に変換するため。
-
個々のバッチ・ローダー・タスクに単一のFormulaを使用するため。
コンテキスト
バッチ・ローダー・タイプのすべてのFormulaで次のコンテキストを使用できます。
-
EFFECTIVE_DATE (テキスト)
-
TASK (テキスト)
バッチ・ローダー・ワークブックからのタスクの名前。
-
TASKACTION (テキスト)
バッチ・ローダー・ワークブックからのタスク処理の名前。
-
REFERENCE (テキスト)
エレメント・エントリ、原価計算設定、バランス調整などの、タスク処理のエレメントの名前。
データベース・アイテム
バッチ・ローダーFormulaタイプは、データベース・アイテムをサポートしません。Formula内でFormulaをコールすることで、バッチ・ローダーFormulaでデータベース・アイテムを使用できます。
データベース・アイテムが使用できない場合に情報を取得するには、GET_VALUE_SET関数を使用します。
入力変数
バッチ・ローダーFormulaタイプのすべてのFormulaで次の入力変数を使用できます。選択したタスクおよびタスク処理に応じて、追加の変数を使用できる場合があります。
入力およびデータ型 | 必須 | 注記 |
---|---|---|
OPERATION (テキスト) |
はい |
使用可能な操作:
|
PROCESS_DATE (テキスト) |
いいえ |
YYYY-MM-DD HH:MM:SS (時間は24時間制を表す)の形式に従う必要があります。 |
LEGISLATIVE_DATA_GROUP_ID (テキスト) |
いいえ |
|
LINESEQUENCE (数値) |
いいえ |
バッチに使用される行番号。次の例では、10倍の行番号が使用されています。つまり、作成されるバッチ・ラインは10から、20、30と増加します。
|
LINEREPEATNO (数値) |
いいえ |
ファイル内の特定の行に対してFormulaが実行される回数。 |
LINEREPEAT (数値) |
いいえ |
ファイル内の単一の行に対して複数のバッチ・ラインを作成できるようになります。有効な値はYおよびNです。 Yに設定した場合は、バッチ・ラインの作成後に、同じファイル・コンテンツに対して再度Formulaがコールされます。LINEREPEATNOは繰返しの数を示します。たとえば、時間入力の場合は、通常の時間入力の賃金の後に、割増時間入力の賃金が発生する場合があります。 |
TOTALLINES (数値) |
いいえ |
ファイル内の行の合計数。ファイル内のコーディングされた合計数を比較して、ファイル・コンテンツを突き合せる場合などに使用します。 |
POSITION1 (テキスト) |
はい |
ファイル内の列の最初の位置。 |
POSITION2 (テキスト) |
はい |
ファイル内の列の2番目の位置。 |
POSITION3-POSITION30 (テキスト) |
いいえ |
ファイル内の列のオプションの追加の位置。 |
TOTALLINES (数値) |
いいえ |
たとえば、ファイル内のコーディングされた合計数を比較して、ファイル・コンテンツを突き合せます。 |
戻り値
バッチ・ローダーFormulaの戻り値は、ビジネス・オブジェクトとタスク処理に応じて異なります。戻り値は、スペースのかわりにアンダースコアが使用されていることを除いてパラメータ名と同じです。
バッチ・ローダー・ファイル変換のサンプルのFormula
フラット・ファイルの属性が給与バッチ・ローダー・ワークブックで予期される順序とは異なる順序であるため、この例の変換Formulaでは属性の位置を指定します。また、このFormulaで、フラット・ファイルの個人番号をアサイメント番号に変換します。
このFormulaの戻り値は、スペースのかわりにアンダースコアが使用されていることを除いてパラメータ名と同じです。
このFormulaの次のスニペットによって、求められる位置に属性が割り当てられて、値セットを使用した変換が実行されて必要な値が導出されます。
/*Task Action Related Outputs */
PAYROLL=POSITION2
ASSIGNMENT_NUMBER=GET_VALUE_SET('SAMPLE_GET_ASG_NUM','|=PERSON_NUMBER='''||POSITION3||'''')
Effective_As_Of_Date=POSITION1
SELECT pay_ff_functions.gvs ('SAMPLE_GET_ASG_NUM','|=PERSON_ID=100000012092216')
value FROM dual;
この例の完全なFormulaは、次のとおりです。
/******************************************************************
FORMULA NAME: Transform Attribute - Payroll Relationship
FORMULA TYPE: Batch Loader
Sample Input File Format:
Effective As Of Date|Payroll|Person Number/
/* Inputs */
INPUTS ARE OPERATION (text), LINESEQUENCE (number), LINEREPEATNO (number),
POSITION1 (text), POSITION2 (text), POSITION3 (text)
DEFAULT FOR LINENO IS 1
DEFAULT FOR LINEREPEATNO IS 1
DEFAULT FOR LINESEQUENCE IS 1
DEFAULT FOR POSITION1 IS 'NO DATA'
DEFAULT FOR POSITION2 IS 'NO DATA'
DEFAULT FOR POSITION3 IS 'NO DATA'
/* Calculations */
IF OPERATION='FILETYPE' THEN
OUTPUTVALUE='DELIMITED'
ELSE IF OPERATION='DELIMITER' THEN
OUTPUTVALUE='|'
ELSE IF OPERATION='MAP' THEN
(
/*Batch Related Outputs*/
TASK='Payroll Relationship'
TASKACTION='Add Payroll'
/*Task Action Related Outputs */
PAYROLL=POSITION2 ASSIGNMENT_NUMBER=GET_VALUE_SET('SAMPLE_GET_ASG_NUM','|=PERSON_NUMBER='''||POSITION3||'''')
Effective_As_Of_Date=POSITION1
)
ELSE
OUTPUTVALUE='NONE'
/* Returns */
IF OPERATION='MAP' THEN
RETURN TASK,TASKACTION,LINESEQUENCE,PAYROLL,ASSIGNMENT_NUMBER,Effective_As_Of_Date
ELSE
RETURN OUTPUTVALUE
/* End Formula Text */
複数のタスクのサンプルのバッチ・ローダーFormula
この例のFormulaでは、2つの個別のタスクを使用して銀行を作成し、給与関係に給与を追加します。また、このFormulaで、フラット・ファイルの個人番号をアサイメント番号に変換します。
この例のFormulaは、次のとおりです。
/**********************************************************
FORMULA NAME: Create Bank and Payroll Relationship
FORMULA TYPE: Batch Loader
Sample Input File Format:
Effective As Of Date|Payroll|Assignment Number
*************************************************************/
/* Inputs */
INPUTS ARE OPERATION (text),
LINEREPEATNO (number), POSITION1 (text), POSITION2 (text), POSITION3 (text), POSITION4 (text),
POSITION5 (text),
DEFAULT FOR LINESEQUENCE IS 1
DEFAULT FOR LINEREPEATNO IS 1
DEFAULT FOR POSITION1 IS 'NO DATA'
DEFAULT FOR POSITION2 IS 'NO DATA'
DEFAULT FOR POSITION3 IS 'NO DATA'
DEFAULT FOR POSITION4 IS 'NO DATA'
DEFAULT FOR POSITION5 IS 'NO DATA'
/* Calculations */
IF OPERATION='FILETYPE' THEN OUTPUTVALUE='DELIMITED'
ELSE IF OPERATION='DELIMITER' THEN OUTPUTVALUE='|'
ELSE IF OPERATION='READ' THEN OUTPUTVALUE='NONE'
ELSE IF OPERATION='MAP' THEN
(
/*Batch Related Outputs*/
IF POSITION1 = 'Payroll Relationship' AND POSITION2 = 'Add Payroll' THEN (
TASK='Payroll Relationship' TASKACTION='Add Payroll'
/*Task Action Related Outputs */
PAYROLL=POSITION4
ASSIGNMENT_NUMBER=POSITION5
Effective_As_Of_Date=POSITION3
)
IF POSITION1 = 'Bank and Branch' AND POSITION2 = 'Create Bank' THEN(
TASK='Bank and Branch'
TASKACTION='Create Bank'
/*Task Action Related Outputs */
Bank_Name=POSITION3
)
)
ELSE OUTPUTVALUE='NONE'
/* Returns */
IF OPERATION='MAP'
THEN IF POSITION1 = 'Payroll Relationship' AND POSITION2 = 'Add Payroll' THEN (
RETURN TASK,TASKACTION,LINESEQUENCE,PAYROLL,ASSIGNMENT_NUMBER,Effective_As_Of_Date
)
IF POSITION1 = 'Bank and Branch' AND POSITION2 = 'Create Bank' THEN (
RETURN TASK,TASKACTION,LINESEQUENCE,Bank_Name
)
ELSE RETURN OUTPUTVALUE
/* End Formula Text */