売掛金データテンプレート
売掛金データテンプレート
- 売掛金分析に推奨される属性一式
- 監視対象となる主要なプロセスアクティビティと節目
- Oracle Fusion Financials向けのシステム固有の抽出ガイド
売掛金の属性
| 名前 | 説明 | ||
|---|---|---|---|
| アクティビティ名 ActivityName | 売掛金プロセスで実行された特定のイベントまたはアクションです。 | ||
| 説明 この属性は、請求書の作成、入金の計上、紛争の開始など、プロセスで実行されたステップを表します。プロセスマップの流れを定義し、イベントの順序を可視化できます。 分析担当者はこのフィールドを使って、プロセスバリアント、ループ、ボトルネックを特定します。標準業務手順への準拠状況を確認し、手戻りや手動介入など特定イベントの頻度を計算するうえでも欠かせません。 重要な理由 プロセスフローの定義とイベント順序の可視化に必要です。 入手先 取引履歴テーブル(例:AR_PAYMENT_SCHEDULES_ALL、RA_CUST_TRX_LINE_GL_DIST_ALL)から導出されます。 例 請求書を作成支払督促を送信一部入金計上済み紛争案件を開始 | |||
| イベントタイムスタンプ EventStartDateTime | アクティビティが発生した具体的な日時です。 | ||
| 説明 この属性は、システム内でアクティビティが実行された正確な時点を記録します。イベントを時系列に並べるために使われ、プロセスマイニングにおける時間ベースの計算の基礎となります。 タイムスタンプを分析することで、請求書の作成から発送までの時間など、アクティビティ間の処理時間を計算できます。売上債権回転日数などのKPIを測定し、入金行動の時間的なパターンを特定するうえで重要です。 重要な理由 期間、リードタイム、処理時間の計算に必要な基礎情報です。 入手先 Oracle Fusion Financials:各種取引テーブルのCREATION_DATEまたはLAST_UPDATE_DATE列。 例 2023-10-15T08:30:00Z2023-10-16T14:45:12Z2023-11-01T09:00:00Z | |||
| 請求書番号 InvoiceNumber | Oracle Fusionで請求書取引に割り当てられる一意の識別子です。 | ||
| 説明 この属性は、売掛金モジュール内の債務を識別する一意のキーです。調整、紛争、入金など、その後のすべてのアクティビティを元の売上取引に関連付けます。 プロセスマイニング分析では、この属性がCase IDとして機能します。請求が作成されてから完全に消し込まれる、または償却されるまでの売掛金のライフサイクル全体を追跡できるため、処理時間とプロセスバリアントの計算に役立ちます。 重要な理由 売掛金の信用から入金までのライフサイクルを追跡するための基本的な分析単位です。 入手先 Oracle Fusion Financials:RA_CUSTOMER_TRX_ALL.TRX_NUMBER 例 INV-2023-00110056789AR-99887755002211 | |||
| ソースシステム SourceSystem | データの取得元である記録システムです。 | ||
| 説明 この属性は、プロセスデータを抽出したソフトウェア環境を識別します。この場合、データがOracle Fusion Financials環境から取得されたことを確認できます。 単一システムからの抽出では固定値になることが多い一方、複数のERPインスタンスのデータを統合する場合や、外部の回収ツールを連携する場合には重要です。複数システムにまたがるプロセス環境で、データの系譜と追跡可能性を確保します。 重要な理由 データの系譜を確保し、異なるERPインスタンスを区別します。 入手先 抽出時にハードコードするか、データパイプラインで設定します。 例 Oracle Fusion FinancialsOracle Cloud ERP - 米国Oracle Cloud ERP - EMEA | |||
| 最終データ更新 LastDataUpdate | マイニングツールでデータが最後に更新された日時です。 | ||
| 説明 この属性は、データセットがソースのOracleシステムと最後に同期された日時を示します。分析結果の新しさや、現在の業務状況を反映しているかどうかを把握できます。 特に未解決の紛争や未適用入金を業務モニタリングする場合、ダッシュボードに最新情報が表示されていることを確認するうえで、このフィールドの監視が重要です。 重要な理由 データの鮮度と信頼性を判断するための情報を提供します。 入手先 抽出時点のシステム時刻です。 例 2023-11-15T23:59:59Z2023-11-16T00:00:00Z | |||
| ユーザー名 UserName | アクティビティを実行したシステムユーザーです。 | ||
| 説明 この属性は、特定のアクティビティ(請求書の計上や銀行取引明細の照合など)を実行した担当者のログインIDまたは名前を記録します。汎用の「ユーザー」フィールドに対応します。 コンプライアンス監査と「回収担当者処理量」ダッシュボードに欠かせないデータです。「System」ユーザーが実行することの多いシステム主導のアクションと、人が実行したアクションを分けて、自動化を分析できます。 重要な理由 ユーザー単位のパフォーマンス追跡と職務分掌の分析を可能にします。 入手先 Oracle Fusion Financials:ユーザーテーブルと結合したCREATED_BYまたはLAST_UPDATED_BY列。 例 sysadminjsmithfinance_batch_job | |||
| 事業部門 BusinessUnit | 組織内で請求書を担当する業務上の事業体です。 | ||
| 説明 この属性はOracle Fusionの組織IDに対応し、売掛金を担当する特定の事業部門または部門を表します。企業内の各部門におけるプロセスパフォーマンスを分けて分析できます。 異なる事業部門間で紛争解決時間やDSOなどのKPIを比較すると、経営層は成果の高いチームを特定し、優れた手法を標準化できます。追加のリソースやプロセスの再設計が必要な部門も明らかになります。 重要な理由 組織間のベンチマーキングとパフォーマンス比較における主要な分析軸です。 入手先 Oracle Fusion Financials:ORG_IDを介して関連付けられたHR_ORGANIZATION_UNITS.NAME。 例 米国東部営業EMEAサービスAPAC製造 | |||
| 取引タイプ TransactionType | 売掛金伝票の分類(請求書、クレジットメモ、デビットメモ)です。 | ||
| 説明 この属性は、異なる種類の財務伝票を区別します。一般的な値には、請求書、クレジットメモ、デビットメモがあります。この区別は「クレジットメモ件数と手戻り」ダッシュボードに欠かせません。 この属性でフィルタリングすると、クレジットメモによる手戻りループを切り分けたり、請求書の主要フローだけに絞り込んだりできます。売掛金業務の構成を把握するのに役立ちます。 重要な理由 通常の請求書と調整・修正を区別します。 入手先 Oracle Fusion Financials:RA_CUST_TRX_TYPES_ALL.NAME 例 請求書貸方票借方票チャージバック | |||
| 回収担当者名 CollectorName | 請求書に割り当てられた回収担当者または担当リソースの名前です。 | ||
| 説明 この属性は、請求書の入金回収を担当する特定の従業員またはチームメンバーを識別します。「回収担当者処理量」ダッシュボードの主要な分析軸です。 このフィールドのデータにより、担当者ごとの生産性を測定し、研修の必要性を特定し、業務量を調整できます。責任の所在を明確にし、財務チーム全体で回収業務を標準化するのにも役立ちます。 重要な理由 リソースのパフォーマンス分析と業務量の調整に重要です。 入手先 Oracle Fusion Financials:顧客プロファイルに関連付けられたAR_COLLECTORS.NAME。 例 John Smith回収チームAJane Doe | |||
| 支払期日 DueDate | 入金が予定される期限日です。 | ||
| 説明 請求日と支払条件に基づいて計算される支払期限です。支払遅延の有無を判断する基準になります。 「回収督促タイミング差異」KPIでは、期限に対してチームがどれだけ先回りして対応したかを測定するために使います。また、エージングレポートで売掛金を未期限と期限超過に分類する基準にもなります。 重要な理由 延滞状況と期限内パフォーマンスを判断する主要な基準です。 入手先 Oracle Fusion Financials:AR_PAYMENT_SCHEDULES_ALL.DUE_DATE 例 2023-11-302023-12-152024-01-01 | |||
| 自動実行かどうか IsAutomated | 人の介入なしにアクティビティが実行されたかどうかを示すフラグです。 | ||
| 説明 このブール型属性は、アクティビティがシステムプロセス(AutoInvoice、AutoLockboxなど)によって実行されたか、人が実行したかを判定します。「入金適用自動化率」KPIの主要な算出要素です。 自動アクティビティと手動アクティビティの比率を時系列で追跡することで、組織はデジタルトランスフォーメーション施策の成果を確認し、依然として手動で行われているプロセスステップを特定できます。 重要な理由 デジタルトランスフォーメーションと効率性を測定する主要指標です。 入手先 UserNameに基づく計算ロジック(例:User == 「BATCH_USER」の場合はtrue)。 例 truefalse | |||
| 請求金額 InvoiceAmount | 請求書の金銭的な合計額です。 | ||
| 説明 この属性は、請求書に対する当初の請求額を表します。多くの分析で主要な重み付け要素となり、取引量の少ない案件よりも高額な取引を優先できます。 「未適用クレジットと収益漏れビュー」では、未解決項目による財務影響の規模を把握するために使います。金額加重平均の売上債権回転日数の計算にも使われ、プロセス効率を財務面から捉えられます。 重要な理由 分析に金額面の重みを加え、価値に基づく優先順位付けを支援します。 入手先 Oracle Fusion Financials:RA_CUSTOMER_TRX_ALL.AMOUNT_DUE_ORIGINAL 例 1500.00250.5010000.00 | |||
| 顧客セグメント CustomerSegment | 規模、業種、リスクなどに基づく顧客の分類です。 | ||
| 説明 この属性は、顧客を戦略顧客、エンタープライズ、SME、ハイリスクなどのグループに分類します。多くの場合、Oracle Fusionの顧客クラスまたはプロファイルクラスから導出されます。 この属性を使うと、市場セグメントごとのプロセスバリアントを分析できます。たとえば、戦略顧客に想定した手厚いサービスが提供されているか、ハイリスク顧客の支払コンプライアンスが適切に監視されているかを確認できます。 重要な理由 回収戦略とリスクを分けて分析できます。 入手先 Oracle Fusion Financials:HZ_CUSTOMER_PROFILES.PROFILE_CLASS_ID。 例 大企業中小企業政府機関高リスク | |||
| 顧客名 CustomerName | 取引で請求された組織または個人の名称です。 | ||
| 説明 この属性は、請求書に関連付けられた顧客を識別します。顧客単位で入金行動、紛争の頻度、回収の有効性を分析するための基本情報です。 分析担当者はこのフィールドを使って、支払遅延や紛争の申し立てが多い顧客を特定します。この情報は「顧客入金行動分析」ダッシュボードに役立ち、顧客ごとの状況に合わせた与信条件や回収戦略の策定を支援します。 重要な理由 顧客中心の分析とリスクプロファイリングに欠かせません。 入手先 Oracle Fusion Financials:BILL_TO_CUSTOMER_IDを介して関連付けられたHZ_PARTIES.PARTY_NAME。 例 Acme CorpGlobex CorporationSoylent Corp | |||
| 作成元 CreationSource | 請求書の発生元で、手動作成かインポートかを示します。 | ||
| 説明 この属性は、「手動入力」、「AutoInvoice」、特定の外部フィードなど、請求書がOracleシステムに取り込まれた方法を示します。汎用マッピングにおける「チャネル」の代替指標です。 「入金適用自動化モニター」に欠かせません。完全にデジタル化されたプロセスと、手動設定が必要なプロセスを区別できます。「手動入力」の件数が多い場合、上流システムとの連携不足やシステム上の問題が考えられます。 重要な理由 上流工程の自動化レベルとデータの発生元を特定します。 入手先 Oracle Fusion Financials:RA_BATCH_SOURCES_ALL.NAME 例 AutoInvoice手動プロジェクト導入受注管理 | |||
| 割引適用期限 DiscountEligibilityDate | 顧客が早期支払割引を受けるために支払える最終日です。 | ||
| 説明 この属性は、「2/10 Net 30」(10日以内の支払で2%割引)などの条件を利用できる期限を示します。「早期支払割引分析」ダッシュボードに必要です。 この日付と入金日を比較すると、「早期支払割引取得率」を把握できます。割引施策がキャッシュフローの早期化に有効か、顧客に利用されていないかを確認できます。 重要な理由 インセンティブの有効性とキャッシュフロー早期化の分析を支援します。 入手先 Oracle Fusion Financials:AR_PAYMENT_SCHEDULES_ALL.DISCOUNT_DATE 例 2023-11-102023-12-05 | |||
| 地域 Region | 事業部門または顧客に関連付けられた地理的地域です。 | ||
| 説明 この属性は、北米、EMEA、APACなど、取引をより広い地理的地域に対応付けます。経営層向けの概要レポートや「DSOとキャッシュサイクルの推移」ダッシュボードに役立ちます。 地域分析により、入金行動の文化的な違い(例:米国と比べて南欧では標準の支払条件が長い)を考慮し、グローバルKPIを各地域の状況に即して解釈できます。 重要な理由 グローバルレポート向けに、地理的な大分類を提供します。 入手先 Oracle Fusion Financials:事業部門または顧客住所から導出されます。 例 北米EMEAAPACLATAM | |||
| 手戻りかどうか IsRework | 請求書が修正または紛争のループを経たかどうかを示すフラグです。 | ||
| 説明 このブール型属性は、「クレジットメモ発行済み」や「請求書調整済み」など、誤りの修正に関連するアクティビティが請求書に発生したかどうかを識別します。「クレジットメモ件数と手戻り」ダッシュボードを支援します。 手戻り案件を特定すると、問題のない標準経路と問題のある経路を分けて分析できます。手戻り率が高い場合、マスターデータや受注入力プロセスなど、上流のデータ品質に問題がある可能性があります。 重要な理由 プロセスフローにおける無駄と非効率を特定します。 入手先 計算値:「クレジットメモ発行済み」または「紛争案件開始」をケースに含む場合はTrue。 例 truefalse | |||
| 支払条件 PaymentTerms | 支払時期について合意された条件です(例:Net 30)。 | ||
| 説明 この属性は、契約上合意された支払期間を定義します。支払期日の計算に使われ、「回収戦略の有効性」ダッシュボードに欠かせません。 顧客ごとの支払条件の違いは、DSOの差を説明する要因になります。この属性により、パフォーマンスデータを標準化し、Net 60の顧客がNet 30の顧客と比べて不当に「支払が遅い」と判定されることを防げます。 重要な理由 契約条件を踏まえて支払速度を評価できます。 入手先 Oracle Fusion Financials:RA_TERMS.NAME 例 30日後払い即時10日以内支払い、30日後払い60日後払い | |||
| 紛争理由 DisputeReason | 紛争開始時に割り当てられるカテゴリまたは理由コードです。 | ||
| 説明 この属性は、「紛争案件開始」アクティビティが発生した際に提示された理由を記録します。一般的な値には、「価格誤り」、「数量不一致」、「破損品」などがあります。 「紛争ライフサイクルとボトルネック」ダッシュボードでこの属性を分析すると、入金遅延の根本原因を特定できます。「価格誤り」が頻発している場合、回収プロセスだけでなく、上流の販売見積プロセスを調査すべきだと判断できます。 重要な理由 入金遅延と手戻りの根本原因分析に欠かせません。 入手先 Oracle Fusion Financials:RA_CM_REQUESTS.REASON_CODEまたはAR_DISPUTE_HISTORY。 例 価格に関する紛争税務エラー商品未受領請求の重複 | |||
| 通貨コード CurrencyCode | 請求金額の通貨です。 | ||
| 説明 この属性は、財務金額の通貨(例:USD、EUR)を指定します。請求金額を正しく解釈し、全社報告通貨が必要な場合に通貨換算を行うために必要です。 グローバルに事業を展開する組織では、地域ごとの回収パフォーマンスを分析し、為替の影響と業務プロセスのパフォーマンスを切り分けるのに役立ちます。 重要な理由 複数通貨環境における財務数値の背景を明確にします。 入手先 Oracle Fusion Financials:RA_CUSTOMER_TRX_ALL.INVOICE_CURRENCY_CODE 例 USDEURGBPJPY | |||
売掛金のアクティビティ
| アクティビティ | 説明 | ||
|---|---|---|---|
| 一部入金計上済み | 入金が請求書に適用されたものの、未決済残高の合計額を下回る場合に発生します。これにより、請求書は残高が減った状態で未決済のまま残ります。 | ||
| 重要な理由 頻度が高い場合は、入金が分散していることを示します(一部入金頻度KPI)。照合作業の負担が増加します。 入手先 STATUS = 「APP」で、AMOUNT_APPLIED < AMOUNT_DUE_REMAININGとなるAR_RECEIVABLE_APPLICATIONS_ALLから取得されます。 取得 取引Xが実行された時点で記録 イベントタイプ explicit | |||
| 全額入金受領 | 入金の適用によって請求書残高がゼロになった場合に発生します。回収プロセスにおける主要な成功イベントです。 | ||
| 重要な理由 早期支払割引分析に欠かせません。このイベントのタイミングによって、割引期間内に入金を回収できたかどうかが決まります。 入手先 STATUS = 「APP」で、適用後のAMOUNT_DUE_REMAININGが0となるAR_RECEIVABLE_APPLICATIONS_ALLから取得されます。 取得 フィールドXとYを比較して導出します イベントタイプ calculated | |||
| 請求書を作成 | このアクティビティは、システム内で請求書レコードが最初に作成されたことを示します。Oracleの売掛金テーブルに取引ヘッダーが初めて保存された時点のタイムスタンプを記録します。 | ||
| 重要な理由 プロセスライフサイクルの開始点と、滞留期間計算の基準を設定します。総サイクル時間と送付までのリードタイムを計算するために必要です。 入手先 RA_CUSTOMER_TRX_ALLテーブルのCREATION_DATEまたはTRX_DATE列から取得します。 取得 取引行が挿入された時点で記録 イベントタイプ explicit | |||
| 請求書を完了 | 請求書の作成処理が完了し、処理、印刷、計上が可能になったことを示します。取引ステータスが未完了から完了に変わった時点で発生します。 | ||
| 重要な理由 下書きにかかった時間と処理時間を区別できます。ここでの遅延は、社内の請求書作成プロセスにボトルネックがあることを示します。 入手先 RA_CUSTOMER_TRX_ALLのCOMPLETE_FLAGが「Y」に変わった時点で特定します。 取得 処理前後のステータスフィールドを比較 イベントタイプ inferred | |||
| 請求書を発送 | 印刷、メール、XMLによって請求書を顧客に送信したことを示します。組織から顧客への引き渡しを記録するイベントです。 | ||
| 重要な理由 請求書送付のパフォーマンスを測定するうえで重要です。作成から送付までの間隔が、キャッシュ回収サイクルを直接遅らせます。 入手先 RA_CUSTOMER_TRX_ALLのPRINTING_ORIGINAL_DATE、またはXMLを使用する場合はOracle Collaboration Messaging Frameworkの特定ログから推定します。 取得 処理前後のステータスフィールドを比較 イベントタイプ inferred | |||
| 請求書消込済み | 請求書がシステム上でクローズされた最終状態です。通常は、入金、クレジットメモ、または調整によって残高がゼロになった場合に発生します。 | ||
| 重要な理由 このイベントのタイムスタンプは、売上債権回転日数(DSO)の計算に使われます。プロセスインスタンスの終了を表します。 入手先 AR_PAYMENT_SCHEDULES_ALLのSTATUSが「CL」(Closed)に変更された時点で特定されます。 取得 処理前後のステータスフィールドを比較 イベントタイプ inferred | |||
| クレジットメモ発行済み | 請求書に適用されるクレジットメモ取引の作成を記録します。通常、紛争や返品への対応として請求残高を減額します。 | ||
| 重要な理由 クレジットメモの手戻り率と収益漏れを追跡します。クレジットメモが頻繁に発行される場合、請求処理に構造的な誤りがある可能性があります。 入手先 TRX_TYPEがCredit Memoで、RELATED_CUSTOMER_TRX_IDが請求書と一致するRA_CUSTOMER_TRX_ALLから取得されます。 取得 取引Xが実行された時点で記録 イベントタイプ explicit | |||
| 支払督促を送信 | 督促状または回収リマインダーを顧客に発行したことを記録します。Advanced Collectionsモジュールによって生成されるイベントです。 | ||
| 重要な理由 回収戦略の効果を分析するうえで欠かせません。支払データと関連付けることで、どのリマインダー戦略が最も早い入金回収につながるかを判断できます。 入手先 顧客口座に紐付けられたIEX_DUNNINGまたはIEX_STRATEGY_WORK_ITEMSテーブルにあります。 取得 取引Xが実行された時点で記録 イベントタイプ explicit | |||
| 支払約束を受領 | 顧客が特定の金額を特定の日付までに支払うという約束を記録します。通常は、顧客とのやり取りの中で回収担当者が手動で入力します。 | ||
| 重要な理由 顧客の支払行動を分析するうえで重要です。約束が守られない場合は、信用リスクが高く、将来的に貸倒れが発生する可能性を示します。 入手先 CollectionsモジュールのIEX_PROMISE_DETAILSテーブルから取得します。 取得 取引Xが実行された時点で記録 イベントタイプ explicit | |||
| 紛争を解決 | 紛争調査の完了を示します。結果は、クレジットメモの承認(正当な紛争)または却下(正当でない紛争)です。 | ||
| 重要な理由 紛争解決平均時間の計算に必要です。解決までの時間が長いと、顧客満足度とDSOに悪影響を及ぼします。 入手先 RA_CM_REQUESTS_ALLのステータスが「APPROVED」または「REJECTED」に変更されたことから導出されます。 取得 処理前後のステータスフィールドを比較 イベントタイプ inferred | |||
| 紛争案件を開始 | 請求書に関する正式な紛争が開始されたことを示します。問題の調査中は、通常の回収活動が停止します。 | ||
| 重要な理由 主要なボトルネック指標です。紛争率が高い場合、受注処理や請求の正確性など、上流工程の品質に問題がある可能性があります。 入手先 RA_CM_REQUESTS_ALLのレコード、または請求書に紐付けられた特定のCredit Memo Requestワークフローによって特定します。 取得 取引Xが実行された時点で記録 イベントタイプ explicit | |||
| 請求書を総勘定元帳に転記 | 請求書の会計仕訳が確定し、総勘定元帳に転送されたイベントを記録します。財務コンプライアンスを確保し、期間締めに備えるための処理です。 | ||
| 重要な理由 顧客から見える処理には影響しませんが、ここでの遅延は財務締めのサイクルとレポートの適時性に影響します。 入手先 RA_CUST_TRX_LINE_GL_DIST_ALLテーブルのGL_DATEから取得します。 取得 取引Xが実行された時点で記録 イベントタイプ explicit | |||
| 請求書償却済み | 残りの残高が回収不能と判断され、貸倒損失として償却される調整の一種です。プロセス上の望ましくない終端状態です。 | ||
| 重要な理由 財務健全性のモニタリングに欠かせません。入金の速さによる業務効率と、信用品質の問題を切り分けます。 入手先 調整タイプが「Write-off」に分類されるか、貸倒勘定に関連付けられているAR_ADJUSTMENTS_ALLから取得されます。 取得 取引Xが実行された時点で記録 イベントタイプ explicit | |||
| 請求書調整済み | 少額の償却や為替調整など、クレジットメモとは異なる請求書残高への手動調整を記録します。 | ||
| 重要な理由 収益漏れや、入金なしで残高が消し込まれる標準外のプロセス経路の特定に役立ちます。 入手先 請求書に関連付けられたAR_ADJUSTMENTS_ALLテーブルから取得されます。 取得 取引Xが実行された時点で記録 イベントタイプ explicit | |||
| 銀行取引明細照合済み | 請求書に適用された入金が、銀行取引明細の明細行と照合されたことを示します。入金が実際に銀行口座へ入金されたことを確認できます。 | ||
| 重要な理由 入金適用の自動化を測定します。入金計上から銀行照合までの差は、未確認の入金を表します。 入手先 照合参照情報を介して、AR_CASH_RECEIPTS_ALLとCE_STATEMENT_LINES(Cash Management)を結合して取得されます。 取得 処理前後のステータスフィールドを比較 イベントタイプ inferred | |||
抽出ガイド
ステップ
Oracle BI Cloud Connector(BICC)コンソールにアクセスします。Manage Offerings and Data Storesセクションを開きます。
ストレージ接続を設定します。抽出したCSV/Parquetファイルを保存するOracle Universal Content Management(UCM)または外部オブジェクトストレージ(OCI Object Storageなど)への有効な接続を用意します。
Financials Offeringを選択します。Financials Offeringを開き、売掛金のView Objectにアクセスします。
View Object(VO)を選択して設定します。イベントログの作成に必要な特定のPublic View Object(PVO)を選択します。主なPVOは次のとおりです:
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.TransactionHeaderExtractPVO(請求書ヘッダー)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.TransactionLineExtractPVO(請求書明細)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.ReceiptApplicationExtractPVO(支払いおよびCM適用)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.AdjustmentExtractPVO(調整および償却)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.PromiseDetailExtractPVO(支払約束)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.StrategyWorkItemExtractPVO(督促/リマインダー)
フィルター条件を定義します。Manage Extract SchedulesまたはPVO設定で、CreationDateまたはLastUpdateDateに分析期間(例:過去12か月)のデータだけを抽出するフィルターを設定します。
抽出をスケジュールします。これらの抽出を毎日実行するジョブスケジュールを作成します。初回のFull Load後に変更されたデータだけを取得するには、Incremental Loadを選択します。
ダウンロードして取り込みます。自動スクリプトまたは連携ツールでUCM/オブジェクトストレージからファイルを取得し、データウェアハウスのステージングテーブル(例:STG_AR_TRX_HEADER、STG_AR_APPLICATIONS)にロードします。
変換ロジックを適用します。Queryセクションに記載されたSQLスクリプトをステージングテーブルに対して実行し、リレーショナルデータをProcessMindのイベントログ形式に変換します。
データ型を検証します。変換時に日付フィールドがdatetimeオブジェクトへ変換され、数値項目の小数が正しく処理されることを確認します。
CSV/Parquetへエクスポートします。データウェアハウスから最終結果を1つのファイルとしてエクスポートします。
ProcessMindへアップロードします。ファイルをインポートし、InvoiceNumberをCase ID、ActivityNameをActivity、EventStartDateTimeをTimestampに対応付けます。
設定
- 抽出頻度:最新のステータス変更を記録するため、毎日(Incremental)を推奨します。
- 初回ロード:初回実行時は「Full Extract」を選択し、その後はLast Update Dateに基づく「Incremental」に切り替えます。
- 主なPVO:TransactionHeaderExtractPVO、ReceiptApplicationExtractPVO、AdjustmentExtractPVO、StrategyWorkItemExtractPVOです。
- 日付フィルタリング:CreationDate >= '202X-01-01'のフィルターを適用し、データ量を制限します。
- 取得件数:通常の初期値は50000行です。UCMからダウンロードする場合は、ネットワーク帯域幅に応じて調整します。
- 主キー:重複行を防ぐため、下流のデータウェアハウスでPVOの主キー(通常はCustomerTrxId、ReceivableApplicationIdなど)を使ったアップサートを処理できるようにします。
- 監査履歴:標準BICC PVOは現在の状態を取得します。ステータス変更(Dispute Openedなど)を正確な履歴日時で記録するには、Fusionで監査ポリシーを有効にし、監査用View Objectを抽出する必要がある場合があります。取引テーブルに履歴が保持されていない場合に必要です。
a サンプルクエリ sql
/*
Transformation Script for Oracle BICC Data
Assumes raw BICC PVO CSVs are loaded into a SQL Staging Area with tables named:
- STG_AR_TRX_HEADER (TransactionHeaderExtractPVO)
- STG_AR_APPLICATIONS (ReceiptApplicationExtractPVO)
- STG_AR_ADJUSTMENTS (AdjustmentExtractPVO)
- STG_IEX_PROMISES (PromiseDetailExtractPVO)
- STG_IEX_STRATEGY (StrategyWorkItemExtractPVO)
- STG_CE_STMTS (BankStatementLineExtractPVO - Optional/Advanced)
*/
WITH Base_Log AS (
/* 1. Invoice Created */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Created' AS ActivityName,
CreationDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
(Quantity * UnitSellingPrice) AS InvoiceAmount,
TrxClass AS TransactionType,
CreatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE TrxClass IN ('INV', 'DM')
UNION ALL
/* 2. Invoice Completed */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Completed' AS ActivityName,
TrxDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE CompleteFlag = 'Y'
AND TrxClass IN ('INV', 'DM')
UNION ALL
/* 3. Invoice Dispatched */
/* Using PrintingOriginalDate as proxy for dispatch */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Dispatched' AS ActivityName,
PrintingOriginalDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE PrintingOriginalDate IS NOT NULL
AND TrxClass IN ('INV', 'DM')
UNION ALL
/* 4. Invoice Posted to GL */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Posted to GL' AS ActivityName,
GlDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
'System' AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE GlDate IS NOT NULL
AND TrxClass IN ('INV', 'DM')
UNION ALL
/* 5. Payment Reminder Sent */
/* Links via Customer or Account, mapped back to Trx via Collections Strategy logic */
/* Simplified join assumption based on Trx Id availability in Work Item */
SELECT
H.TrxNumber AS InvoiceNumber,
'Payment Reminder Sent' AS ActivityName,
W.CreationDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
H.TrxClass AS TransactionType,
W.CreatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_IEX_STRATEGY W
JOIN STG_AR_TRX_HEADER H ON W.ObjectPk1 = H.CustomerTrxId
WHERE W.WorkItemTemplateName LIKE '%Reminder%'
UNION ALL
/* 6. Promise to Pay Received */
SELECT
H.TrxNumber AS InvoiceNumber,
'Promise to Pay Received' AS ActivityName,
P.CreationDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
P.PromiseAmount AS InvoiceAmount,
H.TrxClass AS TransactionType,
P.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_IEX_PROMISES P
JOIN STG_AR_TRX_HEADER H ON P.CustTrxId = H.CustomerTrxId
UNION ALL
/* 7. Dispute Case Opened */
/* Triggered when dispute amount is updated/created */
SELECT
TrxNumber AS InvoiceNumber,
'Dispute Case Opened' AS ActivityName,
DisputeDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE DisputeDate IS NOT NULL
UNION ALL
/* 8. Dispute Resolved */
/* Approximated by update date when dispute amount returns to 0 after being positive */
/* Note: Accurate dispute history requires Audit Trail extraction. This is a best-effort proxy based on header state. */
SELECT
TrxNumber AS InvoiceNumber,
'Dispute Resolved' AS ActivityName,
LastUpdateDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE DisputeDate IS NOT NULL AND DisputeAmount = 0
UNION ALL
/* 9. Credit Memo Issued (Applied) */
SELECT
H.TrxNumber AS InvoiceNumber,
'Credit Memo Issued' AS ActivityName,
APP.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
APP.AmountApplied AS InvoiceAmount,
H.TrxClass AS TransactionType,
APP.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_APPLICATIONS APP
JOIN STG_AR_TRX_HEADER H ON APP.AppliedCustomerTrxId = H.CustomerTrxId
WHERE APP.ApplicationType = 'CM' -- Credit Memo application
UNION ALL
/* 10. Partial Payment Posted */
SELECT
H.TrxNumber AS InvoiceNumber,
'Partial Payment Posted' AS ActivityName,
APP.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
APP.AmountApplied AS InvoiceAmount,
H.TrxClass AS TransactionType,
APP.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_APPLICATIONS APP
JOIN STG_AR_TRX_HEADER H ON APP.AppliedCustomerTrxId = H.CustomerTrxId
WHERE APP.ApplicationType = 'CASH'
AND APP.Status = 'APP'
AND (H.AmountDueRemaining > 0) -- Invoice still has balance
UNION ALL
/* 11. Full Payment Received */
SELECT
H.TrxNumber AS InvoiceNumber,
'Full Payment Received' AS ActivityName,
APP.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
APP.AmountApplied AS InvoiceAmount,
H.TrxClass AS TransactionType,
APP.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_APPLICATIONS APP
JOIN STG_AR_TRX_HEADER H ON APP.AppliedCustomerTrxId = H.CustomerTrxId
WHERE APP.ApplicationType = 'CASH'
AND APP.Status = 'APP'
AND H.AmountDueRemaining = 0 -- Invoice fully paid
UNION ALL
/* 12. Bank Statement Matched */
/* Requires joining Receipt Application -> Cash Receipt -> Bank Statement Line */
/* Placeholder logic assuming availability of Bank Statement PVO data */
SELECT
H.TrxNumber AS InvoiceNumber,
'Bank Statement Matched' AS ActivityName,
BSL.StatementDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
BSL.Amount AS InvoiceAmount,
H.TrxClass AS TransactionType,
BSL.CreatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_APPLICATIONS APP
JOIN STG_AR_TRX_HEADER H ON APP.AppliedCustomerTrxId = H.CustomerTrxId
-- Join to Receipt then to Bank Stmt would happen here
JOIN STG_CE_STMTS BSL ON APP.CashReceiptId = BSL.ReferenceId -- Simplified Join
WHERE APP.ApplicationType = 'CASH'
UNION ALL
/* 13. Invoice Adjusted */
SELECT
H.TrxNumber AS InvoiceNumber,
'Invoice Adjusted' AS ActivityName,
ADJ.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
ADJ.Amount AS InvoiceAmount,
H.TrxClass AS TransactionType,
ADJ.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_ADJUSTMENTS ADJ
JOIN STG_AR_TRX_HEADER H ON ADJ.CustomerTrxId = H.CustomerTrxId
WHERE ADJ.AdjustmentType != 'WRITE_OFF'
UNION ALL
/* 14. Invoice Written Off */
SELECT
H.TrxNumber AS InvoiceNumber,
'Invoice Written Off' AS ActivityName,
ADJ.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
ADJ.Amount AS InvoiceAmount,
H.TrxClass AS TransactionType,
ADJ.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_ADJUSTMENTS ADJ
JOIN STG_AR_TRX_HEADER H ON ADJ.CustomerTrxId = H.CustomerTrxId
WHERE ADJ.AdjustmentType = 'WRITE_OFF'
UNION ALL
/* 15. Invoice Cleared */
/* The moment the invoice balance hits 0 */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Cleared' AS ActivityName,
LastUpdateDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE AmountDueRemaining = 0
)
SELECT
InvoiceNumber,
ActivityName,
EventStartDateTime,
SourceSystem,
GETDATE() AS LastDataUpdate,
BusinessUnit,
CustomerName,
Currency,
InvoiceAmount,
TransactionType,
UserName,
IsAutomated
FROM Base_Log
WHERE EventStartDateTime IS NOT NULL
ORDER BY InvoiceNumber, EventStartDateTime ステップ
Oracle Fusion Applicationsにログイン:Tools > Reports and Analyticsを開きます。Browse CatalogをクリックしてOracle BI Publisherインターフェースを開きます。
データモデルを作成:左上のNewをクリックし、Data Modelを選択します。ここにSQL抽出ロジックを定義します。
SQLデータセットを定義:左側のData ModelツリーでData Setsをクリックし、New Data Set > SQL Queryを選択します。
データソースを設定:データセット名(例:
ProcessMining_AR)を入力します。データソースとしてApplicationDB_FSCM(Financials Supply Chain Management)を選択します。これにより、必要なARおよびRAテーブルへアクセスできます。クエリを貼り付け:下のQueryセクションに記載された完全なSQLスクリプトをコピーし、SQL Queryテキストボックスに貼り付けます。特定のFlexfield(DFF)の名前を変更する場合を除き、基本ロジックは変更しないでください。
パラメーターを設定:クエリには、取引作成日でフィルタリングするためのプレースホルダー
:p_start_dateが含まれています。Data ModelのParametersタブで、p_start_dateという名前の新しいパラメーターを作成し、Data TypeをDateに設定します。デフォルト値(例:01-01-2023)も設定します。データを表示:Dataタブをクリックし、パラメーターに有効な日付を入力してViewをクリックします。出力に
InvoiceNumber、ActivityName、EventStartDateTimeなどの列を含む行が表示されることを確認します。データモデルを保存:Shared Folders > Customディレクトリ(例:
/Shared Folders/Custom/ProcessMining/AR_Extract_DM)に保存します。スケジュール/エクスポート:大量のデータを抽出するには、このデータモデルを使ってCreate Reportをクリックします。レポートエディターでレイアウトが単純な表になっていることを確認し、レポートを保存します。その後、Schedulerでレポートを実行し、データをCSVまたはXMLとして出力します。
最終形式を確認:出力ファイルをダウンロードします。CSVの場合は、日付形式が統一されていること(ISO 8601を推奨)を確認します。このファイルをProcessMindへアップロードし、
InvoiceNumberをCase ID、ActivityNameをActivity、EventStartDateTimeをTimestampに対応付けます。
設定
- データソース:Financialsテーブルへアクセスするため、
ApplicationDB_FSCMを使用します。 - 日付フィルター:クエリでは
ra_customer_trx_all.creation_date >= :p_start_dateを使用します。過去12か月などのローリング期間でデータをロードするよう設定します。 - パフォーマンス:請求書が100,000件を超えるデータセットでは、テスト時に
ROWNUMの上限を追加するか、月単位で抽出を分割することを検討します。 - 事業部門によるフィルタリング:組織に複数の事業部門があり、そのうち1つだけが必要な場合は、Where句の
AND trx.org_id = ...行のコメントを解除します。 - ユーザー名:クエリは
FND_USERを使ってCREATED_BYのユーザーIDをユーザー名に変換します。抽出ユーザーにFND_USERの読み取り権限があることを確認します。 - Advanced Collections:アクティビティ「Payment Reminder Sent」と「Promise to Pay Received」は、IEX(Advanced Collections)モジュールのテーブルを使用します。このモジュールを利用していない場合、該当セクションの戻り行数は0になります。
a サンプルクエリ sql
/* 1. Invoice Created */
SELECT
trx.trx_number AS InvoiceNumber,
'Invoice Created' AS ActivityName,
trx.creation_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ra_customer_trx_all trx
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON trx.created_by = u.user_id
WHERE
trx.creation_date >= :p_start_date
UNION ALL
/* 2. Invoice Completed */
SELECT
trx.trx_number AS InvoiceNumber,
'Invoice Completed' AS ActivityName,
trx.trx_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'Y' AS IsAutomated
FROM
ra_customer_trx_all trx
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON trx.last_updated_by = u.user_id
WHERE
trx.complete_flag = 'Y'
AND trx.creation_date >= :p_start_date
UNION ALL
/* 3. Invoice Dispatched */
SELECT
trx.trx_number AS InvoiceNumber,
'Invoice Dispatched' AS ActivityName,
COALESCE(trx.printing_original_date, trx.printing_last_printed, trx.last_update_date) AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'Y' AS IsAutomated
FROM
ra_customer_trx_all trx
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON trx.last_updated_by = u.user_id
WHERE
(trx.printing_original_date IS NOT NULL OR trx.printing_count > 0)
AND trx.creation_date >= :p_start_date
UNION ALL
/* 4. Invoice Posted to GL */
SELECT
trx.trx_number AS InvoiceNumber,
'Invoice Posted to GL' AS ActivityName,
MAX(dist.gl_date) AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
'System' AS UserName,
'Y' AS IsAutomated
FROM
ra_customer_trx_all trx
JOIN ra_cust_trx_line_gl_dist_all dist ON trx.customer_trx_id = dist.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
WHERE
dist.account_class = 'REC'
AND dist.posting_control_id != -3
AND trx.creation_date >= :p_start_date
GROUP BY
trx.trx_number,
hou.name,
party.party_name,
trx.invoice_currency_code,
ps.amount_due_original,
type.name
UNION ALL
/* 5. Payment Reminder Sent (Advanced Collections) */
SELECT
trx.trx_number AS InvoiceNumber,
'Payment Reminder Sent' AS ActivityName,
dun.creation_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'Y' AS IsAutomated
FROM
iex_dunning_transactions dun
JOIN ar_payment_schedules_all ps ON dun.payment_schedule_id = ps.payment_schedule_id
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
LEFT JOIN fnd_user u ON dun.created_by = u.user_id
WHERE
trx.creation_date >= :p_start_date
UNION ALL
/* 6. Promise to Pay Received */
SELECT
trx.trx_number AS InvoiceNumber,
'Promise to Pay Received' AS ActivityName,
pp.creation_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
iex_promise_details pp
JOIN ar_payment_schedules_all ps ON pp.payment_schedule_id = ps.payment_schedule_id
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
LEFT JOIN fnd_user u ON pp.created_by = u.user_id
WHERE
trx.creation_date >= :p_start_date
UNION ALL
/* 7. Dispute Case Opened */
SELECT
trx.trx_number AS InvoiceNumber,
'Dispute Case Opened' AS ActivityName,
req.creation_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ra_cm_requests req
JOIN ra_customer_trx_all trx ON req.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON req.created_by = u.user_id
WHERE
trx.creation_date >= :p_start_date
UNION ALL
/* 8. Dispute Resolved */
SELECT
trx.trx_number AS InvoiceNumber,
'Dispute Resolved' AS ActivityName,
req.last_update_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ra_cm_requests req
JOIN ra_customer_trx_all trx ON req.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON req.last_updated_by = u.user_id
WHERE
req.status_code IN ('APPROVED', 'REJECTED')
AND trx.creation_date >= :p_start_date
UNION ALL
/* 9. Credit Memo Issued */
SELECT
trx.trx_number AS InvoiceNumber,
'Credit Memo Issued' AS ActivityName,
cm.trx_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ra_customer_trx_all cm
JOIN ra_customer_trx_all trx ON cm.previous_customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON cm.created_by = u.user_id
WHERE
trx.creation_date >= :p_start_date
UNION ALL
/* 10 & 11. Partial and Full Payment */
SELECT
trx.trx_number AS InvoiceNumber,
CASE
WHEN ps.status = 'CL' AND app.amount_applied = app.amount_applied_from THEN 'Full Payment Received'
WHEN ps.status = 'CL' AND ps.amount_due_remaining = 0 AND app.application_rule = '60' THEN 'Full Payment Received'
ELSE 'Partial Payment Posted'
END AS ActivityName,
app.apply_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ar_receivable_applications_all app
JOIN ar_payment_schedules_all ps ON app.applied_payment_schedule_id = ps.payment_schedule_id
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
LEFT JOIN fnd_user u ON app.created_by = u.user_id
WHERE
app.status = 'APP'
AND app.application_type = 'CASH'
AND trx.creation_date >= :p_start_date
UNION ALL
/* 12. Bank Statement Matched */
SELECT
trx.trx_number AS InvoiceNumber,
'Bank Statement Matched' AS ActivityName,
recon.creation_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'Y' AS IsAutomated
FROM
ce_statement_reconcils_all recon
JOIN ar_cash_receipt_history_all crh ON recon.reference_id = crh.cash_receipt_history_id
JOIN ar_cash_receipts_all cr ON crh.cash_receipt_id = cr.cash_receipt_id
JOIN ar_receivable_applications_all app ON cr.cash_receipt_id = app.cash_receipt_id
JOIN ar_payment_schedules_all ps ON app.applied_payment_schedule_id = ps.payment_schedule_id
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
LEFT JOIN fnd_user u ON recon.created_by = u.user_id
WHERE
recon.status_flag = 'M'
AND trx.creation_date >= :p_start_date
UNION ALL
/* 13 & 14. Invoice Adjusted and Written Off */
SELECT
trx.trx_number AS InvoiceNumber,
CASE
WHEN adj.adjustment_type = 'W' THEN 'Invoice Written Off'
ELSE 'Invoice Adjusted'
END AS ActivityName,
adj.apply_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ar_adjustments_all adj
JOIN ar_payment_schedules_all ps ON adj.payment_schedule_id = ps.payment_schedule_id
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
LEFT JOIN fnd_user u ON adj.created_by = u.user_id
WHERE
adj.status = 'A'
AND trx.creation_date >= :p_start_date
UNION ALL
/* 15. Invoice Cleared (Final Close) */
SELECT
trx.trx_number AS InvoiceNumber,
'Invoice Cleared' AS ActivityName,
ps.gl_date_closed AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
'System' AS UserName,
'Y' AS IsAutomated
FROM
ar_payment_schedules_all ps
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
WHERE
ps.status = 'CL'
AND ps.gl_date_closed IS NOT NULL
AND trx.creation_date >= :p_start_date 始める準備はできていますか?
このテンプレートをOracle Fusion環境に適用し、財務データを具体的な改善案につなげます。当社のチームが、お客様固有の業務ロジックをこれらの標準に対応付けるお手伝いをします。
売掛金の回収を今すぐ加速
DSOを15~20日短縮し、キャッシュフローの不足を今すぐ解消します。
クレジットカードは不要です。5分で設定できます。