เทมเพลตข้อมูลลูกหนี้การค้าของคุณ
เทมเพลตข้อมูลลูกหนี้การค้าของคุณ
- แอตทริบิวต์ที่แนะนำสำหรับการวิเคราะห์ลูกหนี้การค้า
- กิจกรรมและจุดสำคัญของกระบวนการที่ควรติดตาม
- แนวทางดึงข้อมูลเฉพาะสำหรับ Oracle Fusion Financials
แอตทริบิวต์ลูกหนี้การค้า
| ชื่อ | คำอธิบาย | ||
|---|---|---|---|
| ชื่อกิจกรรม ActivityName | เหตุการณ์หรือการดำเนินการที่เกิดขึ้นในกระบวนการบัญชีลูกหนี้. | ||
| คำอธิบาย แอตทริบิวต์นี้อธิบายขั้นตอนที่เกิดขึ้นในกระบวนการ เช่น การสร้างใบแจ้งหนี้ การบันทึกการชำระเงิน หรือการเปิดข้อโต้แย้ง โดยกำหนดลำดับการทำงานในแผนผังกระบวนการและช่วยให้เห็นลำดับเหตุการณ์. นักวิเคราะห์ใช้ฟิลด์นี้เพื่อระบุรูปแบบกระบวนการ วงจรที่เกิดซ้ำ และคอขวด นอกจากนี้ยังใช้ตรวจสอบการปฏิบัติตามขั้นตอนการทำงานมาตรฐาน และคำนวณความถี่ของเหตุการณ์เฉพาะ เช่น งานแก้ไขหรือการดำเนินการด้วยตนเอง. เหตุผลที่สำคัญ จำเป็นต่อการกำหนดลำดับกระบวนการและแสดงลำดับเหตุการณ์. แหล่งข้อมูล ดึงข้อมูลจากตารางประวัติธุรกรรม เช่น AR_PAYMENT_SCHEDULES_ALL และ RA_CUST_TRX_LINE_GL_DIST_ALL. ตัวอย่าง สร้างใบแจ้งหนี้แล้วส่งการแจ้งเตือนการชำระเงินแล้วบันทึกการชำระเงินบางส่วนแล้วเปิดเคสข้อโต้แย้งแล้ว | |||
| เวลาที่เกิดเหตุการณ์ 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 | |||
| ระบบต้นทาง SourceSystem | ระบบบันทึกข้อมูลต้นทาง. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุสภาพแวดล้อมซอฟต์แวร์ที่ดึงข้อมูลกระบวนการมาใช้ ในกรณีนี้ยืนยันว่าข้อมูลมาจากสภาพแวดล้อม Oracle Fusion Financials. แม้ค่านี้มักไม่เปลี่ยนแปลงเมื่อดึงข้อมูลจากระบบเดียว แต่มีความสำคัญเมื่อนำข้อมูลจาก ERP หลายระบบมารวมกัน หรือเชื่อมต่อเครื่องมือติดตามหนี้จากผู้ให้บริการภายนอก ช่วยให้ตรวจสอบที่มาและติดตามข้อมูลในภาพรวมกระบวนการที่ใช้หลายระบบได้. เหตุผลที่สำคัญ ช่วยตรวจสอบที่มาของข้อมูลและแยกข้อมูลจาก ERP แต่ละระบบ. แหล่งข้อมูล กำหนดค่าไว้ระหว่างการดึงข้อมูลหรือในไปป์ไลน์ข้อมูล. ตัวอย่าง Oracle Fusion FinancialsOracle Cloud ERP - สหรัฐอเมริกาOracle Cloud ERP - EMEA | |||
| อัปเดตข้อมูลล่าสุด LastDataUpdate | เวลาที่ข้อมูลได้รับการรีเฟรชในเครื่องมือ process mining ล่าสุด. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุเวลาที่ซิงโครไนซ์ชุดข้อมูลกับระบบ Oracle ต้นทางครั้งล่าสุด ช่วยให้ผู้ใช้ทราบว่าการวิเคราะห์เป็นข้อมูลล่าสุดเพียงใด และสะท้อนสถานะปัจจุบันของการปฏิบัติงานหรือไม่. ควรติดตามฟิลด์นี้เพื่อให้แน่ใจว่าแดชบอร์ดแสดงข้อมูลล่าสุด โดยเฉพาะเมื่อติดตามการปฏิบัติงาน เช่น ข้อโต้แย้งที่ยังไม่ปิดหรือเงินรับที่ยังไม่ได้นำไปตัดยอด. เหตุผลที่สำคัญ ช่วยให้ทราบความใหม่และความน่าเชื่อถือของข้อมูล. แหล่งข้อมูล เวลาของระบบ ณ ขณะที่ดึงข้อมูล. ตัวอย่าง 2023-11-15T23:59:59Z2023-11-16T00:00:00Z | |||
| กลุ่มลูกค้า CustomerSegment | การจัดประเภทลูกค้าตามขนาด อุตสาหกรรม หรือความเสี่ยง. | ||
| คำอธิบาย แอตทริบิวต์นี้จัดกลุ่มลูกค้า เช่น ลูกค้าเชิงกลยุทธ์ องค์กรขนาดใหญ่ ธุรกิจขนาดกลางและขนาดย่อม หรือกลุ่มเสี่ยงสูง โดยมักได้ข้อมูลจากประเภทหรือประเภทโปรไฟล์ลูกค้าใน Oracle Fusion. แอตทริบิวต์นี้ช่วยวิเคราะห์รูปแบบกระบวนการในแต่ละกลุ่มตลาด เช่น ตรวจสอบว่าลูกค้าเชิงกลยุทธ์ได้รับบริการตามที่กำหนดหรือไม่ หรือมีการติดตามลูกค้ากลุ่มเสี่ยงสูงอย่างใกล้ชิดเพื่อให้ชำระเงินตามข้อกำหนดหรือไม่. เหตุผลที่สำคัญ ช่วยวิเคราะห์กลยุทธ์การติดตามหนี้และความเสี่ยงแยกตามกลุ่มลูกค้า. แหล่งข้อมูล Oracle Fusion Financials: HZ_CUSTOMER_PROFILES.PROFILE_CLASS_ID. ตัวอย่าง องค์กรขนาดใหญ่ธุรกิจขนาดเล็กหน่วยงานภาครัฐความเสี่ยงสูง | |||
| ชื่อเจ้าหน้าที่ติดตามเก็บเงิน CollectorName | ชื่อเจ้าหน้าที่หรือทรัพยากรที่ได้รับมอบหมายให้ดูแลใบแจ้งหนี้. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุพนักงานหรือสมาชิกทีมที่รับผิดชอบติดตามการชำระเงินของใบแจ้งหนี้ เป็นมิติหลักของแดชบอร์ด 'ปริมาณงานของเจ้าหน้าที่ติดตามหนี้'. ข้อมูลในฟิลด์นี้ช่วยให้องค์กรวัดผลิตภาพของเจ้าหน้าที่แต่ละคน ระบุความต้องการด้านการฝึกอบรม และจัดสมดุลภาระงาน อีกทั้งช่วยกำหนดความรับผิดชอบและทำให้ทีมการเงินใช้แนวทางติดตามหนี้ที่เป็นมาตรฐาน. เหตุผลที่สำคัญ ใช้วิเคราะห์ผลการทำงานของทรัพยากรและจัดสมดุลภาระงาน. แหล่งข้อมูล Oracle Fusion Financials: AR_COLLECTORS.NAME ที่เชื่อมโยงกับโปรไฟล์ลูกค้า. ตัวอย่าง John Smithทีมติดตามหนี้ AJane Doe | |||
| ชื่อผู้ใช้ UserName | ผู้ใช้ระบบที่ดำเนินกิจกรรม. | ||
| คำอธิบาย แอตทริบิวต์นี้บันทึกรหัสเข้าสู่ระบบหรือชื่อของผู้ที่ดำเนินกิจกรรมนั้น เช่น ลงรายการใบแจ้งหนี้หรือจับคู่รายการเดินบัญชีธนาคาร โดยแมปกับฟิลด์ทั่วไป 'ผู้ใช้' ข้อมูลนี้จำเป็นต่อการตรวจสอบการปฏิบัติตามข้อกำหนดและแดชบอร์ด 'ปริมาณงานของเจ้าหน้าที่ติดตามหนี้' อีกทั้งยังช่วยแยกการทำงานของระบบ ซึ่งมักใช้ผู้ใช้ชื่อ 'System' ออกจากการทำงานของบุคลากร เพื่อใช้วิเคราะห์การทำงานอัตโนมัติ. เหตุผลที่สำคัญ ช่วยติดตามผลการทำงานรายผู้ใช้และวิเคราะห์การแบ่งแยกหน้าที่. แหล่งข้อมูล Oracle Fusion Financials: คอลัมน์ CREATED_BY หรือ LAST_UPDATED_BY ที่เชื่อมกับตารางผู้ใช้. ตัวอย่าง sysadminjsmithfinance_batch_job | |||
| ชื่อลูกค้า CustomerName | ชื่อหน่วยงานที่เรียกเก็บเงินในรายการธุรกรรม. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุลูกค้าที่เกี่ยวข้องกับใบแจ้งหนี้ เป็นข้อมูลพื้นฐานสำหรับวิเคราะห์พฤติกรรมการชำระเงิน ความถี่ของข้อโต้แย้ง และประสิทธิผลในการติดตามหนี้ของลูกค้าแต่ละราย. นักวิเคราะห์ใช้ฟิลด์นี้เพื่อระบุลูกค้าที่มักชำระเงินล่าช้าหรือยื่นข้อโต้แย้ง ข้อมูลนี้ช่วยในการวิเคราะห์พฤติกรรมการชำระเงินของลูกค้าผ่านแดชบอร์ด และปรับเงื่อนไขเครดิตกับกลยุทธ์การติดตามหนี้ให้เหมาะกับลูกค้าแต่ละราย. เหตุผลที่สำคัญ จำเป็นต่อการวิเคราะห์ลูกค้าและประเมินความเสี่ยง. แหล่งข้อมูล Oracle Fusion Financials: HZ_PARTIES.PARTY_NAME เชื่อมโยงผ่าน BILL_TO_CUSTOMER_ID. ตัวอย่าง Acme CorpGlobex CorporationSoylent Corp | |||
| ทำงานอัตโนมัติหรือไม่ IsAutomated | ระบุว่ากิจกรรมดำเนินการโดยไม่ต้องมีบุคลากรเข้ามาเกี่ยวข้องหรือไม่. | ||
| คำอธิบาย แอตทริบิวต์แบบบูลีนนี้ระบุว่ากิจกรรมดำเนินการโดยกระบวนการของระบบ เช่น AutoInvoice หรือ AutoLockbox หรือโดยผู้ใช้ที่เป็นบุคลากร เป็นตัวชี้วัดหลักของ KPI 'อัตราการทำงานอัตโนมัติของการรับชำระเงิน' การติดตามสัดส่วนกิจกรรมอัตโนมัติต่อกิจกรรมที่ทำด้วยตนเองในแต่ละช่วงเวลา ช่วยให้องค์กรประเมินผลของการเปลี่ยนผ่านสู่ดิจิทัล และระบุขั้นตอนที่ยังต้องทำด้วยตนเอง. เหตุผลที่สำคัญ เป็นตัวชี้วัดหลักสำหรับประเมินการเปลี่ยนผ่านสู่ดิจิทัลและประสิทธิภาพ. แหล่งข้อมูล คำนวณจากตรรกะที่อิงกับ UserName เช่น หาก User == 'BATCH_USER' ให้เป็น true. ตัวอย่าง truefalse | |||
| ประเภทธุรกรรม TransactionType | การจัดประเภทเอกสารลูกหนี้ เช่น ใบแจ้งหนี้ Credit Memo หรือ Debit Memo. | ||
| คำอธิบาย แอตทริบิวต์นี้ใช้แยกประเภทเอกสารทางการเงิน โดยค่าที่พบบ่อย ได้แก่ Invoice, Credit Memo และ Debit Memo ซึ่งจำเป็นต่อแดชบอร์ด 'ปริมาณ Credit Memo และงานแก้ไข'. นักวิเคราะห์สามารถกรองตามแอตทริบิวต์นี้เพื่อแยกวงจรงานแก้ไขที่เกิดจาก Credit Memo หรือดูเฉพาะขั้นตอนการออกใบแจ้งหนี้หลัก ช่วยให้เข้าใจองค์ประกอบของปริมาณงานบัญชีลูกหนี้. เหตุผลที่สำคัญ แยกใบแจ้งหนี้ปกติออกจากรายการปรับปรุงและแก้ไข. แหล่งข้อมูล Oracle Fusion Financials: RA_CUST_TRX_TYPES_ALL.NAME ตัวอย่าง ใบแจ้งหนี้Credit MemoDebit Memoรายการเรียกเก็บเงินกลับ | |||
| ยอดเงินในใบแจ้งหนี้ InvoiceAmount | มูลค่าเงินรวมของใบแจ้งหนี้. | ||
| คำอธิบาย แอตทริบิวต์นี้แสดงยอดเงินต้นที่ต้องชำระตามใบแจ้งหนี้ ใช้เป็นปัจจัยหลักในการถ่วงน้ำหนักการวิเคราะห์หลายประเภท ช่วยให้ธุรกิจจัดลำดับความสำคัญของรายการมูลค่าสูงได้. ในมุมมอง 'เครดิตคงค้างที่ยังไม่ได้นำไปตัดยอดและรายได้ที่สูญเสียไป' ฟิลด์นี้ช่วยประเมินผลกระทบทางการเงินของรายการที่ยังไม่ได้รับการแก้ไข นอกจากนี้ยังใช้คำนวณค่าเฉลี่ย DSO แบบถ่วงน้ำหนัก เพื่อให้เห็นประสิทธิภาพของกระบวนการในมุมมูลค่าทางการเงินมากขึ้น. เหตุผลที่สำคัญ ช่วยแสดงน้ำหนักทางการเงินของการวิเคราะห์และจัดลำดับความสำคัญตามมูลค่า. แหล่งข้อมูล Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.AMOUNT_DUE_ORIGINAL ตัวอย่าง 1500.00250.5010000.00 | |||
| วันครบกำหนดชำระ DueDate | วันที่คาดว่าจะได้รับชำระเงิน. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุกำหนดชำระเงิน ซึ่งคำนวณจากวันที่ในใบแจ้งหนี้และเงื่อนไขการชำระเงิน ใช้เป็นเกณฑ์ตัดสินว่าการชำระเงินล่าช้าหรือไม่ ใช้ใน KPI 'ความคลาดเคลื่อนของเวลาส่งการแจ้งเตือนติดตามหนี้' เพื่อวัดว่าทีมดำเนินการก่อนถึงกำหนดชำระมากน้อยเพียงใด และใช้เป็นเกณฑ์แบ่งลูกหนี้ที่ยังไม่ถึงกำหนดกับลูกหนี้ค้างชำระในรายงานอายุหนี้. เหตุผลที่สำคัญ เป็นเกณฑ์หลักในการพิจารณาการค้างชำระและการชำระตรงเวลา. แหล่งข้อมูล Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DUE_DATE ตัวอย่าง 2023-11-302023-12-152024-01-01 | |||
| หน่วยธุรกิจ BusinessUnit | หน่วยงานภายในองค์กรที่รับผิดชอบใบแจ้งหนี้. | ||
| คำอธิบาย แอตทริบิวต์นี้เชื่อมโยงกับ Organization ID ใน Oracle Fusion ซึ่งระบุหน่วยธุรกิจหรือฝ่ายที่เป็นเจ้าของลูกหนี้ ช่วยแบ่งดูผลการดำเนินงานของกระบวนการในแต่ละส่วนขององค์กร. การเปรียบเทียบ KPI เช่น เวลาแก้ไขข้อโต้แย้งหรือ DSO ระหว่างหน่วยธุรกิจ ช่วยให้ผู้บริหารเห็นว่าทีมใดทำผลงานได้ดีและนำแนวทางที่ได้ผลไปใช้เป็นมาตรฐาน นอกจากนี้ยังช่วยระบุหน่วยงานที่อาจต้องการทรัพยากรเพิ่มเติมหรือปรับกระบวนการใหม่. เหตุผลที่สำคัญ มิติสำคัญสำหรับเปรียบเทียบผลการดำเนินงานระหว่างหน่วยงาน. แหล่งข้อมูล Oracle Fusion Financials: HR_ORGANIZATION_UNITS.NAME เชื่อมโยงผ่าน ORG_ID. ตัวอย่าง ฝ่ายขายฝั่งตะวันออกของสหรัฐฯบริการใน EMEAการผลิตใน APAC | |||
| เงื่อนไขการชำระเงิน PaymentTerms | เงื่อนไขที่ตกลงกันเกี่ยวกับกำหนดเวลาชำระเงิน เช่น Net 30. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุกรอบเวลาชำระเงินตามที่ตกลงไว้ในสัญญา ใช้คำนวณวันครบกำหนดชำระ และจำเป็นต่อแดชบอร์ด 'ประสิทธิผลของกลยุทธ์การติดตามหนี้' เงื่อนไขการชำระเงินที่แตกต่างกันในแต่ละรายอาจอธิบายความแตกต่างของ DSO ได้ แอตทริบิวต์นี้ช่วยให้นักวิเคราะห์ปรับข้อมูลผลการดำเนินงานให้เปรียบเทียบกันได้อย่างเหมาะสม เพื่อไม่ให้ลูกค้าที่มีเงื่อนไข Net 60 ถูกมองว่าจ่ายช้าเมื่อเทียบกับลูกค้าที่มีเงื่อนไข Net 30. เหตุผลที่สำคัญ ช่วยประเมินความเร็วในการชำระเงินโดยคำนึงถึงข้อตกลงตามสัญญา. แหล่งข้อมูล Oracle Fusion Financials: RA_TERMS.NAME ตัวอย่าง Net 30ชำระทันที2/10 Net 30Net 60 | |||
| เป็นงานที่ต้องทำซ้ำหรือไม่ IsRework | ระบุว่าใบแจ้งหนี้ผ่านการแก้ไขหรือวนกลับจากข้อโต้แย้งหรือไม่. | ||
| คำอธิบาย แอตทริบิวต์แบบบูลีนนี้ระบุว่าใบแจ้งหนี้มีขั้นตอนแก้ไขข้อผิดพลาดหรือไม่ เช่น 'ออกใบลดหนี้' หรือ 'ปรับปรุงใบแจ้งหนี้' ใช้ประกอบแดชบอร์ด 'ปริมาณใบลดหนี้และการทำงานซ้ำ' การระบุกรณีที่ต้องทำงานซ้ำช่วยแยกกระบวนการที่เป็นไปตามขั้นตอนปกติออกจากกรณีที่มีปัญหา หากอัตราการทำงานซ้ำสูง อาจเป็นสัญญาณว่าคุณภาพข้อมูลต้นทางในข้อมูลหลักหรือขั้นตอนบันทึกคำสั่งซื้อมีปัญหา. เหตุผลที่สำคัญ ช่วยระบุงานที่สูญเปล่าและความไม่มีประสิทธิภาพในลำดับงานของกระบวนการ. แหล่งข้อมูล คำนวณเป็น True หากกรณีมี 'ออกใบลดหนี้' หรือ 'เปิดกรณีข้อโต้แย้ง'. ตัวอย่าง truefalse | |||
| ภูมิภาค Region | ภูมิภาคทางภูมิศาสตร์ที่เชื่อมโยงกับหน่วยธุรกิจหรือลูกค้า. | ||
| คำอธิบาย แอตทริบิวต์นี้จัดธุรกรรมให้อยู่ในภูมิภาคขนาดใหญ่ เช่น อเมริกาเหนือ EMEA หรือ APAC เหมาะสำหรับรายงานภาพรวมระดับผู้บริหารและแดชบอร์ด 'แนวโน้ม DSO และวงจรเงินสด' การวิเคราะห์ตามภูมิภาคช่วยให้คำนึงถึงความแตกต่างด้านพฤติกรรมการชำระเงิน เช่น เงื่อนไขการชำระเงินมาตรฐานในยุโรปตอนใต้มักนานกว่าในสหรัฐฯ และช่วยให้ตีความ KPI ระดับโลกโดยคำนึงถึงบริบทของแต่ละพื้นที่. เหตุผลที่สำคัญ ช่วยแบ่งข้อมูลตามภูมิภาคในภาพรวมสำหรับรายงานระดับโลก. แหล่งข้อมูล Oracle Fusion Financials: อ้างอิงจากหน่วยธุรกิจหรือที่อยู่ลูกค้า. ตัวอย่าง อเมริกาเหนือEMEAAPACลาตินอเมริกา | |||
| รหัสสกุลเงิน CurrencyCode | สกุลเงินที่ใช้ระบุยอดเงินในใบแจ้งหนี้. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุสกุลเงิน เช่น USD หรือ EUR ของยอดเงินทางการเงิน จำเป็นต่อการแปลความหมายของยอดเงินในใบแจ้งหนี้ให้ถูกต้อง และใช้แปลงสกุลเงินเมื่อต้องการรายงานด้วยสกุลเงินกลาง. สำหรับองค์กรที่ดำเนินงานทั่วโลก แอตทริบิวต์นี้ช่วยวิเคราะห์ประสิทธิภาพการติดตามหนี้ในภูมิภาคเศรษฐกิจต่างๆ และช่วยให้ทีมการเงินแยกผลกระทบจากอัตราแลกเปลี่ยนออกจากผลการดำเนินงานของกระบวนการได้. เหตุผลที่สำคัญ ให้บริบทของมูลค่าทางการเงินในระบบที่ใช้หลายสกุลเงิน. แหล่งข้อมูล Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.INVOICE_CURRENCY_CODE ตัวอย่าง USDEURGBPJPY | |||
| วันที่มีสิทธิ์รับส่วนลด DiscountEligibilityDate | วันสุดท้ายที่ลูกค้าชำระเงินเพื่อรับส่วนลดกรณีชำระก่อนกำหนดได้. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุกำหนดสุดท้ายที่ลูกค้าจะใช้สิทธิ์ตามเงื่อนไข เช่น '2/10 Net 30' (รับส่วนลด 2% หากชำระภายใน 10 วัน) จำเป็นต่อแดชบอร์ด 'วิเคราะห์ส่วนลดสำหรับการชำระเงินก่อนกำหนด' การวิเคราะห์การชำระเงินเทียบกับวันที่นี้ช่วยให้ทราบ 'อัตราการใช้ส่วนลดสำหรับการชำระเงินก่อนกำหนด' และช่วยให้ธุรกิจประเมินได้ว่ากลยุทธ์ส่วนลดช่วยเร่งกระแสเงินสดได้จริงหรือไม่ หรือลูกค้าไม่ได้ใช้สิทธิ์ดังกล่าว. เหตุผลที่สำคัญ ช่วยวิเคราะห์ประสิทธิผลของแรงจูงใจและการเร่งกระแสเงินสด. แหล่งข้อมูล Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DISCOUNT_DATE ตัวอย่าง 2023-11-102023-12-05 | |||
| เหตุผลของข้อโต้แย้ง DisputeReason | หมวดหมู่หรือรหัสเหตุผลที่กำหนดเมื่อเปิดข้อโต้แย้ง. | ||
| คำอธิบาย แอตทริบิวต์นี้บันทึกเหตุผลที่ระบุเมื่อเกิดกิจกรรม 'เปิดกรณีข้อโต้แย้ง' ค่าที่พบบ่อย ได้แก่ 'ราคาผิดพลาด', 'จำนวนไม่ตรง' หรือ 'สินค้าเสียหาย' การวิเคราะห์แอตทริบิวต์นี้ในแดชบอร์ด 'วงจรข้อโต้แย้งและคอขวด' ช่วยให้ทราบสาเหตุที่แท้จริงของการชำระเงินล่าช้า หากพบ 'ราคาผิดพลาด' บ่อย ธุรกิจจะรู้ว่าควรตรวจสอบกระบวนการเสนอราคาขายต้นทาง ไม่ใช่ดูเฉพาะกระบวนการติดตามหนี้. เหตุผลที่สำคัญ สำคัญต่อการวิเคราะห์สาเหตุหลักของการชำระเงินล่าช้าและการทำงานซ้ำ. แหล่งข้อมูล Oracle Fusion Financials: RA_CM_REQUESTS.REASON_CODE หรือ AR_DISPUTE_HISTORY. ตัวอย่าง โต้แย้งราคาข้อผิดพลาดด้านภาษีไม่ได้รับสินค้าเรียกเก็บเงินซ้ำ | |||
| แหล่งที่มาของการสร้าง CreationSource | ที่มาของใบแจ้งหนี้ ระบุว่าสร้างด้วยตนเองหรือนำเข้าจากระบบอื่น. | ||
| คำอธิบาย แอตทริบิวต์นี้แสดงให้เห็นว่าใบแจ้งหนี้เข้าสู่ระบบ Oracle อย่างไร เช่น 'บันทึกด้วยตนเอง', 'AutoInvoice' หรือผ่านฟีดข้อมูลภายนอกที่ระบุไว้โดยเฉพาะ ใช้แทนการแมปทั่วไป 'ช่องทาง' ข้อมูลนี้สำคัญต่อแดชบอร์ด 'ติดตามการทำงานอัตโนมัติของการรับชำระเงิน' เพราะช่วยแยกกระบวนการที่ทำงานแบบดิจิทัลทั้งหมดออกจากกระบวนการที่ต้องตั้งค่าด้วยตนเอง หากมีรายการ 'บันทึกด้วยตนเอง' จำนวนมาก อาจหมายถึงระบบต้นทางยังเชื่อมต่อกันไม่ดีพอ หรือระบบมีข้อจำกัด. เหตุผลที่สำคัญ ใช้ระบุระดับการทำงานอัตโนมัติของระบบต้นทางและแหล่งที่มาของข้อมูล. แหล่งข้อมูล Oracle Fusion Financials: RA_BATCH_SOURCES_ALL.NAME ตัวอย่าง AutoInvoiceด้วยตนเองการนำโครงการไปใช้การจัดการคำสั่งซื้อ | |||
กิจกรรมลูกหนี้การค้า
| กิจกรรม | คำอธิบาย | ||
|---|---|---|---|
| ดำเนินการสร้างใบแจ้งหนี้เสร็จแล้ว | ระบุว่าการสร้างใบแจ้งหนี้เสร็จสิ้นและพร้อมสำหรับดำเนินการ พิมพ์ และบันทึกบัญชี เหตุการณ์นี้เกิดขึ้นเมื่อสถานะรายการธุรกรรมเปลี่ยนจากไม่สมบูรณ์เป็นสมบูรณ์. | ||
| เหตุผลที่สำคัญ ช่วยแยกเวลาร่างเอกสารออกจากเวลาดำเนินการ หากล่าช้าในขั้นตอนนี้ อาจบ่งชี้ถึงคอขวดในกระบวนการจัดทำใบแจ้งหนี้ภายใน. แหล่งข้อมูล ตรวจพบเมื่อ COMPLETE_FLAG ใน RA_CUSTOMER_TRX_ALL เปลี่ยนเป็น 'Y'. บันทึก เปรียบเทียบค่าฟิลด์ก่อนและหลัง ประเภทเหตุการณ์ inferred | |||
| ได้รับชำระเงินครบแล้ว | เกิดขึ้นเมื่อการนำใบเสร็จรับเงินไปตัดยอดทำให้ยอดคงเหลือของใบแจ้งหนี้เป็นศูนย์ นี่คือเหตุการณ์ความสำเร็จหลักของกระบวนการติดตามหนี้. | ||
| เหตุผลที่สำคัญ จำเป็นต่อการวิเคราะห์ส่วนลดเมื่อชำระก่อนกำหนด เวลาที่เกิดเหตุการณ์นี้ใช้ระบุว่าได้รับเงินภายในช่วงเวลาที่มีสิทธิ์รับส่วนลดหรือไม่. แหล่งข้อมูล ดึงข้อมูลจาก AR_RECEIVABLE_APPLICATIONS_ALL โดย STATUS = 'APP' และ AMOUNT_DUE_REMAINING หลังดำเนินการมีค่าเป็น 0. บันทึก อนุมานจากการเปรียบเทียบฟิลด์ X กับ Y ประเภทเหตุการณ์ calculated | |||
| บันทึกการชำระเงินบางส่วนแล้ว | เกิดขึ้นเมื่อมีการนำใบเสร็จรับเงินไปตัดยอดใบแจ้งหนี้ แต่ยอดเงินน้อยกว่ายอดค้างชำระทั้งหมด ทำให้ใบแจ้งหนี้ยังเปิดอยู่และมียอดคงเหลือลดลง. | ||
| เหตุผลที่สำคัญ หากเกิดบ่อย แสดงว่าลูกค้าชำระเงินแยกเป็นหลายครั้ง ซึ่งวัดได้ด้วย KPI ความถี่ในการชำระบางส่วน และทำให้ต้องใช้แรงงานในการกระทบยอดมากขึ้น. แหล่งข้อมูล ดึงข้อมูลจาก AR_RECEIVABLE_APPLICATIONS_ALL โดย STATUS = 'APP' และ AMOUNT_APPLIED < AMOUNT_DUE_REMAINING. บันทึก บันทึกเมื่อดำเนินการธุรกรรม X ประเภทเหตุการณ์ explicit | |||
| ปิดใบแจ้งหนี้แล้ว | สถานะสุดท้ายที่ใบแจ้งหนี้ถูกปิดในระบบ โดยทั่วไปเกิดเมื่อยอดคงเหลือเป็นศูนย์จากการชำระเงิน Credit Memo หรือการปรับปรุง. | ||
| เหตุผลที่สำคัญ ใช้เวลาของเหตุการณ์นี้คำนวณจำนวนวันลูกหนี้การค้าเฉลี่ย (DSO) และระบุจุดสิ้นสุดของกระบวนการแต่ละรายการ. แหล่งข้อมูล ตรวจพบเมื่อ STATUS ใน AR_PAYMENT_SCHEDULES_ALL เปลี่ยนเป็น 'CL' (Closed). บันทึก เปรียบเทียบค่าฟิลด์ก่อนและหลัง ประเภทเหตุการณ์ inferred | |||
| ส่งใบแจ้งหนี้แล้ว | หมายถึงการส่งใบแจ้งหนี้ให้ลูกค้าทางไปรษณีย์ อีเมล หรือ XML ซึ่งเป็นจุดส่งมอบงานจากองค์กรไปยังลูกค้า. | ||
| เหตุผลที่สำคัญ จำเป็นต่อการวัดประสิทธิภาพการส่งใบแจ้งหนี้ ช่วงเวลาระหว่างการสร้างกับการส่งทำให้รอบการจัดเก็บเงินสดล่าช้าโดยตรง. แหล่งข้อมูล อนุมานจาก PRINTING_ORIGINAL_DATE ใน RA_CUSTOMER_TRX_ALL หรือจากบันทึกเฉพาะใน Oracle Collaboration Messaging Framework หากใช้ XML. บันทึก เปรียบเทียบค่าฟิลด์ก่อนและหลัง ประเภทเหตุการณ์ inferred | |||
| สร้างใบแจ้งหนี้แล้ว | กิจกรรมนี้บันทึกการสร้างรายการใบแจ้งหนี้ครั้งแรกในระบบ โดยเก็บเวลาที่บันทึกส่วนหัวของรายการธุรกรรมลงในตาราง Oracle Receivables เป็นครั้งแรก. | ||
| เหตุผลที่สำคัญ ใช้ระบุจุดเริ่มต้นของวงจรกระบวนการและเป็นฐานสำหรับคำนวณอายุรายการ จำเป็นต่อการคำนวณระยะเวลารวมของกระบวนการและระยะเวลาก่อนส่งใบแจ้งหนี้. แหล่งข้อมูล ดึงข้อมูลจากตาราง RA_CUSTOMER_TRX_ALL โดยใช้คอลัมน์ CREATION_DATE หรือ TRX_DATE. บันทึก บันทึกเมื่อมีการเพิ่มแถวรายการธุรกรรม ประเภทเหตุการณ์ explicit | |||
| แก้ไขข้อโต้แย้งแล้ว | ระบุว่าการตรวจสอบข้อโต้แย้งสิ้นสุดลงแล้ว ผลลัพธ์อาจเป็นการอนุมัติ Credit Memo เมื่อข้อโต้แย้งมีมูล หรือการปฏิเสธเมื่อข้อโต้แย้งไม่มีมูล. | ||
| เหตุผลที่สำคัญ จำเป็นต่อการคำนวณเวลาเฉลี่ยในการแก้ไขข้อโต้แย้ง หากใช้เวลานานจะส่งผลเสียต่อความพึงพอใจของลูกค้าและ DSO. แหล่งข้อมูล ได้จากการเปลี่ยนสถานะเป็น 'APPROVED' หรือ 'REJECTED' ใน RA_CM_REQUESTS_ALL. บันทึก เปรียบเทียบค่าฟิลด์ก่อนและหลัง ประเภทเหตุการณ์ inferred | |||
| จับคู่กับรายการเดินบัญชีธนาคารแล้ว | ระบุว่าใบเสร็จรับเงินที่นำไปตัดยอดใบแจ้งหนี้ได้รับการกระทบยอดกับรายการในบัญชีธนาคารแล้ว ซึ่งยืนยันว่าเงินเข้าบัญชีธนาคารจริง. | ||
| เหตุผลที่สำคัญ ใช้วัดระบบอัตโนมัติสำหรับการบันทึกรับชำระเงิน ช่วงเวลาระหว่างการบันทึกการชำระเงินกับการจับคู่รายการธนาคารคือช่วงที่ยังไม่ยืนยันการรับเงิน. แหล่งข้อมูล เชื่อมข้อมูลจาก AR_CASH_RECEIPTS_ALL กับ CE_STATEMENT_LINES (Cash Management) ผ่านข้อมูลอ้างอิงการกระทบยอด. บันทึก เปรียบเทียบค่าฟิลด์ก่อนและหลัง ประเภทเหตุการณ์ inferred | |||
| ได้รับคำมั่นว่าจะชำระเงิน | บันทึกคำมั่นจากลูกค้าว่าจะชำระเงินจำนวนหนึ่งภายในวันที่กำหนด โดยทั่วไปเจ้าหน้าที่ติดตามหนี้จะกรอกข้อมูลนี้ด้วยตนเองระหว่างติดต่อกับลูกค้า. | ||
| เหตุผลที่สำคัญ เป็นข้อมูลสำคัญสำหรับวิเคราะห์พฤติกรรมการชำระเงินของลูกค้า หากลูกค้าผิดนัดตามคำมั่น อาจบ่งชี้ถึงความเสี่ยงด้านเครดิตสูงและโอกาสเกิดหนี้เสียในอนาคต. แหล่งข้อมูล ดึงข้อมูลจากตาราง IEX_PROMISE_DETAILS ในโมดูล Collections. บันทึก บันทึกเมื่อดำเนินการธุรกรรม X ประเภทเหตุการณ์ explicit | |||
| ตัดหนี้สูญของใบแจ้งหนี้แล้ว | การปรับปรุงประเภทหนึ่งที่ถือว่ายอดคงเหลือที่เหลือเรียกเก็บไม่ได้ และตัดเป็นหนี้เสีย ซึ่งเป็นสถานะสิ้นสุดที่ไม่พึงประสงค์. | ||
| เหตุผลที่สำคัญ จำเป็นต่อการติดตามสถานะทางการเงิน ช่วยแยกประสิทธิภาพการปฏิบัติงาน เช่น ความเร็วในการรับชำระเงิน ออกจากปัญหาคุณภาพเครดิต. แหล่งข้อมูล ดึงข้อมูลจาก AR_ADJUSTMENTS_ALL เมื่อประเภทการปรับปรุงจัดเป็น 'Write-off' หรือเชื่อมโยงกับบัญชีหนี้เสีย. บันทึก บันทึกเมื่อดำเนินการธุรกรรม X ประเภทเหตุการณ์ explicit | |||
| บันทึกใบแจ้งหนี้เข้า GL แล้ว | บันทึกเหตุการณ์ที่รายการบัญชีของใบแจ้งหนี้ได้รับการสรุปและโอนไปยังบัญชีแยกประเภททั่วไป เพื่อให้พร้อมสำหรับการปฏิบัติตามข้อกำหนดทางการเงินและการปิดงวดบัญชี. | ||
| เหตุผลที่สำคัญ แม้ความล่าช้าในขั้นตอนนี้จะไม่ส่งผลต่อลูกค้าโดยตรง แต่กระทบต่อรอบการปิดบัญชีและความตรงเวลาของรายงาน. แหล่งข้อมูล ดึงข้อมูลจาก GL_DATE ในตาราง RA_CUST_TRX_LINE_GL_DIST_ALL. บันทึก บันทึกเมื่อดำเนินการธุรกรรม X ประเภทเหตุการณ์ explicit | |||
| ปรับปรุงใบแจ้งหนี้แล้ว | บันทึกการปรับยอดใบแจ้งหนี้ด้วยตนเอง เช่น การตัดหนี้สูญยอดเล็กน้อยหรือการปรับยอดตามสกุลเงิน ซึ่งแยกจาก Credit Memo. | ||
| เหตุผลที่สำคัญ ช่วยค้นหารายได้ที่สูญเสียไปและเส้นทางกระบวนการที่ไม่เป็นมาตรฐาน ซึ่งปิดยอดคงเหลือโดยไม่มีการชำระเงิน. แหล่งข้อมูล ดึงข้อมูลจากตาราง AR_ADJUSTMENTS_ALL ที่เชื่อมโยงกับใบแจ้งหนี้. บันทึก บันทึกเมื่อดำเนินการธุรกรรม X ประเภทเหตุการณ์ explicit | |||
| เปิดเคสข้อโต้แย้งแล้ว | ระบุการเริ่มต้นข้อโต้แย้งอย่างเป็นทางการเกี่ยวกับใบแจ้งหนี้ โดยจะระงับการติดตามหนี้ตามปกติระหว่างตรวจสอบปัญหา. | ||
| เหตุผลที่สำคัญ เป็นตัวชี้วัดคอขวดที่สำคัญ หากมีข้อโต้แย้งจำนวนมาก อาจสะท้อนปัญหาคุณภาพในขั้นตอนก่อนหน้า เช่น การส่งมอบงานหรือความถูกต้องของการเรียกเก็บเงิน. แหล่งข้อมูล ตรวจพบจากรายการใน RA_CM_REQUESTS_ALL หรือเวิร์กโฟลว์ Credit Memo Request ที่เชื่อมโยงกับใบแจ้งหนี้. บันทึก บันทึกเมื่อดำเนินการธุรกรรม X ประเภทเหตุการณ์ explicit | |||
| ส่งการแจ้งเตือนการชำระเงินแล้ว | บันทึกการส่งจดหมายทวงถามหรือการแจ้งเตือนให้ลูกค้าชำระเงิน เหตุการณ์นี้สร้างโดยโมดูล Advanced Collections. | ||
| เหตุผลที่สำคัญ จำเป็นต่อการวิเคราะห์ประสิทธิผลของกลยุทธ์การติดตามหนี้ เมื่อนำข้อมูลนี้ไปเทียบกับการชำระเงิน จะช่วยระบุได้ว่ากลยุทธ์การแจ้งเตือนแบบใดช่วยให้ได้รับเงินคืนเร็วที่สุด. แหล่งข้อมูล อยู่ในตาราง IEX_DUNNING หรือ IEX_STRATEGY_WORK_ITEMS ที่เชื่อมโยงกับบัญชีลูกค้า. บันทึก บันทึกเมื่อดำเนินการธุรกรรม X ประเภทเหตุการณ์ explicit | |||
| ออก Credit Memo แล้ว | บันทึกการสร้างรายการ Credit Memo ที่นำไปหักกับใบแจ้งหนี้ ซึ่งช่วยลดยอดค้างชำระ โดยมักเกิดจากข้อโต้แย้งหรือการคืนสินค้า. | ||
| เหตุผลที่สำคัญ ใช้ติดตามอัตราการแก้ไข Credit Memo และรายได้ที่สูญเสียไป หากมี Credit Memo บ่อยครั้ง อาจบ่งชี้ถึงข้อผิดพลาดในการเรียกเก็บเงินที่เกิดซ้ำในระบบ. แหล่งข้อมูล ดึงข้อมูลจาก RA_CUSTOMER_TRX_ALL โดย TRX_TYPE เป็น Credit Memo และ RELATED_CUSTOMER_TRX_ID ตรงกับใบแจ้งหนี้. บันทึก บันทึกเมื่อดำเนินการธุรกรรม X ประเภทเหตุการณ์ explicit | |||
คู่มือการดึงข้อมูล
ขั้นตอน
เข้าใช้คอนโซล Oracle BI Cloud Connector (BICC) ไปที่ส่วน Manage Offerings and Data Stores
ตั้งค่าการเชื่อมต่อพื้นที่จัดเก็บ ตรวจสอบว่าคุณเชื่อมต่อกับ Oracle Universal Content Management (UCM) หรือ Object Storage ภายนอก เช่น OCI Object Storage ได้แล้ว ซึ่งเป็นที่จัดเก็บไฟล์ CSV/Parquet ที่ดึงออกมา
เลือก Financials Offering ค้นหา Financials offering เพื่อเข้าถึง Accounts Receivable View Objects
เลือกและตั้งค่า View Objects (VOs) คุณต้องเลือก Public View Objects (PVOs) ที่จำเป็นสำหรับสร้างบันทึกเหตุการณ์ PVO ที่จำเป็นมีดังนี้:
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.TransactionHeaderExtractPVO (ส่วนหัวใบแจ้งหนี้)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.TransactionLineExtractPVO (รายการใบแจ้งหนี้)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.ReceiptApplicationExtractPVO (การชำระเงินและการนำใบลดหนี้ไปตัด)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.AdjustmentExtractPVO (รายการปรับปรุงและการตัดหนี้สูญ)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.PromiseDetailExtractPVO (คำมั่นว่าจะชำระเงิน)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.StrategyWorkItemExtractPVO (การติดตามหนี้/การแจ้งเตือน)
กำหนดเงื่อนไขตัวกรอง (Pruning) ใน Manage Extract Schedules หรือการตั้งค่า PVO ให้กำหนดตัวกรองที่ CreationDate หรือ LastUpdateDate เพื่อดึงข้อมูลในช่วงเวลาที่ต้องการวิเคราะห์ เช่น 12 เดือนล่าสุด
ตั้งเวลาการดึงข้อมูล สร้างกำหนดการให้ระบบดึงข้อมูลเหล่านี้ทุกวัน เลือก Incremental Load เพื่อดึงเฉพาะข้อมูลที่เปลี่ยนแปลงหลังจาก Full Load ครั้งแรก
ดาวน์โหลดและนำเข้าข้อมูล ใช้สคริปต์อัตโนมัติหรือเครื่องมือเชื่อมต่อเพื่อรับไฟล์จาก UCM/Object Storage แล้วโหลดลงในตารางเตรียมข้อมูลของคลังข้อมูล เช่น STG_AR_TRX_HEADER และ STG_AR_APPLICATIONS
ใช้ตรรกะการแปลงข้อมูล เรียกใช้สคริปต์ SQL ในส่วน Query กับตารางเตรียมข้อมูล เพื่อแปลงข้อมูลเชิงสัมพันธ์ให้อยู่ในรูปแบบบันทึกเหตุการณ์ของ ProcessMind
ตรวจสอบชนิดข้อมูล ตรวจสอบว่าฟิลด์วันที่ถูกแปลงเป็นชนิด datetime และยอดเงินรองรับทศนิยมได้อย่างถูกต้องระหว่างการแปลง
ส่งออกเป็น CSV/Parquet ส่งออกชุดผลลัพธ์สุดท้ายจากคลังข้อมูลเป็นไฟล์เดียว
อัปโหลดไปยัง ProcessMind นำเข้าไฟล์และจับคู่ InvoiceNumber กับรหัสเคส, ActivityName กับกิจกรรม และ EventStartDateTime กับ Timestamp
การกำหนดค่า
- ความถี่ในการดึงข้อมูล: แนะนำให้ดึงข้อมูลแบบ Incremental ทุกวัน เพื่อให้ได้ข้อมูลสถานะล่าสุด.
- การโหลดครั้งแรก: เลือก 'Full Extract' ในการเรียกใช้ครั้งแรก จากนั้นเปลี่ยนเป็น 'Incremental' โดยอิงตาม Last Update Date.
- PVOs สำคัญ: TransactionHeaderExtractPVO, ReceiptApplicationExtractPVO, AdjustmentExtractPVO, StrategyWorkItemExtractPVO.
- การกรองวันที่: ใช้ตัวกรอง CreationDate >= '202X-01-01' เพื่อลดปริมาณข้อมูล.
- ขนาดการดึงข้อมูล: ค่าเริ่มต้นมักอยู่ที่ 50000 แถว ปรับตามแบนด์วิดท์เครือข่ายหากดาวน์โหลดผ่าน UCM.
- คีย์หลัก: ตรวจสอบว่าคลังข้อมูลปลายทางรองรับการเพิ่มหรือปรับปรุงข้อมูลโดยใช้ PVO Primary Keys ซึ่งมักเป็น CustomerTrxId, ReceivableApplicationId เป็นต้น เพื่อป้องกันแถวข้อมูลซ้ำ.
- ประวัติการตรวจสอบ: PVO มาตรฐานของ BICC บันทึกสถานะปัจจุบัน หากต้องการบันทึกเวลาย้อนหลังของการเปลี่ยนสถานะอย่างแม่นยำ เช่น Dispute Opened อาจต้องเปิดใช้ Audit Policies ใน Fusion และดึง Audit View Objects หากตารางธุรกรรมไม่ได้เก็บประวัติไว้.
ตัวอย่างคำค้น sql
/*
Transformation Script for Oracle BICC Data
Assumes raw BICC PVO CSVs are loaded into a SQL Staging Area with tables named:
- STG_AR_TRX_HEADER (TransactionHeaderExtractPVO)
- STG_AR_APPLICATIONS (ReceiptApplicationExtractPVO)
- STG_AR_ADJUSTMENTS (AdjustmentExtractPVO)
- STG_IEX_PROMISES (PromiseDetailExtractPVO)
- STG_IEX_STRATEGY (StrategyWorkItemExtractPVO)
- STG_CE_STMTS (BankStatementLineExtractPVO - Optional/Advanced)
*/
WITH Base_Log AS (
/* 1. Invoice Created */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Created' AS ActivityName,
CreationDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
(Quantity * UnitSellingPrice) AS InvoiceAmount,
TrxClass AS TransactionType,
CreatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE TrxClass IN ('INV', 'DM')
UNION ALL
/* 2. Invoice Completed */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Completed' AS ActivityName,
TrxDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE CompleteFlag = 'Y'
AND TrxClass IN ('INV', 'DM')
UNION ALL
/* 3. Invoice Dispatched */
/* Using PrintingOriginalDate as proxy for dispatch */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Dispatched' AS ActivityName,
PrintingOriginalDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE PrintingOriginalDate IS NOT NULL
AND TrxClass IN ('INV', 'DM')
UNION ALL
/* 4. Invoice Posted to GL */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Posted to GL' AS ActivityName,
GlDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
'System' AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE GlDate IS NOT NULL
AND TrxClass IN ('INV', 'DM')
UNION ALL
/* 5. Payment Reminder Sent */
/* Links via Customer or Account, mapped back to Trx via Collections Strategy logic */
/* Simplified join assumption based on Trx Id availability in Work Item */
SELECT
H.TrxNumber AS InvoiceNumber,
'Payment Reminder Sent' AS ActivityName,
W.CreationDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
H.TrxClass AS TransactionType,
W.CreatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_IEX_STRATEGY W
JOIN STG_AR_TRX_HEADER H ON W.ObjectPk1 = H.CustomerTrxId
WHERE W.WorkItemTemplateName LIKE '%Reminder%'
UNION ALL
/* 6. Promise to Pay Received */
SELECT
H.TrxNumber AS InvoiceNumber,
'Promise to Pay Received' AS ActivityName,
P.CreationDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
P.PromiseAmount AS InvoiceAmount,
H.TrxClass AS TransactionType,
P.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_IEX_PROMISES P
JOIN STG_AR_TRX_HEADER H ON P.CustTrxId = H.CustomerTrxId
UNION ALL
/* 7. Dispute Case Opened */
/* Triggered when dispute amount is updated/created */
SELECT
TrxNumber AS InvoiceNumber,
'Dispute Case Opened' AS ActivityName,
DisputeDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE DisputeDate IS NOT NULL
UNION ALL
/* 8. Dispute Resolved */
/* Approximated by update date when dispute amount returns to 0 after being positive */
/* Note: Accurate dispute history requires Audit Trail extraction. This is a best-effort proxy based on header state. */
SELECT
TrxNumber AS InvoiceNumber,
'Dispute Resolved' AS ActivityName,
LastUpdateDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE DisputeDate IS NOT NULL AND DisputeAmount = 0
UNION ALL
/* 9. Credit Memo Issued (Applied) */
SELECT
H.TrxNumber AS InvoiceNumber,
'Credit Memo Issued' AS ActivityName,
APP.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
APP.AmountApplied AS InvoiceAmount,
H.TrxClass AS TransactionType,
APP.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_APPLICATIONS APP
JOIN STG_AR_TRX_HEADER H ON APP.AppliedCustomerTrxId = H.CustomerTrxId
WHERE APP.ApplicationType = 'CM' -- Credit Memo application
UNION ALL
/* 10. Partial Payment Posted */
SELECT
H.TrxNumber AS InvoiceNumber,
'Partial Payment Posted' AS ActivityName,
APP.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
APP.AmountApplied AS InvoiceAmount,
H.TrxClass AS TransactionType,
APP.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_APPLICATIONS APP
JOIN STG_AR_TRX_HEADER H ON APP.AppliedCustomerTrxId = H.CustomerTrxId
WHERE APP.ApplicationType = 'CASH'
AND APP.Status = 'APP'
AND (H.AmountDueRemaining > 0) -- Invoice still has balance
UNION ALL
/* 11. Full Payment Received */
SELECT
H.TrxNumber AS InvoiceNumber,
'Full Payment Received' AS ActivityName,
APP.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
APP.AmountApplied AS InvoiceAmount,
H.TrxClass AS TransactionType,
APP.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_APPLICATIONS APP
JOIN STG_AR_TRX_HEADER H ON APP.AppliedCustomerTrxId = H.CustomerTrxId
WHERE APP.ApplicationType = 'CASH'
AND APP.Status = 'APP'
AND H.AmountDueRemaining = 0 -- Invoice fully paid
UNION ALL
/* 12. Bank Statement Matched */
/* Requires joining Receipt Application -> Cash Receipt -> Bank Statement Line */
/* Placeholder logic assuming availability of Bank Statement PVO data */
SELECT
H.TrxNumber AS InvoiceNumber,
'Bank Statement Matched' AS ActivityName,
BSL.StatementDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
BSL.Amount AS InvoiceAmount,
H.TrxClass AS TransactionType,
BSL.CreatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_APPLICATIONS APP
JOIN STG_AR_TRX_HEADER H ON APP.AppliedCustomerTrxId = H.CustomerTrxId
-- Join to Receipt then to Bank Stmt would happen here
JOIN STG_CE_STMTS BSL ON APP.CashReceiptId = BSL.ReferenceId -- Simplified Join
WHERE APP.ApplicationType = 'CASH'
UNION ALL
/* 13. Invoice Adjusted */
SELECT
H.TrxNumber AS InvoiceNumber,
'Invoice Adjusted' AS ActivityName,
ADJ.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
ADJ.Amount AS InvoiceAmount,
H.TrxClass AS TransactionType,
ADJ.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_ADJUSTMENTS ADJ
JOIN STG_AR_TRX_HEADER H ON ADJ.CustomerTrxId = H.CustomerTrxId
WHERE ADJ.AdjustmentType != 'WRITE_OFF'
UNION ALL
/* 14. Invoice Written Off */
SELECT
H.TrxNumber AS InvoiceNumber,
'Invoice Written Off' AS ActivityName,
ADJ.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
ADJ.Amount AS InvoiceAmount,
H.TrxClass AS TransactionType,
ADJ.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_ADJUSTMENTS ADJ
JOIN STG_AR_TRX_HEADER H ON ADJ.CustomerTrxId = H.CustomerTrxId
WHERE ADJ.AdjustmentType = 'WRITE_OFF'
UNION ALL
/* 15. Invoice Cleared */
/* The moment the invoice balance hits 0 */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Cleared' AS ActivityName,
LastUpdateDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE AmountDueRemaining = 0
)
SELECT
InvoiceNumber,
ActivityName,
EventStartDateTime,
SourceSystem,
GETDATE() AS LastDataUpdate,
BusinessUnit,
CustomerName,
Currency,
InvoiceAmount,
TransactionType,
UserName,
IsAutomated
FROM Base_Log
WHERE EventStartDateTime IS NOT NULL
ORDER BY InvoiceNumber, EventStartDateTime ขั้นตอน
เข้าสู่ระบบ Oracle Fusion Applications: ไปที่ Tools > Reports and Analytics แล้วคลิก Browse Catalog เพื่อเปิดอินเทอร์เฟซ Oracle BI Publisher
สร้างโมเดลข้อมูล: คลิก ใหม่ (มุมซ้ายบน) แล้วเลือก Data Model ซึ่งเป็นที่เก็บตรรกะ SQL สำหรับดึงข้อมูล
กำหนดชุดข้อมูล SQL: ในแผนผัง Data Model ทางซ้าย คลิก Data Sets แล้วเลือก New Data Set > SQL Query
กำหนดค่าแหล่งข้อมูล: ตั้งชื่อชุดข้อมูล เช่น
ProcessMining_ARแล้วเลือกApplicationDB_FSCM(Financials Supply Chain Management) เป็นแหล่งข้อมูล เพื่อให้เข้าถึงตาราง AR และ RA ที่จำเป็นวางคิวรี: คัดลอกสคริปต์ SQL ทั้งหมดจากส่วนคิวรีด้านล่าง แล้ววางลงในช่องข้อความ SQL Query อย่าแก้ตรรกะหลัก เว้นแต่ต้องการเปลี่ยนชื่อ Flexfields (DFFs) บางรายการ
กำหนดพารามิเตอร์: คิวรีมีตัวแปรแทนค่า
:p_start_dateสำหรับกรองตามวันที่สร้างธุรกรรม ในแท็บ Parameters ของ Data Model ให้สร้างพารามิเตอร์ชื่อp_start_dateโดยกำหนด Data Type เป็น Date และตั้งค่าเริ่มต้น เช่น01-01-2023ดูข้อมูล: คลิกแท็บ ข้อมูล ป้อนวันที่ที่ถูกต้องให้กับพารามิเตอร์ แล้วคลิก ดู ตรวจสอบว่าผลลัพธ์มีแถวข้อมูลและคอลัมน์ เช่น
InvoiceNumber,ActivityNameและEventStartDateTimeบันทึกโมเดลข้อมูล: บันทึกออบเจ็กต์ไว้ในไดเรกทอรี Shared Folders > กำหนดเอง เช่น
/Shared Folders/Custom/ProcessMining/AR_Extract_DMตั้งเวลาหรือส่งออก: หากต้องการดึงข้อมูลปริมาณมาก ให้คลิก Create Report โดยใช้ Data Model นี้ ในตัวแก้ไขรายงาน ให้ตรวจสอบว่าเค้าโครงเป็นตารางธรรมดา แล้วบันทึกรายงาน จากนั้นใช้ Scheduler เพื่อเรียกใช้รายงานและส่งออกข้อมูลเป็น CSV หรือ XML
จัดรูปแบบขั้นสุดท้าย: ดาวน์โหลดไฟล์ผลลัพธ์ หากเป็น CSV ให้ตรวจสอบว่ารูปแบบวันที่สอดคล้องกัน โดยแนะนำให้ใช้ ISO 8601 อัปโหลดไฟล์ไปยัง ProcessMind แล้วจับคู่
InvoiceNumberกับรหัสเคส,ActivityNameกับกิจกรรม และEventStartDateTimeกับการประทับเวลา
การกำหนดค่า
- แหล่งข้อมูล: ใช้
ApplicationDB_FSCMเพื่อเข้าถึงตาราง Financials. - ตัวกรองวันที่: Query ใช้
ra_customer_trx_all.creation_date >= :p_start_dateตั้งค่าให้โหลดข้อมูลย้อนหลังตามช่วงเวลา เช่น 12 เดือนล่าสุด. - ประสิทธิภาพ: หากชุดข้อมูลมีใบแจ้งหนี้เกิน 100,000 รายการ ให้พิจารณาเพิ่มขีดจำกัด
ROWNUMระหว่างทดสอบ หรือแบ่งการดึงข้อมูลตามเดือน. - การกรอง Business Unit: หากองค์กรมีหลาย Business Unit และต้องการข้อมูลเพียงหน่วยเดียว ให้ยกเลิกการใส่คอมเมนต์บรรทัด
AND trx.org_id = ...ในส่วนWhere. - ชื่อผู้ใช้: Query ใช้
FND_USERเพื่อแปลงรหัสผู้ใช้CREATED_BYเป็นชื่อผู้ใช้ ตรวจสอบว่าผู้ใช้ที่ดึงข้อมูลมีสิทธิ์อ่าน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 นาที.