売掛金データテンプレート
売掛金データテンプレート
- 売掛金分析に推奨される属性の一覧
- 監視対象となる主要なプロセスアクティビティと節目
- Oracle Fusion Financials向けのデータ抽出手順
売掛金の属性
| 名前 | 説明 | ||
|---|---|---|---|
| アクティビティ名 ActivityName | 売掛金プロセスで実行された特定のイベントまたはアクションです。 | ||
| 説明 この属性は、請求書の作成、支払いの転記、異議申し立ての開始など、プロセス内で実行されたステップを表します。プロセスマップの流れを定義し、イベントの順序を可視化できます。 分析担当者はこのフィールドを使って、プロセスバリアント、ループ、ボトルネックを特定します。標準業務手順への適合状況を確認し、手戻りや手動介入など特定のイベントの頻度を算出するうえでも欠かせません。 重要な理由 プロセスフローの定義とイベント順序の可視化に必要です。 入手先 取引履歴テーブル(例:AR_PAYMENT_SCHEDULES_ALL、RA_CUST_TRX_LINE_GL_DIST_ALL)から取得します。 例 請求書作成支払い督促の送付一部入金の転記異議申し立て案件の開始 | |||
| イベントのタイムスタンプ EventStartDateTime | アクティビティが発生した日時です。 | ||
| 説明 この属性には、システム内でアクティビティが発生した正確な時刻を記録します。イベントを時系列に並べるために使い、プロセスマイニングにおける時間ベースの計算の基礎となります。 タイムスタンプを分析すると、請求書の作成から送付までの所要時間など、アクティビティ間のサイクルタイムを算出できます。売上債権回転日数などの重要業績評価指標を測定し、支払い行動の時間的な傾向を特定するうえでも重要です。 重要な理由 所要時間、リードタイム、サイクルタイムの算出に必要です。 入手先 Oracle Fusion Financials:各種取引テーブルのCREATION_DATE列またはLAST_UPDATE_DATE列。 例 2023-10-15T08:30:00Z2023-10-16T14:45:12Z2023-11-01T09:00:00Z | |||
| 請求書番号 InvoiceNumber | Oracle Fusionで請求書取引に割り当てられる一意の識別子です。 | ||
| 説明 この属性は、売掛金モジュール内の債権を識別する一意のキーです。調整、異議申し立て、支払いなど、その後のすべてのアクティビティを元の売上取引に紐づけます。 プロセスマイニング分析では、この属性をケース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または名前が記録されます。汎用フィールドの「ユーザー」に対応します。 このデータは、コンプライアンス監査や「回収担当者の処理量」ダッシュボードに欠かせません。「システム」ユーザーが実行することの多い機械処理と、人が行った処理を区別できるため、自動化分析にも役立ちます。 重要な理由 ユーザー単位のパフォーマンス追跡と職務分掌の分析に役立ちます。 入手先 Oracle Fusion Financials:CREATED_BYまたはLAST_UPDATED_BY列をユーザーテーブルに結合。 例 システム管理者jsmith財務バッチジョブ | |||
| 事業部門 BusinessUnit | 組織内で請求書を担当する業務単位です。 | ||
| 説明 この属性はOracle Fusionの組織IDに対応し、債権を所管する事業部門または部門を示します。組織内の各部門におけるプロセスパフォーマンスを比較できます。 異議申し立ての解決時間や売上債権回転日数などの重要業績評価指標を事業部門ごとに比較すると、経営層は成果の高いチームを特定し、優れた取り組みを標準化できます。また、追加のリソースやプロセスの再設計が必要な部門も把握できます。 重要な理由 組織内のベンチマークとパフォーマンス比較に使う重要な分析軸です。 入手先 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 | 規模、業種、リスクに基づく顧客の分類です。 | ||
| 説明 この属性では、顧客を戦略顧客、エンタープライズ、中小企業、高リスクなどのグループに分類します。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 | 早期支払い割引を受けるために、顧客が支払いを済ませる必要がある最終日です。 | ||
| 説明 この属性は、「10日以内に支払うと2%割引、30日以内に全額支払い」のような条件で、顧客が割引を受けられる期限を示します。「早期支払い割引の分析」ダッシュボードに必要な項目です。 この日付と支払い日を照合すると、「早期支払い割引の適用率」を把握できます。割引施策によって資金回収が早まっているのか、それとも顧客に利用されていないのかを確認できます。 重要な理由 割引施策の効果と資金回収の早期化を分析できます。 入手先 Oracle Fusion Financials:AR_PAYMENT_SCHEDULES_ALL.DISCOUNT_DATE 例 2023-11-102023-12-05 | |||
| 地域 Region | 事業部門または顧客に関連する地理的地域です。 | ||
| 説明 この属性は、取引を北米、EMEA、APACなどの広域地域に分類します。経営層向けの概要報告や「DSOと資金回収サイクルの推移」ダッシュボードに役立ちます。 地域別に分析すると、支払い習慣の文化的な違い(例:米国と比べて南欧では標準の支払期間が長い)を考慮できます。また、グローバルな重要業績評価指標(KPI)を、各地域の事情に即して解釈できます。 重要な理由 グローバルな報告に向けて、地域別の概要を把握できます。 入手先 Oracle Fusion Financials:事業部門または顧客住所から導出。 例 北米EMEAAPAC中南米 | |||
| 手戻りフラグ IsRework | 請求書に訂正や紛争対応の繰り返しがあったかを示すフラグです。 | ||
| 説明 この真偽値属性は、「クレジットメモ発行」や「請求書調整」など、エラー修正に関連するアクティビティが請求書に発生したかを示します。「クレジットメモ件数と手戻り」ダッシュボードで利用できます。 手戻りのあるケースを特定すると、理想経路と問題のあるプロセスを切り分けられます。手戻り率が高い場合、マスターデータや受注入力など、上流工程のデータ品質に問題がある可能性があります。 重要な理由 プロセスフローにおける無駄や非効率を特定します。 入手先 計算値:「クレジットメモ発行」または「紛争ケース開始」を含むケースはTrue。 例 truefalse | |||
| 支払条件 PaymentTerms | 支払い時期について合意した条件です(例:30日以内に支払い)。 | ||
| 説明 この属性は、契約で合意した支払期限を示します。支払期日の計算に使われ、「回収戦略の有効性」ダッシュボードに欠かせません。 顧客ごとの支払条件の違いは、売上債権回転日数(DSO)の差につながることがあります。この属性を使うと、パフォーマンスデータを条件に応じて比較できます。これにより、支払条件が60日の顧客を、30日の顧客と比べて不当に「支払いが遅い」と判定することを防げます。 重要な理由 契約条件を踏まえて支払いの速さを評価できます。 入手先 Oracle Fusion Financials:RA_TERMS.NAME 例 30日以内に支払い即時10日以内に支払うと2%割引、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 | |||
売掛金のアクティビティ
| アクティビティ | 説明 | ||
|---|---|---|---|
| 一部入金の転記 | 入金が請求書に適用されたものの、金額が未決済残高の合計に満たない場合に発生します。請求書は残高が減った状態で未決済のままになります。 | ||
| 重要な理由 頻度が高い場合、支払いが分割されていることを示します(一部入金頻度の重要業績評価指標)。照合作業の負担も増加します。 入手先 AR_RECEIVABLE_APPLICATIONS_ALLでSTATUS = 'APP'かつAMOUNT_APPLIED < AMOUNT_DUE_REMAININGのレコードから取得します。 記録 トランザクションXの実行時に記録 イベントタイプ explicit | |||
| 全額入金の受領 | 入金の適用によって請求書残高がゼロになった時点で発生します。回収プロセスにおける主な成功アクティビティです。 | ||
| 重要な理由 早期支払い割引の分析に欠かせません。このアクティビティの日時によって、割引期間内に入金されたかどうかが決まります。 入手先 AR_RECEIVABLE_APPLICATIONS_ALLでSTATUS = 'APP'かつ適用後のAMOUNT_DUE_REMAININGが0のレコードから取得します。 記録 フィールドXとYを比較して算出 イベントタイプ calculated | |||
| 請求書の消込完了 | システム上で請求書がクローズされた最終状態です。通常、支払い、クレジットメモ、または調整によって残高がゼロになった場合に発生します。 | ||
| 重要な理由 このアクティビティのタイムスタンプは、売上債権回転日数(DSO)の算出に使います。プロセスインスタンスの終了時点を示します。 入手先 AR_PAYMENT_SCHEDULES_ALLのSTATUSが「CL」(Closed)に変わった時点で特定します。 記録 変更前後のステータスフィールドを比較 イベントタイプ inferred | |||
| 請求書作成 | システムで請求書レコードが最初に作成されたことを示すアクティビティです。Oracle Receivablesのテーブルに取引ヘッダーが初めて保存された日時を記録します。 | ||
| 重要な理由 プロセスの開始点となり、経過日数の計算に使うベースラインを定めます。サイクルタイムの合計や請求書送付までのリードタイムの算出に欠かせません。 入手先 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 | |||
| クレジットメモの発行 | 請求書に適用するクレジットメモ取引の作成を記録します。異議申し立てや返品への対応として発行されることが多く、請求残高を減額します。 | ||
| 重要な理由 クレジットメモの手戻り率と売上の逸失を追跡します。クレジットメモが頻繁に発行される場合、請求に構造的な誤りがある可能性があります。 入手先 RA_CUSTOMER_TRX_ALLでTRX_TYPEがCredit Memoであり、RELATED_CUSTOMER_TRX_IDが請求書と一致するレコードから取得します。 記録 トランザクションXの実行時に記録 イベントタイプ explicit | |||
| 支払い督促の送付 | 督促状または回収通知を顧客に送付したことを記録します。このアクティビティはAdvanced Collectionsモジュールによって生成されます。 | ||
| 重要な理由 回収戦略の効果を分析するうえで欠かせません。支払い状況と照らし合わせることで、どの督促方法が最も早い回収につながるかを把握できます。 入手先 顧客アカウントに紐づくIEX_DUNNINGテーブルまたはIEX_STRATEGY_WORK_ITEMSテーブルにあります。 記録 トランザクションXの実行時に記録 イベントタイプ explicit | |||
| 支払い約束の受領 | 顧客が特定の金額を特定の日付までに支払うと約束したことを記録します。通常、顧客とのやり取りの際に回収担当者が手動で入力します。 | ||
| 重要な理由 顧客の支払い行動を分析するうえで重要です。約束が守られない場合は、信用リスクが高く、将来的に貸倒れが発生する可能性があります。 入手先 CollectionsモジュールのIEX_PROMISE_DETAILSテーブルから取得します。 記録 トランザクションXの実行時に記録 イベントタイプ explicit | |||
| 異議申し立ての解決 | 異議申し立ての調査が終了したことを示します。結果は、クレジットメモの承認(申し立てが妥当)または却下(申し立てが妥当でない)となります。 | ||
| 重要な理由 異議申し立ての平均解決時間を算出するために必要です。解決に時間がかかると、顧客満足度と売上債権回転日数に悪影響を及ぼします。 入手先 RA_CM_REQUESTS_ALLのステータスが「APPROVED」または「REJECTED」に変わった時点で取得します。 記録 変更前後のステータスフィールドを比較 イベントタイプ inferred | |||
| 異議申し立て案件の開始 | 請求書に対する正式な異議申し立てが開始されたことを示します。問題の調査中は、通常の回収活動が停止します。 | ||
| 重要な理由 重大なボトルネックの指標です。異議申し立て率が高い場合、履行プロセスの上流工程や請求精度に問題がある可能性があります。 入手先 RA_CM_REQUESTS_ALLのレコード、または請求書に紐づくクレジットメモ申請ワークフローから特定します。 記録 トランザクションXの実行時に記録 イベントタイプ explicit | |||
| 請求書の総勘定元帳への転記 | 請求書の会計仕訳が確定し、総勘定元帳に転送されたことを記録します。これにより、財務コンプライアンスを確保し、期間締めに備えられます。 | ||
| 重要な理由 顧客向けの表示には影響しませんが、ここでの遅延は決算サイクルとレポーティングの適時性に影響します。 入手先 RA_CUST_TRX_LINE_GL_DIST_ALLテーブルのGL_DATEから取得します。 記録 トランザクションXの実行時に記録 イベントタイプ explicit | |||
| 請求書の調整 | 少額の償却や為替調整など、クレジットメモとは異なる請求書残高の手動調整を記録します。 | ||
| 重要な理由 入金がないまま残高が解消される、売上の逸失や標準外のプロセス経路を特定するのに役立ちます。 入手先 請求書に紐づくAR_ADJUSTMENTS_ALLテーブルから取得します。 記録 トランザクションXの実行時に記録 イベントタイプ explicit | |||
| 請求書の貸倒処理 | 残高の回収が不可能と判断され、貸倒損失として処理される特定の調整です。プロセスの望ましくない終了状態にあたります。 | ||
| 重要な理由 財務状況の監視に欠かせません。支払いの速さを示す業務効率と、信用の質に関する問題を区別できます。 入手先 調整タイプが「Write-off」に分類されているか、貸倒勘定に紐づいている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を選択します。売掛金のView Objectにアクセスするため、FinancialsのOfferingを探します。
View Object(VO)を選択して設定します。イベントログの作成に必要なPublic View Object(PVO)を選択します。主なPVOは次のとおりです。
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.TransactionHeaderExtractPVO(請求書ヘッダー)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.TransactionLineExtractPVO(請求書明細)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.ReceiptApplicationExtractPVO(入金およびクレジットメモの適用)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.AdjustmentExtractPVO(調整および貸倒処理)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.PromiseDetailExtractPVO(支払約束)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.StrategyWorkItemExtractPVO(督促/リマインダー)
抽出条件を設定します。「Manage Extract Schedules」またはPVOの設定で、CreationDateまたはLastUpdateDateにフィルターを設定し、分析対象期間(例:直近12か月)のデータを抽出します。
抽出をスケジュールします。毎日実行するジョブを作成します。初回の全件ロード後は、変更分のみを取得するIncremental Loadを選択します。
ダウンロードして取り込みます。自動スクリプトまたは連携ツールでUCM/オブジェクトストレージからファイルを取得し、データウェアハウスのステージングテーブル(例:STG_AR_TRX_HEADER、STG_AR_APPLICATIONS)にロードします。
変換ロジックを適用します。Queryセクションに記載されたSQLスクリプトをステージングテーブルに対して実行し、リレーショナルデータをProcessMindのイベントログ形式に変換します。
データ型を確認します。変換時に日付フィールドをdatetime型に変換し、数値の金額を小数点以下まで正しく処理してください。
CSV/Parquetにエクスポートします。データウェアハウスから最終結果を単一ファイルとしてエクスポートします。
ProcessMindにアップロードします。ファイルをインポートし、InvoiceNumberをケースID、ActivityNameをアクティビティ、EventStartDateTimeをタイムスタンプに対応付けます。
設定
- 抽出頻度:最新のステータス変更を取得するため、毎日の増分抽出を推奨します。
- 初回ロード:初回は「Full Extract」を選択し、その後はLast Update Dateに基づく「Incremental」に切り替えます。
- 主なPVO:TransactionHeaderExtractPVO、ReceiptApplicationExtractPVO、AdjustmentExtractPVO、StrategyWorkItemExtractPVO。
- 日付フィルター:CreationDate >= '202X-01-01'の条件を設定し、データ量を制限します。
- 取得件数:通常の初期値は50,000行です。UCMからダウンロードする場合は、ネットワーク帯域に応じて調整します。
- 主キー:後続のデータウェアハウスでPVOの主キー(通常はCustomerTrxId、ReceivableApplicationIdなど)を使った更新・挿入を行い、重複行を防ぎます。
- 監査履歴:標準のBICC PVOで取得できるのは現在の状態です。ステータス変更(「Dispute Opened」など)の正確な履歴日時が必要で、トランザクションテーブルに履歴が残らない場合は、Fusionで監査ポリシーを有効にし、Audit View Objectを抽出する必要があります。
クエリの例 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を開きます。
データモデルを作成します:左上の「新規」をクリックし、「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、データ型をDateとする新しいパラメーターを作成し、既定値(例:01-01-2023)を設定します。データを表示します:「データ」タブをクリックし、パラメーターに有効な日付を入力して「表示」をクリックします。
InvoiceNumber、ActivityName、EventStartDateTimeなどの列を含む行が出力されることを確認します。データモデルを保存します:「Shared Folders」>「カスタム」ディレクトリ(例:
/Shared Folders/Custom/ProcessMining/AR_Extract_DM)に保存します。スケジュール/エクスポートします:大量のデータを抽出するには、このデータモデルを使って「Create Report」をクリックします。レポートエディターでレイアウトがシンプルな表になっていることを確認して保存します。その後、「Scheduler」を使ってレポートを実行し、データを「CSV」または「XML」形式で出力します。
最終形式を確認します:出力ファイルをダウンロードします。CSVの場合は、日付形式が統一されていることを確認します(ISO 8601を推奨)。ファイルをProcessMindにアップロードし、
InvoiceNumberをケースID、ActivityNameをアクティビティ、EventStartDateTimeをタイムスタンプに対応付けます。
設定
- データソース: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行になります。
クエリの例 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分で設定できます。