給与計算処理データテンプレート
給与計算処理データテンプレート
- 給与計算分析に最適化されたデータ項目
- ライフサイクルのマッピングに必要な詳細なアクティビティ追跡
- Oracle HCM Cloud給与計算の詳細な抽出ガイド
給与計算処理の属性
| 名前 | 説明 | ||
|---|---|---|---|
| アクティビティ名 ActivityName | 給与計算サイクルで実行される具体的なステップまたはイベントです。 | ||
| 説明 この属性は、給与計算プロセス内で発生したイベント名を記録します。例として、「Time Card Submitted」、「Payroll Calculation Started」、「Payment Executed」などがあります。 プロセスディスカバリーとバリアント分析で使用する主要なディメンションです。Oracle HCM Cloudでは、給与アクションテーブル内のAction TypeまたはAction Statusから導出することが一般的です。 重要な理由 プロセスの「何が行われたか」を定義し、プロセスマップを再構成できるようにします。 入手先 PAY_PAYROLL_ACTIONSのACTION_TYPEコード、または監査証跡のステータス変更から導出します。 例 給与計算の開始タイムカード承認銀行振込の生成監査例外の検出 | |||
| イベントタイムスタンプ EventTimestamp | アクティビティが発生した正確な日時です。 | ||
| 説明 アクティビティが実行された具体的な時点を記録します。所要時間やリードタイムの計算、ボトルネックの特定に欠かせません。 自動化されたステップではシステムの実行時刻を使用します。承認などの手作業によるステップでは、取引ログに記録されたユーザー操作のタイムスタンプを使用します。 重要な理由 イベントを時系列に並べ、時間に基づくすべてのKPIを計算するために欠かせません。 入手先 PAY_ACTION_INFORMATIONなど、関連する取引テーブルのCREATION_DATEまたはACTION_DATE列です。 例 2023-10-01T08:30:00Z2023-10-01T14:15:22Z2023-10-05T09:00:00Z | |||
| ソースシステム SourceSystem | イベントの発生元となったシステム名です。 | ||
| 説明 データポイントを生成したソフトウェアまたはモジュールを特定します。このプロセスでは、主な値は「Oracle HCM Cloud Payroll」です。 ただし、複雑なシステム環境では、給与計算エンジン、Time and Laborモジュール、外部の銀行インターフェースを区別するために使用する場合があります。 重要な理由 勤怠管理や銀行のサブシステムからデータを統合する際に、データの系譜を把握するための情報を提供します。 入手先 抽出時にハードコードするか、インターフェースIDから導出します。 例 Oracle HCM Cloud PayrollOracle Time and Labor外部銀行インターフェース | |||
| 最終データ更新 LastDataUpdate | ソースデータベースでレコードが最後に変更された時点のタイムスタンプです。 | ||
| 説明 分析に使用するデータの鮮度を示します。イベントタイムスタンプとは異なり、データベースの行がETLプロセスまたはシステム更新によって最後に変更された時点を表します。 データが最新かどうかの確認や、抽出遅延の問題を調査するために使用します。 重要な理由 分析担当者が、リアルタイムのデータを見ているのか、古いデータを見ているのかを把握できるようにします。 入手先 ほぼすべてのOracle HCMテーブルに共通するLAST_UPDATE_DATE列です。 例 2023-10-02T12:00:00Z2023-10-06T01:00:00Z | |||
| 給与レコード PayrollRecord | 特定の給与計算期間における従業員を表す一意の識別子です。 | ||
| 説明 給与レコードは、プロセスマイニング分析における中心的なケース識別子です。従業員アサインメント識別子と給与計算期間識別子を組み合わせた連結値または一意のキーです。 この属性によって、1人の従業員に対する特定の給与計算サイクルに関連するすべてのアクティビティを、最初のタイムカード提出から最終的な銀行振込と税務申告までグループ化します。1月と2月のように、同じ従業員への異なる月の支払いを区別して分析できます。 重要な理由 Case IDとして機能し、分散したすべてのイベントを分析用の1つのプロセスインスタンスに結び付けます。 入手先 PAY_ASSIGNMENT_ACTIONS、またはOracle HCMのPerson NumberとPayroll Period Nameの組み合わせから作成します。 例 EMP1001-2023-M01EMP5992-2023-W42300000018273645US-NY-A123-JAN23 | |||
| SLA処理期限 SlaProcessingDeadline | 支払いを実行しなければならない目標日時です。 | ||
| 説明 給与支払いに関する契約上または法令上の期限を保持します。この属性は、「支払い実行」タイムスタンプと比較されます。 「SLA処理期限遵守」KPIの計算や、遅延リスクのある給与グループの特定に使用されます。 重要な理由 適時性の観点から、プロセスの成否を判断する主要な基準です。 入手先 通常はPayroll Definitionに設定されたフィールド(DFF)で、Check DateからX日を引いて導出する場合もあります。 例 2023-10-28T17:00:00Z2023-11-30T17:00:00Z | |||
| 処理ユーザー ProcessingUser | アクティビティを実行した担当者のユーザーIDまたは名前です。 | ||
| 説明 アクティビティを開始した給与計算担当者、マネージャー、またはシステムアカウントを記録します。これは、「給与計算担当者の作業負荷分布」ダッシュボードを支えます。 給与計算チーム内のリソースのボトルネックやトレーニングの必要性を特定するのに役立ちます。 重要な理由 リソースの生産性分析と作業負荷の平準化が可能になります。 入手先 トランザクションテーブルのCREATED_BY列またはLAST_UPDATED_BY列です。 例 システム管理者j.smith給与計算バッチユーザーm.doe | |||
| 手動修正かどうか IsManualCorrection | アクティビティに手動介入が含まれていたかを示すフラグです。 | ||
| 説明 「データ修正の実行」や「給与レコードの修正」などのアクティビティに対してtrueに設定されるブール型フラグです。 「手動データ修正率」および「初回給与計算精度」KPIの計算に使用されます。 重要な理由 自動処理と手動の手戻りを区別します。 入手先 Activity Name、または調整を示す特定のAction Type(例:QuickPay、Balance Adjustment)から導出されます。 例 truefalse | |||
| 法令データグループ LegislativeDataGroup | 国または規制環境ごとに給与データを分割します。 | ||
| 説明 Oracle HCM Cloudでは、Legislative Data Group(LDG)が給与計算および関連データを分割します。通常は、国または特定の地域の法令に対応します。 この属性は、国別にプロセス分析をフィルタリングする際に重要です(例:米国給与計算と英国給与計算)。多くの場合、Countryという汎用属性にマッピングされます。 重要な理由 コンプライアンスルールとプロセスフローは、管轄区域によって大きく異なることがあります。 入手先 PAY_ALL_PAYROLLS_FテーブルとLegislative Data Groupの定義を結合したものです。 例 米国法令データグループ英国LDGフランス給与計算 | |||
| 給与グループ PayGroup | 給与計算のための従業員の論理的なグループです。 | ||
| 説明 従業員が所属する具体的な給与計算定義を表します(例:「製造部門・週次」、「コーポレート・月次」)。 さまざまな給与計算サイクルや頻度のパフォーマンスを比較できるため、ほぼすべてのダッシュボードの中心となる属性です。 重要な理由 給与計算のスケジュールを決める主要な設定オブジェクトです。 入手先 PAY_ALL_PAYROLLS_Fテーブル(Payroll Name)です。 例 米国 半月次英国 月次週次 組合員 | |||
| 給与計算期間名 PayrollPeriodName | 給与計算の実行対象となる期間の具体的な名称です。 | ||
| 説明 「2024年1月月次」や「第42週」など、具体的なサイクルを特定します。「SLA期限コンプライアンスモニター」に欠かせません。 個々の従業員ケースを対応する一括実行単位にまとめ、集計レポートを作成できます。 重要な理由 一括処理単位の分析とSLAの追跡に欠かせません。 入手先 PAY_TIME_PERIODSテーブル、またはPayroll DefinitionのTime Period Nameです。 例 2023年 月次102023年 週次422023年12月 賞与処理 | |||
| 総支給額 GrossPayAmount | 対象期間に計算された総支給額です。 | ||
| 説明 給与計算サイクル中に計算された総支給額の金額を表します。「税および福利厚生計算の精度」と「インセンティブ連携」の分析に使用されます。 高額な支払いと処理時間またはエラー率の相関を分析できます。 重要な理由 プロセスマイニング分析に財務面の情報を加えます。 入手先 PAY_RUN_RESULT_VALUESテーブルを総支給額の残高用に集計したものです。 例 5000.002350.5010000.00 | |||
| 部門名 DepartmentName | 従業員が勤務する組織単位です。 | ||
| 説明 給与レコードに関連付けられた従業員を担当する部門を特定します。これは、「タイムシート承認効率」ダッシュボードに欠かせません。 部門別にデータを分けることで、タイムカードの承認が継続的に遅れ、給与計算全体を遅延させている事業部門を特定できます。 重要な理由 管理者の承認に関連する遅延の根本原因分析に役立ちます。 入手先 給与計算の実行時点で有効な従業員のAssignmentレコードから導出されます。 例 北米営業エンジニアリング人事物流 | |||
| SLAステータス SlaStatus | SLA遵守状況のカテゴリ別ステータスです(遵守/未達)。 | ||
| 説明 「支払い実行」タイムスタンプと「SLA処理期限」を比較して導出します。値には「期限内」、「リスクあり」、「期限超過」などがあります。 ケースをパフォーマンス区分にまとめ、「SLA期限コンプライアンスモニター」のレポートを簡素化します。 重要な理由 複雑な時間比較を、対応につなげやすいカテゴリに整理します。 入手先 Event TimestampとSLA Deadlineを比較する計算ロジックです。 例 基準達成基準違反基準違反間近 | |||
| プレビュー反復回数 PreviewIterationCount | 確定前に結果をプレビューした回数です。 | ||
| 説明 同じケースで「給与計算結果のプレビュー」アクティビティが発生するたびに増加するカウンターです。 「給与計算プレビュー反復トラッカー」ダッシュボードの直接的な指標であり、承認前の手戻りや判断の迷いの程度を示します。 重要な理由 検証フェーズの効率を定量化します。 入手先 データ変換時に、Case IDごとの特定のアクティビティ発生回数を数えて計算します。 例 1350 | |||
| 従業員タイプ EmployeeType | 従業員の区分です(例:月給制、時給制、契約社員)。 | ||
| 説明 従業員レコードを分類します。従業員タイプによって処理ルールや緊急度が異なる場合があるため、「デジタル給与明細公開遅延」ダッシュボードに欠かせません。 異なる従業員層のプロセスパフォーマンスを比較するためのフィルターとして使えます。 重要な理由 従業員タイプによって、異なるプロセスバリアントに従うことがよくあります。 入手先 PER_ALL_ASSIGNMENTS_MのAssignment categoryまたは雇用条件です。 例 フルタイム月給制パートタイム時給制契約社員役員 | |||
| 監査例外タイプ AuditExceptionType | 監査中に検出されたエラーまたは警告の分類です。 | ||
| 説明 「監査例外の検出」アクティビティで見つかった具体的な問題を分類します(例:「手取り額がマイナス」、「納税者番号が未入力」)。 この属性は、一般的なデータ品質の問題を特定する「監査例外と修正の分析」ダッシュボードを支えます。 重要な理由 手戻りループの根本原因分析に欠かせません。 入手先 給与計算プロセスログまたは例外レポートのMessage列またはError Code列です。 例 マイナスの手取り額社会保障番号の欠落銀行情報が無効時間外労働上限超過 | |||
| 税務管轄区域 TaxJurisdiction | 税務申告の対象となる州、県、または地域です。 | ||
| 説明 給与レコードに関連する主要な税務当局を示します(例:「CA」はカリフォルニア州、「NY」はニューヨーク州)。「税務コンプライアンス処理時間」ダッシュボードを支えます。 特定の地域で、税額計算や申告のプロセスがより複雑または遅くなっていないかを確認できます。 重要な理由 規制の複雑さに応じてパフォーマンスを分けて分析します。 入手先 従業員の税務カードまたは勤務先住所から導出されます。 例 CA-カリフォルニアNY-ニューヨークTX-テキサス連邦-米国 | |||
| 遡及変更フラグ RetroactiveChangeFlag | 給与計算の実行に遡及支払いが含まれているかを示します。 | ||
| 説明 このレコードで「Retropay」要素が処理された場合にtrueとなるブール型指標です。「プロセスパスバリアント比較」で、処理時間の長期化や監査例外の発生理由を説明するのに役立ちます。 遡及変更では、過去の期間にまたがる複雑な再計算が発生することがあります。 重要な理由 通常より長い処理時間を必要とする複雑なケースを特定します。 入手先 PAY_ELEMENT_ENTRIESに「Retropay」要素のエントリが存在することです。 例 truefalse | |||
給与計算処理のアクティビティ
| アクティビティ | 説明 | ||
|---|---|---|---|
| Prepaymentsの計算 | Prepaymentsプロセスを実行し、従業員が選択した支払方法(Check、EFTなど)に手取り額を振り分けます。算出された金額を実際に支払えることを検証します。 | ||
| 重要な理由 計算と支払いの間をつなぐ工程です。ここでの失敗は通常、銀行情報の不足や無効な支払方法を示します。 入手先 PAY_PAYROLL_ACTIONSでACTION_TYPEがP(Prepayments)かつステータスがCompleteのレコードを検索します。 取得 Prepaymentsアクションが完了した時点で記録 イベントタイプ explicit | |||
| 支払いの実行 | 支払い処理が完了したことを示す最終確認です。Oracleでは、Cash Managementにおける支払いフローの完了または照合に対応します。 | ||
| 重要な理由 SLAコンプライアンスを測定する主要なタイムスタンプです。従業員への支払いが期限どおりに行われたかを判定するために使用します。 入手先 Bank TransferアクションのEffective Dateから推定するか、Cash Managementの照合ログ(CE_STATEMENT_LINES)から明示的に取得できます。 取得 支払いアクションの有効日または照合イベントを通じて記録 イベントタイプ explicit | |||
| 給与計算の実行完了 | Calculate Payrollプロセスが正常に完了したことを示します。総支給額から手取り額までの計算を含み、対象のアサインメントについて、支給額、控除額、税額が算出されたことを示します。 | ||
| 重要な理由 データが検証可能になったことを示す主要な節目です。ここで処理時間が長い場合、システム性能の問題や複雑なFast Formulaが原因である可能性があります。 入手先 PAY_PAYROLL_REL_ACTIONSをPAY_PAYROLL_ACTIONSに結合し、ACTION_TYPEがRまたはQで、ACTION_STATUSがC(Complete)に変わったレコードを検索します。 取得 Payroll RunのアクションステータスがCompleteに更新された時点で記録 イベントタイプ explicit | |||
| 給与計算の開始 | 特定の給与定義と期間を対象とする主要な給与計算処理を開始します。データ収集から処理へ移行する時点を示します。 | ||
| 重要な理由 負荷の高い処理時間帯の開始点を確定します。技術的な給与計算の総サイクル時間を算出するために使用します。 入手先 PAY_PAYROLL_ACTIONSテーブルで、ACTION_TYPEがR(Run)またはQ(QuickPay)であり、ACTION_STATUSがstartedになっているレコードを検索します。作成日から開始を推定することもあります。 取得 PAY_PAYROLL_ACTIONSレコードが挿入された時点で記録 イベントタイプ explicit | |||
| 銀行振込の生成 | EFT(電子資金振替)ファイルまたは同様の支払い出力を生成します。銀行への指示ファイルを作成する技術的なステップです。 | ||
| 重要な理由 Payment File Generation Cycle Timeを測定します。ここで遅延すると、銀行の受付締切に間に合わない可能性があります。 入手先 PAY_PAYROLL_ACTIONSでACTION_TYPEがM(Magnetic Tape)、E(EFT)、またはC(Check Writer)のレコードを検索します。 取得 EFTまたはCheckアクションが完了した時点で記録 イベントタイプ explicit | |||
| QuickPayの実行 | 通常、修正内容の確認に使われる、1人分の給与計算(QuickPay)を実行します。Payroll Result Previewedアクティビティの代替指標として機能します。 | ||
| 重要な理由 従業員1人あたりのQuickPayが頻繁に実行されている場合、標準化された処理ではなく、試行錯誤に頼った給与計算になっている可能性があります。 入手先 PAY_PAYROLL_ACTIONSでACTION_TYPEがQ(QuickPay)のレコードを検索します。従業員ごと、給与計算期間ごとに件数を集計します。 取得 QuickPayアクションがPAY_PAYROLL_ACTIONSに記録された時点で記録 イベントタイプ explicit | |||
| アーカイブ結果の生成 | Archive Periodic Payroll Resultsプロセスが完了したことを示します。このスナップショットによって、レポート作成と給与明細生成の対象データが実質的に確定します。 | ||
| 重要な理由 給与明細や法定レポートを生成するための技術的な前提条件です。データが最終確定したことを確認します。 入手先 PAY_PAYROLL_ACTIONSでACTION_TYPEがX(Archive)かつステータスがCompleteのレコードを検索します。 取得 Archiveアクションが完了した時点で記録 イベントタイプ explicit | |||
| インセンティブデータのインポート | バッチローダーまたはHDLインポートによって、賞与やコミッションなどの変動報酬に関するエレメントエントリを作成します。外部の報酬データを給与計算に取り込む処理です。 | ||
| 重要な理由 変動報酬の連携速度を監視します。インポートが遅れると、追加の給与計算や手作業による修正が必要になることがあります。 入手先 PAY_BATCH_HEADERSでインポート完了を検索するか、特定のソースシステム参照を持つPAY_ELEMENT_ENTRIES_Fの作成を追跡します。 取得 バッチによるエレメントエントリ処理が正常に完了した時点で記録 イベントタイプ explicit | |||
| タイムカード承認 | 提出された勤務時間データを管理者が確認し、承認したことを示します。このステータス変更によって、データが給与エレメントエントリに転送されます。 | ||
| 重要な理由 Manager Approval Lead Timeの測定に欠かせません。ここでの遅延は、後続期間における遡及給与の調整を引き起こす主な原因です。 入手先 HWM_TM_REC_GRP_DTLSテーブルまたはHXT_TIMECARDSビューで、ステータスがAPPROVEDに変わったレコードを検索します。承認時のタイムスタンプと提出時のタイムスタンプを比較します。 取得 Time and LaborでステータスがAPPROVEDに変わった時点で記録 イベントタイプ explicit | |||
| タイムカード提出 | 従業員または管理者が、処理対象の勤務時間と労務データを提出する最初のイベントです。Oracle HCMでは、Time and LaborモジュールでタイムカードのステータスがSubmittedに変わった時点で記録されます。 | ||
| 重要な理由 生のデータが給与計算パイプラインに入る時点を示します。ここで遅延が発生すると、その後の工程に波及し、給与担当者が計算を検証できる時間が短くなります。 入手先 HWM_TM_REC_GRP_DTLSテーブルまたはHXT_TIMECARDSビューで、ステータスがSUBMITTEDに変わったレコードを検索します。提出時のタイムスタンプを使用します。 取得 Time and LaborでステータスがSUBMITTEDに変わった時点で記録 イベントタイプ explicit | |||
| 原価計算結果の転送 | 給与原価計算の結果を総勘定元帳に転送します。給与計算サイクルにおける財務会計上の締めを示します。 | ||
| 重要な理由 財務上のコンプライアンスと労務費の正確な計上を確保します。遅延すると、財務部門が帳簿を締められません。 入手先 PAY_PAYROLL_ACTIONSでACTION_TYPEがT(Transfer to GL)かつステータスがCompleteのレコードを検索します。 取得 Transfer to GLプロセスが完了した時点で記録 イベントタイプ explicit | |||
| 監査例外の検出 | 給与計算または検証の段階で発生したエラーや警告メッセージを記録します。人による対応が必要な具体的な検証失敗を取得します。 | ||
| 重要な理由 データ品質の問題を特定するために欠かせません。例外が多いほど、手作業の負担とSLA違反のリスクが高まります。 入手先 特定のPAY_PAYROLL_REL_ACTION_IDに関連付けられたPAY_MESSAGE_LINESテーブルを検索します。このテーブルには、実行中に生成されたエラーと警告が保存されます。 取得 レコードがPAY_MESSAGE_LINESに挿入された時点で記録 イベントタイプ explicit | |||
| 税務申告の完了 | 法定税務ファイル(例:Third Party Quarterly Tax File)を生成します。給与計算期間における規制上のコンプライアンスを確保します。 | ||
| 重要な理由 Tax Compliance Processing Duration KPIに欠かせません。ここで失敗すると、罰金や制裁につながる可能性があります。 入手先 税務報告に関連する特定のLegislative Data Groupアクション(例:US Third Party Tax Filing)をPAY_PAYROLL_ACTIONSで検索します。 取得 特定の税務報告フローが完了した時点で記録 イベントタイプ explicit | |||
| 給与レコードの修正 | 初回の給与計算後、最終確定前にエレメントエントリまたはアサインメントデータへ手作業で更新を加えます。エラーや例外を修正するために必要となったやり直しを示すアクティビティです。 | ||
| 重要な理由 プロセスの非効率とデータ品質の問題を示します。このアクティビティを減らすことが、初回給与計算精度の向上につながります。 入手先 初回のPayroll Run日からPrepayments日までの間にPAY_ELEMENT_ENTRIES_FのLast Update Dateが更新されたレコードを特定して推定します。 取得 エレメントエントリの更新タイムスタンプと給与計算実行のタイムスタンプを比較 イベントタイプ inferred | |||
| 給与明細の公開 | 給与明細がセルフサービスで従業員に表示される時点です。Archiverの後に発生し、特定の「Generate Payslip」プロセスが実行される場合もあります。 | ||
| 重要な理由 従業員満足度に影響します。支払いから給与明細の閲覧可能になるまでの時間が長いと、問い合わせが増加します。 入手先 Documents of Recordテーブル(HR_DOCUMENTS_OF_RECORD)またはPAY_PAYROLL_ACTIONSにおけるGenerate Payslipプロセスの完了を検索します。 取得 給与明細PDFの生成プロセスが完了した時点で記録 イベントタイプ explicit | |||
| 給与計算の承認 | Payroll Dashboardで給与台帳またはフローを正式に承認します。通常、検証レポートの確認後、銀行ファイルの生成前に行われます。 | ||
| 重要な理由 管理者による最終承認を示します。計算から承認までの時間が検証期間にあたります。 入手先 定義されたPayroll Flow Pattern内で、PAY_REQ_FLOW_INSTANCESのステータス変更または特定タスクの完了を検索します。 取得 Flow InstanceのステータスがCompletedまたはApprovedに変わった時点で記録 イベントタイプ explicit | |||
抽出ガイド
ステップ
Data Exchangeにアクセス:
Human Capital Management Integration Specialistロールを持つユーザーでOracle HCM Cloudにログインします。My Client Groups > Data Exchange > Extract Definitionsに移動します。新しいExtractを作成:「+」アイコンをクリックして新しいExtractを作成します。名前に
ProcessMind_Payroll_Extractを指定します。過去の給与計算アクションデータにアクセスできるよう、コンシューマーにPayroll、カテゴリにHR Archiveを選択します。データグループを定義:User Entity
PAY_PAYROLL_REL_UE(Payroll Relationship)を基にRoot Data Groupを作成します。これにより、抽出対象を従業員の給与関係に紐づけます。子データグループとしてPAY_ACTION_INFORMATION_UE、PAY_ELEMENT_ENTRY_UE、時間と労務用のHWM_MEASURE_DAY_V_UEを作成します。Extract Recordsを設定:データグループ内で、階層データをフラット化するレコードを定義します。各アクティビティタイプに対応するレコードを作成する必要があります(例:「Time Card」イベントを抽出するレコードや、「Run Results」を抽出するレコード)。
FastFormulaまたはBIPでSQLロジックを実装:階層化された給与計算データを線形のイベントログに変換するには、
Extract Delivery OptionからBI Publisher Reportを呼び出す方法が最も信頼性の高い選択肢です。これにより、下記の「Query」セクションに記載したSQLをData Modelとして使用できます。統合されたイベントログを作成する場合、標準のGUIフィルタリングよりも適しています。BI Publisher Data Modelを作成:Tools > Reports and Analytics > Browse Catalogに移動します。新しいData Modelを作成し、下記のSQLクエリを貼り付けます。
bind_start_dateとbind_end_dateのパラメータを定義します。ExtractをBIPにリンク:Extract Definitionの「Delivery」タブで配信オプションを作成します。出力タイプに
PDFまたはXMLを選択します(ProcessMindではCSVを推奨していますが、BIPの出力を変換します)。前の手順で作成したBI Publisherレポートを選択します。パラメータを定義:Extract Execution Treeで、BI Publisherクエリに動的に渡すStart DateとEnd Dateのパラメータを追加します。
検証して送信:Extract定義を検証し、エラーがないことを確認します。「Submit Extract」をクリックし、パラメータ(例:直近90日間)を入力します。
処理を監視:「View Extract Results」に移動します。ステータスが「Succeeded」に変わるまで待ちます。
出力をダウンロード:生成されたXMLまたはCSVファイルをダウンロードします。PayrollRecord、ActivityName、EventTimestampなど、必要な列が含まれていることを確認します。
ProcessMind向けに整形:出力がXMLの場合は、ヘッダーが「Attributes to include」の要件と一致するフラットなCSVファイルに変換します。変換後のファイルをProcessMindにアップロードします。
設定
- 抽出モード:Changes OnlyとFull Extractのいずれかを選択します。初回ロードではFull Extractを使用します。日次更新では、Last Update Dateに基づいて
Changes Onlyを設定します。 - Legislative Data Group(LDG):複数の国をサポートするインスタンスでは、給与計算の定義が法令によって異なるため、LDGでフィルタリングすることを強く推奨します。
- 日付範囲:プロセスマイニングでサイクルタイム全体を把握できるよう、
bind_start_dateとbind_end_dateは少なくとも3~6か月の範囲に設定します。 - チャンクサイズ:大量の給与計算(従業員1万人以上)では、タイムアウトエラーを防ぐため、Extract Definitionのチャンクサイズを2000に設定します。
- 有効日管理:給与計算テーブルは日付によって有効性が変わります。クエリロジックでは
effective_start_dateとeffective_end_dateを明示的に処理し、正しい過去バージョンのレコードを取得します。 - セキュリティ:実行ユーザーには、分析対象とするすべての給与計算と部門を閲覧できるデータセキュリティプロファイルが必要です。
a サンプルクエリ sql
/* Oracle HCM Cloud Payroll Extraction for ProcessMind */
/* Aggregating 16 specific activities into a unified Event Log */
SELECT
/* Attributes */
rel.person_number || '-' || ppa.payroll_action_id AS PayrollRecord,
'Time Card Submitted' AS ActivityName,
TO_CHAR(htr.creation_date, 'YYYY-MM-DD HH24:MI:SS') AS EventTimestamp,
'Oracle HCM Time and Labor' AS SourceSystem,
TO_CHAR(htr.last_update_date, 'YYYY-MM-DD HH24:MI:SS') AS LastDataUpdate,
pap.name AS PayrollPeriodName,
org.name AS DepartmentName,
NULL AS GrossPayAmount
FROM hwm_tm_rec htr
JOIN hwm_tm_rec_grp htrg ON htr.tm_rec_grp_id = htrg.tm_rec_grp_id
JOIN per_all_people_f rel ON htrg.person_id = rel.person_id
LEFT JOIN pay_all_payrolls_f pap ON htrg.payroll_id = pap.payroll_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id /* Adjust mapping */
WHERE htr.latest_version_flag = 'Y'
AND htr.tm_rec_status = 'SUBMITTED'
AND htr.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Time Card Approved',
TO_CHAR(htr.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Time and Labor',
TO_CHAR(htr.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM hwm_tm_rec htr
JOIN hwm_tm_rec_grp htrg ON htr.tm_rec_grp_id = htrg.tm_rec_grp_id
JOIN per_all_people_f rel ON htrg.person_id = rel.person_id
LEFT JOIN pay_all_payrolls_f pap ON htrg.payroll_id = pap.payroll_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE htr.latest_version_flag = 'Y'
AND htr.tm_rec_status = 'APPROVED'
AND htr.last_update_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || pee.element_entry_id,
'Incentive Data Imported',
TO_CHAR(pee.creation_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pee.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
NULL,
org.name,
NULL
FROM pay_element_entries_f pee
JOIN pay_element_types_f pet ON pee.element_type_id = pet.element_type_id
JOIN per_all_assignments_m asg ON pee.assignment_id = asg.assignment_id
JOIN per_all_people_f rel ON asg.person_id = rel.person_id
LEFT JOIN per_departments org ON asg.organization_id = org.organization_id
WHERE pet.classification_name IN ('Supplemental Earnings', 'Voluntary Deductions')
AND pee.creator_type IN ('H', 'F') /* HDL or Flat File */
AND pee.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Calculation Started',
TO_CHAR(ppa.creation_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(ppa.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_actions ppa
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN pay_payroll_rel_actions pra ON ppa.payroll_action_id = pra.payroll_action_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id /* Simplified Join */
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('R', 'Q') /* Run or QuickPay */
AND ppa.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Calculation Executed',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
(SELECT SUM(prrv.result_value) FROM pay_run_result_values prrv JOIN pay_run_results prr ON prrv.run_result_id = prr.run_result_id WHERE prr.payroll_rel_action_id = pra.payroll_rel_action_id) AS GrossPayAmount
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('R', 'Q')
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Audit Exception Flagged',
TO_CHAR(pml.creation_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pml.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_message_lines pml
JOIN pay_payroll_rel_actions pra ON pml.source_id = pra.payroll_rel_action_id
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE pml.message_level IN ('F', 'E') /* Fatal or Error */
AND pml.creation_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Record Corrected',
TO_CHAR(pee.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pee.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_element_entries_f pee
JOIN pay_payroll_rel_actions pra ON pee.creator_id = pra.payroll_rel_action_id
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE pee.last_update_date > pee.creation_date
AND pee.last_update_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'QuickPay Executed',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'Q'
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Prepayments Calculated',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'P' /* Distribution */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payroll Run Approved',
TO_CHAR(pfi.action_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pfi.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_flow_instances pfi
JOIN pay_payroll_actions ppa ON pfi.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN pay_payroll_rel_actions pra ON ppa.payroll_action_id = pra.payroll_action_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE pfi.status = 'COMPLETED'
AND pfi.instance_name LIKE '%Approval%'
AND pfi.action_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Archive Results Generated',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'X' /* Archive */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Bank Transfer Generated',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
(SELECT SUM(ppp.value) FROM pay_pre_payments ppp WHERE ppp.payroll_action_id = ppa.payroll_action_id) AS GrossPayAmount
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('M', 'E') /* Mag Tape or EFT */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Payment Executed',
TO_CHAR(ppp.base_currency_value, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(ppa.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
ppp.value AS GrossPayAmount
FROM pay_pre_payments ppp
JOIN pay_payroll_actions ppa ON ppp.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN pay_payroll_rel_actions pra ON ppa.payroll_action_id = pra.payroll_action_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type IN ('H', 'E', 'M') /* Check or EFT */
AND ppa.effective_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Pay Slip Published',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'G' /* Generate Payslip */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Costing Transferred',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.action_type = 'T' /* Transfer to GL */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date
UNION ALL
SELECT
rel.person_number || '-' || ppa.payroll_action_id,
'Tax Filing Completed',
TO_CHAR(pra.action_sequence_date, 'YYYY-MM-DD HH24:MI:SS'),
'Oracle HCM Payroll',
TO_CHAR(pra.last_update_date, 'YYYY-MM-DD HH24:MI:SS'),
pap.name,
org.name,
NULL
FROM pay_payroll_rel_actions pra
JOIN pay_payroll_actions ppa ON pra.payroll_action_id = ppa.payroll_action_id
JOIN pay_all_payrolls_f pap ON ppa.payroll_id = pap.payroll_id
JOIN per_all_people_f rel ON pra.payroll_relationship_id = rel.person_id
LEFT JOIN per_departments org ON rel.attribute1 = org.organization_id
WHERE ppa.report_category IN ('Tax', 'Regulatory') /* Customize based on local requirements */
AND pra.action_status = 'C'
AND pra.action_sequence_date BETWEEN :bind_start_date AND :bind_end_date ステップ
- Oracle BI Publisherにログイン:Oracle Cloud環境にアクセスし、Tools > Reports and Analyticsに移動します。Browse CatalogをクリックしてBI Publisherインターフェースを開きます。
- Data Modelを作成:左上のNewをクリックし、Data Modelを選択します。ここにSQL抽出ロジックを定義します。
- SQL Data Setを作成:DiagramタブでNew Data Setアイコンをクリックし、SQL Queryを選択します。
- データソースを設定:データセット名(例:
ProcessMind_Payroll_Extract)を指定します。Data SourceにApplicationDB_HCM(または使用するHCM Application Database接続)を設定します。タイプはStandard SQLのままにします。 - クエリを入力:下記のQueryセクションに記載された完全なSQLスクリプトをコピーし、SQL Queryテキストボックスに貼り付けます。Markdown形式は含めないでください。
- パラメータを定義:クエリではバインド変数
:p_start_dateと:p_end_dateを使用します。Data ModelのParametersタブで、抽出範囲を絞り込む2つのパラメータ(Dateタイプ)を作成します(例:ppa.EFFECTIVE_DATEに基づく範囲)。 - データ構造を検証:OKをクリックします。Data Modelエディター内のDataタブに切り替えます。サンプル日付(例:
2023-01-01から2023-03-31)を入力してViewをクリックします。出力にPayrollRecord、ActivityName、EventTimestampを含む行があることを確認します。 - Data Modelを保存:共有フォルダー(例:
/Shared Folders/Custom/ProcessMining)にモデルを保存します。 - エクスポート用レポートを作成:Create Reportをクリックし、保存したData Modelを選択します。Report Wizardで、すべての列を含むシンプルなTableレイアウトを作成します。「Show Grand Totals」の選択を解除します。
- CSVにエクスポート:Report Viewerでレポートを表示します。Actionsメニュー(歯車アイコン)> Export > Data > CSVをクリックします。
- 変換:CSVを開きます。日付が自動的に整形されていない場合は、ISO 8601形式(
YYYY-MM-DD HH:MM:SS)になっていることを確認します。SQLが正しく貼り付けられていれば、それ以上の再構成は必要ありません。 - アップロード:Data Requirementsで定義したとおりに列をマッピングし、変換後のCSVファイルをProcessMindにインポートします。
設定
- データソース接続:
PAY_およびPER_スキーマへの読み取りアクセス権を持つApplicationDB_HCMまたは同等のJNDIデータソースを使用する必要があります。 - 日付範囲:給与計算サイクル全体を把握するため、推奨する抽出期間は3~6か月です。
:p_start_dateと:p_end_dateのパラメータで動的なロード範囲を指定します。 - Legislative Data Group(LDG):デフォルトではすべてのLDGを抽出します。複数の国で運用している場合は、
AND ppa.LEGISLATIVE_DATA_GROUP_ID = [Your_LDG_ID]というフィルターを追加してデータを分割することを検討してください。 - パフォーマンス:このクエリは大量データを扱うテーブル(
PAY_RUN_RESULTS、PAY_ASSIGNMENT_ACTIONS)を参照します。BI Publisherのタイムアウトエラーを防ぐため、日付範囲を広げすぎないでください(例:1年超)。 - セキュリティ:レポートの実行ユーザーには、対象となる給与計算定義へのData Access Set権限が必要です。
a サンプルクエリ sql
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Time Card Submitted' AS ActivityName,
peef.CREATION_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
peef.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME AS LegislativeDataGroup,
org.NAME AS DepartmentName,
peef.LAST_UPDATED_BY AS ProcessingUser,
NULL AS GrossPayAmount,
ptp.PERIOD_NAME AS PayrollPeriodName,
NULL AS SlaProcessingDeadline,
'N' AS IsManualCorrection,
pg.PAYROLL_NAME AS PayGroup,
NULL AS ProcessDurationDays
FROM PAY_ELEMENT_ENTRIES_F peef
JOIN PER_ALL_ASSIGNMENTS_M paam ON peef.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND peef.EFFECTIVE_START_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND peef.EFFECTIVE_START_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PAY_PAY_RELATIONSHIPS_DN pprd ON paam.PAYROLL_RELATIONSHIP_ID = pprd.PAYROLL_RELATIONSHIP_ID
JOIN PER_TIME_PERIODS ptp ON pprd.PAYROLL_ID = ptp.PAYROLL_ID
AND peef.EFFECTIVE_START_DATE BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON pprd.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON pprd.PAYROLL_ID = pg.PAYROLL_ID
WHERE peef.CREATOR_TYPE = 'H'
AND peef.CREATION_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Time Card Approved' AS ActivityName,
peef.EFFECTIVE_START_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
peef.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
peef.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_ELEMENT_ENTRIES_F peef
JOIN PER_ALL_ASSIGNMENTS_M paam ON peef.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND peef.EFFECTIVE_START_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND peef.EFFECTIVE_START_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PAY_PAY_RELATIONSHIPS_DN pprd ON paam.PAYROLL_RELATIONSHIP_ID = pprd.PAYROLL_RELATIONSHIP_ID
JOIN PER_TIME_PERIODS ptp ON pprd.PAYROLL_ID = ptp.PAYROLL_ID
AND peef.EFFECTIVE_START_DATE BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON pprd.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON pprd.PAYROLL_ID = pg.PAYROLL_ID
WHERE peef.CREATOR_TYPE = 'H'
AND peef.EFFECTIVE_START_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Incentive Data Imported' AS ActivityName,
peef.CREATION_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
peef.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
peef.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_ELEMENT_ENTRIES_F peef
JOIN PER_ALL_ASSIGNMENTS_M paam ON peef.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND peef.EFFECTIVE_START_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND peef.EFFECTIVE_START_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PAY_PAY_RELATIONSHIPS_DN pprd ON paam.PAYROLL_RELATIONSHIP_ID = pprd.PAYROLL_RELATIONSHIP_ID
JOIN PER_TIME_PERIODS ptp ON pprd.PAYROLL_ID = ptp.PAYROLL_ID
AND peef.EFFECTIVE_START_DATE BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON pprd.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON pprd.PAYROLL_ID = pg.PAYROLL_ID
WHERE peef.CREATOR_TYPE IN ('B', 'F')
AND peef.CREATION_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
CASE
WHEN ppa.ACTION_TYPE = 'R' AND paa.ACTION_STATUS = 'C' THEN 'Payroll Calculation Executed'
WHEN ppa.ACTION_TYPE = 'R' THEN 'Payroll Calculation Started'
WHEN ppa.ACTION_TYPE = 'Q' THEN 'QuickPay Executed'
WHEN ppa.ACTION_TYPE IN ('P', 'U') THEN 'Prepayments Calculated'
WHEN ppa.ACTION_TYPE = 'X' THEN 'Archive Results Generated'
WHEN ppa.ACTION_TYPE = 'M' THEN 'Bank Transfer Generated'
WHEN ppa.ACTION_TYPE IN ('Z', 'E') THEN 'Payment Executed'
WHEN ppa.ACTION_TYPE = 'T' THEN 'Costing Transferred'
ELSE 'Payroll Process Action'
END AS ActivityName,
ppa.CREATION_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
paa.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
ppa.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
ptp.REGULAR_PAYMENT_DATE AS SlaProcessingDeadline,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_PAYROLL_ACTIONS ppa
JOIN PAY_ASSIGNMENT_ACTIONS paa ON ppa.PAYROLL_ACTION_ID = paa.PAYROLL_ACTION_ID
JOIN PER_ALL_ASSIGNMENTS_M paam ON paa.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND ppa.EFFECTIVE_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND ppa.EFFECTIVE_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PER_TIME_PERIODS ptp ON ppa.PAYROLL_ID = ptp.PAYROLL_ID
AND ppa.DATE_EARNED BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON ppa.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON ppa.PAYROLL_ID = pg.PAYROLL_ID
WHERE ppa.ACTION_TYPE IN ('R', 'Q', 'P', 'U', 'X', 'M', 'Z', 'E', 'T')
AND ppa.EFFECTIVE_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Audit Exception Flagged' AS ActivityName,
pml.CREATION_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
pml.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
pml.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'Y',
pg.PAYROLL_NAME,
NULL
FROM PAY_MESSAGE_LINES pml
JOIN PAY_PAYROLL_ACTIONS ppa ON pml.PAYROLL_ACTION_ID = ppa.PAYROLL_ACTION_ID
LEFT JOIN PAY_ASSIGNMENT_ACTIONS paa ON ppa.PAYROLL_ACTION_ID = paa.PAYROLL_ACTION_ID
JOIN PER_ALL_ASSIGNMENTS_M paam ON paa.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND ppa.EFFECTIVE_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND ppa.EFFECTIVE_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PER_TIME_PERIODS ptp ON ppa.PAYROLL_ID = ptp.PAYROLL_ID
AND ppa.DATE_EARNED BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON ppa.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON ppa.PAYROLL_ID = pg.PAYROLL_ID
WHERE pml.MESSAGE_LEVEL IN ('E', 'W')
AND pml.CREATION_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Payroll Record Corrected' AS ActivityName,
peef.LAST_UPDATE_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
peef.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
peef.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'Y',
pg.PAYROLL_NAME,
NULL
FROM PAY_ELEMENT_ENTRIES_F peef
JOIN PER_ALL_ASSIGNMENTS_M paam ON peef.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND peef.EFFECTIVE_START_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND peef.EFFECTIVE_START_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PAY_PAY_RELATIONSHIPS_DN pprd ON paam.PAYROLL_RELATIONSHIP_ID = pprd.PAYROLL_RELATIONSHIP_ID
JOIN PER_TIME_PERIODS ptp ON pprd.PAYROLL_ID = ptp.PAYROLL_ID
AND peef.EFFECTIVE_START_DATE BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON pprd.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON pprd.PAYROLL_ID = pg.PAYROLL_ID
WHERE peef.LAST_UPDATE_DATE > peef.CREATION_DATE
AND peef.LAST_UPDATE_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Payroll Run Approved' AS ActivityName,
ppa.LAST_UPDATE_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
ppa.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
ppa.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_PAYROLL_ACTIONS ppa
JOIN PAY_ASSIGNMENT_ACTIONS paa ON ppa.PAYROLL_ACTION_ID = paa.PAYROLL_ACTION_ID
JOIN PER_ALL_ASSIGNMENTS_M paam ON paa.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND ppa.EFFECTIVE_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND ppa.EFFECTIVE_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PER_TIME_PERIODS ptp ON ppa.PAYROLL_ID = ptp.PAYROLL_ID
AND ppa.DATE_EARNED BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON ppa.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON ppa.PAYROLL_ID = pg.PAYROLL_ID
WHERE ppa.ACTION_TYPE = 'R'
AND paa.ACTION_STATUS = 'C'
AND ppa.EFFECTIVE_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Pay Slip Published' AS ActivityName,
(ppa.CREATION_DATE + 1) AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
ppa.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
ppa.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_PAYROLL_ACTIONS ppa
JOIN PAY_ASSIGNMENT_ACTIONS paa ON ppa.PAYROLL_ACTION_ID = paa.PAYROLL_ACTION_ID
JOIN PER_ALL_ASSIGNMENTS_M paam ON paa.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND ppa.EFFECTIVE_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND ppa.EFFECTIVE_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PER_TIME_PERIODS ptp ON ppa.PAYROLL_ID = ptp.PAYROLL_ID
AND ppa.DATE_EARNED BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON ppa.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON ppa.PAYROLL_ID = pg.PAYROLL_ID
WHERE ppa.ACTION_TYPE = 'X'
AND ppa.EFFECTIVE_DATE BETWEEN :p_start_date AND :p_end_date
UNION ALL
SELECT
TO_CHAR(papf.PERSON_NUMBER) || '-' || ptp.PERIOD_NAME AS PayrollRecord,
'Tax Filing Completed' AS ActivityName,
ppa.CREATION_DATE AS EventTimestamp,
'Oracle HCM' AS SourceSystem,
ppa.LAST_UPDATE_DATE AS LastDataUpdate,
pld.NAME,
org.NAME,
ppa.LAST_UPDATED_BY,
NULL,
ptp.PERIOD_NAME,
NULL,
'N',
pg.PAYROLL_NAME,
NULL
FROM PAY_PAYROLL_ACTIONS ppa
JOIN PAY_ASSIGNMENT_ACTIONS paa ON ppa.PAYROLL_ACTION_ID = paa.PAYROLL_ACTION_ID
JOIN PER_ALL_ASSIGNMENTS_M paam ON paa.ASSIGNMENT_ID = paam.ASSIGNMENT_ID
AND ppa.EFFECTIVE_DATE BETWEEN paam.EFFECTIVE_START_DATE AND paam.EFFECTIVE_END_DATE
JOIN PER_ALL_PEOPLE_F papf ON paam.PERSON_ID = papf.PERSON_ID
AND ppa.EFFECTIVE_DATE BETWEEN papf.EFFECTIVE_START_DATE AND papf.EFFECTIVE_END_DATE
JOIN PER_TIME_PERIODS ptp ON ppa.PAYROLL_ID = ptp.PAYROLL_ID
AND ppa.DATE_EARNED BETWEEN ptp.START_DATE AND ptp.END_DATE
LEFT JOIN PER_LEGISLATIVE_DATA_GROUPS_VL pld ON ppa.LEGISLATIVE_DATA_GROUP_ID = pld.LEGISLATIVE_DATA_GROUP_ID
LEFT JOIN HR_ORGANIZATION_UNITS_F_TL org ON paam.ORGANIZATION_ID = org.ORGANIZATION_ID AND org.LANGUAGE = USERENV('LANG')
LEFT JOIN PAY_ALL_PAYROLLS_F pg ON ppa.PAYROLL_ID = pg.PAYROLL_ID
WHERE ppa.ACTION_TYPE = 'Z'
AND ppa.CREATION_DATE BETWEEN :p_start_date AND :p_end_date 準備はできましたか?
このデータテンプレートを使って給与計算サイクルを可視化し、業務を変革しましょう。自動化による効率化と正確なレポーティングに向けた取り組みを、今日から始められます。
Oracle HCMの給与計算処理を今すぐ最適化
給与計算サイクルを30%短縮し、ボトルネックをなくします。
クレジットカードは不要です。数分でセットアップできます。