Mẫu dữ liệu phải thu
Mẫu dữ liệu phải thu
- Danh sách thuộc tính đề xuất để phân tích khoản phải thu
- Các hoạt động và mốc chính cần theo dõi trong quy trình
- Hướng dẫn trích xuất dữ liệu riêng cho Oracle Fusion Financials
Thuộc tính khoản phải thu
| Tên | Mô tả | ||
|---|---|---|---|
| Số hóa đơn InvoiceNumber | Mã định danh duy nhất được gán cho giao dịch hóa đơn trong Oracle Fusion. | ||
| Mô tả Thuộc tính này là khóa duy nhất để nhận diện các khoản phải thu trong mô-đun Accounts Receivable. Thuộc tính liên kết mọi hoạt động tiếp theo, như điều chỉnh, tranh chấp và thanh toán, với giao dịch bán hàng ban đầu. Trong phân tích process mining, thuộc tính này đóng vai trò là Case ID. Nhờ đó, chuyên viên phân tích có thể theo dõi toàn bộ vòng đời khoản phải thu, từ lúc tạo đến khi tất toán hoặc xóa nợ, đồng thời tính thời gian xử lý và các biến thể quy trình. Vì sao điều này quan trọng Đây là đơn vị phân tích cơ bản để theo dõi vòng đời từ cấp tín dụng đến thu tiền. Lấy dữ liệu ở đâu Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.TRX_NUMBER Ví dụ INV-2023-00110056789AR-99887755002211 | |||
| Tên hoạt động ActivityName | Sự kiện hoặc hành động cụ thể diễn ra trong quy trình phải thu. | ||
| Mô tả Thuộc tính này mô tả bước được thực hiện trong quy trình, chẳng hạn như tạo hóa đơn, ghi nhận thanh toán hoặc mở tranh chấp. Thuộc tính xác định luồng của sơ đồ quy trình và giúp hiển thị thứ tự các sự kiện. Chuyên viên phân tích dùng trường này để tìm các biến thể, vòng lặp và điểm nghẽn trong quy trình. Đây là thông tin cần thiết để xác định mức độ tuân thủ quy trình vận hành chuẩn và tính tần suất của các sự kiện cụ thể như xử lý lại hoặc can thiệp thủ công. Vì sao điều này quan trọng Cần thiết để xác định luồng quy trình và hiển thị thứ tự các sự kiện. Lấy dữ liệu ở đâu Lấy từ các bảng lịch sử giao dịch, chẳng hạn như AR_PAYMENT_SCHEDULES_ALL và RA_CUST_TRX_LINE_GL_DIST_ALL. Ví dụ Hóa đơn được tạoĐã gửi nhắc thanh toánĐã ghi nhận thanh toán một phầnĐã mở hồ sơ tranh chấp | |||
| Thời điểm sự kiện EventStartDateTime | Ngày và giờ cụ thể khi một hoạt động diễn ra. | ||
| Mô tả Thuộc tính này ghi lại chính xác thời điểm một hoạt động diễn ra trong hệ thống. Thuộc tính được dùng để sắp xếp sự kiện theo trình tự thời gian và làm cơ sở cho mọi phép tính thời gian trong process mining. Phân tích dấu thời gian giúp doanh nghiệp tính thời gian giữa các hoạt động, chẳng hạn như khoảng thời gian từ lúc tạo đến khi gửi hóa đơn. Đây là thông tin quan trọng để đo các KPI như số ngày phải thu bình quân và tìm ra quy luật về hành vi thanh toán. Vì sao điều này quan trọng Là cơ sở để tính thời lượng, thời gian xử lý và thời gian chu kỳ. Lấy dữ liệu ở đâu Oracle Fusion Financials: các cột CREATION_DATE hoặc LAST_UPDATE_DATE trong nhiều bảng giao dịch. Ví dụ 2023-10-15T08:30:00Z2023-10-16T14:45:12Z2023-11-01T09:00:00Z | |||
| Hệ thống nguồn SourceSystem | Hệ thống lưu trữ dữ liệu gốc. | ||
| Mô tả Thuộc tính này xác định môi trường phần mềm nơi dữ liệu quy trình được trích xuất. Trong trường hợp này, thuộc tính xác nhận dữ liệu đến từ môi trường Oracle Fusion Financials. Khi chỉ trích xuất từ một hệ thống, giá trị này thường không đổi. Tuy nhiên, thuộc tính trở nên quan trọng khi gộp dữ liệu từ nhiều phiên bản ERP hoặc tích hợp công cụ thu hồi công nợ của bên thứ ba. Thuộc tính giúp theo dõi nguồn gốc và truy xuất dữ liệu trong bức tranh quy trình có nhiều hệ thống. Vì sao điều này quan trọng Giúp theo dõi nguồn gốc dữ liệu và phân biệt các phiên bản ERP. Lấy dữ liệu ở đâu Được điền sẵn khi trích xuất hoặc cấu hình trong luồng dữ liệu. Ví dụ Oracle Fusion FinancialsOracle Cloud ERP - Hoa KỳOracle Cloud ERP - EMEA | |||
| Lần cập nhật dữ liệu gần nhất LastDataUpdate | Thời điểm dữ liệu được làm mới gần nhất trong công cụ khai phá quy trình. | ||
| Mô tả Thuộc tính này cho biết lần gần nhất bộ dữ liệu được đồng bộ với hệ thống Oracle nguồn. Nhờ đó, người dùng biết dữ liệu phân tích mới đến đâu và liệu kết quả có phản ánh tình hình vận hành hiện tại hay không. Theo dõi trường này giúp đảm bảo bảng điều khiển hiển thị thông tin cập nhật, nhất là khi giám sát tranh chấp chưa giải quyết hoặc khoản tiền chưa được áp dụng. Vì sao điều này quan trọng Cho biết dữ liệu mới đến đâu và mức độ tin cậy của dữ liệu. Lấy dữ liệu ở đâu Thời gian hệ thống tại thời điểm trích xuất. Ví dụ 2023-11-15T23:59:59Z2023-11-16T00:00:00Z | |||
| Có tự động hóa IsAutomated | Cờ cho biết hoạt động có được thực hiện mà không cần con người can thiệp hay không. | ||
| Mô tả Thuộc tính đúng/sai này xác định hoạt động do quy trình hệ thống thực hiện, chẳng hạn như AutoInvoice hoặc AutoLockbox, hay do người dùng thực hiện. Đây là chỉ số chính của KPI 'Cash Application Automation Rate'. Theo dõi tỷ lệ hoạt động tự động so với thủ công theo thời gian giúp doanh nghiệp đánh giá hiệu quả của các sáng kiến chuyển đổi số và xác định những bước trong quy trình vẫn còn phải làm thủ công. Vì sao điều này quan trọng Chỉ số chính để đo lường chuyển đổi số và hiệu quả. Lấy dữ liệu ở đâu Logic tính toán dựa trên UserName (ví dụ: nếu User == 'BATCH_USER' thì trả về true). Ví dụ truefalse | |||
| Đơn vị kinh doanh BusinessUnit | Đơn vị vận hành trong tổ chức chịu trách nhiệm về hóa đơn. | ||
| Mô tả Thuộc tính này tương ứng với Organization ID trong Oracle Fusion, đại diện cho đơn vị kinh doanh hoặc bộ phận sở hữu khoản phải thu. Thuộc tính giúp phân tích hiệu quả quy trình ở từng bộ phận trong doanh nghiệp. So sánh các KPI như thời gian giải quyết tranh chấp hoặc DSO giữa các đơn vị kinh doanh giúp lãnh đạo nhận diện nhóm làm tốt và nhân rộng cách làm hiệu quả. Việc này cũng cho thấy đơn vị nào có thể cần thêm tài nguyên hoặc thiết kế lại quy trình. Vì sao điều này quan trọng Chiều dữ liệu quan trọng để so sánh hiệu quả giữa các đơn vị. Lấy dữ liệu ở đâu Oracle Fusion Financials: HR_ORGANIZATION_UNITS.NAME liên kết qua ORG_ID. Ví dụ Bán hàng miền Đông Hoa KỳDịch vụ EMEASản xuất APAC | |||
| Loại giao dịch TransactionType | Phân loại chứng từ phải thu, chẳng hạn như hóa đơn, credit memo hoặc debit memo. | ||
| Mô tả Thuộc tính này phân biệt các loại chứng từ tài chính. Các giá trị thường gặp gồm Invoice, Credit Memo và Debit Memo. Việc phân biệt này rất quan trọng đối với bảng điều khiển 'Số lượng credit memo và tình trạng xử lý lại'. Lọc theo thuộc tính này giúp chuyên viên phân tích tách riêng các vòng lặp xử lý lại do credit memo gây ra hoặc chỉ tập trung vào luồng lập hóa đơn chính. Nhờ đó, họ hiểu rõ cơ cấu khối lượng công việc phải thu. Vì sao điều này quan trọng Phân biệt hóa đơn thông thường với các khoản điều chỉnh và sửa đổi. Lấy dữ liệu ở đâu Oracle Fusion Financials: RA_CUST_TRX_TYPES_ALL.NAME Ví dụ Hóa đơnCredit memoDebit memoKhoản truy thu | |||
| Ngày đến hạn DueDate | Ngày dự kiến nhận được khoản thanh toán. | ||
| Mô tả Thuộc tính này là hạn thanh toán, được tính dựa trên ngày lập hóa đơn và điều khoản thanh toán. Đây là mốc để xác định khoản thanh toán có bị trễ hay không. Thuộc tính này được dùng trong KPI 'Collection Reminder Timing Variance' để đo mức độ chủ động của nhóm so với hạn thanh toán. Đây cũng là ngưỡng để phân loại khoản phải thu còn hạn hoặc quá hạn trong báo cáo tuổi nợ. Vì sao điều này quan trọng Mốc chính để xác định tình trạng quá hạn và hiệu suất thanh toán đúng hạn. Lấy dữ liệu ở đâu Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DUE_DATE Ví dụ 2023-11-302023-12-152024-01-01 | |||
| Phân khúc khách hàng CustomerSegment | Phân loại khách hàng dựa trên quy mô, ngành nghề hoặc mức độ rủi ro. | ||
| Mô tả Thuộc tính này chia khách hàng thành các nhóm như khách hàng chiến lược, doanh nghiệp lớn, doanh nghiệp vừa và nhỏ hoặc rủi ro cao. Thông tin thường được lấy từ hạng khách hàng hoặc hạng hồ sơ trong Oracle Fusion. Thuộc tính này giúp phân tích các biến thể quy trình giữa những phân khúc thị trường khác nhau. Chẳng hạn, bạn có thể kiểm tra xem khách hàng chiến lược có nhận được dịch vụ chăm sóc phù hợp hay khách hàng rủi ro cao có được theo dõi sát về việc thanh toán đúng hạn hay không. Vì sao điều này quan trọng Cho phép phân tích chiến lược thu hồi công nợ và rủi ro theo từng phân khúc. Lấy dữ liệu ở đâu Oracle Fusion Financials: HZ_CUSTOMER_PROFILES.PROFILE_CLASS_ID. Ví dụ Doanh nghiệp lớnDoanh nghiệp nhỏChính phủRủi ro cao | |||
| Số tiền hóa đơn InvoiceAmount | Tổng giá trị tiền tệ của hóa đơn. | ||
| Mô tả Thuộc tính này thể hiện số tiền ban đầu cần thanh toán trên hóa đơn. Đây là cơ sở để xác định trọng số trong nhiều phân tích, giúp doanh nghiệp ưu tiên giao dịch giá trị cao thay vì chỉ tập trung vào số lượng giao dịch. Trong bảng điều khiển 'Khoản ghi có chưa áp dụng và thất thoát', trường này giúp định lượng tác động tài chính của các khoản chưa được xử lý. Trường này cũng được dùng để tính DSO bình quân có trọng số, qua đó đánh giá hiệu quả quy trình dựa trên giá trị tài chính. Vì sao điều này quan trọng Bổ sung góc nhìn về giá trị tài chính và hỗ trợ ưu tiên theo giá trị. Lấy dữ liệu ở đâu Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.AMOUNT_DUE_ORIGINAL Ví dụ 1500.00250.5010000.00 | |||
| Tên khách hàng CustomerName | Tên đơn vị được lập hóa đơn trong giao dịch. | ||
| Mô tả Thuộc tính này xác định khách hàng gắn với hóa đơn. Đây là thông tin cơ bản để phân tích hành vi thanh toán, tần suất tranh chấp và hiệu quả thu hồi công nợ theo từng khách hàng. Chuyên viên phân tích dùng trường này để tìm những khách hàng thường xuyên thanh toán trễ hoặc phát sinh tranh chấp. Thông tin này hỗ trợ bảng điều khiển 'Phân tích hành vi thanh toán của khách hàng' và giúp điều chỉnh điều khoản tín dụng cũng như chiến lược thu hồi công nợ theo từng hồ sơ khách hàng. Vì sao điều này quan trọng Cần thiết để phân tích theo từng khách hàng và đánh giá rủi ro. Lấy dữ liệu ở đâu Oracle Fusion Financials: HZ_PARTIES.PARTY_NAME liên kết qua BILL_TO_CUSTOMER_ID. Ví dụ Acme CorpGlobex CorporationSoylent Corp | |||
| Tên người dùng UserName | Người dùng hệ thống thực hiện hoạt động. | ||
| Mô tả Thuộc tính này ghi lại mã đăng nhập hoặc tên người thực hiện hoạt động cụ thể, chẳng hạn như ghi sổ hóa đơn hoặc đối chiếu sao kê ngân hàng. Thuộc tính này ánh xạ với trường chung 'User'. Dữ liệu này rất quan trọng cho việc kiểm tra tuân thủ và bảng điều khiển 'Collection Agent Throughput'. Dữ liệu giúp phân biệt thao tác do hệ thống thực hiện, thường dưới tên người dùng 'System', với thao tác của con người, từ đó hỗ trợ phân tích mức độ tự động hóa. Vì sao điều này quan trọng Cho phép theo dõi hiệu suất theo từng người dùng và phân tích việc phân tách nhiệm vụ. Lấy dữ liệu ở đâu Oracle Fusion Financials: các cột CREATED_BY hoặc LAST_UPDATED_BY được kết hợp với bảng người dùng. Ví dụ sysadminjsmithfinance_batch_job | |||
| Tên nhân viên thu hồi công nợ CollectorName | Tên nhân viên hoặc tài nguyên được giao phụ trách thu hồi công nợ cho hóa đơn. | ||
| Mô tả Thuộc tính này xác định nhân viên hoặc thành viên nhóm chịu trách nhiệm thu tiền cho hóa đơn. Đây là chiều dữ liệu chính của bảng điều khiển 'Năng suất nhân viên thu hồi công nợ'. Dữ liệu trong trường này giúp doanh nghiệp đo năng suất của từng nhân viên, xác định nhu cầu đào tạo và cân bằng khối lượng công việc. Nhờ đó, trách nhiệm được phân định rõ hơn và nhóm tài chính có thể chuẩn hóa cách thu hồi công nợ. Vì sao điều này quan trọng Thông tin quan trọng để phân tích hiệu suất tài nguyên và cân bằng khối lượng công việc. Lấy dữ liệu ở đâu Oracle Fusion Financials: AR_COLLECTORS.NAME liên kết với hồ sơ khách hàng. Ví dụ John SmithNhóm thu hồi công nợ AJane Doe | |||
| Có làm lại IsRework | Cờ cho biết hóa đơn có trải qua các vòng chỉnh sửa hoặc tranh chấp hay không. | ||
| Mô tả Thuộc tính đúng/sai này xác định hóa đơn có phát sinh hoạt động sửa lỗi hay không, chẳng hạn như 'Credit Memo Issued' hoặc 'Invoice Adjusted'. Thuộc tính hỗ trợ bảng điều khiển 'Credit Memo Volume and Rework'. Xác định các trường hợp phải làm lại giúp tách quy trình diễn ra suôn sẻ khỏi những trường hợp có vấn đề. Tỷ lệ làm lại cao thường là dấu hiệu sớm cho thấy dữ liệu đầu vào trong dữ liệu chủ hoặc quy trình nhập đơn hàng có vấn đề về chất lượng. Vì sao điều này quan trọng Giúp xác định lãng phí và điểm kém hiệu quả trong luồng quy trình. Lấy dữ liệu ở đâu Được tính là True nếu trường hợp có 'Credit Memo Issued' hoặc 'Dispute Case Opened'. Ví dụ truefalse | |||
| Điều khoản thanh toán PaymentTerms | Các điều kiện đã thỏa thuận về thời hạn thanh toán (ví dụ: Net 30). | ||
| Mô tả Thuộc tính này xác định thời hạn thanh toán đã thỏa thuận trong hợp đồng. Thuộc tính được dùng để tính ngày đến hạn và rất cần thiết cho bảng điều khiển 'Collection Strategy Effectiveness'. Sự khác biệt về điều khoản thanh toán giữa các khách hàng có thể lý giải chênh lệch DSO. Thuộc tính này giúp chuyên viên phân tích chuẩn hóa dữ liệu hiệu suất, tránh đánh dấu khách hàng có điều khoản Net 60 là 'thanh toán chậm' khi so với khách hàng có điều khoản Net 30. Vì sao điều này quan trọng Giúp đánh giá tốc độ thanh toán theo thỏa thuận trong hợp đồng. Lấy dữ liệu ở đâu Oracle Fusion Financials: RA_TERMS.NAME Ví dụ Net 30Thanh toán ngay2/10 Net 30Net 60 | |||
| Khu vực Region | Khu vực địa lý gắn với đơn vị kinh doanh hoặc khách hàng. | ||
| Mô tả Thuộc tính này gắn giao dịch với một khu vực địa lý rộng hơn, chẳng hạn như Bắc Mỹ, EMEA hoặc APAC. Thuộc tính hữu ích cho báo cáo tổng quan dành cho lãnh đạo và bảng điều khiển 'DSO and Cash Cycle Trends'. Phân tích theo khu vực giúp tính đến khác biệt về tập quán thanh toán, chẳng hạn như thời hạn thanh toán tiêu chuẩn ở Nam Âu thường dài hơn ở Mỹ. Nhờ đó, doanh nghiệp có thể diễn giải KPI toàn cầu trong đúng bối cảnh địa phương. Vì sao điều này quan trọng Phân nhóm địa lý ở cấp tổng quan để phục vụ báo cáo toàn cầu. Lấy dữ liệu ở đâu Oracle Fusion Financials: được xác định từ đơn vị kinh doanh hoặc địa chỉ khách hàng. Ví dụ Bắc MỹEMEAAPACLATAM | |||
| Lý do tranh chấp DisputeReason | Danh mục hoặc mã lý do được gán khi mở tranh chấp. | ||
| Mô tả Thuộc tính này ghi nhận lý do được cung cấp khi phát sinh hoạt động 'Dispute Case Opened'. Các giá trị thường gặp gồm 'Pricing Error', 'Quantity Mismatch' hoặc 'Damaged Goods'. Phân tích thuộc tính này trong bảng điều khiển 'Dispute Lifecycle and Bottlenecks' giúp xác định nguyên nhân gốc rễ khiến thanh toán bị chậm. Nếu 'Pricing Error' xuất hiện thường xuyên, doanh nghiệp có thể kiểm tra quy trình báo giá bán hàng ở bước trước, thay vì chỉ tập trung vào quy trình thu hồi công nợ. Vì sao điều này quan trọng Cần thiết để phân tích nguyên nhân gốc rễ của việc chậm thanh toán và làm lại. Lấy dữ liệu ở đâu Oracle Fusion Financials: RA_CM_REQUESTS.REASON_CODE hoặc AR_DISPUTE_HISTORY. Ví dụ Tranh chấp về giáLỗi thuếChưa nhận được hàngLập hóa đơn trùng | |||
| Mã tiền tệ CurrencyCode | Loại tiền tệ dùng để thể hiện số tiền trên hóa đơn. | ||
| Mô tả Thuộc tính này xác định loại tiền tệ, chẳng hạn như USD hoặc EUR, của các khoản tiền. Thông tin này cần thiết để hiểu đúng số tiền hóa đơn và quy đổi tiền tệ khi cần báo cáo theo một loại tiền tệ chung. Với doanh nghiệp hoạt động toàn cầu, thuộc tính này giúp phân tích hiệu quả thu hồi công nợ ở các khu vực kinh tế khác nhau và giúp nhóm tài chính tách ảnh hưởng của tỷ giá khỏi hiệu quả vận hành quy trình. Vì sao điều này quan trọng Giúp hiểu đúng giá trị tài chính trong môi trường đa tiền tệ. Lấy dữ liệu ở đâu Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.INVOICE_CURRENCY_CODE Ví dụ USDEURGBPJPY | |||
| Ngày cuối được hưởng chiết khấu DiscountEligibilityDate | Ngày cuối khách hàng có thể thanh toán để được hưởng chiết khấu thanh toán sớm. | ||
| Mô tả Thuộc tính này xác định hạn cuối để khách hàng tận dụng các điều khoản như '2/10 Net 30' (được chiết khấu 2% nếu thanh toán trong vòng 10 ngày). Thuộc tính này cần thiết cho bảng điều khiển 'Early Payment Discount Analytics'. Đối chiếu các khoản thanh toán với ngày này giúp xác định 'Early Payment Discount Capture Rate'. Qua đó, doanh nghiệp biết được chính sách chiết khấu có giúp thu tiền nhanh hơn hay khách hàng không sử dụng ưu đãi. Vì sao điều này quan trọng Hỗ trợ phân tích hiệu quả của ưu đãi và khả năng thu tiền nhanh hơn. Lấy dữ liệu ở đâu Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DISCOUNT_DATE Ví dụ 2023-11-102023-12-05 | |||
| Nguồn tạo CreationSource | Nguồn gốc hóa đơn, cho biết hóa đơn được nhập thủ công hay nhập từ hệ thống khác. | ||
| Mô tả Thuộc tính này cho biết hóa đơn được đưa vào hệ thống Oracle bằng cách nào, chẳng hạn như 'Manual Entry', 'AutoInvoice' hoặc qua các nguồn dữ liệu bên ngoài cụ thể. Đây là trường thay thế cho ánh xạ chung 'Channel'. Thuộc tính này rất quan trọng với bảng điều khiển 'Cash Application Automation Monitor'. Nó giúp phân biệt quy trình hoàn toàn số hóa với quy trình cần thiết lập thủ công. Số lượng lớn hóa đơn có nguồn 'Manual Entry' có thể cho thấy hệ thống chưa được tích hợp với các hệ thống đầu vào hoặc đang có vấn đề. Vì sao điều này quan trọng Cho biết mức độ tự động hóa ở các hệ thống đầu vào và nguồn gốc dữ liệu. Lấy dữ liệu ở đâu Oracle Fusion Financials: RA_BATCH_SOURCES_ALL.NAME Ví dụ AutoInvoiceThủ côngTriển khai dự ánQuản lý đơn hàng | |||
Hoạt động khoản phải thu
| Hoạt động | Mô tả | ||
|---|---|---|---|
| Đã ghi nhận thanh toán một phần | Xảy ra khi khoản thu được áp dụng cho hóa đơn nhưng thấp hơn tổng số dư còn nợ. Hóa đơn vẫn mở nhưng số dư đã giảm. | ||
| Vì sao điều này quan trọng Tần suất cao cho thấy khách hàng thanh toán thành nhiều đợt (KPI Tần suất thanh toán một phần), làm tăng công sức đối soát. Lấy dữ liệu ở đâu Lấy từ AR_RECEIVABLE_APPLICATIONS_ALL, trong đó STATUS = 'APP' và AMOUNT_APPLIED < AMOUNT_DUE_REMAINING. Thu thập Ghi nhận khi giao dịch X được thực thi Loại sự kiện explicit | |||
| Đã nhận đủ tiền thanh toán | Xảy ra khi khoản thu được áp dụng làm số dư hóa đơn giảm về 0. Đây là sự kiện thành công chính của quy trình thu hồi công nợ. | ||
| Vì sao điều này quan trọng Mốc này rất quan trọng để phân tích chiết khấu thanh toán sớm. Thời điểm nhận tiền cho biết khoản thanh toán có nằm trong thời hạn được chiết khấu hay không. Lấy dữ liệu ở đâu Lấy từ AR_RECEIVABLE_APPLICATIONS_ALL, trong đó STATUS = 'APP' và AMOUNT_DUE_REMAINING sau khi áp dụng bằng 0. Thu thập Suy ra bằng cách so sánh trường X với Y Loại sự kiện calculated | |||
| Hóa đơn đã gửi | Đánh dấu việc gửi hóa đơn cho khách hàng qua đường bưu điện, email hoặc XML. Đây là thời điểm bàn giao từ doanh nghiệp sang khách hàng. | ||
| Vì sao điều này quan trọng Mốc này rất quan trọng để đo hiệu quả gửi hóa đơn. Khoảng thời gian từ lúc tạo đến lúc gửi làm chậm trực tiếp chu kỳ thu tiền. Lấy dữ liệu ở đâu Có thể suy ra từ PRINTING_ORIGINAL_DATE trong RA_CUSTOMER_TRX_ALL hoặc nhật ký cụ thể trong Oracle Collaboration Messaging Framework nếu dùng XML. Thu thập So sánh trường trạng thái trước và sau Loại sự kiện inferred | |||
| Hóa đơn đã tất toán | Đây là trạng thái cuối cùng, khi hóa đơn được đóng trong hệ thống, thường do số dư đã về 0 sau khi thanh toán, áp dụng credit memo hoặc điều chỉnh. | ||
| Vì sao điều này quan trọng Thời điểm của sự kiện này được dùng để tính số ngày phải thu bình quân (DSO). Đây là mốc kết thúc của một trường hợp trong quy trình. Lấy dữ liệu ở đâu Xác định khi STATUS trong AR_PAYMENT_SCHEDULES_ALL chuyển thành 'CL' (Closed). Thu thập So sánh trường trạng thái trước và sau Loại sự kiện inferred | |||
| Hóa đơn được tạo | Hoạt động này đánh dấu thời điểm bản ghi hóa đơn được tạo lần đầu trong hệ thống. Thời gian ghi nhận là lúc phần thông tin giao dịch được lưu lần đầu vào các bảng Oracle Receivables. | ||
| Vì sao điều này quan trọng Đây là mốc bắt đầu vòng đời quy trình và cơ sở để tính thời gian tồn đọng. Mốc này cần thiết để tính tổng thời gian xử lý và thời gian từ lúc lập đến khi gửi hóa đơn. Lấy dữ liệu ở đâu Lấy từ bảng RA_CUSTOMER_TRX_ALL, dùng cột CREATION_DATE hoặc TRX_DATE. Thu thập Ghi nhận khi dòng giao dịch được thêm vào Loại sự kiện explicit | |||
| Hóa đơn hoàn tất | Cho biết quy trình tạo hóa đơn đã hoàn tất và hóa đơn sẵn sàng được xử lý, in và ghi sổ. Sự kiện xảy ra khi trạng thái giao dịch chuyển từ chưa hoàn tất sang hoàn tất. | ||
| Vì sao điều này quan trọng Giúp phân biệt thời gian soạn hóa đơn với thời gian xử lý. Chậm trễ ở bước này cho thấy điểm nghẽn trong quy trình lập hóa đơn nội bộ. Lấy dữ liệu ở đâu Xác định khi COMPLETE_FLAG trong RA_CUSTOMER_TRX_ALL chuyển thành 'Y'. Thu thập So sánh trường trạng thái trước và sau Loại sự kiện inferred | |||
| Đã đối chiếu với sao kê ngân hàng | Cho biết khoản thu áp dụng cho hóa đơn đã được đối chiếu với một dòng trên sao kê ngân hàng. Điều này xác nhận tiền đã thực sự vào tài khoản ngân hàng. | ||
| Vì sao điều này quan trọng Đo mức độ tự động hóa việc ghi nhận thanh toán. Khoảng thời gian từ lúc ghi nhận thanh toán đến khi đối chiếu với ngân hàng là khoản tiền chưa được xác nhận. Lấy dữ liệu ở đâu Liên kết AR_CASH_RECEIPTS_ALL với CE_STATEMENT_LINES (Cash Management) qua mã tham chiếu đối soát. Thu thập So sánh trường trạng thái trước và sau Loại sự kiện inferred | |||
| Đã gửi nhắc thanh toán | Ghi nhận việc gửi thư nhắc nợ hoặc nhắc thanh toán cho khách hàng. Sự kiện này do mô-đun Advanced Collections tạo ra. | ||
| Vì sao điều này quan trọng Mốc này cần thiết để phân tích hiệu quả chiến lược thu hồi công nợ. Đối chiếu với các khoản thanh toán giúp xác định cách nhắc nợ nào thu tiền nhanh nhất. Lấy dữ liệu ở đâu Có trong bảng IEX_DUNNING hoặc IEX_STRATEGY_WORK_ITEMS, liên kết với tài khoản khách hàng. Thu thập Ghi nhận khi giao dịch X được thực thi Loại sự kiện explicit | |||
| Đã mở hồ sơ tranh chấp | Đánh dấu thời điểm bắt đầu xử lý tranh chấp chính thức về hóa đơn. Các hoạt động thu hồi công nợ thông thường sẽ tạm dừng trong khi doanh nghiệp điều tra vấn đề. | ||
| Vì sao điều này quan trọng Đây là dấu hiệu quan trọng của điểm nghẽn. Tỷ lệ tranh chấp cao thường cho thấy vấn đề về chất lượng ở khâu thực hiện đơn hàng hoặc độ chính xác của hóa đơn. Lấy dữ liệu ở đâu Xác định qua các bản ghi trong RA_CM_REQUESTS_ALL hoặc workflow yêu cầu credit memo liên kết với hóa đơn. Thu thập Ghi nhận khi giao dịch X được thực thi Loại sự kiện explicit | |||
| Đã nhận cam kết thanh toán | Ghi nhận cam kết của khách hàng sẽ thanh toán một khoản tiền cụ thể vào một ngày cụ thể. Nhân viên thu hồi công nợ thường nhập thông tin này thủ công khi trao đổi với khách hàng. | ||
| Vì sao điều này quan trọng Thông tin quan trọng để phân tích hành vi thanh toán của khách hàng. Khách hàng không giữ lời hứa thanh toán có thể có rủi ro tín dụng cao và phát sinh nợ xấu trong tương lai. Lấy dữ liệu ở đâu Lấy từ bảng IEX_PROMISE_DETAILS trong mô-đun Collections. Thu thập Ghi nhận khi giao dịch X được thực thi Loại sự kiện explicit | |||
| Đã phát hành credit memo | Ghi nhận việc tạo giao dịch credit memo để bù trừ cho hóa đơn. Giao dịch này làm giảm số dư phải trả, thường là để xử lý tranh chấp hoặc hàng trả lại. | ||
| Vì sao điều này quan trọng Theo dõi tỷ lệ phải xử lý lại credit memo và thất thoát doanh thu. Credit memo phát sinh thường xuyên có thể cho thấy lỗi lập hóa đơn mang tính hệ thống. Lấy dữ liệu ở đâu Lấy từ RA_CUSTOMER_TRX_ALL, trong đó TRX_TYPE là Credit Memo và RELATED_CUSTOMER_TRX_ID khớp với hóa đơn. Thu thập Ghi nhận khi giao dịch X được thực thi Loại sự kiện explicit | |||
| Hóa đơn đã điều chỉnh | Ghi nhận các điều chỉnh thủ công đối với số dư hóa đơn, chẳng hạn như xóa khoản dư nhỏ hoặc điều chỉnh tiền tệ. Các điều chỉnh này khác với credit memo. | ||
| Vì sao điều này quan trọng Giúp phát hiện thất thoát doanh thu và các luồng xử lý ngoài quy trình chuẩn, trong đó số dư được tất toán mà không có khoản thanh toán. Lấy dữ liệu ở đâu Lấy từ bảng AR_ADJUSTMENTS_ALL liên kết với hóa đơn. Thu thập Ghi nhận khi giao dịch X được thực thi Loại sự kiện explicit | |||
| Hóa đơn đã xóa nợ | Đây là một loại điều chỉnh cụ thể, áp dụng khi số dư còn lại được xác định là không thể thu hồi và được xóa thành nợ xấu. Đây là trạng thái kết thúc bất lợi. | ||
| Vì sao điều này quan trọng Mốc này rất quan trọng để theo dõi sức khỏe tài chính. Nó giúp phân biệt hiệu quả vận hành, tức tốc độ thanh toán, với vấn đề về chất lượng tín dụng. Lấy dữ liệu ở đâu Lấy từ AR_ADJUSTMENTS_ALL khi loại điều chỉnh được phân loại là 'Write-off' hoặc liên kết với tài khoản nợ xấu. Thu thập Ghi nhận khi giao dịch X được thực thi Loại sự kiện explicit | |||
| Hóa đơn được ghi sổ vào GL | Ghi nhận thời điểm các bút toán kế toán của hóa đơn được hoàn tất và chuyển vào Sổ cái (GL). Việc này giúp đảm bảo tuân thủ tài chính và sẵn sàng khóa sổ kỳ. | ||
| Vì sao điều này quan trọng Dù không ảnh hưởng đến thông tin khách hàng thấy, chậm trễ ở bước này tác động đến chu kỳ khóa sổ và thời điểm lập báo cáo. Lấy dữ liệu ở đâu Lấy từ GL_DATE trong bảng RA_CUST_TRX_LINE_GL_DIST_ALL. Thu thập Ghi nhận khi giao dịch X được thực thi Loại sự kiện explicit | |||
| Tranh chấp đã được giải quyết | Cho biết quá trình điều tra tranh chấp đã kết thúc. Kết quả có thể là phê duyệt credit memo nếu tranh chấp hợp lệ hoặc từ chối nếu tranh chấp không hợp lệ. | ||
| Vì sao điều này quan trọng Cần thiết để tính thời gian giải quyết tranh chấp trung bình. Thời gian xử lý kéo dài ảnh hưởng tiêu cực đến mức độ hài lòng của khách hàng và DSO. Lấy dữ liệu ở đâu Suy ra từ thay đổi trạng thái thành 'APPROVED' hoặc 'REJECTED' trong RA_CM_REQUESTS_ALL. Thu thập So sánh trường trạng thái trước và sau Loại sự kiện inferred | |||
Hướng dẫn trích xuất dữ liệu
Các bước
Mở Oracle BI Cloud Connector (BICC) Console. Chọn mục Manage Offerings and Data Stores.
Cấu hình kết nối lưu trữ. Đảm bảo bạn có kết nối hợp lệ đến Oracle Universal Content Management (UCM) hoặc một Object Storage bên ngoài, chẳng hạn OCI Object Storage, nơi lưu các tệp CSV/Parquet đã trích xuất.
Chọn Financials Offering. Tìm Financials offering để truy cập các View Object Accounts Receivable.
Chọn và cấu hình View Object (VO). Bạn cần chọn các Public View Object (PVO) cụ thể để tạo nhật ký sự kiện. Các PVO cần thiết gồm:
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.TransactionHeaderExtractPVO (tiêu đề hóa đơn)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.TransactionLineExtractPVO (dòng hóa đơn)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.ReceiptApplicationExtractPVO (thanh toán và khoản áp dụng giấy báo có)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.AdjustmentExtractPVO (điều chỉnh và xóa sổ)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.PromiseDetailExtractPVO (cam kết thanh toán)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.StrategyWorkItemExtractPVO (nhắc thanh toán)
Đặt điều kiện lọc (giới hạn dữ liệu). Trong Manage Extract Schedules hoặc cấu hình PVO, đặt bộ lọc theo CreationDate hoặc LastUpdateDate để trích xuất dữ liệu trong khoảng thời gian phân tích (ví dụ: 12 tháng gần nhất).
Lên lịch trích xuất. Tạo lịch chạy hằng ngày cho các tác vụ trích xuất. Chọn Incremental Load để chỉ lấy dữ liệu đã thay đổi sau lần Full Load đầu tiên.
Tải xuống và nhập dữ liệu. Dùng tập lệnh tự động hoặc công cụ tích hợp để lấy tệp từ UCM/Object Storage rồi tải vào các bảng trung gian trong kho dữ liệu (ví dụ: STG_AR_TRX_HEADER, STG_AR_APPLICATIONS).
Áp dụng logic chuyển đổi. Chạy tập lệnh SQL trong phần Query trên các bảng trung gian để làm phẳng dữ liệu quan hệ thành định dạng nhật ký sự kiện ProcessMind.
Xác thực kiểu dữ liệu. Đảm bảo các trường ngày được chuyển thành kiểu datetime và số tiền được xử lý đúng phần thập phân trong quá trình chuyển đổi.
Xuất CSV/Parquet. Xuất tập kết quả cuối cùng từ kho dữ liệu thành một tệp duy nhất.
Tải lên ProcessMind. Nhập tệp, ánh xạ InvoiceNumber với ID trường hợp, ActivityName với Hoạt động và EventStartDateTime với Dấu thời gian.
Cấu hình
- Tần suất trích xuất: Nên chạy hằng ngày theo chế độ Incremental để lấy các thay đổi trạng thái mới nhất.
- Lần tải đầu tiên: Chọn 'Full Extract' cho lần chạy đầu, sau đó chuyển sang 'Incremental' dựa trên Last Update Date.
- PVO chính: TransactionHeaderExtractPVO, ReceiptApplicationExtractPVO, AdjustmentExtractPVO, StrategyWorkItemExtractPVO.
- Lọc theo ngày: Dùng CreationDate >= '202X-01-01' để giới hạn khối lượng dữ liệu.
- Kích thước lô: Mặc định thường là 50000 dòng. Điều chỉnh theo băng thông mạng nếu tải qua UCM.
- Khóa chính: Đảm bảo kho dữ liệu đích xử lý thao tác upsert bằng khóa chính PVO, thường là CustomerTrxId, ReceivableApplicationId, v.v., để tránh trùng dòng.
- Lịch sử kiểm toán: PVO BICC tiêu chuẩn ghi lại trạng thái hiện tại. Để lưu chính xác thời điểm thay đổi trạng thái trong quá khứ, chẳng hạn Dispute Opened, có thể cần bật Audit Policies trong Fusion và trích xuất Audit View Object nếu các bảng giao dịch không lưu lịch sử.
Truy vấn mẫu 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 Các bước
Đăng nhập Oracle Fusion Applications: Chọn Tools > Reports and Analytics. Nhấp Browse Catalog để mở giao diện Oracle BI Publisher.
Tạo mô hình dữ liệu: Nhấp New (góc trên bên trái), rồi chọn Data Model. Đây là nơi chứa logic SQL dùng để trích xuất dữ liệu.
Tạo tập dữ liệu SQL: Trong cây Data Model bên trái, nhấp Data Sets, rồi chọn New Data Set > SQL Query.
Cấu hình nguồn dữ liệu: Đặt tên cho tập dữ liệu (ví dụ:
ProcessMining_AR). ChọnApplicationDB_FSCM(Financials Supply Chain Management) làm nguồn dữ liệu. Nhờ đó, bạn có thể truy cập các bảng AR và RA cần thiết.Dán truy vấn: Sao chép toàn bộ tập lệnh SQL trong phần Query bên dưới rồi dán vào ô SQL Query. Không sửa logic chính, trừ khi bạn cần đổi tên các Flexfield (DFF) cụ thể.
Đặt tham số: Truy vấn có giá trị giữ chỗ
:p_start_dateđể lọc theo ngày tạo giao dịch. Trong thẻ Parameters của Data Model, tạo tham số mới tênp_start_date, đặt Data Type là Date và chọn giá trị mặc định (ví dụ:01-01-2023).Xem dữ liệu: Nhấp thẻ Data, nhập ngày hợp lệ cho tham số rồi nhấp View. Đảm bảo kết quả có các hàng với những cột như
InvoiceNumber,ActivityNamevàEventStartDateTime.Lưu mô hình dữ liệu: Lưu đối tượng trong thư mục Shared Folders > Custom (ví dụ:
/Shared Folders/Custom/ProcessMining/AR_Extract_DM).Lên lịch/xuất dữ liệu: Để trích xuất khối lượng lớn, nhấp Create Report bằng Data Model này. Trong trình chỉnh sửa báo cáo, xác nhận bố cục là một bảng đơn giản rồi lưu báo cáo. Sau đó, dùng Scheduler để chạy báo cáo và xuất dữ liệu dưới dạng CSV hoặc XML.
Định dạng lần cuối: Tải tệp đầu ra xuống. Nếu là CSV, hãy đảm bảo ngày có định dạng thống nhất, ưu tiên ISO 8601. Tải tệp lên ProcessMind và ánh xạ
InvoiceNumbervới ID trường hợp,ActivityNamevới Hoạt động vàEventStartDateTimevới Dấu thời gian.
Cấu hình
- Nguồn dữ liệu: Dùng
ApplicationDB_FSCMđể truy cập các bảng Financials. - Lọc ngày: Truy vấn dùng
ra_customer_trx_all.creation_date >= :p_start_date. Thiết lập để tải dữ liệu theo khoảng thời gian cuốn chiếu, chẳng hạn 12 tháng gần nhất. - Hiệu năng: Với tập dữ liệu có hơn 100,000 hóa đơn, hãy cân nhắc thêm giới hạn
ROWNUMkhi kiểm thử hoặc chia nhỏ việc trích xuất theo tháng. - Lọc đơn vị kinh doanh: Nếu tổ chức có nhiều Business Unit nhưng bạn chỉ cần một đơn vị, hãy bỏ chú thích dòng
AND trx.org_id = ...trong các mệnh đềWhere. - Tên người dùng: Truy vấn tra cứu User Name từ mã người dùng
CREATED_BYquaFND_USER. Đảm bảo tài khoản trích xuất có quyền đọcFND_USER. - Advanced Collections: Các hoạt động 'Payment Reminder Sent' và 'Promise to Pay Received' sử dụng bảng của mô-đun IEX (Advanced Collections). Nếu không dùng mô-đun này, các phần đó sẽ không trả về dòng dữ liệu nào.
Truy vấn mẫu 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 Sẵn sàng bắt đầu?
Áp dụng mẫu này cho môi trường Oracle Fusion để biến dữ liệu tài chính thành thông tin hữu ích cho hành động. Đội ngũ của chúng tôi có thể giúp bạn đối chiếu logic nghiệp vụ riêng với các tiêu chuẩn này.
Đẩy nhanh việc thu hồi khoản phải thu ngay hôm nay
Giảm DSO từ 15 đến 20 ngày và khắc phục ngay các khoảng thiếu hụt dòng tiền.
Không cần thẻ tín dụng. Thiết lập trong 5 phút.