เทมเพลตข้อมูลสำหรับกระบวนการคืนสินค้าและคืนเงิน
เทมเพลตข้อมูลสำหรับกระบวนการคืนสินค้าและคืนเงิน
- แอตทริบิวต์ที่แนะนำให้เก็บ
- กิจกรรมสำคัญที่ควรติดตาม
- คำแนะนำในการดึงข้อมูล
แอตทริบิวต์สำหรับกระบวนการคืนสินค้าและคืนเงิน
| ชื่อ | คำอธิบาย | ||
|---|---|---|---|
| ชื่อกิจกรรม ActivityName | ชื่อของเหตุการณ์ทางธุรกิจหรือขั้นตอนหนึ่งที่เกิดขึ้นในกระบวนการคืนสินค้า. | ||
| คำอธิบาย แอตทริบิวต์นี้อธิบายการดำเนินการหรือการเปลี่ยนสถานะแต่ละรายการในวงจรการคืนสินค้า เช่น 'สร้างใบสั่งคืนสินค้า' 'บันทึกการรับสินค้าเข้าคลัง' หรือ 'สร้างใบลดหนี้' กิจกรรมเหล่านี้เป็นองค์ประกอบพื้นฐานของแผนผังกระบวนการ. การวิเคราะห์ลำดับและความถี่ของกิจกรรมช่วยระบุเส้นทางกระบวนการที่พบบ่อย ความเบี่ยงเบน และการทำงานซ้ำ ข้อมูลนี้จำเป็นต่อการทำความเข้าใจว่าเกิดอะไรขึ้นในแต่ละกรณีและเกิดขึ้นตามลำดับใด อีกทั้งยังเป็นพื้นฐานของการวิเคราะห์ process mining. เหตุผลที่สำคัญ กิจกรรมแสดงขั้นตอนต่างๆ ในกระบวนการ การวิเคราะห์ลำดับ ระยะเวลา และความถี่ของกิจกรรมเป็นหัวใจของ process mining และช่วยให้เห็นว่างานเกิดขึ้นจริงอย่างไร. แหล่งข้อมูล ได้จากการเปลี่ยนสถานะในตาราง เช่น VBUK/VBUP เหตุการณ์สร้างเอกสารในตาราง เช่น VBAK, LIKP, VBRK หรือบันทึกการเปลี่ยนแปลงในตาราง CDHDR/CDPOS. ตัวอย่าง สร้างคำสั่งคืนสินค้าลงรายการรับสินค้าแล้วสร้างใบลดหนี้ดำเนินการรายการใบสั่งคืนสินค้าครบถ้วน | |||
| รหัสกรณีคืนสินค้า ReturnCaseId | รหัสเฉพาะของคำขอคืนสินค้าจากลูกค้า ใช้เชื่อมโยงกิจกรรมและเอกสารที่เกี่ยวข้องทั้งหมด. | ||
| คำอธิบาย รหัสกรณีคืนสินค้าเป็นคีย์หลักสำหรับติดตามวงจรของกระบวนการคืนสินค้าตั้งแต่เริ่มต้นจนปิดกรณี รหัสแต่ละรายการอ้างอิงการคืนสินค้าของลูกค้าหนึ่งกรณี และเชื่อมโยงเหตุการณ์ที่เกี่ยวข้องทั้งหมด เช่น การสร้างใบสั่ง การจัดส่ง การตรวจสอบ และการดำเนินการเกี่ยวกับใบลดหนี้. ในการวิเคราะห์กระบวนการ แอตทริบิวต์นี้เป็นข้อมูลพื้นฐานสำหรับสร้างแผนผังกระบวนการ ระบบใช้รหัสนี้จัดกลุ่มเหตุการณ์เป็นเส้นทางของแต่ละกรณีตั้งแต่ต้นจนจบ เพื่อวิเคราะห์รูปแบบกระบวนการ ระยะเวลาดำเนินการ และคอขวดของการคืนสินค้าแต่ละกรณี. เหตุผลที่สำคัญ รหัสกรณีนี้เชื่อมโยงทุกขั้นตอนของการคืนสินค้าแต่ละกรณี จึงวิเคราะห์ลำดับงานและประสิทธิภาพตั้งแต่ต้นจนจบได้. แหล่งข้อมูล โดยทั่วไปคือหมายเลขใบสั่งคืนสินค้าจากโมดูลการขายและการจัดจำหน่าย (SD) ดูได้ที่ฟิลด์ VBELN ในตาราง VBAK (ข้อมูลส่วนหัวเอกสารการขาย) โดยหมวดหมู่เอกสาร (VBAK-VBTYP) เป็น 'H' สำหรับการคืนสินค้า. ตัวอย่าง 600001236000045660000789 | |||
| เวลาที่เกิดเหตุการณ์ EventTime | วันที่และเวลาที่กิจกรรมเกิดขึ้นอย่างแม่นยำ. | ||
| คำอธิบาย เวลาประทับนี้ระบุช่วงเวลาที่เหตุการณ์ทางธุรกิจเกิดขึ้นอย่างแม่นยำ ระบบบันทึกเวลาสำหรับทุกกิจกรรมในกระบวนการ เพื่อแสดงลำดับเหตุการณ์ตามเวลาในแต่ละกรณี. เวลาที่เกิดเหตุการณ์จำเป็นต่อการวิเคราะห์ตามเวลา ทั้งการคำนวณระยะเวลาระหว่างกิจกรรม การระบุคอขวดที่เกิดจากการรอ และการวัดระยะเวลารวมของแต่ละกรณี ข้อมูลนี้ช่วยวิเคราะห์ประสิทธิภาพและตรวจสอบการปฏิบัติตามข้อตกลงระดับการให้บริการ (SLA). เหตุผลที่สำคัญ เวลาประทับนี้จำเป็นต่อการคำนวณระยะเวลา วิเคราะห์ประสิทธิภาพกระบวนการ ระบุคอขวด และทำความเข้าใจลำดับเวลาของแต่ละกรณีคืนสินค้า. แหล่งข้อมูล ดึงข้อมูลจากฟิลด์วันที่และเวลาหลายรายการในตาราง SAP สำหรับเหตุการณ์สร้างเอกสาร มักใช้ฟิลด์ ERDAT และ ERZET เช่น ใน VBAK ส่วนเหตุการณ์เปลี่ยนแปลงใช้ UDATE และ UTIME ในตาราง CDHDR. ตัวอย่าง 2023-04-15T10:22:05Z2023-04-16T14:01:30Z2023-04-18T09:15:00Z | |||
| ระบบต้นทาง SourceSystem | ระบบที่ดึงข้อมูลออกมา. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุแหล่งที่มาของข้อมูล ซึ่งจำเป็นในสภาพแวดล้อมที่มีหลายระบบ ช่วยให้เข้าใจบริบทและตรวจสอบที่มาและความถูกต้องของข้อมูลได้. ในการวิเคราะห์ คุณสามารถใช้แอตทริบิวต์นี้แบ่งกลุ่มหรือกรองข้อมูลเมื่อนำกระบวนการจากระบบต้นทางต่างๆ มารวมกัน นอกจากนี้ยังช่วยยืนยันว่าเหตุการณ์มาจากแอปพลิเคชันที่คาดไว้ ซึ่งในกรณีนี้คือ SAP ECC. เหตุผลที่สำคัญ ระบุแหล่งที่มาของข้อมูล ซึ่งสำคัญต่อการกำกับดูแลข้อมูลและการวิเคราะห์ที่ครอบคลุมหลายระบบขององค์กร. แหล่งข้อมูล กำหนดค่าแอตทริบิวต์นี้ไว้ตายตัวระหว่างการดึงข้อมูล เพื่อระบุอินสแตนซ์ SAP ECC ที่ต้องการ เช่น 'ECC_PROD_100'. ตัวอย่าง SAP_ECC_PRODSAPECC_FINANCE_200 | |||
| อัปเดตข้อมูลล่าสุด LastDataUpdate | เวลาประทับที่ระบุว่ามีการรีเฟรชข้อมูลของกระบวนการนี้ครั้งล่าสุดเมื่อใด. | ||
| คำอธิบาย แอตทริบิวต์นี้บันทึกวันที่และเวลาที่ดึงหรืออัปเดตข้อมูลล่าสุด ช่วยให้เห็นว่าข้อมูลที่นำมาวิเคราะห์เป็นข้อมูลใหม่เพียงใด. ข้อมูลนี้ช่วยให้ประเมินความทันเวลาของผลการวิเคราะห์ ผู้ใช้ตรวจสอบได้ว่าข้อมูลเป็นปัจจุบันแค่ไหน ซึ่งส่งผลต่อความเกี่ยวข้องของข้อค้นพบ โดยเฉพาะเมื่อติดตามการปฏิบัติการที่กำลังดำเนินอยู่. เหตุผลที่สำคัญ แสดงความใหม่ของข้อมูล เพื่อให้ผู้ใช้ทราบว่าผลการวิเคราะห์กระบวนการเป็นปัจจุบันเพียงใดและคาดว่าจะอัปเดตครั้งต่อไปเมื่อใด. แหล่งข้อมูล แอตทริบิวต์เมทาดาทานี้บันทึกเวลาที่งานดึงข้อมูลทำงานเสร็จ. ตัวอย่าง 2023-05-20T02:00:00Z2023-05-21T02:00:00Z | |||
| จำนวนเงินคืนจริง ActualRefundAmount | จำนวนเงินสุดท้ายที่คืนให้ลูกค้า ตามที่บันทึกไว้ในเอกสารทางการเงิน. | ||
| คำอธิบาย แอตทริบิวต์นี้แสดงจำนวนเงินคืนสุดท้ายที่ยืนยันและดำเนินการบันทึกในระบบบัญชีแล้ว จำนวนเงินจริงอาจต่างจากจำนวนที่ร้องขอ เนื่องจากค่าธรรมเนียมการนำสินค้ากลับเข้าสต็อก การปรับยอดตามสภาพสินค้า หรือนโยบายอื่นๆ ที่นำมาใช้. แอตทริบิวต์นี้เป็นข้อมูลสำคัญของแดชบอร์ด 'ติดตามส่วนต่างของจำนวนเงินคืน' การเปรียบเทียบกับจำนวนเงินที่ร้องขอช่วยระบุปัญหาเชิงระบบในการคำนวณและอนุมัติเงินคืน เพื่อให้มั่นใจว่าข้อมูลทางการเงินถูกต้อง. เหตุผลที่สำคัญ แสดงผลลัพธ์ทางการเงินสุดท้ายของการคืนสินค้า การเปรียบเทียบกับจำนวนเงินที่ร้องขอช่วยตรวจสอบความถูกต้องและระบุการสูญเสียทางการเงิน. แหล่งข้อมูล ดึงข้อมูลจากเอกสารทางการเงินที่เชื่อมโยงกับใบลดหนี้ โดยทั่วไปดูได้ที่ฟิลด์ WRBTR (จำนวนเงินในสกุลเงินของเอกสาร) ในตาราง BSEG (รายการเอกสารบัญชี) สำหรับรายการบัญชีแยกประเภททั่วไปที่เกี่ยวข้อง. ตัวอย่าง 150.0045.001200.75 | |||
| จำนวนเงินคืนที่ร้องขอ RequestedRefundAmount | จำนวนเงินคืนที่คาดว่าจะได้รับ โดยทั่วไปคำนวณจากมูลค่าสุทธิของสินค้าที่ส่งคืน. | ||
| คำอธิบาย แอตทริบิวต์นี้แสดงมูลค่าเริ่มต้นของการคืนสินค้าเป็นตัวเงินตามที่บันทึกไว้ในใบสั่งคืนสินค้า ใช้เป็นฐานสำหรับการวิเคราะห์และกระทบยอดทางการเงิน. นำจำนวนนี้ไปเปรียบเทียบกับ 'จำนวนเงินคืนจริง' เพื่อติดตามส่วนต่าง ซึ่งเป็นตัวชี้วัดสำคัญของแดชบอร์ด 'ติดตามส่วนต่างของจำนวนเงินคืน' การวิเคราะห์ค่านี้ช่วยติดตามผลกระทบทางการเงินจากการคืนสินค้า และระบุปัญหาที่อาจเกิดขึ้นในการกำหนดราคาหรือคำนวณเครดิต. เหตุผลที่สำคัญ ระบุมูลค่าทางการเงินเริ่มต้นของการคืนสินค้า ซึ่งจำเป็นต่อการติดตามส่วนต่างทางการเงินและทำความเข้าใจมูลค่ารวมของสินค้าที่ส่งคืน. แหล่งข้อมูล โดยทั่วไปค่านี้คือมูลค่าสุทธิในระดับรายการของใบสั่งคืนสินค้า ดูได้ที่ฟิลด์ NETWR ในตาราง VBAP. ตัวอย่าง 150.0049.991250.75 | |||
| ช่องทางการคืนสินค้า ReturnChannel | ช่องทางที่ลูกค้าใช้เริ่มการคืนสินค้า เช่น ออนไลน์ หน้าร้าน หรือศูนย์บริการลูกค้า. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุแหล่งที่มาหรือช่องทางที่รับคำขอคืนสินค้า ช่วยแยกคำขอที่เริ่มผ่านเว็บพอร์ทัล หน้าร้าน หรือเจ้าหน้าที่บริการลูกค้า. การแบ่งกลุ่มกระบวนการตามช่องทางการคืนสินค้าสำคัญต่อการทำความเข้าใจความแตกต่างในการปฏิบัติการและการจัดสรรทรัพยากร ตัวอย่างเช่น การคืนสินค้าที่หน้าร้านอาจตรวจสอบได้เร็วกว่า แต่มีขั้นตอนจัดทำเอกสารต่างจากการคืนสินค้าออนไลน์ ข้อมูลนี้เป็นมิติสำคัญของแดชบอร์ด 'แนวโน้มปริมาณงานในกระบวนการคืนสินค้า'. เหตุผลที่สำคัญ แสดงช่องทางที่ใช้เริ่มการคืนสินค้า ซึ่งมักส่งผลต่อขั้นตอนการทำงาน ความต้องการทรัพยากร และระยะเวลาดำเนินการของแต่ละช่องทาง. แหล่งข้อมูล โดยทั่วไป SAP ECC ไม่มีฟิลด์มาตรฐานสำหรับข้อมูลนี้ คุณอาจต้องดึงจากฟิลด์ที่กำหนดเอง เช่น ใน VBAK หรืออนุมานจากข้อมูลอื่น เช่น องค์กรฝ่ายขาย (VKORG) หรือช่องทางการจัดจำหน่าย (VTWEG) โปรดตรวจสอบเอกสาร SAP ECC เพื่อดูรายละเอียดการติดตั้งใช้งาน. ตัวอย่าง เว็บพอร์ทัลหน้าร้านศูนย์บริการลูกค้า | |||
| ผู้ดำเนินการ ProcessingAgent | รหัสผู้ใช้ของพนักงานที่ทำกิจกรรม. | ||
| คำอธิบาย แอตทริบิวต์นี้บันทึกชื่อผู้ใช้ของผู้รับผิดชอบขั้นตอนหนึ่งในกระบวนการ เช่น การสร้างใบสั่งคืนสินค้าหรือบันทึกการรับสินค้าเข้าคลัง โดยมักเรียกผู้ใช้นี้ว่า 'ผู้เปลี่ยนแปลง' หรือ 'ผู้สร้าง'. การวิเคราะห์ตามผู้ดำเนินการช่วยจัดการประสิทธิภาพและวิเคราะห์ทรัพยากร คุณสามารถระบุผู้ที่ทำงานได้ดี ผู้ที่อาจต้องได้รับการฝึกอบรมเพิ่มเติม และการกระจายภาระงานในทีมได้ นอกจากนี้ยังใช้ในแดชบอร์ด เช่น 'ประสิทธิภาพการดำเนินการคืนสินค้าของเจ้าหน้าที่' เพื่อเปรียบเทียบระยะเวลาดำเนินการและปริมาณงานที่ทำเสร็จ. เหตุผลที่สำคัญ ติดตามการมีส่วนร่วมของผู้ใช้ เพื่อวิเคราะห์ประสิทธิภาพทีม การกระจายภาระงาน และระบุความต้องการฝึกอบรมหรือแนวทางปฏิบัติที่ดี. แหล่งข้อมูล โดยทั่วไปพบในฟิลด์ ERNAM (ผู้สร้าง) หรือ AENAM (ผู้เปลี่ยนแปลง) ในตารางส่วนหัว เช่น VBAK, LIKP, VBRK สำหรับเหตุการณ์เปลี่ยนแปลง ใช้ USERNAME ใน CDHDR. ตัวอย่าง CBURNSDSCRANTONJHALPERT | |||
| หมายเลขวัสดุ MaterialNumber | รหัสเฉพาะของสินค้าที่ส่งคืน. | ||
| คำอธิบาย หมายเลขวัสดุหรือ SKU ระบุสินค้าที่เกี่ยวข้องกับการคืนสินค้าได้อย่างชัดเจน จึงวิเคราะห์ข้อมูลในระดับสินค้าได้ละเอียด. เมื่อวิเคราะห์การคืนสินค้าตามหมายเลขวัสดุ ธุรกิจจะพบสินค้าที่มีอัตราการคืนสูง ซึ่งอาจบ่งชี้ถึงปัญหาคุณภาพ คำอธิบายสินค้าไม่ถูกต้อง หรือข้อบกพร่องจากการผลิต ข้อมูลนี้จำเป็นต่อแดชบอร์ด เช่น 'ผลกระทบของการคืนสินค้าต่อสินค้าคงคลัง' และช่วยให้เข้าใจว่าสินค้าแต่ละประเภทผ่านขั้นตอนใดบ้างในกระบวนการคืนสินค้า. เหตุผลที่สำคัญ ระบุสินค้าที่มีการส่งคืน ช่วยให้เห็นปัญหาที่อาจเกิดขึ้นในการควบคุมคุณภาพหรือคำอธิบายสินค้าที่ไม่ถูกต้อง. แหล่งข้อมูล ดูได้ที่ฟิลด์ MATNR ในตารางรายการเอกสารการขาย VBAP. ตัวอย่าง RM-1025FG-2050-BACC-5591 | |||
| เหตุผลในการคืนสินค้า ReturnReason | รหัสเหตุผลที่ลูกค้าแจ้งเมื่อต้องการคืนสินค้า. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุเหตุผลที่ลูกค้าคืนสินค้า โดยใช้รหัสเหตุผลที่กำหนดไว้ใน SAP เช่น 'เสียหายระหว่างขนส่ง' 'จัดส่งสินค้าผิด' หรือ 'ขนาดไม่พอดี'. ข้อมูลนี้เป็นมิติสำคัญสำหรับการวิเคราะห์หาสาเหตุหลัก นักวิเคราะห์สามารถกรองแผนผังกระบวนการหรือ KPI ตามเหตุผลในการคืนสินค้า เพื่อดูว่าเหตุผลใดสัมพันธ์กับระยะเวลาดำเนินการที่นานขึ้น อัตราการตรวจสอบไม่ผ่านที่สูงขึ้น หรือความเบี่ยงเบนในกระบวนการ ข้อมูลเชิงลึกนี้ช่วยปรับปรุงคุณภาพสินค้า โลจิสติกส์ หรือกระบวนการขายได้. เหตุผลที่สำคัญ อธิบายสาเหตุของการคืนสินค้า ช่วยวิเคราะห์หาสาเหตุหลักและลดอัตราการคืนสินค้าได้ด้วยการแก้ไขปัญหาคุณภาพสินค้า การจัดส่ง หรือคำอธิบายสินค้า. แหล่งข้อมูล ดูได้ที่ฟิลด์ ABGRU (เหตุผลในการปฏิเสธเอกสารการขาย) ในตารางรายการเอกสารการขาย VBAP. ตัวอย่าง 001 - สินค้าเสียหาย002 - สินค้าผิดรายการ005 - สินค้ามาถึงล่าช้า | |||
| การปฏิบัติตามนโยบายการคืนสินค้า ReturnPolicyAdherence | ตัวบ่งชี้ว่าการคืนสินค้าเป็นไปตามกฎและนโยบายทางธุรกิจที่กำหนดไว้ทั้งหมดหรือไม่. | ||
| คำอธิบาย แอตทริบิวต์บูลีนที่คำนวณนี้ระบุว่ากรณีคืนสินค้าดำเนินการตามนโยบายมาตรฐานของบริษัทหรือไม่ เงื่อนไขอาจตรวจสอบหลายข้อ เช่น เริ่มคืนสินค้าภายในระยะเวลาที่อนุญาตหรือไม่ รหัสเหตุผลใช้ได้กับสินค้าหรือไม่ หรือได้รับอนุมัติจากผู้จัดการเมื่อมีข้อยกเว้นหรือไม่. แอตทริบิวต์นี้ใช้ในแดชบอร์ด 'การปฏิบัติตามนโยบายอนุมัติการคืนสินค้า' ช่วยวัดอัตราการปฏิบัติตามข้อกำหนดโดยตรง และระบุนโยบายที่มักถูกละเว้น เพื่อให้ปรับปรุงกระบวนการหรือจัดการฝึกอบรมได้ตรงจุด. เหตุผลที่สำคัญ วัดการปฏิบัติตามกฎทางธุรกิจ ช่วยให้ใช้นโยบายอย่างสม่ำเสมอและระบุกรณีที่ต้องตรวจสอบหรือขออนุมัติเป็นพิเศษ. แหล่งข้อมูล แอตทริบิวต์นี้ได้จากชุดกฎทางธุรกิจ ตัวอย่างเช่น (วันที่เริ่มคืนสินค้า - วันที่ซื้อสินค้าเดิม) <= 30 วัน AND ReturnReason IS NOT NULL. ตัวอย่าง truefalse | |||
| เป็นไปตาม SLA หรือไม่ IsSLACompliant | ตัวบ่งชี้ว่าดำเนินการคืนเงินภายในเวลาที่ตกลงไว้ในข้อตกลงระดับการให้บริการ (SLA) หรือไม่. | ||
| คำอธิบาย แอตทริบิวต์บูลีนที่คำนวณโดยเปรียบเทียบวันที่เกิดกิจกรรม 'ดำเนินการคืนเงินแล้ว' กับ 'วันที่เป้าหมาย SLA สำหรับการคืนเงิน' หากคืนเงินเสร็จตรงเวลา ค่าจะเป็น true หากไม่ตรงเวลา ค่าจะเป็น false. แอตทริบิวต์นี้ช่วยให้วิเคราะห์และจัดทำรายงานได้ง่ายขึ้น โดยแสดงผลการดำเนินงานตาม SLA ของแต่ละกรณีเป็นสองสถานะอย่างชัดเจน ใช้คำนวณอัตรา 'การปฏิบัติตาม SLA ในการดำเนินการคืนเงิน' โดยรวม และกรองเพื่อแยกกรณีที่ไม่เป็นไปตาม SLA มาวิเคราะห์ได้สะดวก. เหตุผลที่สำคัญ แสดงผลการดำเนินงานตาม SLA ของแต่ละกรณีอย่างชัดเจนเป็นสองสถานะ ช่วยให้ติดตามและรายงานการปฏิบัติตามข้อกำหนดได้ง่ายขึ้น. แหล่งข้อมูล แอตทริบิวต์นี้คำนวณจากเงื่อนไข: EventTime ของ 'ดำเนินการคืนเงินแล้ว' <= RefundSLATargetDate. ตัวอย่าง truefalse | |||
| รหัสบริษัท CompanyCode | นิติบุคคลหรือบริษัทที่รับผิดชอบรายการธุรกรรม. | ||
| คำอธิบาย รหัสบริษัทแสดงหน่วยบัญชีที่แยกจากกันภายใน SAP รายการทางการเงินทั้งหมด รวมถึงการคืนสินค้าและการคืนเงิน จะบันทึกภายใต้รหัสบริษัทที่ระบุ. แอตทริบิวต์นี้จำเป็นต่อการจัดทำรายงานทางการเงินและแบ่งกลุ่มกระบวนการในองค์กรที่มีหลายประเทศหรือหลายนิติบุคคล การวิเคราะห์ตามรหัสบริษัทช่วยเปรียบเทียบประสิทธิภาพของกระบวนการคืนสินค้าระหว่างนิติบุคคลต่างๆ ในองค์กรได้. เหตุผลที่สำคัญ ช่วยกรองและเปรียบเทียบกระบวนการคืนสินค้าระหว่างนิติบุคคลต่างๆ ในองค์กร ซึ่งสำคัญต่อการวิเคราะห์ทางการเงิน. แหล่งข้อมูล ดูได้ที่ฟิลด์ BUKRS_VF (รหัสบริษัทสำหรับการเรียกเก็บเงิน) ในตารางส่วนหัวเอกสารการขาย VBAK. ตัวอย่าง 10002000US01 | |||
| รหัสลูกค้า CustomerId | รหัสเฉพาะของลูกค้าที่เริ่มคำขอคืนสินค้า. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุลูกค้าเฉพาะรายที่ส่งคืนสินค้า ซึ่งใน SAP เรียกว่า 'ผู้ซื้อสินค้า' และเชื่อมโยงรายการคืนสินค้ากับข้อมูลหลักของลูกค้า. การวิเคราะห์ตามรหัสลูกค้าช่วยระบุลูกค้าที่คืนสินค้าบ่อย ซึ่งอาจบ่งชี้ถึงความไม่พอใจหรือการใช้สิทธิ์คืนสินค้าในทางที่ไม่เหมาะสม เมื่อนำไปใช้ร่วมกับข้อมูลการแบ่งกลุ่มลูกค้า ยังช่วยให้เข้าใจว่าลูกค้าแต่ละกลุ่มมีพฤติกรรมการคืนสินค้าหรือประสบการณ์ในกระบวนการแตกต่างกันหรือไม่. เหตุผลที่สำคัญ เชื่อมโยงการคืนสินค้ากับลูกค้าแต่ละราย เพื่อวิเคราะห์พฤติกรรม ระบุลูกค้าที่คืนสินค้าซ้ำ และประเมินผลกระทบต่อความสัมพันธ์กับลูกค้า. แหล่งข้อมูล ดูได้ที่ฟิลด์ KUNNR (ผู้ซื้อสินค้า) ในตารางส่วนหัวเอกสารการขาย VBAK. ตัวอย่าง CUST-100432CUST-203991CUST-831102 | |||
| วันที่เป้าหมาย SLA สำหรับการคืนเงิน RefundSLATargetDate | วันที่คาดว่าจะดำเนินการคืนเงินเสร็จตามข้อตกลงระดับการให้บริการ. | ||
| คำอธิบาย แอตทริบิวต์นี้กำหนดกำหนดเวลาที่ต้องดำเนินการคืนเงินให้เสร็จสำหรับกรณีคืนสินค้าแต่ละรายการ โดยทั่วไปคำนวณตามกฎทางธุรกิจ เช่น 'ภายใน 5 วันทำการนับจากวันที่รับสินค้า'. วันที่เป้าหมายนี้ใช้เป็นเกณฑ์วัดผลการดำเนินงานจริง และเป็นองค์ประกอบหลักของแดชบอร์ด 'การปฏิบัติตาม SLA ในการดำเนินการคืนเงิน' ช่วยให้ธุรกิจติดตามการทำตามคำมั่นที่ให้ไว้กับลูกค้า และระบุกรณีที่เสี่ยงเกินกำหนด SLA. เหตุผลที่สำคัญ กำหนดเป้าหมายการดำเนินการคืนเงิน ช่วยให้ธุรกิจวัดและรายงานการปฏิบัติตาม SLA พร้อมจัดลำดับความสำคัญของกรณีที่เกินกำหนด. แหล่งข้อมูล โดยทั่วไป SAP ไม่มีฟิลด์มาตรฐานสำหรับข้อมูลนี้ จึงต้องคำนวณตามกฎทางธุรกิจ เช่น นำระยะเวลาที่กำหนดไว้บวกกับวันที่สำคัญ (เช่น วันที่รับสินค้าใน MKPF) โปรดตรวจสอบเอกสาร SAP ECC หรือข้อกำหนดทางธุรกิจ. ตัวอย่าง 2023-04-25T23:59:59Z2023-04-28T23:59:59Z2023-05-02T23:59:59Z | |||
| สถานที่ปฏิบัติงาน Plant | สถานที่หรือพื้นที่ปฏิบัติงานจริงที่รับและดำเนินการกับสินค้าที่ส่งคืน. | ||
| คำอธิบาย Plant ใน SAP หมายถึงสถานที่จริง เช่น คลังสินค้าหรือศูนย์กระจายสินค้า ที่ใช้จัดการสินค้า สำหรับการคืนสินค้า โดยทั่วไปหมายถึงสถานที่รับและตรวจสอบสินค้า. การวิเคราะห์กระบวนการตาม Plant ช่วยระบุความแตกต่างด้านประสิทธิภาพระหว่างสถานที่แต่ละแห่ง และชี้ให้เห็นว่าคลังสินค้าใดตรวจสอบสินค้าได้มีประสิทธิภาพหรือรองรับปริมาณงานได้มากกว่า ข้อมูลนี้ช่วยประกอบการตัดสินใจในแดชบอร์ด 'ปริมาณงานและประสิทธิภาพการตรวจสอบสินค้า'. เหตุผลที่สำคัญ ระบุสถานที่ที่ดำเนินการคืนสินค้า เพื่อเปรียบเทียบประสิทธิภาพระหว่างคลังสินค้าหรือศูนย์กระจายสินค้า. แหล่งข้อมูล ดูได้ที่ระดับรายการของใบสั่งคืนสินค้า ในฟิลด์ WERKS ของตาราง VBAP. ตัวอย่าง PL01WH02DC05 | |||
| สถานะใบสั่งคืนสินค้า ReturnOrderStatus | สถานะการดำเนินการโดยรวมของกรณีใบสั่งคืนสินค้า. | ||
| คำอธิบาย แอตทริบิวต์นี้แสดงสถานะปัจจุบันของกรณีคืนสินค้า เช่น 'เปิด' 'กำลังดำเนินการ' หรือ 'เสร็จสิ้น' โดยคำนวณจากสถานะระดับส่วนหัวหรือระดับรายการของเอกสารการขาย. ในการวิเคราะห์ คุณสามารถใช้แอตทริบิวต์นี้กรองกรณีเพื่อดูรายการคืนสินค้าที่ยังดำเนินการอยู่หรือเสร็จสิ้นแล้ว นอกจากนี้ยังช่วยติดตามภาระงานและความคืบหน้าของกรณีที่เปิดอยู่ พร้อมแสดงผลลัพธ์โดยรวมของการคืนสินค้าแต่ละกรณี. เหตุผลที่สำคัญ แสดงภาพรวมว่ากรณีอยู่ในขั้นตอนใดของวงจร ช่วยกรองและวิเคราะห์การคืนสินค้าที่เปิดอยู่ กำลังดำเนินการ หรือปิดแล้ว. แหล่งข้อมูล ได้จากฟิลด์สถานะในตาราง VBUK (สถานะส่วนหัว) และ VBUP (สถานะรายการ) ตัวอย่างเช่น VBUK-GBSTK คือสถานะการดำเนินการโดยรวมของเอกสาร. ตัวอย่าง เปิดอยู่กำลังดำเนินการเสร็จสิ้น | |||
| ส่วนต่างของจำนวนเงินคืน RefundAmountDiscrepancy | ผลต่างที่คำนวณระหว่างจำนวนเงินคืนจริงกับจำนวนเงินที่ร้องขอ. | ||
| คำอธิบาย ตัวชี้วัดที่คำนวณนี้แสดงส่วนต่างระหว่างจำนวนเงินที่ร้องขอไว้ในใบสั่งคืนสินค้า กับจำนวนเงินที่ออกให้จริงในใบลดหนี้ ค่าบวกอาจหมายถึงการคืนเงินบางส่วน ส่วนค่าลบพบได้ไม่บ่อย แต่อาจหมายถึงการจ่ายเงินเกิน. แอตทริบิวต์นี้เป็นตัวชี้วัดหลักของแดชบอร์ด 'ติดตามส่วนต่างของจำนวนเงินคืน' ช่วยระบุและวิเคราะห์กรณีที่มีส่วนต่างทางการเงินได้อย่างรวดเร็ว ซึ่งอาจเกิดจากการประเมินสภาพสินค้า ค่าธรรมเนียมการนำสินค้ากลับเข้าสต็อก หรือข้อผิดพลาด การติดตามข้อมูลนี้ช่วยควบคุมการเงินและให้ปฏิบัติตามนโยบาย. เหตุผลที่สำคัญ วัดความคลาดเคลื่อนทางการเงินในกระบวนการคืนเงินโดยตรง ช่วยระบุการไม่ปฏิบัติตามนโยบาย ข้อผิดพลาดในการดำเนินการ หรือการสูญเสียทางการเงิน. แหล่งข้อมูล ฟิลด์คำนวณ: ActualRefundAmount - RequestedRefundAmount. ตัวอย่าง 0.00-4.99-50.00 | |||
| หมายเลขใบลดหนี้ CreditMemoNumber | รหัสเฉพาะของเอกสารใบลดหนี้ที่ออกเพื่อคืนเงิน. | ||
| คำอธิบาย ใบลดหนี้เป็นเอกสารเรียกเก็บเงินอย่างเป็นทางการใน SAP ที่ระบุจำนวนเงินคืนให้ลูกค้า หมายเลขนี้ใช้ระบุเอกสารทางการเงินดังกล่าวโดยเฉพาะ. แอตทริบิวต์นี้จำเป็นต่อการกระทบยอดทางการเงินและติดตามกระบวนการตั้งแต่การคืนสินค้าในขั้นตอนปฏิบัติการจนถึงการชำระบัญชีทางการเงิน นอกจากนี้ยังเป็นหมุดหมายสำคัญในกระบวนการ และใช้ค้นหาเอกสารบัญชีที่เกี่ยวข้องกับแอตทริบิวต์ เช่น 'จำนวนเงินคืนจริง'. เหตุผลที่สำคัญ เชื่อมโยงโดยตรงกับเอกสารทางการเงินที่อนุมัติการคืนเงินให้ลูกค้า ซึ่งจำเป็นต่อการตรวจสอบและกระทบยอดทางการเงิน. แหล่งข้อมูล ใบลดหนี้เป็นเอกสารเรียกเก็บเงิน หมายเลขเอกสารอยู่ในฟิลด์ VBELN ของตาราง VBRK (เอกสารเรียกเก็บเงิน: ข้อมูลส่วนหัว) โดยเชื่อมโยงผ่านลำดับเอกสารของใบสั่งคืนสินค้า. ตัวอย่าง 900011229000334490005566 | |||
| เอกสารการขายต้นฉบับ OriginalSalesDocument | หมายเลขใบสั่งขายต้นฉบับที่ใช้อ้างอิงการคืนสินค้า. | ||
| คำอธิบาย แอตทริบิวต์นี้เชื่อมโยงกลับไปยังการซื้อครั้งแรกของลูกค้าโดยตรง และใช้เป็นเอกสารอ้างอิงที่เชื่อมการคืนสินค้ากับรายละเอียดของธุรกรรมต้นฉบับ. การเชื่อมโยงนี้มีประโยชน์ต่อการวิเคราะห์เชิงลึก นักวิเคราะห์สามารถตรวจสอบสาเหตุที่สินค้าจากใบสั่งบางรายการถูกส่งคืน ตรวจสอบราคาและเงื่อนไขเดิม และทำความเข้าใจวงจรตั้งแต่สั่งซื้อจนถึงคืนสินค้าได้ครบถ้วน นอกจากนี้ยังช่วยตอบคำถามว่าสินค้าที่ขายผ่านแคมเปญหรือช่องทางใดมีอัตราการคืนสูงกว่าหรือไม่. เหตุผลที่สำคัญ เชื่อมโยงการคืนสินค้ากับการขายครั้งแรก ช่วยให้เห็นธุรกรรมของลูกค้าตั้งแต่ต้นจนจบและวิเคราะห์หาสาเหตุหลักได้ลึกขึ้น. แหล่งข้อมูล ข้อมูลอ้างอิงนี้จัดเก็บในระดับรายการของใบสั่งคืนสินค้า ดูได้ที่ฟิลด์ VGBEL (หมายเลขเอกสารอ้างอิง) ในตาราง VBAP. ตัวอย่าง 100034561000987110012345 | |||
กิจกรรมในกระบวนการคืนสินค้าและคืนเงิน
| กิจกรรม | คำอธิบาย | ||
|---|---|---|---|
| ดำเนินการใบสั่งคืนสินค้าครบถ้วน | กิจกรรมนี้เป็นจุดสิ้นสุดของกระบวนการคืนสินค้าในมุมมองการขายและการจัดจำหน่าย โดยเกิดขึ้นเมื่อดำเนินการและปิดรายการสินค้าทั้งหมดในใบสั่งคืนสินค้าแล้ว. | ||
| เหตุผลที่สำคัญ นี่คือเหตุการณ์สิ้นสุดหลักของกระบวนการ การวัดเวลาตั้งแต่ 'สร้างใบสั่งคืนสินค้า' จนถึงกิจกรรมนี้จะแสดงระยะเวลาดำเนินการตั้งแต่ต้นจนจบของกรณีคืนสินค้า. แหล่งข้อมูล เหตุการณ์นี้อนุมานจากตารางสถานะ โดยบันทึกเมื่อสถานะโดยรวมของส่วนหัวเอกสารการขาย (VBUK-GBSTK) เปลี่ยนเป็น 'C' (ดำเนินการครบถ้วนแล้ว). บันทึก ระบุเวลาจากเอกสารการเปลี่ยนแปลง (CDHDR/CDPOS) เมื่อฟิลด์สถานะส่วนหัว VBUK-GBSTK เปลี่ยนเป็น 'C'. ประเภทเหตุการณ์ inferred | |||
| บันทึกใบลดหนี้ใน FI | ระบบส่งใบลดหนี้ไปยังบัญชีการเงิน ทำให้เป็นรายการบัญชีลูกหนี้อย่างเป็นทางการ ขั้นตอนนี้เริ่มกระบวนการจ่ายเงินคืนให้ลูกค้าจริง. | ||
| เหตุผลที่สำคัญ กิจกรรมนี้เป็นจุดที่บริษัทรับรู้การคืนเงินทางการเงิน หากการบันทึกบัญชีล่าช้าหลังสร้างใบลดหนี้ ลูกค้าก็อาจได้รับเงินคืนช้าลง. แหล่งข้อมูล เหตุการณ์นี้อนุมานจากการเปลี่ยนสถานะการบันทึกบัญชีในส่วนหัวเอกสารเรียกเก็บเงิน (VBRK-RFBSK) เป็น 'C' (สร้างเอกสารบันทึกบัญชีแล้ว) วันที่สร้างเอกสารบัญชีจริงอยู่ในตาราง BKPF. บันทึก ระบุเวลาที่ VBRK-RFBSK เปลี่ยนเป็น 'C' หรือใช้วันที่สร้าง (CPUDT) จากเอกสารบัญชี BKPF ที่เชื่อมโยงกัน. ประเภทเหตุการณ์ inferred | |||
| บันทึกผลการตัดสินใจใช้ผลตรวจสอบแล้ว | หลังตรวจสอบสินค้า วิศวกรคุณภาพหรือผู้ตรวจสอบจะตัดสินสภาพสินค้าอย่างเป็นทางการ ผลการตัดสินนี้กำหนดขั้นตอนถัดไป เช่น นำสินค้ากลับเข้าสต็อก ทิ้ง หรือส่งซ่อม. | ||
| เหตุผลที่สำคัญ กิจกรรมนี้สำคัญต่อการทำความเข้าใจประสิทธิภาพและผลลัพธ์ของการตรวจสอบ การตัดสินใจส่งผลโดยตรงต่อยอดเงินคืนและการจัดการสินค้าคงคลัง. แหล่งข้อมูล หากใช้ SAP QM เหตุการณ์นี้จะบันทึกไว้อย่างชัดเจนในตาราง QAVE (การตัดสินใจใช้ผลการตรวจสอบ) โดยเวลาที่ตัดสินใจอยู่ใน QAVE-VDATUM ส่วนการเชื่อมโยงกับเอกสารส่งมอบอยู่ในตาราง QALS. บันทึก ใช้วันที่ตัดสินใจใช้ผลการตรวจสอบ (VDATUM) จากตาราง QAVE ซึ่งเชื่อมโยงผ่านล็อตตรวจสอบ (QALS-PRUEFLOS). ประเภทเหตุการณ์ explicit | |||
| ลงรายการรับสินค้าแล้ว | กิจกรรมนี้เกิดขึ้นเมื่อคลังสินค้าหรือศูนย์ดำเนินการได้รับสินค้าที่ส่งคืนจริง โดยบันทึกเมื่อมีการลงรายการเอกสารเคลื่อนไหวสินค้าอ้างอิงกับเอกสารส่งมอบสินค้าคืน. | ||
| เหตุผลที่สำคัญ จุดสำคัญที่แสดงว่าบริษัทได้รับสินค้าคืนไว้แล้ว เป็นจุดเริ่มต้นของการตรวจสอบสินค้าจริงและส่งผลต่อความถูกต้องของสินค้าคงคลัง. แหล่งข้อมูล อนุมานเหตุการณ์นี้ได้จากสถานะการเคลื่อนไหวสินค้าของรายการส่งมอบสินค้าคืนในตาราง VBUP เช่น WBSTA = 'C' เวลาที่แน่นอนอยู่ในส่วนหัวเอกสารวัสดุ (MKPF-BUDAT) สำหรับรายการรับสินค้าที่เกี่ยวข้อง. บันทึก ค้นหาวันที่ลงรายการ (BUDAT) จากตาราง MKPF สำหรับเอกสารวัสดุที่เชื่อมโยงกับเอกสารส่งมอบสินค้าคืน. ประเภทเหตุการณ์ inferred | |||
| สร้างคำสั่งคืนสินค้า | กิจกรรมนี้เป็นจุดเริ่มต้นของกระบวนการคืนสินค้า เมื่อลูกค้าขอคืนผลิตภัณฑ์ ระบบจะบันทึกกิจกรรมเมื่อมีการสร้างเอกสารการขายประเภท 'Return' ใหม่ เช่น RE ใน SAP ECC. | ||
| เหตุผลที่สำคัญ นี่คือเหตุการณ์เริ่มต้นหลักของกระบวนการคืนสินค้า การวิเคราะห์เวลาตั้งแต่กิจกรรมนี้ไปยังกิจกรรมอื่นช่วยวัดระยะเวลารวมของกระบวนการและระบุความล่าช้าในช่วงเริ่มต้นได้. แหล่งข้อมูล เหตุการณ์นี้บันทึกไว้อย่างชัดเจนในตาราง VBAK (ส่วนหัวเอกสารการขาย) โดยบันทึกเวลาที่สร้างไว้ใน VBAK-ERDAT และ VBAK-ERZET สำหรับหมายเลขเอกสารการขายที่เกี่ยวข้อง (VBAK-VBELN) ซึ่งมีประเภทคำสั่งซื้อ VBAK-AUART = 'RE'. บันทึก ใช้เวลาที่สร้าง (ERDAT, ERZET) จากตาราง VBAK สำหรับเอกสารการขายประเภท 'RE'. ประเภทเหตุการณ์ explicit | |||
| สร้างใบลดหนี้ | ระบบสร้างเอกสารเรียกเก็บเงิน (ใบลดหนี้) เพื่ออนุมัติการคืนเงินให้ลูกค้า เอกสารนี้เป็นเอกสารทางการเงินอย่างเป็นทางการที่ระบุจำนวนเงินคืน. | ||
| เหตุผลที่สำคัญ ขั้นตอนนี้เป็นหมุดหมายสำคัญด้านการเงินของกระบวนการ การวิเคราะห์เวลาที่ใช้สร้างใบลดหนี้ช่วยให้เห็นความล่าช้าในการจัดทำเอกสารทางการเงินหลังรับและตรวจสอบสินค้า. แหล่งข้อมูล เหตุการณ์นี้บันทึกไว้อย่างชัดเจนในตาราง VBRK (ส่วนหัวเอกสารเรียกเก็บเงิน) วันที่สร้างอยู่ในฟิลด์ VBRK-ERDAT ใบลดหนี้เชื่อมโยงกับใบสั่งคืนสินค้าหรือคำขอใบลดหนี้ผ่านลำดับเอกสาร. บันทึก ใช้เวลาประทับการสร้าง (ERDAT) จากตาราง VBRK ของเอกสารเรียกเก็บเงินที่เกี่ยวข้อง. ประเภทเหตุการณ์ explicit | |||
| ชำระบัญชีใบลดหนี้ | ระบบชำระรายการใบลดหนี้ค้างชำระในบัญชีลูกหนี้ โดยทั่วไปชำระด้วยการโอนเงินให้ลูกค้า เหตุการณ์นี้เป็นการปิดรายการคืนเงินทางการเงินขั้นสุดท้าย. | ||
| เหตุผลที่สำคัญ กิจกรรมนี้ยืนยันการจ่ายเงินออกและปิดขั้นตอนด้านการเงินของกระบวนการ นับเป็นจุดสิ้นสุดของการคืนเงินในมุมมองของลูกค้า. แหล่งข้อมูล เหตุการณ์นี้บันทึกไว้อย่างชัดเจนในโมดูล FI วันที่ชำระบัญชีของเอกสารบัญชีจัดเก็บอยู่ในตาราง BSEG (BSEG-AUGDT) สำหรับรายการลูกค้าที่เกี่ยวข้อง. บันทึก ใช้วันที่ชำระบัญชี (AUGDT) จากตาราง BSEG หรือ BSAD ของเอกสารบัญชีที่เชื่อมโยงกับใบลดหนี้. ประเภทเหตุการณ์ explicit | |||
| ดำเนินการรายการใบสั่งคืนสินค้าครบถ้วน | ระบบระบุว่ารายการสินค้าแต่ละรายการในใบสั่งคืนสินค้าดำเนินการครบถ้วนแล้ว โดยทั่วไปจะเกิดขึ้นหลังจากจัดทำเอกสารด้านโลจิสติกส์และการเงินที่เกี่ยวข้องกับรายการนั้นเสร็จสิ้น. | ||
| เหตุผลที่สำคัญ การติดตามในระดับรายการช่วยระบุได้ว่าสินค้าหรือเหตุผลในการคืนรายการใดทำให้เกิดความล่าช้ามากที่สุด ทั้งยังช่วยให้เห็นความคืบหน้าของกระบวนการได้ละเอียดขึ้น. แหล่งข้อมูล เหตุการณ์นี้อนุมานจากตารางสถานะ โดยบันทึกเมื่อสถานะโดยรวมของรายการเอกสารการขาย (VBUP-GBSTK) เปลี่ยนเป็น 'C' (ดำเนินการครบถ้วนแล้ว). บันทึก ระบุเวลาจากเอกสารการเปลี่ยนแปลง (CDHDR/CDPOS) เมื่อฟิลด์สถานะรายการ VBUP-GBSTK เปลี่ยนเป็น 'C'. ประเภทเหตุการณ์ inferred | |||
| ปฏิเสธรายการในใบสั่งคืนสินค้า | รายการสินค้าในใบสั่งคืนสินค้าถูกปฏิเสธระหว่างการตรวจสอบเบื้องต้นหรือหลังตรวจสินค้า หมายความว่าจะไม่มีการดำเนินการต่อ เช่น การคืนเงิน สำหรับรายการนี้. | ||
| เหตุผลที่สำคัญ การวิเคราะห์รายการที่ถูกปฏิเสธช่วยให้พบคำขอคืนสินค้าที่ไม่ถูกต้อง และนำข้อมูลไปใช้สื่อสารนโยบายกับลูกค้าได้ เส้นทางนี้เป็นส่วนสำคัญของกระบวนการที่ไม่ได้นำไปสู่การคืนเงิน. แหล่งข้อมูล เหตุการณ์นี้อนุมานจากการกำหนดรหัส 'เหตุผลในการปฏิเสธ' เฉพาะให้กับรายการในตาราง VBAP (VBAP-ABGRU) โดยต้องดึงเวลาจากบันทึกการเปลี่ยนแปลง. บันทึก ระบุเวลาจากเอกสารการเปลี่ยนแปลง (CDHDR/CDPOS) เมื่อมีการกรอกฟิลด์ VBAP-ABGRU สำหรับรายการคืนสินค้า. ประเภทเหตุการณ์ inferred | |||
| ยกเลิกบล็อกคำสั่งคืนสินค้า | แสดงว่าคำขอคืนสินค้าได้รับอนุมัติและดำเนินการต่อไปยังขั้นตอนถัดไปได้ โดยทั่วไปจะบันทึกจากการเปลี่ยนสถานะเอกสารหรือการยกเลิกบล็อกการส่งมอบหรือการเรียกเก็บเงิน. | ||
| เหตุผลที่สำคัญ กิจกรรมนี้เป็นจุดสำคัญของการอนุมัติ การวัดเวลาที่ใช้กว่าจะถึงขั้นตอนนี้ช่วยระบุคอขวดในกระบวนการอนุมัติและอนุญาตให้คืนสินค้า. แหล่งข้อมูล เหตุการณ์นี้อนุมานจากบันทึกการเปลี่ยนแปลงของเอกสารการขาย ตรวจสอบตาราง CDHDR และ CDPOS เพื่อดูการเปลี่ยนแปลงฟิลด์บล็อกใน VBAK หรือ VBAP หรือฟิลด์สถานะใน VBUK/VBUP. บันทึก ระบุเวลาจากตารางบันทึกการเปลี่ยนแปลงเอกสาร (CDHDR/CDPOS) เมื่อมีการยกเลิกสถานะบล็อกที่เกี่ยวข้อง. ประเภทเหตุการณ์ inferred | |||
| สร้างคำขอใบลดหนี้ | สร้างคำขอใบลดหนี้เพื่อบันทึกความจำเป็นในการคืนเงินอย่างเป็นทางการ ในการตั้งค่าระบบหลายรูปแบบ คำสั่งคืนสินค้าเองจะทำหน้าที่เป็นคำขอใบลดหนี้. | ||
| เหตุผลที่สำคัญ นี่คือจุดเริ่มต้นอย่างเป็นทางการของขั้นตอนการชำระเงินในกระบวนการคืนสินค้า และเป็นตัวกระตุ้นให้เกิดการอนุมัติทางการเงินและการสร้างเอกสารในขั้นตอนถัดไป. แหล่งข้อมูล เหตุการณ์นี้อาจบันทึกไว้อย่างชัดเจนใน VBAK สำหรับเอกสารการขายประเภท 'Credit Memo Request' เช่น CR หรืออาจเป็นเหตุการณ์เดียวกับ 'สร้างคำสั่งคืนสินค้า' หากกำหนดประเภทคำสั่งซื้อให้เรียกเก็บเงินตามคำสั่งซื้อ. บันทึก ใช้เวลาที่สร้าง (ERDAT) จาก VBAK สำหรับเอกสารประเภท 'CR' หรือใช้เหตุการณ์สร้างคำสั่งคืนสินค้าซ้ำ. ประเภทเหตุการณ์ explicit | |||
| สร้างเอกสารส่งมอบสินค้าคืน | ระบบสร้างเอกสารส่งมอบเพื่อจัดการรับสินค้าที่ส่งคืนจริง เหตุการณ์นี้แสดงว่ากระบวนการโลจิสติกส์สำหรับการคืนสินค้าเริ่มต้นแล้ว. | ||
| เหตุผลที่สำคัญ ติดตามการเปลี่ยนจากการดำเนินการด้านเอกสารไปสู่การจัดการสินค้าจริง ความล่าช้าในขั้นตอนนี้อาจกระทบการวางแผนคลังสินค้าและระยะเวลารวมของกระบวนการคืนสินค้า. แหล่งข้อมูล เหตุการณ์นี้บันทึกไว้อย่างชัดเจนในตาราง LIKP (ส่วนหัวเอกสารส่งมอบ) โดยเวลาที่สร้างอยู่ใน LIKP-ERDAT ส่วนการเชื่อมโยงกับคำสั่งคืนสินค้าต้นทางอยู่ในตาราง LIPS (LIPS-VGBEL). บันทึก ใช้เวลาที่สร้าง (ERDAT) จากตาราง LIKP สำหรับเอกสารส่งมอบที่เชื่อมโยงกับคำสั่งคืนสินค้า. ประเภทเหตุการณ์ explicit | |||
คู่มือการดึงข้อมูล
ขั้นตอน
- สร้างโปรแกรม ABAP: ใช้รหัสธุรกรรม
SE38เพื่อสร้างโปรแกรม ABAP แบบเรียกทำงานได้ เช่นZ_PM_RETURN_EXTRACTIONตั้งชื่อเรื่องให้สื่อความหมาย แล้วบันทึกเป็นออบเจ็กต์ภายในเครื่องหรือในแพ็กเกจพัฒนา. - กำหนดหน้าจอเลือกข้อมูล: กำหนดหน้าจอเลือกข้อมูลในโปรแกรม เพื่อให้ผู้ใช้กรองข้อมูลได้ ตัวกรองสำคัญ ได้แก่ ช่วงวันที่สร้างคำสั่งคืนสินค้า (
S_ERDAT), ประเภทเอกสารการขายสำหรับการคืนสินค้า (S_AUARTเช่น 'RE') และรหัสบริษัท (P_BUKRS). - กำหนดโครงสร้างข้อมูล: สร้างชนิดโครงสร้างภายในให้ตรงกับรูปแบบบันทึกเหตุการณ์ที่ต้องการ โดยควรมีฟิลด์
ReturnCaseId,ActivityName,EventTime,SourceSystem,LastDataUpdate,ProcessingAgent,ReturnReasonและแอตทริบิวต์อื่นที่จำเป็น. - เขียนตรรกะเลือกข้อมูล: เขียนตรรกะหลักของ ABAP เพื่อเลือกข้อมูลสำหรับกิจกรรมที่จำเป็นทั้ง 12 รายการ โดยค้นจากตาราง SAP เช่น VBAK, VBAP, LIKP, VBRK, BKPF, CDHDR และ CDPOS ใช้ตารางลำดับเอกสาร (VBFA) เชื่อมเอกสารที่เกี่ยวข้อง เช่น ใบส่งสินค้าและใบลดหนี้ กลับไปยังคำสั่งคืนสินค้าต้นทาง.
- ดึงข้อมูล 'สร้างคำสั่งคืนสินค้า': เลือกรายการจากตาราง
VBAKและVBAPตามเกณฑ์ในหน้าจอเลือกข้อมูล หมายเลขเอกสารการขาย (VBAK-VBELN) จะใช้เป็นReturnCaseId. - ดึงข้อมูลการเปลี่ยนสถานะและเหตุการณ์สำคัญ: สำหรับกิจกรรม เช่น 'ยกเลิกการบล็อกคำสั่งคืนสินค้า' หรือ 'ปฏิเสธรายการคำสั่งคืนสินค้า' ให้ค้นตารางเอกสารการเปลี่ยนแปลง (
CDHDR,CDPOS) หรือฟิลด์สถานะในตารางอย่างVBAP(ABGRU) สำหรับกิจกรรมด้านโลจิสติกส์และการเงินที่เกิดตามมา ให้เลือกข้อมูลจากตารางอย่างLIKP,MKPF,VBRKและBKPFโดยใช้VBFAตรวจสอบว่าเชื่อมโยงกับคำสั่งคืนสินค้าชุดแรก. - เพิ่มข้อมูลลงในตารางบันทึกเหตุการณ์: สร้างระเบียนใหม่ในตารางภายในที่กำหนดโครงสร้างบันทึกเหตุการณ์ไว้ สำหรับแต่ละกิจกรรมที่ดึงมาได้ จับคู่ข้อมูลจากตาราง SAP ต้นทางกับฟิลด์ที่เกี่ยวข้อง เช่น จับคู่
VBAK-ERNAMกับProcessingAgentและVBAK-ERDATกับVBAK-ERZETกับEventTime. - รวมข้อมูลกิจกรรม: ตรวจสอบให้แน่ใจว่าคำสั่ง SELECT ของแต่ละกิจกรรมเพิ่มผลลัพธ์ลงในตารางภายในหลักเดียวกัน เพื่อสร้างไฟล์แบบแบนฉบับสุดท้ายที่แต่ละแถวแทนหนึ่งเหตุการณ์.
- จัดการเวลาประทับและข้อมูลระบบ: ใช้ฟิลด์ระบบ
SY-DATUMและSY-UZEITกำหนดเวลาประทับLastDataUpdateให้ทุกรายการ และใช้SY-SYSIDกำหนดค่าSourceSystem. - เพิ่มฟังก์ชันแสดงผล: เพิ่มฟังก์ชันแสดงผลลัพธ์ใน ALV grid (SAP List Viewer) เพื่อวิเคราะห์ออนไลน์ โดยใช้ function module เช่น
REUSE_ALV_GRID_DISPLAYพร้อมตัวเลือกดาวน์โหลดตารางภายในฉบับสุดท้ายเป็นไฟล์ CSV หรือไฟล์ข้อความแบบแบนลงในเครื่องของผู้ใช้. - เรียกใช้และส่งออกข้อมูล: เรียกใช้โปรแกรมผ่าน
SE38ป้อนเกณฑ์เลือกข้อมูลที่ต้องการแล้วสั่งทำงาน เมื่อแสดงหรือประมวลผลข้อมูลแล้ว ให้ใช้ฟังก์ชันส่งออกของโปรแกรมเพื่อบันทึกไฟล์บันทึกเหตุการณ์ ตรวจสอบว่าไฟล์อยู่ในรูปแบบที่ ProcessMind รองรับ โดยทั่วไปคือ CSV ที่มีแถวหัวคอลัมน์.
การกำหนดค่า
- ช่วงวันที่: ระบุช่วงวันที่สร้างคำสั่งคืนสินค้าบนหน้าจอเลือกข้อมูล แนะนำให้เริ่มวิเคราะห์ด้วยข้อมูลย้อนหลัง 3 ถึง 6 เดือน เพื่อให้ปริมาณข้อมูลเหมาะสมและยังเห็นภาพกระบวนการได้.
- ประเภทเอกสารคืนสินค้า: กรองตามประเภทเอกสารการขายที่ใช้แทนคำสั่งคืนสินค้าในระบบ เช่น 'RE' สำหรับการคืนสินค้า หรือ 'CR' สำหรับคำขอใบลดหนี้ ตัวกรองนี้สำคัญต่อการแยกข้อมูลกระบวนการที่ถูกต้อง ป้อนค่าเหล่านี้ในตัวเลือก
S_AUART. - รหัสบริษัท: ระบุรหัสบริษัทที่เกี่ยวข้อง (
P_BUKRS) เพื่อจำกัดข้อมูลให้เหลือเฉพาะนิติบุคคลที่ต้องการ ซึ่งจำเป็นสำหรับองค์กรที่มีหลายบริษัท. - ข้อกำหนดเบื้องต้น: ผู้เรียกใช้โปรแกรมต้องมีสิทธิ์สำหรับ
SE38(เรียกใช้โปรแกรม) และเข้าถึงตาราง SD, MM และ FI ต้นทางได้ เช่น VBAK, LIKP, VBRK, BKPF และ CDHDR การพัฒนาต้องใช้บทบาทนักพัฒนา ABAP. - ประสิทธิภาพ: หากชุดข้อมูลมีขนาดใหญ่มากและครอบคลุมหลายปี โปรแกรมอาจใช้เวลาทำงานนาน ควรพิจารณาเรียกใช้เป็นงานเบื้องหลัง (
SM36) และเขียนผลลัพธ์ลงในระบบไฟล์ของแอปพลิเคชันเซิร์ฟเวอร์ แทนการแสดงผลออนไลน์.
ตัวอย่างคำค้น abap
REPORT Z_PM_RETURN_EXTRACTION.
" =======================================================================
" DATA DECLARATIONS
" =======================================================================
TYPES: BEGIN OF ty_event_log,
returncaseid TYPE vbeln_va,
activityname TYPE string,
eventtime TYPE timestamp,
sourcesystem TYPE sysysid,
lastdataupdate TYPE timestamp,
processingagent TYPE ernam,
returnreason TYPE augru,
materialnumber TYPE matnr,
returnchannel TYPE string, " Placeholder, needs custom logic
requestedrefundamount TYPE netwr,
actualrefundamount TYPE netwr,
END OF ty_event_log.
DATA: lt_event_log TYPE TABLE OF ty_event_log,
ls_event_log TYPE ty_event_log.
DATA: lv_timestamp TYPE timestamp,
lv_last_update TYPE timestamp.
" =======================================================================
" SELECTION SCREEN
" =======================================================================
SELECT-OPTIONS: s_erdat FOR sy-datum OBLIGATORY,
s_auart FOR vbak-auart.
PARAMETERS: p_bukrs TYPE bukrs OBLIGATORY.
" =======================================================================
" MAIN LOGIC
" =======================================================================
START-OF-SELECTION.
" Set static values for the extraction run
GET TIME STAMP FIELD lv_last_update.
" 1. Return Order Created & 6. Credit Memo Request Created
" Note: In many SAP standard processes, the Return Order itself acts as the Credit Memo Request.
SELECT h~vbeln, h~erdat, h~erzet, h~ernam, h~augru, i~matnr, i~netwr
INTO TABLE @DATA(lt_return_orders)
FROM vbak AS h
INNER JOIN vbap AS i ON h~vbeln = i~vbeln
WHERE h~erdat IN @s_erdat
AND h~auart IN @s_auart
AND h~bukrs_vf = @p_bukrs.
LOOP AT lt_return_orders INTO DATA(ls_return_order).
" Activity: Return Order Created
ls_event_log-returncaseid = ls_return_order-vbeln.
ls_event_log-activityname = 'Return Order Created'.
CONVERT DATE ls_return_order-erdat TIME ls_return_order-erzet INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_return_order-ernam.
ls_event_log-returnreason = ls_return_order-augru.
ls_event_log-materialnumber = ls_return_order-matnr.
ls_event_log-requestedrefundamount = ls_return_order-netwr.
APPEND ls_event_log TO lt_event_log.
" Activity: Credit Memo Request Created
ls_event_log-activityname = 'Credit Memo Request Created'.
APPEND ls_event_log TO lt_event_log.
ENDLOOP.
IF lt_return_orders IS NOT INITIAL.
" 2. Return Order Block Removed (Example for Delivery Block)
SELECT objectid, udate, utime, username
FROM cdhdr
INTO TABLE @DATA(lt_block_changes)
FOR ALL ENTRIES IN @lt_return_orders
WHERE objectclas = 'VERKBELEG'
AND objectid = @lt_return_orders-vbeln
AND tcode = 'VA02'.
IF sy-subrc = 0.
SELECT objectid, fname, value_new
INTO TABLE @DATA(lt_cdpos_block)
FROM cdpos
FOR ALL ENTRIES IN @lt_block_changes
WHERE objectclas = @lt_block_changes-objectclas
AND objectid = @lt_block_changes-objectid
AND changenr = @lt_block_changes-changenr
AND tabname = 'VBAK'
AND fname = 'LIFSK' " Delivery Block field
AND value_new = ''.
LOOP AT lt_cdpos_block INTO DATA(ls_cdpos_block).
READ TABLE lt_block_changes INTO DATA(ls_block_change) WITH KEY objectid = ls_cdpos_block-objectid.
IF sy-subrc = 0.
ls_event_log-returncaseid = ls_cdpos_block-objectid.
ls_event_log-activityname = 'Return Order Block Removed'.
CONVERT DATE ls_block_change-udate TIME ls_block_change-utime INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_block_change-username.
CLEAR: ls_event_log-returnreason, ls_event_log-materialnumber, ls_event_log-requestedrefundamount, ls_event_log-actualrefundamount.
APPEND ls_event_log TO lt_event_log.
ENDIF.
ENDLOOP.
ENDIF.
" Get subsequent documents from flow
SELECT vbelv, vbtyp_n, vbeln, rfbsk
INTO TABLE @DATA(lt_doc_flow)
FROM vbfa
FOR ALL ENTRIES IN @lt_return_orders
WHERE vbelv = @lt_return_orders-vbeln
AND vbtyp_n IN ('J', 'R', 'M'). " J=Delivery, R=Goods Mvmt, M=Invoice
" 3. Return Delivery Created
SELECT vbeln, erdat, erzet, ernam FROM likp
INTO TABLE @DATA(lt_deliveries)
FOR ALL ENTRIES IN @lt_doc_flow
WHERE vbeln = @lt_doc_flow-vbeln AND @lt_doc_flow-vbtyp_n = 'J'.
LOOP AT lt_deliveries INTO DATA(ls_delivery).
READ TABLE lt_doc_flow INTO DATA(ls_doc_flow_del) WITH KEY vbeln = ls_delivery-vbeln.
ls_event_log-returncaseid = ls_doc_flow_del-vbelv.
ls_event_log-activityname = 'Return Delivery Created'.
CONVERT DATE ls_delivery-erdat TIME ls_delivery-erzet INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_delivery-ernam.
APPEND ls_event_log TO lt_event_log.
ENDLOOP.
" 4. Goods Receipt Posted
SELECT mblnr, mjahr, budat, cputm, usnam FROM mkpf
INTO TABLE @DATA(lt_goods_receipt)
FOR ALL ENTRIES IN @lt_doc_flow
WHERE xblnr = @lt_doc_flow-vbeln AND @lt_doc_flow-vbtyp_n = 'R'.
LOOP AT lt_goods_receipt INTO DATA(ls_goods_receipt).
READ TABLE lt_doc_flow INTO DATA(ls_doc_flow_gr) WITH KEY vbeln = ls_goods_receipt-mblnr.
ls_event_log-returncaseid = ls_doc_flow_gr-vbelv.
ls_event_log-activityname = 'Goods Receipt Posted'.
CONVERT DATE ls_goods_receipt-budat TIME ls_goods_receipt-cputm INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_goods_receipt-usnam.
APPEND ls_event_log TO lt_event_log.
ENDLOOP.
" 5. Usage Decision Made (Requires QM Module implementation)
SELECT q~prueflos, q~vdatu, q~vzeit, q~vname
FROM qals AS q
INNER JOIN qave AS v ON q~prueflos = v~prueflos
INTO TABLE @DATA(lt_usage_decisions)
FOR ALL ENTRIES IN @lt_deliveries
WHERE q~kdauf = @lt_deliveries-vbeln.
LOOP AT lt_usage_decisions INTO DATA(ls_ud).
SELECT SINGLE vbelv FROM vbfa INTO @DATA(lv_vbelv_ud) WHERE vbeln = @ls_ud-prueflos.
ls_event_log-returncaseid = lv_vbelv_ud.
ls_event_log-activityname = 'Usage Decision Made'.
CONVERT DATE ls_ud-vdatu TIME ls_ud-vzeit INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_ud-vname.
APPEND ls_event_log TO lt_event_log.
ENDLOOP.
" 7. Credit Memo Created
SELECT h~vbeln, h~erdat, h~erzet, h~ernam, i~netwr, i~vgbel
INTO TABLE @DATA(lt_cred_memos)
FROM vbrk AS h
INNER JOIN vbrp AS i ON h~vbeln = i~vbeln
FOR ALL ENTRIES IN @lt_doc_flow
WHERE h~vbeln = @lt_doc_flow-vbeln AND @lt_doc_flow-vbtyp_n = 'M'.
LOOP AT lt_cred_memos INTO DATA(ls_cred_memo).
ls_event_log-returncaseid = ls_cred_memo-vgbel.
ls_event_log-activityname = 'Credit Memo Created'.
CONVERT DATE ls_cred_memo-erdat TIME ls_cred_memo-erzet INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_cred_memo-ernam.
ls_event_log-actualrefundamount = ls_cred_memo-netwr.
APPEND ls_event_log TO lt_event_log.
" 8. Credit Memo Posted To FI
SELECT SINGLE budat, cputime, usnam FROM bkpf
INTO @DATA(ls_bkpf_post)
WHERE awkey = @ls_cred_memo-vbeln AND awtyp = 'VBRK'.
IF sy-subrc = 0.
ls_event_log-activityname = 'Credit Memo Posted To FI'.
CONVERT DATE ls_bkpf_post-budat TIME ls_bkpf_post-cputime INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-processingagent = ls_bkpf_post-usnam.
APPEND ls_event_log TO lt_event_log.
ENDIF.
" 12. Credit Memo Cleared
SELECT SINGLE augdt FROM bseg
INTO @DATA(lv_augdt)
WHERE bukrs = @p_bukrs
AND belnr = @ls_cred_memo-vbeln
AND augdt IS NOT NULL.
IF sy-subrc = 0 AND lv_augdt IS NOT INITIAL.
ls_event_log-activityname = 'Credit Memo Cleared'.
CONVERT DATE lv_augdt INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
CLEAR: ls_event_log-processingagent.
APPEND ls_event_log TO lt_event_log.
ENDIF.
ENDLOOP.
" 9. Return Order Item Completed
SELECT vbeln, erdat, erzet, ernam, abgru FROM vbap
INTO TABLE @DATA(lt_items_completed)
FOR ALL ENTRIES IN @lt_return_orders
WHERE vbeln = @lt_return_orders-vbeln
AND gbsta = 'C'.
LOOP AT lt_items_completed INTO DATA(ls_item_completed).
ls_event_log-returncaseid = ls_item_completed-vbeln.
ls_event_log-activityname = 'Return Order Item Completed'.
CONVERT DATE ls_item_completed-erdat TIME ls_item_completed-erzet INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_item_completed-ernam.
APPEND ls_event_log TO lt_event_log.
ENDLOOP.
" 10. Return Order Completed
SELECT vbeln, erdat, erzet, ernam FROM vbak
INTO TABLE @DATA(lt_orders_completed)
FOR ALL ENTRIES IN @lt_return_orders
WHERE vbeln = @lt_return_orders-vbeln
AND gbsta = 'C'.
LOOP AT lt_orders_completed INTO DATA(ls_order_completed).
ls_event_log-returncaseid = ls_order_completed-vbeln.
ls_event_log-activityname = 'Return Order Completed'.
CONVERT DATE ls_order_completed-erdat TIME ls_order_completed-erzet INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_order_completed-ernam.
APPEND ls_event_log TO lt_event_log.
ENDLOOP.
" 11. Return Order Item Rejected
SELECT vbeln, erdat, erzet, ernam FROM vbap
INTO TABLE @DATA(lt_items_rejected)
FOR ALL ENTRIES IN @lt_return_orders
WHERE vbeln = @lt_return_orders-vbeln
AND abgru IS NOT NULL AND abgru <> ''.
LOOP AT lt_items_rejected INTO DATA(ls_item_rejected).
ls_event_log-returncaseid = ls_item_rejected-vbeln.
ls_event_log-activityname = 'Return Order Item Rejected'.
CONVERT DATE ls_item_rejected-erdat TIME ls_item_rejected-erzet INTO TIME STAMP ls_event_log-eventtime TIME ZONE sy-zonlo.
ls_event_log-sourcesystem = sy-sysid.
ls_event_log-lastdataupdate = lv_last_update.
ls_event_log-processingagent = ls_item_rejected-ernam.
APPEND ls_event_log TO lt_event_log.
ENDLOOP.
ENDIF.
" =======================================================================
" OUTPUT
" =======================================================================
cl_salv_table=>factory(
IMPORTING
r_salv_table = DATA(lo_alv)
CHANGING
t_table = lt_event_log ).
lo_alv->display( ). ขั้นตอน
- ข้อกำหนดเบื้องต้น: ตรวจสอบว่าคุณมีผู้ใช้ฐานข้อมูลที่มีสิทธิ์อ่านตาราง SAP ECC ที่จำเป็น ซึ่งรวมถึงตารางจากโมดูล Sales and Distribution (SD), Materials Management (MM) และ Financial Accounting (FI) คุณต้องมีเครื่องมือไคลเอนต์ SQL ที่เหมาะสม เช่น DBeaver, SAP HANA Studio หรือ Oracle SQL Developer เพื่อเชื่อมต่อฐานข้อมูล.
- ตรวจสอบรายละเอียดเฉพาะของระบบ: ก่อนเรียกใช้คำสั่งค้นหา ให้ตรวจสอบประเภทเอกสารที่องค์กรใช้สำหรับการคืนสินค้า คำสั่งค้นหามีตัวแทน
[YOUR_RETURN_ORDER_TYPES]ซึ่งต้องแทนที่ด้วยค่าจริง เช่น 'RE' สำหรับการคืนสินค้ามาตรฐาน. - เตรียมคำสั่งค้นหา: คัดลอกคำสั่ง SQL ทั้งหมดจากส่วน 'query' ไปยังไคลเอนต์ SQL.
- กำหนดพารามิเตอร์: ค้นหา Common Table Expression (CTE) ชื่อ
BaseReturnOrdersที่ต้นคำสั่งค้นหา แก้ไขส่วนWHEREเพื่อระบุช่วงวันที่ โดยแทน[START_DATE]และ[END_DATE]ด้วยค่าที่ต้องการ อัปเดตรายการประเภทคำสั่งคืนสินค้า และหากจำเป็น ให้กรองตามรหัสบริษัท (BUKRS_VF). - เรียกใช้คำสั่งค้นหา: เรียกใช้คำสั่งที่แก้ไขแล้วกับฐานข้อมูล SAP ECC ระยะเวลาทำงานอาจแตกต่างกันตามช่วงวันที่และขนาดฐานข้อมูล.
- ตรวจสอบข้อมูลดิบ: เมื่อคำสั่งค้นหาทำงานเสร็จ ให้ตรวจสอบผลลัพธ์อย่างรวดเร็ว เช็กว่ามีข้อมูลในคอลัมน์
ReturnCaseId,ActivityNameและEventTimeและมีข้อมูลจากหลายกิจกรรม. - ส่งออกเป็น CSV: ส่งออกผลลัพธ์ทั้งหมดจากไคลเอนต์ SQL เป็นไฟล์ CSV โดยใช้การเข้ารหัส UTF-8 เพื่อให้เก็บอักขระได้ครบถ้วน.
- เตรียมไฟล์สำหรับอัปโหลด: เปิดไฟล์ CSV และตรวจสอบว่าหัวคอลัมน์ตรงกับแอตทริบิวต์ที่กำหนดทุกประการ เช่น
ReturnCaseId,ActivityName,EventTime,SourceSystemเป็นต้น แก้หัวคอลัมน์หากไคลเอนต์ SQL เปลี่ยนชื่อระหว่างส่งออก. - อัปโหลดไฟล์: อัปโหลดไฟล์ CSV ที่จัดเตรียมเรียบร้อยแล้วไปยังแพลตฟอร์ม ProcessMind เพื่อวิเคราะห์.
การกำหนดค่า
- ประเภทเอกสารคืนสินค้า: กำหนดประเภทเอกสารการขายที่ใช้แทนคำสั่งคืนสินค้าในระบบ SAP โดยแทนที่ตัวแทน
[YOUR_RETURN_ORDER_TYPES]ตัวอย่างที่พบบ่อย ได้แก่ 'RE' หรือประเภท 'Z' ที่กำหนดเอง. - ช่วงวันที่: กำหนดช่วงวันที่ให้เหมาะสมสำหรับการดึงข้อมูล โดยทั่วไปแนะนำให้เริ่มวิเคราะห์จากข้อมูลย้อนหลัง 3 ถึง 6 เดือน ระบุช่วงวันที่ในตัวแทน
[START_DATE]และ[END_DATE]ด้วยรูปแบบ 'YYYYMMDD'. - รหัสบริษัท: หากองค์กรมีหลายรหัสบริษัท ควรกรองข้อมูลเพื่อให้วิเคราะห์ได้ตรงจุด คุณสามารถเพิ่มตัวกรอง เช่น
VBAK.BUKRS_VF = '[YOUR_COMPANY_CODE]'ใน CTE แรก เพื่อจำกัดขอบเขตข้อมูล. - รูปแบบ SQL ของฐานข้อมูล: คำสั่งค้นหาที่ให้มาใช้ฟังก์ชัน SQL ทั่วไป อย่างไรก็ตาม การแปลงวันที่และเวลา เช่น
TO_TIMESTAMPและการต่อสตริง (CONCAT) อาจต้องปรับไวยากรณ์เล็กน้อยตามระบบฐานข้อมูล เช่น Oracle, HANA หรือ DB2. - สิทธิ์ที่จำเป็น: ผู้ใช้ฐานข้อมูลต้องมีสิทธิ์อ่านตารางสำคัญต่อไปนี้: VBAK, VBAP, VBFA, LIKP, LIPS, VBRK, VBRP, MKPF, MSEG, BKPF, BSAD, QALS, QAVE, CDHDR และ CDPOS.
ตัวอย่างคำค้น sql
WITH BaseReturnOrders AS (
SELECT
VBAK.VBELN AS ReturnOrderNumber,
VBAP.POSNR AS ReturnOrderItemNumber
FROM VBAK
JOIN VBAP ON VBAK.VBELN = VBAP.VBELN
WHERE VBAK.AUART IN ('[YOUR_RETURN_ORDER_TYPES]') -- e.g., 'RE'
AND VBAK.ERDAT BETWEEN '[START_DATE]' AND '[END_DATE]' -- e.g., '20230101' and '20231231'
)
-- 1. Return Order Created
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Return Order Created' AS "ActivityName",
TO_TIMESTAMP(CONCAT(VBAK.ERDAT, VBAK.ERZET), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
VBAK.ERNAM AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
UNION ALL
-- 2. Return Order Block Removed
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Return Order Block Removed' AS "ActivityName",
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
CDHDR.USERNAME AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN CDHDR ON B.ReturnOrderNumber = CDHDR.OBJECTID
JOIN CDPOS ON CDHDR.OBJECTCLAS = CDPOS.OBJECTCLAS AND CDHDR.OBJECTID = CDPOS.OBJECTID AND CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
WHERE CDHDR.OBJECTCLAS = 'VERKBELEG'
AND CDPOS.TABNAME = 'VBAK'
AND CDPOS.FNAME IN ('LIFSK', 'FAKSK')
AND CDPOS.VALUE_NEW = ''
AND CDPOS.VALUE_OLD <> ''
UNION ALL
-- 3. Return Delivery Created
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Return Delivery Created' AS "ActivityName",
TO_TIMESTAMP(CONCAT(LIKP.ERDAT, LIKP.ERZET), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
LIKP.ERNAM AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
JOIN VBFA ON B.ReturnOrderNumber = VBFA.VBELV AND B.ReturnOrderItemNumber = VBFA.POSNV AND VBFA.VBTYP_N = 'J'
JOIN LIKP ON VBFA.VBELN = LIKP.VBELN
UNION ALL
-- 4. Goods Receipt Posted
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Goods Receipt Posted' AS "ActivityName",
TO_TIMESTAMP(CONCAT(MKPF.CPUDT, MKPF.CPUTM), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
MKPF.USNAM AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
JOIN VBFA ON B.ReturnOrderNumber = VBFA.VBELV AND B.ReturnOrderItemNumber = VBFA.POSNV AND VBFA.VBTYP_N = 'J'
JOIN LIPS ON VBFA.VBELN = LIPS.VBELN AND VBFA.POSNN = LIPS.POSNR
JOIN MSEG ON LIPS.VBELN = MSEG.LFBNR AND LIPS.POSNR = MSEG.LFPOS
JOIN MKPF ON MSEG.MBLNR = MKPF.MBLNR AND MSEG.MJAHR = MKPF.MJAHR
WHERE MSEG.BWART IN ('651', '653', '655') -- Standard returns movement types
UNION ALL
-- 5. Usage Decision Made
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Usage Decision Made' AS "ActivityName",
TO_TIMESTAMP(CONCAT(QAVE.ADAT, QAVE.ATIM), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
QAVE.AENAME AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
JOIN VBFA ON B.ReturnOrderNumber = VBFA.VBELV AND B.ReturnOrderItemNumber = VBFA.POSNV AND VBFA.VBTYP_N = 'J'
JOIN QALS ON VBFA.VBELN = QALS.VBELN AND VBFA.POSNN = QALS.POSNR -- Linking inspection lot to delivery item
JOIN QAVE ON QALS.PRUEFLOS = QAVE.PRUEFLOS
UNION ALL
-- 6. Credit Memo Request Created (assumes a separate doc, or can be the return order itself)
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Credit Memo Request Created' AS "ActivityName",
TO_TIMESTAMP(CONCAT(CMR_VBAK.ERDAT, CMR_VBAK.ERZET), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
CMR_VBAK.ERNAM AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
JOIN VBFA ON B.ReturnOrderNumber = VBFA.VBELV AND B.ReturnOrderItemNumber = VBFA.POSNV AND VBFA.VBTYP_N = 'K' -- 'K' is Credit Memo Request
JOIN VBAK AS CMR_VBAK ON VBFA.VBELN = CMR_VBAK.VBELN
UNION ALL
-- 7. Credit Memo Created
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Credit Memo Created' AS "ActivityName",
TO_TIMESTAMP(CONCAT(VBRK.ERDAT, VBRK.ERZET), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
VBRK.ERNAM AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
VBRP.NETWR AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
JOIN VBFA ON B.ReturnOrderNumber = VBFA.VBELV AND B.ReturnOrderItemNumber = VBFA.POSNV AND VBFA.VBTYP_N = 'M'
JOIN VBRK ON VBFA.VBELN = VBRK.VBELN
JOIN VBRP ON VBRK.VBELN = VBRP.VBELN AND VBFA.POSNN = VBRP.POSNR
WHERE VBRK.FKART IN ('[YOUR_CREDIT_MEMO_TYPES]') -- e.g., 'G2'
UNION ALL
-- 8. Credit Memo Posted To FI
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Credit Memo Posted To FI' AS "ActivityName",
TO_TIMESTAMP(CONCAT(BKPF.CPUDT, BKPF.CPUTM), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
BKPF.USNAM AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
VBRP.NETWR AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
JOIN VBFA ON B.ReturnOrderNumber = VBFA.VBELV AND B.ReturnOrderItemNumber = VBFA.POSNV AND VBFA.VBTYP_N = 'M'
JOIN VBRK ON VBFA.VBELN = VBRK.VBELN
JOIN VBRP ON VBRK.VBELN = VBRP.VBELN AND VBFA.POSNN = VBRP.POSNR
JOIN BKPF ON VBRK.VBELN = BKPF.AWKEY AND BKPF.AWTYP = 'VBRK'
UNION ALL
-- 9. Return Order Item Completed
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Return Order Item Completed' AS "ActivityName",
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
CDHDR.USERNAME AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN CDHDR ON CONCAT(B.ReturnOrderNumber, LPAD(B.ReturnOrderItemNumber, 6, '0')) = CDHDR.OBJECTID
JOIN CDPOS ON CDHDR.OBJECTCLAS = CDPOS.OBJECTCLAS AND CDHDR.OBJECTID = CDPOS.OBJECTID AND CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
WHERE CDHDR.OBJECTCLAS = 'VERKBELEG'
AND CDPOS.TABNAME = 'VBUP'
AND CDPOS.FNAME = 'GBSTA'
AND CDPOS.VALUE_NEW = 'C'
UNION ALL
-- 10. Return Order Completed
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Return Order Completed' AS "ActivityName",
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
CDHDR.USERNAME AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN CDHDR ON B.ReturnOrderNumber = CDHDR.OBJECTID
JOIN CDPOS ON CDHDR.OBJECTCLAS = CDPOS.OBJECTCLAS AND CDHDR.OBJECTID = CDPOS.OBJECTID AND CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
WHERE CDHDR.OBJECTCLAS = 'VERKBELEG'
AND CDPOS.TABNAME = 'VBUK'
AND CDPOS.FNAME = 'GBSTK'
AND CDPOS.VALUE_NEW = 'C'
UNION ALL
-- 11. Return Order Item Rejected
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Return Order Item Rejected' AS "ActivityName",
TO_TIMESTAMP(CONCAT(CDHDR.UDATE, CDHDR.UTIME), 'YYYYMMDDHH24MISS') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
CDHDR.USERNAME AS "ProcessingAgent",
CDPOS.VALUE_NEW AS "ReturnReason", -- Using rejection reason for this specific event
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
NULL AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN CDHDR ON CONCAT(B.ReturnOrderNumber, LPAD(B.ReturnOrderItemNumber, 6, '0')) = CDHDR.OBJECTID
JOIN CDPOS ON CDHDR.OBJECTCLAS = CDPOS.OBJECTCLAS AND CDHDR.OBJECTID = CDPOS.OBJECTID AND CDHDR.CHANGENR = CDPOS.CHANGENR
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
WHERE CDHDR.OBJECTCLAS = 'VERKBELEG'
AND CDPOS.TABNAME = 'VBAP'
AND CDPOS.FNAME = 'ABGRU'
AND CDPOS.VALUE_NEW <> ''
UNION ALL
-- 12. Credit Memo Cleared
SELECT
CONCAT(B.ReturnOrderNumber, '-', B.ReturnOrderItemNumber) AS "ReturnCaseId",
'Credit Memo Cleared' AS "ActivityName",
TO_TIMESTAMP(BSAD.AUGDT, 'YYYYMMDD') AS "EventTime",
'SAP ECC' AS "SourceSystem",
CURRENT_TIMESTAMP AS "LastDataUpdate",
CLEAR_DOC.USNAM AS "ProcessingAgent",
VBAK.AUGRU AS "ReturnReason",
VBAP.MATNR AS "MaterialNumber",
VBAK.VTWEG AS "ReturnChannel",
VBAP.NETWR AS "RequestedRefundAmount",
VBRP.NETWR AS "ActualRefundAmount"
FROM BaseReturnOrders B
JOIN VBAK ON B.ReturnOrderNumber = VBAK.VBELN
JOIN VBAP ON B.ReturnOrderNumber = VBAP.VBELN AND B.ReturnOrderItemNumber = VBAP.POSNR
JOIN VBFA ON B.ReturnOrderNumber = VBFA.VBELV AND B.ReturnOrderItemNumber = VBFA.POSNV AND VBFA.VBTYP_N = 'M'
JOIN VBRK ON VBFA.VBELN = VBRK.VBELN
JOIN VBRP ON VBRK.VBELN = VBRP.VBELN AND VBFA.POSNN = VBRP.POSNR
JOIN BSAD ON VBRK.VBELN = BSAD.VBELN
JOIN BKPF AS CLEAR_DOC ON BSAD.AUGBL = CLEAR_DOC.BELNR AND BSAD.BUKRS = CLEAR_DOC.BUKRS AND BSAD.GJAHR_AUGL = CLEAR_DOC.GJAHR; พร้อมเริ่มต้นหรือยัง?
เริ่มใช้เทมเพลตนี้ได้เลย เพื่อจัดระเบียบการเก็บข้อมูลและค้นหาอินไซต์จากกระบวนการคืนสินค้าและคืนเงิน.
ปรับปรุงกระบวนการคืนสินค้าและคืนเงินได้เลย
ปรับกระบวนการคืนสินค้าใน SAP ECC ให้คล่องตัวขึ้นและลดระยะเวลาดำเนินการ 30% เริ่มได้วันนี้.
ไม่ต้องใช้บัตรเครดิต ตั้งค่าได้ในไม่กี่นาที