매출채권 데이터 템플릿
매출채권 데이터 템플릿
- 매출채권 분석에 권장되는 속성 전체 목록
- 모니터링할 주요 프로세스 활동 및 이정표
- Oracle Fusion Financials 데이터 추출 안내
매출채권 속성
| 이름 | 설명 | ||
|---|---|---|---|
| 이벤트 타임스탬프 EventStartDateTime | 활동이 발생한 날짜와 시각입니다. | ||
| 설명 이 속성은 시스템에서 활동이 발생한 정확한 시점을 기록합니다. 이벤트를 시간순으로 정렬하는 데 사용되며 process mining의 모든 시간 기반 계산의 기초가 됩니다. 타임스탬프를 분석하면 청구서 생성부터 발송까지 걸린 시간처럼 활동 간 주기 시간을 계산할 수 있습니다. 매출채권 회전일수와 같은 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에서 청구서 거래에 부여한 고유 식별자입니다. | ||
| 설명 이 속성은 Accounts Receivable 모듈에서 채권을 식별하는 고유 키입니다. 조정, 분쟁, 결제 등 이후의 모든 활동을 원래 판매 거래와 연결합니다. process mining 분석에서는 이 속성을 Case ID로 사용합니다. 분석가는 청구서가 생성된 시점부터 완전히 정산되거나 대손 처리될 때까지 매출채권의 전체 흐름을 추적하고, 이를 바탕으로 주기 시간과 프로세스 변형을 계산할 수 있습니다. 중요한 이유 신용에서 현금 회수까지의 흐름을 추적하는 기본 분석 단위입니다. 확보 방법 Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.TRX_NUMBER 예시 INV-2023-00110056789AR-99887755002211 | |||
| 활동명 ActivityName | 매출채권 프로세스에서 수행한 구체적인 이벤트 또는 작업입니다. | ||
| 설명 이 속성은 청구서 생성, 결제 전기, 분쟁 접수 등 프로세스에서 수행한 단계를 설명합니다. 프로세스 맵의 흐름을 정의하고 이벤트 순서를 시각화하는 데 사용됩니다. 분석가는 이 필드로 프로세스 변형, 반복 구간, 병목을 파악합니다. 표준 운영 절차 준수 여부를 확인하고 재작업이나 수동 개입과 같은 특정 이벤트의 빈도를 계산하는 데도 필요합니다. 중요한 이유 프로세스 흐름을 정의하고 이벤트 순서를 시각화하는 데 필요합니다. 확보 방법 거래 이력 테이블(예: AR_PAYMENT_SCHEDULES_ALL, RA_CUST_TRX_LINE_GL_DIST_ALL)에서 가져옵니다. 예시 청구서 생성결제 독촉장 발송일부 결제 전기분쟁 케이스 접수 | |||
| 마지막 데이터 업데이트 LastDataUpdate | 마이닝 도구에서 데이터를 마지막으로 새로 고친 시각입니다. | ||
| 설명 이 속성은 데이터 세트가 소스 Oracle 시스템과 마지막으로 동기화된 시점을 나타냅니다. 사용자는 분석 데이터의 최신성을 확인하고 인사이트가 현재 운영 상황을 반영하는지 판단할 수 있습니다. 이 필드를 모니터링하면 대시보드에 최신 정보가 표시되는지 확인할 수 있습니다. 특히 미해결 분쟁이나 미적용 현금을 운영 차원에서 모니터링할 때 중요합니다. 중요한 이유 데이터의 최신성과 신뢰성을 판단하는 정보를 제공합니다. 확보 방법 추출 시점의 시스템 시간입니다. 예시 2023-11-15T23:59:59Z2023-11-16T00:00:00Z | |||
| 소스 시스템 SourceSystem | 데이터가 생성된 기준 시스템입니다. | ||
| 설명 이 속성은 프로세스 데이터를 추출한 소프트웨어 환경을 식별합니다. 여기서는 데이터가 Oracle Fusion Financials 환경에서 가져온 것임을 확인합니다. 단일 시스템에서 데이터를 추출할 때는 값이 고정되는 경우가 많지만, 여러 ERP 인스턴스의 데이터를 병합하거나 외부 회수 도구를 연동할 때 중요합니다. 여러 시스템에 걸친 프로세스 환경에서 데이터 계보와 추적 가능성을 보장합니다. 중요한 이유 데이터 계보를 확인하고 ERP 인스턴스를 구분하는 데 사용됩니다. 확보 방법 추출 과정에서 값을 직접 지정하거나 데이터 파이프라인에서 설정합니다. 예시 Oracle Fusion FinancialsOracle Cloud ERP - USOracle Cloud ERP - EMEA | |||
| 거래 유형 TransactionType | 매출채권 문서의 분류입니다(청구서, 대변 메모, 차변 메모). | ||
| 설명 이 속성은 재무 문서의 유형을 구분합니다. 일반적인 값으로 청구서, 대변 메모, 차변 메모가 있습니다. 이 구분은 '대변 메모 발생량 및 재작업' 대시보드에 중요합니다. 분석가는 이 속성으로 대변 메모로 인한 재작업 반복 구간을 분리하거나 주요 청구 흐름만 살펴볼 수 있습니다. 매출채권 업무량의 구성을 파악하는 데 도움이 됩니다. 중요한 이유 일반 청구서와 조정 및 수정 거래를 구분합니다. 확보 방법 Oracle Fusion Financials: RA_CUST_TRX_TYPES_ALL.NAME 예시 청구서대변 메모차변 메모상계 청구 | |||
| 고객 세그먼트 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 | |||
| 사업부 BusinessUnit | 청구서를 담당하는 조직 내 운영 단위입니다. | ||
| 설명 이 속성은 Oracle Fusion의 Organization ID에 해당하며, 매출채권을 담당하는 사업부나 부서를 나타냅니다. 이를 통해 기업 내 여러 조직의 프로세스 성과를 구분해 분석할 수 있습니다. 사업부별 분쟁 해결 시간이나 DSO와 같은 KPI를 비교하면 경영진은 성과가 높은 팀을 파악하고 모범 사례를 표준화할 수 있습니다. 추가 리소스나 프로세스 재설계가 필요한 사업부도 확인할 수 있습니다. 중요한 이유 조직별 성과를 비교하고 기준을 설정하는 데 중요한 분석 차원입니다. 확보 방법 Oracle Fusion Financials: ORG_ID로 연결된 HR_ORGANIZATION_UNITS.NAME. 예시 미국 동부 영업EMEA 서비스APAC 제조 | |||
| 사용자 이름 UserName | 활동을 수행한 시스템 사용자입니다. | ||
| 설명 이 속성에는 특정 활동을 수행한 사람의 로그인 ID 또는 이름이 기록됩니다. 예를 들어 송장을 전기하거나 은행 명세서를 대사한 사용자를 확인할 수 있습니다. 일반 '사용자' 필드에 해당합니다. 규정 준수 감사와 '수금 담당자 처리량' 대시보드에 필요한 데이터입니다. 일반적으로 '시스템' 사용자가 수행하는 자동화 작업과 사람이 수행한 작업을 구분해 자동화 수준을 분석할 수 있습니다. 중요한 이유 사용자별 성과를 추적하고 업무 분장 분석을 수행할 수 있습니다. 확보 방법 Oracle Fusion Financials: CREATED_BY 또는 LAST_UPDATED_BY 열을 사용자 테이블과 조인합니다. 예시 시스템 관리자jsmithfinance_batch_job | |||
| 자동화 여부 IsAutomated | 사람의 개입 없이 활동이 수행되었는지 나타내는 표시입니다. | ||
| 설명 이 불리언 속성은 활동을 시스템 프로세스(예: AutoInvoice, AutoLockbox)가 수행했는지, 사람이 수행했는지 나타냅니다. '현금 적용 자동화율' KPI를 산출하는 주요 기준입니다. 시간에 따른 자동화 활동과 수동 활동의 비율을 추적하면 디지털 전환의 성과를 확인하고 여전히 수동으로 처리되는 프로세스 단계를 찾을 수 있습니다. 중요한 이유 디지털 전환과 효율성을 측정하는 주요 지표입니다. 확보 방법 UserName을 기준으로 계산합니다(예: User == 'BATCH_USER'이면 true). 예시 truefalse | |||
| 지급 기한 DueDate | 결제를 완료해야 하는 날짜입니다. | ||
| 설명 이 속성은 송장 날짜와 결제 조건을 기준으로 계산한 결제 마감일입니다. 결제 지연 여부를 판단하는 기준으로 사용됩니다. '수금 알림 시점 편차' KPI에서 팀이 마감일에 맞춰 얼마나 선제적으로 대응하는지 측정하는 데 사용됩니다. 또한 채권 연령 분석에서 미결제 채권과 연체 채권을 구분하는 기준이 됩니다. 중요한 이유 연체 여부와 기한 내 결제 성과를 판단하는 기본 기준입니다. 확보 방법 Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DUE_DATE 예시 2023-11-302023-12-152024-01-01 | |||
| 청구 금액 InvoiceAmount | 청구서의 총 금액입니다. | ||
| 설명 이 속성은 청구서의 최초 청구 금액을 나타냅니다. 여러 분석에서 주요 가중치로 사용되어, 거래 건수가 많은 소액 청구서보다 금액이 큰 거래를 우선적으로 살펴볼 수 있습니다. '미적용 대변 및 매출 누수 보기'에서는 미해결 항목의 재무 영향을 정량화하는 데 도움이 됩니다. 금액 가중 매출채권 회전일수를 계산해 프로세스 효율성을 재무 관점에서 분석할 때도 사용합니다. 중요한 이유 분석에 재무적 비중을 반영하고 금액 기준으로 우선순위를 정하는 데 도움이 됩니다. 확보 방법 Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.AMOUNT_DUE_ORIGINAL 예시 1500.00250.5010000.00 | |||
| 회수 담당자명 CollectorName | 청구서에 배정된 회수 담당자 또는 리소스의 이름입니다. | ||
| 설명 이 속성은 청구서 대금 회수를 담당하는 직원이나 팀원을 식별합니다. '회수 담당자 처리량' 대시보드의 주요 분석 차원입니다. 이 필드의 데이터를 활용하면 담당자별 생산성을 측정하고 교육이 필요한 부분을 파악하며 업무량을 균형 있게 배분할 수 있습니다. 담당자의 책임을 명확히 하고 재무팀 전반의 회수 업무를 표준화하는 데도 도움이 됩니다. 중요한 이유 리소스 성과 분석과 업무량 배분에 중요합니다. 확보 방법 Oracle Fusion Financials: 고객 프로필과 연결된 AR_COLLECTORS.NAME. 예시 John Smith수금팀 AJane Doe | |||
| 결제 조건 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. 예시 가격 분쟁세금 오류상품 미수령중복 청구 | |||
| 생성 출처 CreationSource | 송장이 수동으로 생성되었는지 가져왔는지를 나타내는 출처입니다. | ||
| 설명 이 속성을 통해 송장이 '수동 입력', 'AutoInvoice' 또는 특정 외부 데이터 피드 등 어떤 경로로 Oracle 시스템에 입력되었는지 확인할 수 있습니다. 일반 매핑의 '채널'에 해당하는 값입니다. '현금 적용 자동화 모니터'에 중요한 속성입니다. 완전한 디지털 프로세스와 수동 설정이 필요한 프로세스를 구분하는 데 도움이 됩니다. '수동 입력' 건수가 많다면 상위 시스템과의 연동이 부족하거나 시스템에 문제가 있을 수 있습니다. 중요한 이유 상위 단계의 자동화 수준과 데이터 출처를 파악합니다. 확보 방법 Oracle Fusion Financials: RA_BATCH_SOURCES_ALL.NAME 예시 AutoInvoice수동프로젝트 구현주문 관리 | |||
| 재작업 여부 IsRework | 송장에 수정 또는 분쟁 처리 과정이 있었는지 나타내는 표시입니다. | ||
| 설명 이 불리언 속성은 '대변 메모 발행' 또는 '송장 조정'과 같은 오류 수정 활동이 송장에 발생했는지 나타냅니다. '대변 메모 건수 및 재작업' 대시보드에 활용됩니다. 재작업 사례를 식별하면 정상적으로 진행된 프로세스와 문제가 있는 프로세스를 구분할 수 있습니다. 재작업률이 높으면 기준 데이터나 판매 주문 입력 등 상위 프로세스의 데이터 품질에 문제가 있을 가능성이 큽니다. 중요한 이유 프로세스 흐름에서 낭비와 비효율을 찾아냅니다. 확보 방법 계산값: 사례에 '대변 메모 발행' 또는 '분쟁 사례 접수'가 포함되면 True입니다. 예시 truefalse | |||
| 지역 Region | 사업부 또는 고객과 관련된 지리적 지역입니다. | ||
| 설명 이 속성은 거래를 북미, EMEA, APAC과 같은 광역 지역에 연결합니다. 경영진 보고와 'DSO 및 현금 전환 주기 추이' 대시보드에 유용합니다. 지역별 분석을 통해 결제 관행의 차이(예: 남유럽의 일반적인 결제 기한이 미국보다 긴 경우)를 고려할 수 있습니다. 또한 글로벌 KPI를 각 지역의 상황에 맞게 해석할 수 있습니다. 중요한 이유 글로벌 보고를 위해 지역별로 상위 수준의 구분을 제공합니다. 확보 방법 Oracle Fusion Financials: 사업부 또는 고객 주소에서 파생됩니다. 예시 북미EMEAAPACLATAM | |||
| 통화 코드 CurrencyCode | 청구 금액의 기준 통화입니다. | ||
| 설명 이 속성은 재무 금액의 통화(예: USD, EUR)를 지정합니다. 청구 금액을 올바르게 해석하고 글로벌 보고 통화가 필요한 경우 통화를 환산하는 데 사용됩니다. 글로벌 조직은 이 속성을 활용해 경제권별 회수 성과를 분석하고, 환율 변동의 영향과 운영 프로세스 성과를 구분할 수 있습니다. 중요한 이유 여러 통화를 사용하는 환경에서 재무 금액을 올바르게 해석할 수 있습니다. 확보 방법 Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.INVOICE_CURRENCY_CODE 예시 USDEURGBPJPY | |||
| 할인 적용 기한 DiscountEligibilityDate | 고객이 조기 결제 할인을 받을 수 있는 마지막 날짜입니다. | ||
| 설명 이 속성은 고객이 '10일 이내 2% 할인, 30일 이내 결제'와 같은 조건을 활용할 수 있는 마감일을 나타냅니다. '조기 결제 할인 분석' 대시보드에 필요한 정보입니다. 이 날짜를 기준으로 결제 내역을 분석하면 '조기 결제 할인 적용률'을 확인할 수 있습니다. 이를 통해 할인 전략이 현금 흐름을 앞당기는 데 효과적인지, 고객이 할인을 활용하지 않는지 파악할 수 있습니다. 중요한 이유 인센티브 효과와 현금 흐름 개선을 분석하는 데 도움이 됩니다. 확보 방법 Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DISCOUNT_DATE 예시 2023-11-102023-12-05 | |||
매출채권 활동
| 활동 | 설명 | ||
|---|---|---|---|
| 일부 결제 전기 | 입금액이 청구서에 적용되었지만 미결제 잔액보다 적을 때 발생합니다. 청구서는 잔액이 줄어든 상태로 미결 상태를 유지합니다. | ||
| 중요한 이유 발생 빈도가 높으면 결제가 여러 번 나뉘어 처리되는 경향을 나타냅니다. 일부 결제 빈도 KPI가 높아지면 계정 조정 작업도 늘어납니다. 확보 방법 AR_RECEIVABLE_APPLICATIONS_ALL에서 STATUS = 'APP'이고 AMOUNT_APPLIED < AMOUNT_DUE_REMAINING인 레코드에서 가져옵니다. 기록 거래 X가 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 전액 결제 접수 | 입금 적용으로 청구서 잔액이 0이 될 때 발생합니다. 회수 프로세스의 주요 성공 이벤트입니다. | ||
| 중요한 이유 조기 결제 할인 분석에 중요합니다. 이 이벤트의 시점으로 할인 기간 내에 현금을 회수했는지 확인할 수 있습니다. 확보 방법 AR_RECEIVABLE_APPLICATIONS_ALL에서 STATUS = 'APP'이고 적용 후 AMOUNT_DUE_REMAINING이 0인 레코드에서 가져옵니다. 기록 필드 X와 Y를 비교해 도출합니다. 이벤트 유형 calculated | |||
| 청구서 발송 | 인쇄, 이메일 또는 XML을 통해 청구서를 고객에게 전달하는 단계입니다. 조직에서 고객으로 청구서가 전달되는 시점을 나타냅니다. | ||
| 중요한 이유 청구서 발송 성과를 측정하는 데 중요합니다. 생성부터 발송까지의 지연은 현금 회수 주기를 늦춥니다. 확보 방법 RA_CUSTOMER_TRX_ALL의 PRINTING_ORIGINAL_DATE에서 확인하거나, XML을 사용하는 경우 Oracle Collaboration Messaging Framework의 관련 로그에서 추정합니다. 기록 변경 전후의 상태 필드를 비교합니다. 이벤트 유형 inferred | |||
| 청구서 생성 | 시스템에 청구서 레코드가 처음 생성된 시점을 나타냅니다. Oracle Receivables 테이블에 거래 헤더가 처음 저장된 시각을 기록합니다. | ||
| 중요한 이유 프로세스의 시작 시점이자 경과 기간 계산의 기준입니다. 전체 주기 시간과 발송까지의 리드 타임을 계산하는 데 필요합니다. 확보 방법 RA_CUSTOMER_TRX_ALL 테이블의 CREATION_DATE 또는 TRX_DATE 열에서 가져옵니다. 기록 거래 행이 삽입된 시점에 기록됩니다. 이벤트 유형 explicit | |||
| 청구서 생성 완료 | 청구서 생성이 끝나 인쇄, 처리 및 전기할 준비가 되었음을 나타냅니다. 거래 상태가 미완료에서 완료로 바뀔 때 발생합니다. | ||
| 중요한 이유 초안 작성 시간과 처리 시간을 구분합니다. 이 단계의 지연은 내부 청구서 생성 프로세스의 병목을 나타냅니다. 확보 방법 RA_CUSTOMER_TRX_ALL의 COMPLETE_FLAG가 'Y'로 변경될 때 확인합니다. 기록 변경 전후의 상태 필드를 비교합니다. 이벤트 유형 inferred | |||
| 청구서 정리 | 시스템에서 청구서가 종료된 최종 상태입니다. 일반적으로 결제, 대변 메모 또는 조정으로 잔액이 0이 되면 종료됩니다. | ||
| 중요한 이유 이 이벤트의 타임스탬프는 매출채권 회전일수(DSO)를 계산하는 데 사용되며 프로세스 인스턴스의 종료 시점을 나타냅니다. 확보 방법 AR_PAYMENT_SCHEDULES_ALL의 STATUS가 'CL'(Closed)로 변경될 때 확인합니다. 기록 변경 전후의 상태 필드를 비교합니다. 이벤트 유형 inferred | |||
| 결제 독촉장 발송 | 고객에게 독촉장이나 회수 안내를 발송한 시점을 기록합니다. 이 이벤트는 Advanced Collections 모듈에서 생성됩니다. | ||
| 중요한 이유 회수 전략의 효과를 분석하는 데 필요합니다. 결제 데이터와 함께 분석하면 어떤 독촉 전략이 현금을 가장 빠르게 회수하는지 파악할 수 있습니다. 확보 방법 고객 계정과 연결된 IEX_DUNNING 또는 IEX_STRATEGY_WORK_ITEMS 테이블에서 확인할 수 있습니다. 기록 거래 X가 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 결제 약속 접수 | 고객이 특정 금액을 특정 날짜까지 결제하기로 약속한 내용을 기록합니다. 일반적으로 고객과 상담하는 동안 회수 담당자가 직접 입력합니다. | ||
| 중요한 이유 고객 결제 행동 분석에 중요합니다. 약속 불이행은 신용 위험이 높고 향후 대손이 발생할 가능성이 있음을 나타냅니다. 확보 방법 Collections 모듈의 IEX_PROMISE_DETAILS 테이블에서 가져옵니다. 기록 거래 X가 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 대변 메모 발행 | 청구서에 적용되는 대변 메모 거래가 생성된 시점을 기록합니다. 대변 메모는 분쟁이나 반품에 대응해 미결제 잔액을 줄이는 데 사용됩니다. | ||
| 중요한 이유 대변 메모 재작업률과 매출 누수를 추적합니다. 대변 메모가 자주 발생하면 청구에 구조적인 오류가 있을 수 있습니다. 확보 방법 RA_CUSTOMER_TRX_ALL에서 TRX_TYPE이 Credit Memo이고 RELATED_CUSTOMER_TRX_ID가 해당 청구서와 일치하는 레코드에서 가져옵니다. 기록 거래 X가 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 분쟁 케이스 접수 | 청구서에 대한 공식 분쟁이 시작된 시점을 나타냅니다. 문제를 조사하는 동안 일반적인 회수 활동은 중단됩니다. | ||
| 중요한 이유 주요 병목 지표입니다. 분쟁 비율이 높으면 이행 또는 청구 정확도에 상위 단계의 품질 문제가 있을 수 있습니다. 확보 방법 RA_CM_REQUESTS_ALL의 레코드 또는 청구서와 연결된 Credit Memo Request 워크플로에서 확인합니다. 기록 거래 X가 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 분쟁 해결 | 분쟁 조사가 끝난 시점을 나타냅니다. 결과는 대변 메모 승인(유효한 분쟁) 또는 거부(유효하지 않은 분쟁)일 수 있습니다. | ||
| 중요한 이유 평균 분쟁 해결 시간을 계산하는 데 필요합니다. 해결이 늦어지면 고객 만족도와 DSO에 부정적인 영향을 줍니다. 확보 방법 RA_CM_REQUESTS_ALL의 상태가 'APPROVED' 또는 'REJECTED'로 변경될 때 확인합니다. 기록 변경 전후의 상태 필드를 비교합니다. 이벤트 유형 inferred | |||
| 은행 거래명세서 대조 완료 | 청구서에 적용된 입금이 은행 거래명세서의 항목과 대조되었음을 나타냅니다. 실제로 현금이 은행 계좌에 입금되었는지 확인할 수 있습니다. | ||
| 중요한 이유 현금 적용 자동화를 측정합니다. 결제 전기부터 은행 거래 대조까지의 시간은 아직 확인되지 않은 현금을 나타냅니다. 확보 방법 대조 참조 정보를 사용해 AR_CASH_RECEIPTS_ALL과 CE_STATEMENT_LINES(Cash Management)를 연결합니다. 기록 변경 전후의 상태 필드를 비교합니다. 이벤트 유형 inferred | |||
| 청구서 GL 전기 | 청구서의 회계 항목이 확정되어 총계정원장으로 전송된 시점을 기록합니다. 이를 통해 재무 규정 준수와 기간 마감 준비 상태를 확인할 수 있습니다. | ||
| 중요한 이유 고객에게 보이는 내용에는 영향을 주지 않지만, 이 단계의 지연은 재무 마감 주기와 보고 시점에 영향을 줍니다. 확보 방법 RA_CUST_TRX_LINE_GL_DIST_ALL 테이블의 GL_DATE에서 가져옵니다. 기록 거래 X가 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 청구서 대손 처리 | 미결제 잔액을 회수 불가능한 것으로 판단해 대손으로 처리하는 특정 유형의 조정입니다. 부정적인 최종 상태에 해당합니다. | ||
| 중요한 이유 재무 건전성 모니터링에 중요합니다. 운영 효율성(결제 속도)과 신용 품질 문제를 구분할 수 있습니다. 확보 방법 조정 유형이 'Write-off'로 분류되거나 대손 계정과 연결된 AR_ADJUSTMENTS_ALL 레코드에서 가져옵니다. 기록 거래 X가 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 청구서 조정 | 소액 대손 처리나 환율 조정 등 대변 메모와 구분되는 청구서 잔액의 수동 조정을 기록합니다. | ||
| 중요한 이유 결제 없이 잔액이 정리되는 매출 누수와 비표준 프로세스 경로를 파악하는 데 도움이 됩니다. 확보 방법 청구서와 연결된 AR_ADJUSTMENTS_ALL 테이블에서 가져옵니다. 기록 거래 X가 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
데이터 추출 가이드
단계
Oracle BI Cloud Connector(BICC) Console에 액세스합니다. Manage Offerings and Data Stores 섹션으로 이동합니다.
저장소 연결을 설정합니다. 추출한 CSV/Parquet 파일을 저장할 Oracle Universal Content Management(UCM) 또는 외부 Object Storage(예: OCI Object Storage)에 유효하게 연결되어 있는지 확인합니다.
Financials Offering을 선택합니다. Accounts Receivable View Objects에 액세스할 수 있도록 Financials Offering을 찾습니다.
View Objects(VO)를 선택하고 설정합니다. 이벤트 로그를 구성하는 데 필요한 특정 Public View Objects(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개월)에 해당하는 데이터를 추출합니다.
추출 일정 예약. 매일 추출 작업이 실행되도록 일정을 만듭니다. 최초 전체 로드 이후 변경된 데이터만 가져오려면 Incremental Load를 선택합니다.
다운로드 및 데이터 가져오기. 자동화 스크립트 또는 연동 도구를 사용해 UCM/Object Storage에서 파일을 가져와 데이터 웨어하우스의 스테이징 테이블(예: 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' 필터를 적용합니다.
- 가져오기 크기: 기본값은 보통 50000행입니다. UCM에서 다운로드하는 경우 네트워크 대역폭에 따라 조정합니다.
- 기본 키: 중복 행을 방지하려면 후속 데이터 웨어하우스에서 PVO 기본 키(일반적으로 CustomerTrxId, ReceivableApplicationId 등)를 사용해 upsert를 처리해야 합니다.
- 감사 이력: 표준 BICC PVO는 현재 상태를 기록합니다. 분쟁 접수와 같은 상태 변경의 정확한 이력을 확인하려면 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 인터페이스를 엽니다.
데이터 모델 만들기: 왼쪽 상단의 New를 클릭하고 Data Model을 선택합니다. 이 모델에 SQL 추출 로직을 구성합니다.
SQL 데이터셋 정의: 왼쪽의 Data Model 트리에서 Data Sets를 클릭한 다음 New Data Set > SQL Query를 선택합니다.
데이터 소스 설정: 데이터셋 이름(예:
ProcessMining_AR)을 입력합니다. Data Source로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는 케이스 ID에,ActivityName은 활동에,EventStartDateTime은 타임스탬프에 매핑합니다.
구성
- 데이터 소스: Financials 테이블에 액세스하려면
ApplicationDB_FSCM을 사용합니다. - 날짜 필터: 쿼리는
ra_customer_trx_all.creation_date >= :p_start_date를 사용합니다. 최근 12개월 등 이동 기간을 기준으로 데이터를 불러오도록 설정합니다. - 성능: 송장이 100,000건을 넘는 데이터 세트는 테스트 중
ROWNUM제한을 추가하거나 월별로 나누어 추출하는 방안을 고려합니다. - 사업부 필터링: 조직에 사업부가 여러 개 있고 그중 하나만 필요한 경우,
Where절의AND trx.org_id = ...행에서 주석을 제거합니다. - 사용자 이름: 쿼리는
FND_USER를 통해CREATED_BY사용자 ID를 사용자 이름으로 변환합니다. 추출 사용자에게FND_USER읽기 권한이 있는지 확인합니다. - Advanced Collections: 'Payment Reminder Sent' 및 'Promise to Pay Received' 활동은 IEX(Advanced Collections) 모듈 테이블을 사용합니다. 이 모듈을 사용하지 않는 경우 해당 섹션에서는 행이 반환되지 않습니다.
샘플 쿼리 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분이면 완료됩니다.