給与計算データテンプレート
給与計算データテンプレート
- 給与計算分析に適したデータ項目
- ライフサイクルの把握に必要なアクティビティの追跡
- Oracle HCM Cloudの給与計算データ抽出ガイド
給与計算の属性
| 名前 | 説明 | ||
|---|---|---|---|
| アクティビティ名 ActivityName | 給与計算サイクルで実行される具体的なステップまたはイベントです。 | ||
| 説明 この属性には、給与計算プロセス内で発生したイベントの名前が記録されます。例として、「タイムカード提出」「給与計算の開始」「支払いの実行」などがあります。 プロセスの発見やバリアント分析で主に使われる項目です。Oracle HCM Cloudでは、給与アクションテーブルのアクションタイプまたはアクションステータスから取得することがよくあります。 重要な理由 プロセスの「何が行われたか」を定義し、プロセスマップの再構成に使います。 入手先 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」です。 複雑なシステム環境では、給与計算の中核エンジン、勤怠管理モジュール、外部銀行インターフェースを区別するために使われる場合があります。 重要な理由 特に勤怠管理や銀行のサブシステムからデータを統合する際に、データの由来を把握するための情報を提供します。 入手先 データ抽出時に固定値として設定するか、インターフェースIDから導出します。 例 Oracle HCM Cloud PayrollOracle Time and LaborExternal Banking Interface | |||
| 最終データ更新日時 LastDataUpdate | ソースデータベースでレコードが最後に変更された日時です。 | ||
| 説明 分析に使うデータが最新かどうかを示します。イベント日時とは異なり、ETL処理やシステム更新によってデータベースの行が最後に更新された日時を表します。 データが最新であることの確認や、抽出の遅延に関する問題の調査に使います。 重要な理由 分析担当者がリアルタイムのデータを見ているのか、古いデータを見ているのかを確認できます。 入手先 ほぼすべてのOracle HCMテーブルにあるLAST_UPDATE_DATE列です。 例 2023-10-02T12:00:00Z2023-10-06T01:00:00Z | |||
| 給与記録 PayrollRecord | 特定の給与計算期間における従業員を識別する一意の識別子です。 | ||
| 説明 給与記録は、プロセスマイニング分析の中心となるケース識別子です。従業員アサインメント識別子と給与計算期間識別子を組み合わせた連結値、または一意のキーです。 この属性によって、タイムカードの提出から最終的な銀行振込や税務申告まで、特定の給与計算サイクルにおける従業員1人分のすべてのアクティビティをまとめます。同じ従業員への1月と2月の支払いを区別して分析できます。 重要な理由 ケースIDとして、個別のイベントを分析用の1つのプロセスインスタンスにまとめます。 入手先 PAY_ASSIGNMENT_ACTIONS、またはOracle HCMの従業員番号と給与計算期間名の組み合わせから作成します。 例 EMP1001-2023-M01EMP5992-2023-W42300000018273645US-NY-A123-JAN23 | |||
| SLA処理期限 SlaProcessingDeadline | 支払いを実行する期限となる日時です。 | ||
| 説明 給与の支払いに関する契約上または法令上の期限を記録します。この属性を「支払い実行」日時と比較します。 「SLA処理期限の遵守」重要業績評価指標(KPI)の算出や、遅延リスクのある給与グループの特定に使います。 重要な理由 期限の遵守状況からプロセスの成否を判断するための主な基準です。 入手先 通常は給与定義に設定されたフィールド(DFF)を使うか、チェック日からX日を差し引いて算出します。 例 2023-10-28T17:00:00Z2023-11-30T17:00:00Z | |||
| 処理担当者 ProcessingUser | アクティビティを実行した人のユーザーIDまたは名前です。 | ||
| 説明 アクティビティを実行した給与計算担当者、マネージャー、またはシステムアカウントを記録します。「給与計算担当者の作業負荷分布」ダッシュボードで利用できます。 給与計算チームのリソース不足やトレーニングの必要性を特定するのに役立ちます。 重要な理由 リソースの生産性分析と作業負荷の平準化に役立ちます。 入手先 トランザクションテーブルのCREATED_BY列またはLAST_UPDATED_BY列です。 例 システム管理者j.smithpayroll_batch_userm.doe | |||
| 手動修正の有無 IsManualCorrection | アクティビティに手作業が含まれていたかを示すフラグです。 | ||
| 説明 「データ修正の実施」や「給与レコードの修正」などのアクティビティでtrueに設定されるブール値のフラグです。 「手動データ修正率」と「給与計算の初回処理精度」の重要業績評価指標(KPI)の算出に使います。 重要な理由 一貫処理と手作業による手戻りを区別できます。 入手先 アクティビティ名、または調整を示す特定のアクションタイプ(例:QuickPay、残高調整)から導出します。 例 truefalse | |||
| 法定データグループ LegislativeDataGroup | 給与データを国または規制環境ごとに分割します。 | ||
| 説明 Oracle HCM Cloudでは、法定データグループ(LDG)によって給与データと関連データを分割します。通常、国または特定の地域の法令に対応します。 国別(例:米国の給与計算と英国の給与計算)にプロセス分析を絞り込むうえで重要な属性です。多くの場合、汎用属性の「国」にマッピングされます。 重要な理由 コンプライアンス規則やプロセスフローは、管轄区域によって大きく異なることがあります。 入手先 PAY_ALL_PAYROLLS_Fテーブルを法定データグループの定義と結合します。 例 米国の法定データグループ英国のLDGフランスの給与計算 | |||
| 給与グループ PayGroup | 給与計算のために従業員をまとめる論理的なグループです。 | ||
| 説明 従業員が所属する給与定義を示します(例:「製造部門・週次」「本社・月次」)。 ほぼすべてのダッシュボードで中心となる属性です。給与計算のサイクルや頻度ごとにパフォーマンスを比較できます。 重要な理由 給与計算のスケジュールを決める主な設定項目です。 入手先 PAY_ALL_PAYROLLS_Fテーブルの給与名です。 例 米国・月2回英国・月次週次・労働組合 | |||
| 給与期間名 PayrollPeriodName | 給与計算の実行対象となる期間の名前です。 | ||
| 説明 「2024年1月の月次」や「第42週」など、対象のサイクルを示します。「SLA期限コンプライアンスモニター」で欠かせない属性です。 従業員ごとのケースを該当する一括処理にまとめ、集計レポートを作成できます。 重要な理由 一括処理単位の分析とSLAの追跡に欠かせません。 入手先 PAY_TIME_PERIODSテーブル、または給与定義の期間名です。 例 2023年月次102023年第42週2023年12月賞与計算 | |||
| 総支給額 GrossPayAmount | 対象期間に計算された総支給額です。 | ||
| 説明 給与計算サイクル中に算出された総支給額を表します。「税金・福利厚生計算の精度」および「インセンティブ連携」の分析に使います。 高額な支払いと処理時間やエラー率との関係を分析できます。 重要な理由 プロセスマイニング分析に金額面のコンテキストを加えます。 入手先 PAY_RUN_RESULT_VALUESテーブルの総支給額残高を集計した値です。 例 5000.002350.5010000.00 | |||
| 部門名 DepartmentName | 従業員が所属する組織単位です。 | ||
| 説明 給与レコードに関連付けられた従業員を担当する部門を示します。「タイムシート承認効率」ダッシュボードで重要な属性です。 部門ごとにデータを分けると、タイムカードの承認が常に遅れて給与計算全体の実行に影響している事業部門を特定できます。 重要な理由 管理者の承認に関連する遅延の根本原因を分析できます。 入手先 給与計算の実行時点で有効な従業員のアサインメントレコードから導出します。 例 北米営業エンジニアリング人事物流 | |||
| SLAステータス SlaStatus | SLAの遵守状況を示す分類ステータス(遵守/未達)です。 | ||
| 説明 「支払い実行」日時と「SLA処理期限」を比較して導出します。「期限内」「リスクあり」「期限超過」などの値が設定されます。 ケースをパフォーマンス別に分類し、「SLA期限コンプライアンスモニター」のレポートを簡潔にします。 重要な理由 複雑な時間の比較結果を、対応につなげやすい分類にまとめます。 入手先 イベント日時とSLA期限を比較するロジックで算出します。 例 遵守期限超過期限超過間近 | |||
| プレビュー回数 PreviewIterationCount | 確定前に結果をプレビューした回数です。 | ||
| 説明 同じケースで「給与計算結果のプレビュー」アクティビティが発生するたびに増えるカウンターです。 「給与プレビュー回数トラッカー」ダッシュボードで直接確認でき、承認前の手戻りや判断の迷いの程度を示します。 重要な理由 検証段階の効率を数値で把握できます。 入手先 データ変換時に、ケースIDごとの特定のアクティビティ発生回数を数えて算出します。 例 1350 | |||
| 従業員区分 EmployeeType | 従業員の分類です(例:月給制、時給制、契約社員)。 | ||
| 説明 従業員レコードを分類します。従業員区分によって処理規則や緊急度が異なる場合があるため、「デジタル給与明細の公開遅延」ダッシュボードで重要な属性です。 従業員の区分ごとに分析を絞り込み、プロセスのパフォーマンスを比較できます。 重要な理由 従業員区分によって、異なるプロセスバリアントをたどることがよくあります。 入手先 PER_ALL_ASSIGNMENTS_Mのアサインメント区分または雇用条件です。 例 フルタイム月給制パートタイム時給制契約社員役員 | |||
| 監査例外の種類 AuditExceptionType | 監査で検出されたエラーまたは警告の分類です。 | ||
| 説明 「監査例外の検出」アクティビティで見つかった問題を分類します(例:「差引支給額がマイナス」「納税者番号が未入力」)。 よくあるデータ品質の問題を特定し、「監査例外と修正の分析」ダッシュボードに役立てます。 重要な理由 手戻りの繰り返しが発生する根本原因の分析に欠かせません。 入手先 給与計算のプロセスログまたは例外レポートにあるメッセージ列やエラーコード列です。 例 差引支給額がマイナスSSNが未入力銀行口座情報が無効時間外労働の上限超過 | |||
| 税務管轄区域 TaxJurisdiction | 税務申告の対象となる州、県、または地域です。 | ||
| 説明 給与レコードに関連する主な税務当局を示します(例:「CA」はカリフォルニア州、「NY」はニューヨーク州)。「税務コンプライアンス処理期間」ダッシュボードで利用できます。 特定の地域で税額計算や申告の手続きが複雑化または長期化していないかを特定するのに役立ちます。 重要な理由 規制の複雑さに応じてパフォーマンスを比較できます。 入手先 従業員の税務カードまたは勤務地の住所から導出します。 例 CA-カリフォルニアNY-ニューヨークTX-テキサス連邦-米国 | |||
| 遡及変更フラグ RetroactiveChangeFlag | 給与計算に遡及支払いが含まれるかを示します。 | ||
| 説明 このレコードで「Retropay」要素が処理される場合にtrueとなるブール値のフラグです。「プロセス経路のバリアント比較」で、処理時間の長期化や監査例外の発生理由を調べるのに役立ちます。 遡及変更では、過去の複数期間にわたる複雑な再計算が必要になることがあります。 重要な理由 通常より処理に時間がかかる複雑なケースを特定できます。 入手先 PAY_ELEMENT_ENTRIESに「Retropay」要素のエントリがあるかどうかです。 例 truefalse | |||
給与計算のアクティビティ
| アクティビティ | 説明 | ||
|---|---|---|---|
| 前払い額の計算 | 前払い処理を実行し、従業員が指定した支払い方法(小切手、EFTなど)に手取り額を振り分けます。計算した金額を実際に支払える状態か確認します。 | ||
| 重要な理由 給与計算と支払いをつなぐ工程です。ここでの失敗は、銀行口座情報の不足や無効な支払い方法を示していることが多くあります。 入手先 PAY_PAYROLL_ACTIONSでACTION_TYPEがP(Prepayments)で、ステータスがCompleteの記録を検索します。 記録 前払い処理が完了した時点で記録 イベントタイプ explicit | |||
| 支払いの実行 | 支払い処理が完了したことを示す最終確認です。Oracleでは、支払いフローの完了、またはCash Managementでの照合に対応します。 | ||
| 重要な理由 SLA遵守状況を確認するための主要なタイムスタンプです。従業員への支払いが期日どおりだったかを判定します。 入手先 銀行振込アクションの有効日から推定するか、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)に変わった記録を検索します。 記録 給与計算実行のステータスがCompleteに更新された時点で記録 イベントタイプ explicit | |||
| 給与計算の開始 | 特定の給与定義と期間に対する、主な給与計算処理の開始です。データ収集から処理へ移る時点を示します。 | ||
| 重要な理由 負荷の高い処理時間帯の開始を示します。技術的な給与計算の総サイクルタイムを算出する際に使用します。 入手先 PAY_PAYROLL_ACTIONSテーブルで、ACTION_TYPEがR(Run)またはQ(QuickPay)であり、ACTION_STATUSが開始済みとなっている記録を検索します。開始済みの状態が記録されない場合は、作成日から推定します。 記録 PAY_PAYROLL_ACTIONSのレコードが挿入された時点で記録 イベントタイプ explicit | |||
| 銀行振込ファイルの作成 | EFT(電子資金振替)ファイルなど、支払い用の出力ファイルを作成します。銀行への振込指示ファイルを作成する技術的な工程です。 | ||
| 重要な理由 支払いファイル作成のサイクルタイムを測定します。ここで遅延すると、銀行の受付締切に間に合わないことがあります。 入手先 PAY_PAYROLL_ACTIONSでACTION_TYPEがM(Magnetic Tape)、E(EFT)、またはC(Check Writer)の記録を検索します。 記録 EFTまたは小切手の処理が完了した時点で記録 イベントタイプ explicit | |||
| QuickPayの実行 | 通常、修正内容の確認に使われる個人単位の給与計算(QuickPay)の実行です。「給与計算結果のプレビュー」アクティビティの代替指標として使用します。 | ||
| 重要な理由 従業員1人あたりのQuickPayの実行回数が多い場合、給与計算が体系的に進められず、試行錯誤になっている可能性があります。 入手先 PAY_PAYROLL_ACTIONSでACTION_TYPEがQ(QuickPay)の記録を検索します。従業員ごと、給与計算期間ごとに件数を数えます。 記録 PAY_PAYROLL_ACTIONSにQuickPayアクションが記録された時点で記録 イベントタイプ explicit | |||
| アーカイブ結果の作成 | Archive Periodic Payroll Results処理の完了です。この時点のデータがスナップショットとして保存され、レポートや給与明細の作成に使用されます。 | ||
| 重要な理由 給与明細や法定レポートの作成に必要な技術上の前提条件です。データが確定したことを確認できます。 入手先 PAY_PAYROLL_ACTIONSでACTION_TYPEがX(Archive)で、ステータスがCompleteの記録を検索します。 記録 アーカイブ処理が完了した時点で記録 イベントタイプ explicit | |||
| インセンティブデータのインポート | バッチローダーまたはHDLインポートを通じて、賞与やコミッションなどの変動報酬に関する給与要素エントリを作成します。外部の報酬データを給与計算に取り込む工程です。 | ||
| 重要な理由 変動報酬データの取り込み速度を確認します。インポートが遅れると、追加の給与計算や手作業での修正が必要になることがあります。 入手先 PAY_BATCH_HEADERSでインポートの完了を確認するか、特定のソースシステム参照を持つPAY_ELEMENT_ENTRIES_Fの作成を追跡します。 記録 バッチによる給与要素エントリ処理が正常に完了した時点で記録 イベントタイプ explicit | |||
| タイムカード承認 | 提出された勤務時間データを管理者が確認し、承認したことを示します。このステータス変更をきっかけに、データが給与要素エントリへ転送されます。 | ||
| 重要な理由 管理者の承認リードタイムを測定するうえで重要です。ここでの遅延は、後続期間に遡及給与の調整が発生する主な原因です。 入手先 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 | |||
| 税務申告の完了 | 法定税務ファイル(例:第三者向け四半期税務ファイル)を作成します。給与計算期間に適用される規制への準拠を確保します。 | ||
| 重要な理由 税務コンプライアンス処理時間の重要業績評価指標(KPI)を測定するうえで重要です。ここで失敗すると、罰則につながる可能性があります。 入手先 税務報告に関する特定の法令データグループのアクション(例:米国の第三者向け税務申告)をPAY_PAYROLL_ACTIONSで検索します。 記録 特定の税務報告フローが完了した時点で記録 イベントタイプ explicit | |||
| 給与明細の公開 | セルフサービスで従業員が給与明細を確認できるようになった時点です。通常、アーカイブ処理の後に行われ、専用の「給与明細の生成」処理が実行される場合もあります。 | ||
| 重要な理由 従業員の満足度に影響します。支払いから給与明細の確認までに時間がかかると、問い合わせが増えます。 入手先 Documents of Recordテーブル(HR_DOCUMENTS_OF_RECORD)を検索するか、PAY_PAYROLL_ACTIONSでGenerate Payslip処理の完了を確認します。 記録 給与明細PDFの作成処理が完了した時点で記録 イベントタイプ explicit | |||
| 給与計算の承認 | Payroll Dashboardで給与台帳またはフローを正式に承認します。通常、検証レポートの確認後、銀行振込ファイルの作成前に行われます。 | ||
| 重要な理由 管理者による最終承認を示します。給与計算から承認までの時間は、検証にかかった時間を表します。 入手先 PAY_REQ_FLOW_INSTANCESでステータスの変更、または定義済みのPayroll Flow Pattern内の特定タスクの完了を検索します。 記録 フローインスタンスのステータスがCompletedまたはApprovedに変わった時点で記録 イベントタイプ explicit | |||
| 給与記録の修正 | 最初の給与計算実行後、確定前に給与要素エントリまたはアサインメントデータに手動で加えた更新です。エラーや例外を修正するために必要なやり直しを示します。 | ||
| 重要な理由 プロセスの非効率やデータ品質の問題を示します。このアクティビティを減らすことが、初回給与計算の精度向上につながります。 入手先 PAY_ELEMENT_ENTRIES_Fの更新を特定し、最初の給与計算実行日から前払い日までの間に最終更新日がある場合に推定します。 記録 給与要素エントリの更新時刻と給与計算の実行時刻を比較 イベントタイプ inferred | |||
データ抽出ガイド
ステップ
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(給与関係)を基にRoot Data Groupを作成します。これにより、従業員の給与関係に基づいてデータを抽出できます。PAY_ACTION_INFORMATION_UE、PAY_ELEMENT_ENTRY_UE、HWM_MEASURE_DAY_V_UE(勤怠・労務データ用)の子データグループも作成します。Extractレコードを設定:データグループ内で、階層データをフラット化するレコードを定義します。各アクティビティ種別に対応するレコードを作成します(例:「Time Card」イベントを抽出するレコードと、「Run Results」を抽出するレコード)。
FastFormulaまたはBIPでSQLロジックを実装:階層型の給与計算データを直線的なイベントログに変換するには、Extract Delivery OptionからBI Publisherレポートを呼び出す方法が最も確実です。これにより、下記の「Query」セクションに記載されたSQLをデータモデルとして使用できます。統一されたイベントログを作成する場合、標準のGUIフィルターよりも適しています。
BI Publisherのデータモデルを作成:Tools > Reports and Analytics > Browse Catalogに移動します。新しいデータモデルを作成し、下記のSQLクエリを貼り付けます。
bind_start_dateとbind_end_dateのパラメーターを定義します。ExtractをBIPにリンク:Extract Definitionの「Delivery」タブで、配信オプションを作成します。出力形式に「PDF」または「XML」を選択します(ProcessMindではCSVを推奨していますが、BIPの出力を変換する必要があります)。前の手順で作成したBI Publisherレポートを選択します。
パラメーターを定義:Extract Execution Treeに開始日と終了日のパラメーターを追加し、BI Publisherのクエリに動的に渡します。
検証して送信:Extract Definitionを検証してエラーがないか確認します。「Submit Extract」をクリックし、パラメーター(例:直近90日間)を入力します。
プロセスを監視:「View Extract Results」に移動します。ステータスが「Succeeded」に変わるまで待ちます。
出力をダウンロード:生成されたXML/CSVファイルをダウンロードします。PayrollRecord、ActivityName、EventTimestampなど、必要な列が含まれていることを確認します。
ProcessMind用に整形:出力がXMLの場合は、ヘッダーが「Attributes to include」の要件に合うよう、フラットなCSVファイルに変換します。変換後のファイルをProcessMindにアップロードします。
設定
- 抽出モード:変更分のみ、または全件抽出。初回読み込みでは全件抽出を使用します。日次更新では、最終更新日を基準に「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を明示的に処理し、正しい過去バージョンのレコードを取得します。 - セキュリティ:実行ユーザーには、分析対象のすべての給与計算と部門を表示できるデータセキュリティプロファイルが必要です。
クエリの例 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の画面を開きます。
- データモデルを作成:左上の新規をクリックし、データモデルを選択します。SQLによるデータ抽出ロジックを格納する場所です。
- SQLデータセットを作成:Diagramタブで新規データセットアイコンをクリックし、SQL Queryを選択します。
- データソースを設定:データセット名(例:
ProcessMind_Payroll_Extract)を入力します。データソースにはApplicationDB_HCM(または使用するHCMアプリケーションデータベース接続)を指定します。種類はStandard SQLのままにします。 - クエリを入力:下記のQueryセクションにあるSQLスクリプト全体をコピーし、SQL Queryのテキストボックスに貼り付けます。Markdown形式は含めないでください。
- パラメーターを定義:クエリではバインド変数
:p_start_dateと:p_end_dateを使用します。データモデルのParametersタブで、抽出範囲を絞り込むための2つのパラメーター(日付型)を作成します(例:ppa.EFFECTIVE_DATEに基づく範囲)。 - データ構造を検証:OKをクリックし、データモデルエディターのデータタブを開きます。サンプル日付(例:
2023-01-01から2023-03-31)を入力して表示をクリックします。出力にPayrollRecord、ActivityName、EventTimestampを含む行があることを確認します。 - データモデルを保存:共有フォルダー(例:
/Shared Folders/Custom/ProcessMining)にモデルを保存します。 - エクスポート用レポートを作成:Create Reportをクリックし、保存したデータモデルを選択します。Report Wizardで、すべての列を含むシンプルなテーブルレイアウトを作成します。「Show Grand Totals」のチェックを外します。
- CSVにエクスポート:Report Viewerでレポートを表示します。歯車アイコンのアクションメニューから、Export > データ > CSVを選択します。
- 変換:CSVを開きます。日付形式が自動で設定されていない場合は、ISO 8601形式(
YYYY-MM-DD HH:MM:SS)にします。SQLが正しく貼り付けられていれば、追加のデータ整形は不要です。 - アップロード:作成した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年超)。 - セキュリティ:レポートの実行ユーザーには、対象となる給与計算定義のデータアクセスセット権限が必要です。
クエリの例 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%短縮し、ボトルネックを解消します。
クレジットカードは不要です。数分で設定できます。