เทมเพลตข้อมูลการจัดการการขนส่งของคุณ
เทมเพลตข้อมูลการจัดการการขนส่งของคุณ
- แอตทริบิวต์ที่แนะนำให้เก็บรวบรวม
- กิจกรรมสำคัญที่ควรติดตาม
- แนวทางดึงข้อมูลจาก SAP Transportation Management
แอตทริบิวต์การจัดการการขนส่ง
| ชื่อ | คำอธิบาย | ||
|---|---|---|---|
| การขนส่ง ShipmentId | รหัสเฉพาะของการเคลื่อนย้ายสินค้าแต่ละครั้ง ซึ่งใช้เป็นเคสหลักในการวิเคราะห์. | ||
| คำอธิบาย Shipment ID เป็นคีย์หลักที่ใช้จัดกลุ่มกิจกรรมและเหตุการณ์ด้านการขนส่งที่เกี่ยวข้องทั้งหมด โดยแทนกระบวนการขนส่งหนึ่งรายการตั้งแต่ต้นจนจบ ตั้งแต่คำขอเริ่มต้นไปจนถึงหลักฐานการส่งมอบและการชำระเงิน. ใน process mining คุณลักษณะนี้จำเป็นต่อการสร้างมุมมองเคส ช่วยให้นักวิเคราะห์ติดตามเส้นทางทั้งหมดของการขนส่งแต่ละรายการได้ และใช้วิเคราะห์รูปแบบกระบวนการ ระยะเวลาดำเนินการ และผลลัพธ์ของการขนส่งแต่ละรายการ เพื่อให้เห็นผลการดำเนินงานด้านการขนส่งได้ชัดเจน. เหตุผลที่สำคัญ นี่คือรหัสระบุเคสหลักที่เชื่อมโยงเหตุการณ์และข้อมูลทั้งหมดกับคำสั่งขนส่งรายการหนึ่ง ซึ่งจำเป็นต่อการวิเคราะห์กระบวนการตั้งแต่ต้นจนจบ. แหล่งข้อมูล รหัสนี้คือหมายเลข Freight Order หรือ Freight Booking ใน SAP TM โดยค้นหาได้จากตาราง เช่น /SCMTMS/D_TORROT และ /SCMTMS/D_TRQROT. ตัวอย่าง 610000432161000056786100009876 | |||
| ชื่อกิจกรรม ActivityName | ชื่อของเหตุการณ์ทางธุรกิจหรือขั้นตอนหนึ่งที่เกิดขึ้นในกระบวนการขนส่ง. | ||
| คำอธิบาย ชื่อกิจกรรมระบุงานหรือขั้นตอนสำคัญหนึ่งรายการในวงจรการขนส่ง เช่น 'วางแผนการขนส่งแล้ว' 'รับสินค้าไปแล้ว' หรือ 'ส่งมอบสินค้าแล้ว' กิจกรรมเหล่านี้เป็นโหนดในแผนผังกระบวนการที่ค้นพบ. การวิเคราะห์ลำดับและความถี่ของกิจกรรมช่วยระบุเส้นทางกระบวนการมาตรฐาน ความเบี่ยงเบน คอขวด และขั้นตอนที่ต้องทำซ้ำ ข้อมูลนี้เป็นพื้นฐานของการค้นพบกระบวนการและการตรวจสอบความสอดคล้องในการจัดการการขนส่ง. เหตุผลที่สำคัญ คุณลักษณะนี้ระบุขั้นตอนในกระบวนการขนส่ง เพื่อแสดงภาพและวิเคราะห์เส้นทางการขนส่งตั้งแต่ต้นจนจบ. แหล่งข้อมูล โดยทั่วไปข้อมูลนี้ได้มาจากรหัสเหตุการณ์หรือการเปลี่ยนสถานะที่บันทึกไว้ในตัวจัดการเหตุการณ์ติดตามการดำเนินงานของ SAP TM อาจดึงจากตารางที่บันทึกการเปลี่ยนสถานะของออบเจ็กต์ทางธุรกิจหรือข้อความเหตุการณ์เฉพาะ. ตัวอย่าง วางแผนการขนส่งแล้วกำหนดผู้ขนส่งแล้วรับสินค้าไปแล้วส่งมอบสินค้าแล้วได้รับหลักฐานการส่งมอบแล้ว | |||
| เวลาเกิดเหตุการณ์ EventTime | เวลาที่ระบุว่าเกิดกิจกรรมหรือเหตุการณ์หนึ่งขึ้นเมื่อใด. | ||
| คำอธิบาย เวลาเกิดเหตุการณ์ระบุวันที่และเวลาที่แน่นอนของแต่ละกิจกรรมในกระบวนการขนส่ง ข้อมูลด้านเวลานี้เป็นพื้นฐานในการคำนวณระยะเวลาดำเนินการ ระยะเวลาของกิจกรรม และเวลารอระหว่างขั้นตอนต่างๆ ของกระบวนการ. ในการวิเคราะห์ คุณลักษณะนี้ใช้เรียงเหตุการณ์ให้ถูกต้อง สร้างบันทึกตามลำดับเวลา และวิเคราะห์ผลการดำเนินงานด้านเวลา ช่วยระบุความล่าช้า วัดประสิทธิภาพของกระบวนการ และประเมินผลเทียบกับกำหนดการหรือข้อตกลงระดับการให้บริการ. เหตุผลที่สำคัญ เวลานี้จำเป็นต่อการเรียงเหตุการณ์ตามลำดับเวลาและคำนวณตัวชี้วัดผลการดำเนินงาน เช่น ระยะเวลาดำเนินการและการส่งมอบตรงเวลา. แหล่งข้อมูล ดึงข้อมูลจากตารางตัวจัดการเหตุการณ์ใน SAP TM เช่น /SAPTRX/EH_EVMSG ซึ่งจัดเก็บเวลาของเหตุการณ์ที่รายงาน. ตัวอย่าง 2023-04-15T10:00:00Z2023-04-16T14:30:00Z2023-04-20T09:15:00Z | |||
| ชื่อผู้ขนส่ง CarrierName | ชื่อบริษัทขนส่งหรือผู้ให้บริการโลจิสติกส์ที่ได้รับมอบหมายให้ขนส่งสินค้า. | ||
| คำอธิบาย ชื่อผู้ขนส่งระบุบริษัทที่รับผิดชอบการเคลื่อนย้ายสินค้าจริง ข้อมูลนี้สำคัญต่อการวิเคราะห์ผลการดำเนินงาน เพราะผู้ขนส่งแต่ละรายอาจมีระดับการบริการ ต้นทุน และความน่าเชื่อถือแตกต่างกัน ใน process mining คุณใช้แอตทริบิวต์นี้แบ่งกลุ่มและเปรียบเทียบผลการดำเนินงานของผู้ขนส่งแต่ละรายได้ เช่น จัดทำคะแนนประเมินผู้ขนส่ง ติดตามอัตราการส่งมอบตรงเวลาของแต่ละราย เปรียบเทียบต้นทุน และระบุว่าผู้ขนส่งรายใดเกี่ยวข้องกับความล่าช้าหรือข้อโต้แย้งบ่อยที่สุด ข้อมูลนี้ช่วยในการบริหารผู้ขนส่งและจัดซื้อเชิงกลยุทธ์. เหตุผลที่สำคัญ ช่วยเปรียบเทียบผลการดำเนินงานของผู้ขนส่งแต่ละราย ซึ่งเป็นข้อมูลสำคัญในการเลือกผู้ขนส่งและปรับต้นทุนกับระดับการบริการให้เหมาะสม. แหล่งข้อมูล ข้อมูลนี้จัดเก็บไว้ในเอกสาร Freight Order หรือ Freight Booking และเชื่อมโยงผ่านฟังก์ชันคู่ค้าทางธุรกิจของผู้ขนส่ง. ตัวอย่าง DHL ExpressFedEx FreightMaersk LineUnion Pacific Railroad | |||
| ต้นทุนค่าขนส่งรวม TotalFreightCost | ต้นทุนรวมที่คำนวณหรือเรียกเก็บสำหรับการขนส่ง. | ||
| คำอธิบาย ต้นทุนค่าขนส่งรวมแสดงผลกระทบทางการเงินของการขนส่ง ซึ่งอาจเป็นต้นทุนที่ระบบจัดการการขนส่งคำนวณไว้ หรือยอดสุดท้ายจากใบแจ้งหนี้ของผู้ขนส่งหลังจากชำระบัญชีแล้ว แอตทริบิวต์นี้ช่วยนำมิติด้านการเงินมาวิเคราะห์กระบวนการ นักวิเคราะห์สามารถระบุรูปแบบกระบวนการที่มีต้นทุนสูงที่สุด คำนวณต้นทุนจากความล่าช้าหรือการเปลี่ยนเส้นทาง และเปรียบเทียบความคุ้มค่าของผู้ขนส่งหรือรูปแบบการขนส่งแต่ละประเภท ข้อมูลนี้เป็นพื้นฐานของแดชบอร์ดที่ติดตามค่าใช้จ่ายด้านการขนส่งและต้นทุนการให้บริการ. เหตุผลที่สำคัญ เพิ่มมิติด้านการเงินในการวิเคราะห์กระบวนการ ช่วยวิเคราะห์ค่าใช้จ่ายด้านการขนส่ง ต้นทุนต่อรายการ และผลกระทบทางการเงินจากความไม่มีประสิทธิภาพของกระบวนการ. แหล่งข้อมูล ดึงข้อมูลจากเอกสาร Freight Settlement ใน SAP TM หลังคำนวณค่าบริการแล้ว โดยอาจพบข้อมูลในตาราง เช่น /SCMTMS/D_SFIRHD. ตัวอย่าง 250.751200.005430.50 | |||
| รูปแบบการขนส่ง ModeOfTransport | วิธีขนส่งสินค้าที่ใช้ เช่น ทางถนน ทางรถไฟ ทางอากาศ หรือทางทะเล. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุรูปแบบการขนส่ง แต่ละรูปแบบมีโครงสร้างต้นทุน ระยะเวลาขนส่ง และความซับซ้อนของกระบวนการต่างกัน ตัวอย่างเช่น การขนส่งทางอากาศระหว่างประเทศมีกิจกรรมอย่างพิธีการศุลกากร ซึ่งแตกต่างจากการขนส่งสินค้าทางรถบรรทุกภายในประเทศ การวิเคราะห์กระบวนการแยกตามรูปแบบการขนส่งช่วยให้วางแผนปรับปรุงได้ตรงจุด และยังจำเป็นต่อการวิเคราะห์ต้นทุน โดยเฉพาะการตรวจสอบการใช้บริการขนส่งราคาสูง เช่น การขนส่งทางอากาศแบบเร่งด่วน เทียบกับรูปแบบมาตรฐานที่ประหยัดกว่า การแบ่งกลุ่มเช่นนี้ช่วยให้เข้าใจและควบคุมค่าใช้จ่ายด้านการขนส่งได้. เหตุผลที่สำคัญ ช่วยวิเคราะห์ความแตกต่างด้านต้นทุน เวลา และกระบวนการตามรูปแบบการขนส่ง ซึ่งจำเป็นต่อการควบคุมต้นทุนและระบุการใช้บริการขนส่งราคาสูง. แหล่งข้อมูล เป็นฟิลด์สำคัญใน Freight Order หรือ Freight Booking ซึ่งมักใช้ชื่อ Transportation Mode หรือ MOT. ตัวอย่าง 01 (ทางถนน)02 (ทางรถไฟ)04 (ทางอากาศ)05 (ทางทะเล) | |||
| วันที่ต้องการให้ส่งมอบ RequestedDeliveryDate | วันที่และเวลาที่ลูกค้าต้องการให้ส่งมอบ หรือวันที่ระบุไว้ในใบสั่งขาย. | ||
| คำอธิบาย วันที่ต้องการให้ส่งมอบเป็นกำหนดเวลาสำหรับกิจกรรม 'ส่งมอบสินค้า' และใช้เป็นเกณฑ์หลักในการวัดผลการส่งมอบตรงเวลา วันที่นี้จำเป็นต่อการคำนวณ KPI 'อัตราการส่งมอบตรงเวลา' เมื่อนำเวลาส่งมอบจริงมาเปรียบเทียบกับวันที่ต้องการ คุณจะทราบได้ว่าการส่งมอบเป็นไปตามข้อตกลงระดับการบริการหรือไม่ การวิเคราะห์ความคลาดเคลื่อนช่วยระบุสาเหตุของความล่าช้าที่เกิดซ้ำ เช่น ผลการดำเนินงานของผู้ขนส่ง ปัญหาในการวางแผน หรือการติดค้างที่ศุลกากร. เหตุผลที่สำคัญ ใช้เป็นเกณฑ์ตั้งต้นในการวัดผลการส่งมอบตรงเวลา ซึ่งเป็น KPI สำคัญต่อความพึงพอใจของลูกค้าและประสิทธิภาพการปฏิบัติการ. แหล่งข้อมูล โดยทั่วไป วันที่นี้ถ่ายโอนมาจากใบสั่งขายหรือใบสั่งขนส่งสต็อกก่อนหน้าใน SAP ERP และจัดเก็บในฟิลด์วันที่และเวลาของ Freight Unit หรือ Freight Order. ตัวอย่าง 2023-05-20T17:00:00Z2023-06-01T12:00:00Z2023-06-15T23:59:59Z | |||
| เวลาสิ้นสุด EndTime | เวลาที่ระบุว่ากิจกรรมหนึ่งเสร็จสิ้นเมื่อใด. | ||
| คำอธิบาย StartTime ระบุจุดเริ่มต้นของเหตุการณ์ ส่วน EndTime ระบุเวลาสิ้นสุด ซึ่งมีประโยชน์เป็นพิเศษกับกิจกรรมที่ใช้เวลา เช่น 'Customs Clearance' หรือ 'Goods Loading' ผลต่างระหว่าง EndTime กับ StartTime คือเวลาที่ใช้ดำเนินกิจกรรมนั้น. ในการวิเคราะห์ process mining การมีทั้งเวลาเริ่มต้นและเวลาสิ้นสุดช่วยให้วิเคราะห์ระยะเวลาของกิจกรรมได้ละเอียดขึ้น และแยกเวลาที่ใช้ทำงานออกจากเวลารอได้ จึงระบุได้ว่าความไม่มีประสิทธิภาพเกิดขึ้นตรงไหน ไม่ว่าจะระหว่างทำงานหรือระหว่างส่งต่องาน. เหตุผลที่สำคัญ ช่วยคำนวณเวลาที่ใช้ดำเนินกิจกรรมได้อย่างแม่นยำ และแยกเวลาทำงานจริงออกจากเวลาระหว่างรอเหตุการณ์ถัดไป. แหล่งข้อมูล เช่นเดียวกับ StartTime ข้อมูลนี้ดึงจากตารางตัวจัดการเหตุการณ์ และอาจตรงกับเหตุการณ์ 'completed' ที่แยกต่างหากของกิจกรรมนั้น. ตัวอย่าง 2023-04-15T11:30:00Z2023-04-16T15:00:00Z2023-04-20T09:45:00Z | |||
| ส่งมอบตรงเวลาหรือไม่ IsOnTimeDelivery | ค่าบูลีนที่ระบุว่าส่งมอบสินค้าภายในหรือก่อนวันที่ต้องการให้ส่งมอบหรือไม่. | ||
| คำอธิบาย แอตทริบิวต์นี้คำนวณโดยเปรียบเทียบเวลาของกิจกรรม 'ส่งมอบสินค้า' กับ 'วันที่ต้องการให้ส่งมอบ' หากส่งมอบตรงเวลาหรือก่อนกำหนด ค่าจะเป็น true หากล่าช้า ค่าจะเป็น false แอตทริบิวต์นี้ช่วยให้วิเคราะห์ผลการดำเนินงานได้ง่ายขึ้น โดยระบุผลลัพธ์ของการขนส่งแต่ละรายการเป็นสองสถานะอย่างชัดเจน ใช้เป็นพื้นฐานของแดชบอร์ดผลการส่งมอบตรงเวลาและ KPI ที่เกี่ยวข้อง นักวิเคราะห์สามารถกรองรายการที่ล่าช้าและวิเคราะห์สาเหตุที่แท้จริงของผลการดำเนินงานที่ไม่เป็นไปตามเป้าหมายได้. เหตุผลที่สำคัญ วัดการทำตามกำหนดส่งมอบโดยตรง ช่วยให้คำนวณและแสดง KPI การส่งมอบตรงเวลาที่สำคัญได้ง่ายขึ้น. แหล่งข้อมูล แอตทริบิวต์นี้ไม่ได้จัดเก็บใน SAP TM ต้องคำนวณระหว่างการแปลงข้อมูล โดยเปรียบเทียบเวลาของเหตุการณ์ส่งมอบจริงกับวันที่ต้องการให้ส่งมอบ. ตัวอย่าง truefalse | |||
| ชื่อผู้ใช้ UserName | รหัสหรือชื่อผู้ใช้ของผู้ที่ดำเนินกิจกรรม. | ||
| คำอธิบาย คุณลักษณะนี้ระบุพนักงานหรือผู้ใช้ที่รับผิดชอบกิจกรรมที่ทำด้วยตนเอง เช่น 'วางแผนการขนส่งแล้ว' หรือ 'ตรวจสอบใบแจ้งหนี้แล้ว' และเชื่อมโยงขั้นตอนของกระบวนการกับบุคคลหรือทีมที่ดำเนินการ. การวิเคราะห์กิจกรรมแยกตามผู้ใช้ช่วยให้เข้าใจการกระจายภาระงาน ระบุความต้องการด้านการฝึกอบรม และเห็นผู้ที่ทำผลงานได้ดี นอกจากนี้ยังสำคัญต่อการปฏิบัติตามข้อกำหนดและการตรวจสอบ เพราะแสดงได้ชัดเจนว่าใครทำอะไรและเมื่อใด อีกทั้งยังช่วยให้เห็นความแตกต่างในการทำงานของผู้ใช้แต่ละคน. เหตุผลที่สำคัญ ระบุผู้ใช้ที่รับผิดชอบขั้นตอนที่ทำด้วยตนเอง ช่วยวิเคราะห์ภาระงาน ผลการทำงานรายบุคคล และโอกาสในการฝึกอบรม. แหล่งข้อมูล มักพบข้อมูลนี้ในตารางบันทึกการเปลี่ยนแปลงหรือส่วนหัวเอกสารการขนส่ง เช่น ฟิลด์ 'Created By' หรือ 'Changed By' (เช่น ERNAM, AENAM). ตัวอย่าง CB998030SMITHJPLANNER_EU | |||
| ประเทศต้นทาง OriginCountry | ประเทศที่การขนส่งเริ่มต้น. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุประเทศต้นทางของการขนส่ง โดยอ้างอิงจากที่อยู่ของจุดรับสินค้าแรก การวิเคราะห์กระบวนการแยกตามประเทศต้นทางช่วยระบุความแตกต่างด้านผลการดำเนินงาน ต้นทุน และความซับซ้อนในแต่ละภูมิภาค เช่น ประเทศที่ใช้เวลาผ่านพิธีการศุลกากรนานกว่า มีต้นทุนผู้ขนส่งสูงกว่า หรือเกิดความล่าช้าบ่อยกว่า การแบ่งกลุ่มตามภูมิศาสตร์นี้จำเป็นต่อการบริหารห่วงโซ่อุปทานระดับโลกและการวางกลยุทธ์โลจิสติกส์ให้เหมาะกับแต่ละภูมิภาค. เหตุผลที่สำคัญ ช่วยวิเคราะห์ผลการขนส่งตามภูมิภาค เพื่อระบุคอขวด ปัจจัยที่ทำให้เกิดต้นทุน หรือความแตกต่างของกระบวนการในแต่ละพื้นที่. แหล่งข้อมูล เป็นส่วนหนึ่งของข้อมูลที่อยู่ต้นทางของจุดแวะแรกใน Freight Order. ตัวอย่าง DEUSCNMX | |||
| ประเทศปลายทาง DestinationCountry | ประเทศที่จัดส่งสินค้าไปถึง. | ||
| คำอธิบาย แอตทริบิวต์นี้ระบุประเทศปลายทางสุดท้ายของการขนส่ง โดยอ้างอิงจากที่อยู่ของจุดส่งมอบสุดท้าย เช่นเดียวกับประเทศต้นทาง การวิเคราะห์ตามประเทศปลายทางช่วยให้เข้าใจความท้าทายด้านโลจิสติกส์ในแต่ละภูมิภาค เช่น ปลายทางใดมีแนวโน้มส่งมอบล่าช้าหรือมีต้นทุนการจัดส่งช่วงสุดท้ายสูงกว่า ข้อมูลนี้มีประโยชน์ต่อการปรับเครือข่ายโลจิสติกส์ การกำหนดเวลาส่งมอบที่เหมาะสม และการบริหารการปฏิบัติตามข้อกำหนดด้านการค้าระหว่างประเทศ. เหตุผลที่สำคัญ ช่วยวิเคราะห์ผลการดำเนินงานของกระบวนการตามปลายทาง และชี้ให้เห็นปัญหาในพื้นที่ส่งมอบ หน่วยงานศุลกากร หรือผู้ขนส่งช่วงสุดท้ายแต่ละแห่ง. แหล่งข้อมูล เป็นส่วนหนึ่งของข้อมูลที่อยู่ปลายทางของจุดแวะสุดท้ายใน Freight Order. ตัวอย่าง FRCAGBJP | |||
| มีข้อโต้แย้งหรือไม่ IsDisputed | ค่าบูลีนที่ระบุว่าใบแจ้งหนี้ค่าขนส่งของรายการนี้มีข้อโต้แย้งหรือไม่. | ||
| คำอธิบาย ค่านี้คำนวณเพื่อระบุการขนส่งที่มีข้อโต้แย้งเกี่ยวกับการชำระบัญชีค่าขนส่ง หากมีการเปิดข้อโต้แย้ง ค่าจะเป็น true หากไม่มี ค่าจะเป็น false โดยคำนวณได้จากกิจกรรม 'สร้างข้อโต้แย้งค่าขนส่ง' หรือการมีค่าใน 'เหตุผลในการโต้แย้ง' แอตทริบิวต์นี้ช่วยให้วิเคราะห์ขั้นตอนชำระบัญชีค่าขนส่งได้ง่ายขึ้น และใช้คำนวณ KPI อัตราความคลาดเคลื่อนในการเรียกเก็บค่าขนส่ง รวมถึงกรองรายการที่มีข้อโต้แย้งทั้งหมด จากนั้นนักวิเคราะห์สามารถตรวจสอบลักษณะที่พบร่วมกัน เช่น ผู้ขนส่ง เส้นทาง หรือประเภทค่าบริการ เพื่อหาสาเหตุหลักของข้อผิดพลาดในการเรียกเก็บเงิน. เหตุผลที่สำคัญ ช่วยระบุรายการชำระบัญชีค่าขนส่งที่มีปัญหา คำนวณอัตราข้อโต้แย้งได้รวดเร็ว และวิเคราะห์สาเหตุหลักของข้อผิดพลาดในการเรียกเก็บเงิน. แหล่งข้อมูล แอตทริบิวต์นี้ไม่ได้จัดเก็บใน SAP TM ต้องคำนวณจากการมีเคสข้อโต้แย้งที่เชื่อมโยงกับเอกสาร Freight Settlement. ตัวอย่าง truefalse | |||
| ระบบต้นทาง SourceSystem | ระบบที่เป็นแหล่งที่มาของข้อมูลเหตุการณ์. | ||
| คำอธิบาย คุณลักษณะนี้ระบุระบบต้นทางที่สร้างข้อมูล เช่น SAP TM, SAP ERP หรือพอร์ทัลผู้ขนส่งภายนอก ช่วยให้ทราบที่มาของข้อมูลและเข้าใจจุดเชื่อมต่อระหว่างระบบ. เมื่อมีหลายระบบ การทราบระบบต้นทางมีความสำคัญต่อการตรวจสอบข้อมูล การแก้ปัญหาการเชื่อมต่อ และการทำความเข้าใจว่าระบบต่างๆ มีส่วนในกระบวนการโดยรวมอย่างไร ตัวอย่างเช่น ช่วยแยกเหตุการณ์ที่รายงานโดยระบบภายในออกจากเหตุการณ์ที่รายงานโดยผู้ให้บริการโลจิสติกส์ภายนอก. เหตุผลที่สำคัญ ระบุที่มาของข้อมูล ซึ่งจำเป็นต่อการกำกับดูแลข้อมูล การแก้ปัญหา และการทำความเข้าใจการประสานงานของกระบวนการระหว่างหลายระบบ. แหล่งข้อมูล ข้อมูลนี้มักจัดเก็บไว้ในบันทึกระบบ หรืออนุมานได้จากอินเทอร์เฟซหรือผู้ใช้ที่สร้างรายการข้อมูล. ตัวอย่าง SAP_TM_P01SAP_ERP_E01CARRIER_PORTAL_XYZ | |||
| วันที่นัดรับสินค้า ScheduledPickupDate | วันที่และเวลาที่วางแผนให้ผู้ขนส่งเข้ารับสินค้าจากจุดจัดส่ง. | ||
| คำอธิบาย วันที่นัดรับสินค้าเป็นเวลาที่ตกลงกันว่าจะเริ่มขนส่งสินค้าจริง และเป็นหมุดหมายสำคัญในขั้นตอนดำเนินการขนส่ง แอตทริบิวต์นี้จำเป็นต่อการติดตามความตรงเวลาของช่วงแรกในการขนส่ง เมื่อนำเวลารับสินค้าตามกำหนดมาเปรียบเทียบกับเวลาของเหตุการณ์ 'รับสินค้าแล้ว' คุณจะคำนวณความล่าช้าในการรับสินค้าได้ ข้อมูลนี้ช่วยประเมินผลการดำเนินงานและความน่าเชื่อถือของทั้งจุดจัดส่งและผู้ขนส่ง. เหตุผลที่สำคัญ ใช้เป็นเกณฑ์ตั้งต้นในการวัดความตรงเวลาของการรับสินค้า และช่วยระบุความล่าช้าตั้งแต่เริ่มขนส่งจริง. แหล่งข้อมูล เป็นวันที่และเวลาที่วางแผนไว้ ซึ่งจัดเก็บในลำดับจุดแวะของ Freight Order ใน SAP TM. ตัวอย่าง 2023-05-18T09:00:00Z2023-05-30T14:00:00Z2023-06-12T10:30:00Z | |||
| สถานะการขนส่ง ShipmentStatus | สถานะโดยรวมปัจจุบันของการขนส่ง ณ เวลาที่ดึงข้อมูล. | ||
| คำอธิบาย สถานะการขนส่งแสดงภาพรวมว่าการขนส่งอยู่ในขั้นตอนใด เช่น 'อยู่ระหว่างวางแผน' 'อยู่ระหว่างดำเนินการ' 'ส่งมอบแล้ว' หรือ 'ยกเลิกแล้ว' โดยระบุสถานะล่าสุดที่ทราบของเคส แอตทริบิวต์นี้ช่วยกรองและวิเคราะห์การขนส่งตามผลลัพธ์ได้ เช่น นักวิเคราะห์อาจเลือกดูเฉพาะรายการที่เสร็จสมบูรณ์เพื่อวัดระยะเวลาตั้งแต่ต้นจนจบ หรือดูเฉพาะรายการที่ยกเลิกเพื่อหาสาเหตุที่แท้จริงของการยกเลิก ข้อมูลนี้ช่วยให้เข้าใจบริบทของลำดับการทำงานได้ชัดเจนขึ้น. เหตุผลที่สำคัญ แสดงผลลัพธ์โดยรวมของการขนส่งแต่ละรายการ ช่วยกรองและวิเคราะห์ได้ว่าการขนส่งเสร็จสมบูรณ์ ถูกยกเลิก หรือยังอยู่ระหว่างทาง. แหล่งข้อมูล เป็นฟิลด์สถานะโดยรวมในส่วนหัวของเอกสาร Freight Order หรือ Freight Booking ใน SAP TM. ตัวอย่าง อยู่ระหว่างวางแผนพร้อมขนส่งอยู่ระหว่างดำเนินการดำเนินการแล้วยกเลิกแล้ว | |||
| สาเหตุความล่าช้า DelayReason | รหัสหรือข้อความที่อธิบายสาเหตุความล่าช้าของการขนส่ง. | ||
| คำอธิบาย แอตทริบิวต์สาเหตุความล่าช้าบันทึกสาเหตุที่ทำให้กำหนดการคลาดเคลื่อน เช่น 'สภาพอากาศเลวร้าย' 'ติดค้างที่ศุลกากร' หรือ 'ผู้ขนส่งล่าช้า' โดยมักมีผู้รายงานข้อมูลด้วยตนเอง หรือได้รับผ่านข้อความเหตุการณ์จากผู้ขนส่ง แอตทริบิวต์นี้ช่วยวิเคราะห์สาเหตุที่แท้จริง นักวิเคราะห์จึงไม่เพียงทราบว่าการขนส่งล่าช้า แต่ยังเข้าใจสาเหตุได้ด้วย เมื่อจัดหมวดหมู่และวัดจำนวนเหตุผลของความล่าช้า องค์กรจะระบุปัญหาที่เกิดซ้ำและมุ่งปรับปรุงจุดที่ส่งผลมากที่สุดได้ เช่น ปรับปรุงการสื่อสารกับผู้ขนส่งหรือเลือกเส้นทางที่หลีกเลี่ยงการจราจรติดขัด. เหตุผลที่สำคัญ อธิบายสาเหตุเบื้องหลังความล่าช้าของการขนส่ง ช่วยวิเคราะห์ต้นเหตุเพื่อลดเหตุผิดปกติและเพิ่มผลการส่งมอบตรงเวลา. แหล่งข้อมูล ข้อมูลนี้บันทึกเป็นรหัสเหตุการณ์และสาเหตุในกรอบการจัดการเหตุการณ์ของ SAP TM เมื่อมีการรายงานเหตุการณ์ 'มาถึง/ออกเดินทางล่าช้า'. ตัวอย่าง WEATHER_DELAYCUSTOMS_INSPECTIONPORT_CONGESTIONMECHANICAL_FAILURE | |||
| เหตุผลในการโต้แย้ง DisputeReason | เหตุผลที่ระบุเมื่อมีการโต้แย้งใบแจ้งหนี้ค่าขนส่ง. | ||
| คำอธิบาย เมื่อยอดในใบแจ้งหนี้ของผู้ขนส่งไม่ตรงกับต้นทุนที่คำนวณไว้ใน SAP TM จะมีการเปิดข้อโต้แย้ง แอตทริบิวต์นี้บันทึกสาเหตุของความคลาดเคลื่อน เช่น 'อัตราค่าบริการไม่ถูกต้อง' 'ใบแจ้งหนี้ซ้ำ' หรือ 'ไม่อนุมัติค่าบริการเพิ่มเติม' การวิเคราะห์เหตุผลในการโต้แย้งจำเป็นต่อแดชบอร์ดข้อผิดพลาดและอัตราการโต้แย้งใบแจ้งหนี้ค่าขนส่ง ช่วยระบุสาเหตุหลักของการเรียกเก็บเงินไม่ถูกต้อง ไม่ว่าจะเกิดจากข้อมูลหลัก ข้อผิดพลาดของผู้ขนส่ง หรือปัญหาในการปฏิบัติงาน ข้อมูลนี้ช่วยให้องค์กรแก้ไขได้ตรงจุด ลดข้อโต้แย้ง เร่งรอบการชำระเงิน และลดภาระงานธุรการ. เหตุผลที่สำคัญ ระบุสาเหตุหลักของข้อผิดพลาดในการเรียกเก็บค่าขนส่ง ช่วยให้แก้ไขได้ตรงจุด ลดข้อโต้แย้งในใบแจ้งหนี้ และปรับปรุงขั้นตอนชำระบัญชี. แหล่งข้อมูล ข้อมูลนี้บันทึกไว้ในเคสจัดการข้อโต้แย้งที่เชื่อมโยงกับเอกสาร Freight Settlement. ตัวอย่าง อัตราค่าบริการไม่ตรงกันน้ำหนักไม่ถูกต้องค่าจอดรอที่ไม่ได้รับอนุมัติใบแจ้งหนี้ซ้ำ | |||
| อัปเดตข้อมูลล่าสุด LastDataUpdate | เวลาที่ดึงหรือรีเฟรชชุดข้อมูล process mining ล่าสุด. | ||
| คำอธิบาย คุณลักษณะนี้ระบุว่าข้อมูลที่นำมาวิเคราะห์เป็นข้อมูลล่าสุดเพียงใด โดยแสดงวันที่และเวลาที่ดึงข้อมูลจากระบบต้นทาง เช่น SAP TM เข้าสู่เครื่องมือ process mining ครั้งล่าสุด. ข้อมูลเมตานี้สำคัญต่อแดชบอร์ดหรือการวิเคราะห์ เพราะช่วยให้ทราบว่าข้อมูลเชิงลึกเป็นปัจจุบันเพียงใด ผู้ใช้จึงตรวจสอบได้ว่ากำลังดูข้อมูลแบบเรียลไทม์หรือภาพข้อมูลจากช่วงเวลาก่อนหน้า ซึ่งจำเป็นต่อการตัดสินใจอย่างทันท่วงทีและมีข้อมูลรองรับ. เหตุผลที่สำคัญ ให้ข้อมูลสำคัญว่าข้อมูลเป็นปัจจุบันเพียงใด เพื่อให้ผู้ใช้ทราบว่าการวิเคราะห์อ้างอิงข้อมูลล่าสุดหรือไม่. แหล่งข้อมูล โดยทั่วไปเครื่องมือ ETL (Extract, Transform, Load) หรือไปป์ไลน์ข้อมูลจะสร้างและจัดเก็บข้อมูลนี้ระหว่างการนำเข้าข้อมูล. ตัวอย่าง 2023-10-27T08:00:00Z2023-10-26T08:00:00Z | |||
กิจกรรมการจัดการการขนส่ง
| กิจกรรม | คำอธิบาย | ||
|---|---|---|---|
| กำหนดผู้ขนส่งแล้ว | กิจกรรมนี้หมายถึงการเลือกและกำหนดผู้ให้บริการขนส่งหรือผู้ขนส่งรายใดรายหนึ่งให้กับการขนส่ง ซึ่งอาจเกิดจากการกำหนดด้วยตนเอง การวางแผนอัตโนมัติ หรือกระบวนการเสนอราคา. | ||
| เหตุผลที่สำคัญ การกำหนดผู้ขนส่งเป็นขั้นตอนสำคัญก่อนยืนยันและดำเนินการขนส่ง การติดตามขั้นตอนนี้ช่วยวิเคราะห์กระบวนการเลือกผู้ขนส่งและตรวจสอบว่าการจองเสร็จทันเวลาหรือไม่. แหล่งข้อมูล บันทึกเหตุการณ์นี้เมื่อมีการกรอกข้อมูลผู้ขนส่ง (คู่ค้าที่มีบทบาท 'Carrier') ใน Freight Order หรือ Freight Booking สำหรับกระบวนการเสนอราคา ให้บันทึกเมื่อมีการมอบงานจาก Freight Request for Quotation. บันทึก ระบุเวลาที่กรอกหรือยืนยันฟังก์ชันคู่ค้าของผู้ขนส่งใน Freight Order เป็นครั้งแรก. ประเภทเหตุการณ์ inferred | |||
| ดำเนินการชำระเงินแล้ว | กิจกรรมสุดท้ายนี้ยืนยันว่าผู้ขนส่งได้รับเงินค่าบริการขนส่งแล้ว โดยทั่วไปเหตุการณ์นี้เกิดขึ้นในระบบ ERP ที่เชื่อมต่อ หลังได้รับใบแจ้งหนี้ที่ตรวจสอบแล้วจาก SAP TM. | ||
| เหตุผลที่สำคัญ นี่คือจุดสิ้นสุดที่แท้จริงของวงจรการขนส่งตั้งแต่ต้นจนจบ การติดตามขั้นตอนนี้จำเป็นต่อการวัดระยะเวลากระบวนการโดยรวมและ KPI การชำระเงินตรงเวลา. แหล่งข้อมูล ข้อมูลนี้อยู่ในระบบ ERP เช่น S/4HANA Finance และเชื่อมโยงกลับไปยัง Freight Settlement Document ได้ผ่านหมายเลขใบแจ้งหนี้ ระบบอาจส่งการอัปเดตสถานะกลับไปยัง SAP TM หรือดึงข้อมูลจากตาราง ERP เช่น BKPF และ BSEG. บันทึก ดึงวันที่เคลียร์การชำระเงินจากระบบ ERP แล้วเชื่อมโยงกับการขนส่งผ่านข้อมูลอ้างอิงใบแจ้งหนี้. ประเภทเหตุการณ์ explicit | |||
| ได้รับคำขอขนส่ง | กิจกรรมนี้เป็นจุดเริ่มต้นของกระบวนการขนส่ง โดยหมายถึงการสร้างความต้องการด้านการขนส่ง ใน SAP TM มักบันทึกเหตุการณ์นี้เมื่อสร้าง Forwarding Order (FWO) หรือ Order-based Transportation Requirement (OTR). | ||
| เหตุผลที่สำคัญ นี่คือเหตุการณ์เริ่มต้นหลักของกระบวนการขนส่งตั้งแต่ต้นจนจบ การวิเคราะห์เวลาตั้งแต่กิจกรรมนี้จนถึงการวางแผนเสร็จสิ้นมีความสำคัญต่อการวัดประสิทธิภาพการวางแผน. แหล่งข้อมูล บันทึกเหตุการณ์นี้เมื่อสร้าง Forwarding Order (ประเภทเอกสาร FWO) หรือเอกสารความต้องการด้านการขนส่งอื่นๆ โดยใช้เวลาที่สร้างในตารางส่วนหัว เช่น /SCMTMS/D_TORROT เป็นเวลาของเหตุการณ์. บันทึก บันทึกวันที่และเวลาที่สร้างเอกสาร Forwarding Order หรือ Transportation Requirement. ประเภทเหตุการณ์ explicit | |||
| ได้รับหลักฐานการส่งมอบแล้ว | กิจกรรมนี้เกิดขึ้นเมื่อได้รับเอกสาร Proof of Delivery (POD) ที่ลงนามแล้วจากผู้ขนส่ง และบันทึกเอกสารในระบบ เพื่อยืนยันว่าผู้รับยอมรับสินค้าแล้ว. | ||
| เหตุผลที่สำคัญ การได้รับ POD เป็นเงื่อนไขสำคัญก่อนออกใบแจ้งหนี้ให้ลูกค้าและชำระค่าขนส่งให้ผู้ขนส่ง หากล่าช้า วงจรเงินสดตั้งแต่จ่ายจนได้รับเงินคืนจะได้รับผลกระทบโดยตรง. แหล่งข้อมูล โดยทั่วไปอนุมานเหตุการณ์นี้ได้จากการเปลี่ยนสถานะของ Freight Order เช่น สถานะ POD เปลี่ยนเป็น 'Received' เวลาที่เปลี่ยนช่องสถานะนี้ใช้ระบุเวลาของกิจกรรมได้. บันทึก บันทึกเวลาที่สถานะ Proof of Delivery ใน Freight Order เปลี่ยนเป็น 'Received'. ประเภทเหตุการณ์ inferred | |||
| ยกเลิกการขนส่งแล้ว | กิจกรรมนี้หมายถึงการยกเลิกการขนส่งหลังจากได้รับคำขอหรือวางแผนแล้ว และเป็นจุดสิ้นสุดของกระบวนการที่ไม่ได้ดำเนินการขนส่งต่อ. | ||
| เหตุผลที่สำคัญ การติดตามการยกเลิกช่วยค้นหาสาเหตุที่ทำให้กระบวนการไม่สำเร็จ เช่น ความต้องการของลูกค้าเปลี่ยนหรือวางแผนผิดพลาด หากอัตราการยกเลิกสูง อาจบ่งชี้ถึงปัญหาพื้นฐานในการจัดการคำสั่งซื้อหรือการวางแผน. แหล่งข้อมูล อนุมานเหตุการณ์นี้ได้จากการเปลี่ยนสถานะวงจรการทำงานของ Forwarding Order หรือ Freight Order เป็น 'Cancelled' เวลาที่เปลี่ยนสถานะถือเป็นเวลาของเหตุการณ์. บันทึก บันทึกเวลาที่สถานะวงจรการทำงานของเอกสารเปลี่ยนเป็น 'Cancelled'. ประเภทเหตุการณ์ inferred | |||
| รับสินค้าไปแล้ว | กิจกรรมนี้เป็นจุดเริ่มต้นของการขนส่งสินค้าจริง โดยบันทึกเมื่อผู้ขนส่งแจ้งว่าโหลดสินค้าแล้วและออกจากสถานที่ของผู้ส่งสินค้า. | ||
| เหตุผลที่สำคัญ นี่คือขั้นตอนสำคัญในการดำเนินงาน ซึ่งหมายถึงการเริ่มช่วงที่สินค้าอยู่ระหว่างขนส่ง การติดตามขั้นตอนนี้มีความสำคัญต่อการวัดผลการส่งมอบตรงเวลาและการแสดงสถานะการขนส่งอย่างถูกต้อง. แหล่งข้อมูล โดยทั่วไป เหตุการณ์นี้จะบันทึกใน SAP Event Management ซึ่งเชื่อมต่อกับ SAP TM ในชื่อเหตุการณ์ 'ออกเดินทาง' หรือ 'สิ้นสุดการโหลด' และจะอัปเดตสถานะการดำเนินงานของ Freight Order นอกจากนี้ยังบันทึกเหตุการณ์นี้โดยตรงใน Freight Order ได้ด้วย บันทึก ใช้เวลาของเหตุการณ์ดำเนินงาน 'Departure' ที่รายงานสำหรับสถานที่ต้นทางของ Freight Order. ประเภทเหตุการณ์ explicit | |||
| วางแผนการขนส่งแล้ว | กิจกรรมนี้หมายถึงการรวบรวมความต้องการด้านการขนส่งเป็นแผนการขนส่งที่ชัดเจน โดยบันทึกเมื่อสร้างและบันทึก Freight Order (สำหรับทางถนนหรือทางรถไฟ) หรือ Freight Booking (สำหรับทางทะเลหรือทางอากาศ) ซึ่งระบุเส้นทางและทรัพยากรที่วางแผนไว้. | ||
| เหตุผลที่สำคัญ การทำขั้นตอนสำคัญนี้ให้เสร็จเป็นสิ่งจำเป็นก่อนเริ่มปฏิบัติการด้านโลจิสติกส์ ระยะเวลาตั้งแต่ได้รับคำขอจนถึงกิจกรรมนี้เป็น KPI สำคัญในการวัดประสิทธิภาพการวางแผน. แหล่งข้อมูล เหตุการณ์นี้ตรงกับการสร้างเอกสาร Freight Order หรือ Freight Booking นอกจากนี้ยังอนุมานได้จากการเปลี่ยนสถานะของเอกสาร เช่น สถานะการวางแผนเปลี่ยนเป็น 'Planned' โดยทั่วไปข้อมูลส่วนหัวจะอยู่ในตาราง /SCMTMS/D_TORROT. บันทึก ใช้เวลาที่สร้างเอกสาร Freight Order หรือ Freight Booking. ประเภทเหตุการณ์ explicit | |||
| ส่งมอบสินค้าแล้ว | กิจกรรมนี้หมายถึงการขนส่งถึงปลายทางและการขนส่งสินค้าจริงเสร็จสิ้น โดยบันทึกเมื่อผู้ขนส่งแจ้งว่าสินค้าถูกขนลงที่สถานที่ของผู้รับสินค้าแล้ว. | ||
| เหตุผลที่สำคัญ นี่คือขั้นตอนสำคัญที่สุดในการวัดผลการส่งมอบตรงเวลาและความพึงพอใจของลูกค้า โดยทั่วไปยังเป็นจุดเริ่มต้นของกระบวนการออกใบแจ้งหนี้และชำระบัญชีด้วย. แหล่งข้อมูล บันทึกเหตุการณ์นี้ใน SAP TM เป็นเหตุการณ์ดำเนินงาน 'Arrival at Destination' หรือ 'Unloading End' ซึ่งจะอัปเดตสถานะการดำเนินงานของ Freight Order โดยมักได้รับข้อมูลจากผู้ขนส่ง. บันทึก ใช้เวลาของเหตุการณ์ดำเนินงาน 'Arrival at Destination' ที่รายงานสำหรับจุดส่งสุดท้ายของ Freight Order. ประเภทเหตุการณ์ explicit | |||
| สร้างเอกสารชำระบัญชีค่าขนส่งแล้ว | กิจกรรมนี้หมายถึงการสร้าง Freight Settlement Document (FSD) ซึ่งใช้คำนวณค่าขนส่งที่ต้องจ่ายให้ผู้ขนส่ง เอกสารนี้เป็นเอกสารหลักสำหรับการตั้งค้างจ่ายและตรวจสอบใบแจ้งหนี้. | ||
| เหตุผลที่สำคัญ ขั้นตอนนี้เป็นจุดเริ่มต้นของช่วงชำระบัญชีทางการเงินในกระบวนการขนส่ง การวิเคราะห์เวลาตั้งแต่ส่งมอบจนถึงสร้างเอกสารชำระบัญชีช่วยค้นหาคอขวดในการดำเนินงานด้านการเงิน. แหล่งข้อมูล บันทึกเหตุการณ์นี้โดยตรงเมื่อสร้าง Freight Settlement Document โดยมีเวลาที่สร้างอยู่ในตารางส่วนหัวของเอกสาร /SCMTMS/D_SFIRHD. บันทึก ใช้วันที่และเวลาที่สร้าง Freight Settlement Document. ประเภทเหตุการณ์ explicit | |||
| ตรวจสอบใบแจ้งหนี้แล้ว | กิจกรรมนี้หมายถึงการจับคู่ใบแจ้งหนี้ของผู้ขนส่งกับ Freight Settlement Document สำเร็จ และอนุมัติให้ชำระเงินได้ นี่คือขั้นตอนสุดท้ายก่อนเริ่มกระบวนการชำระเงินในระบบ ERP. | ||
| เหตุผลที่สำคัญ กิจกรรมนี้ทำให้กระบวนการตรวจสอบและยืนยันต้นทุนค่าขนส่งเสร็จสมบูรณ์ หากล่าช้าในขั้นตอนนี้ ผู้ขนส่งอาจได้รับเงินล่าช้าและกระทบต่อความสัมพันธ์ทางธุรกิจ. แหล่งข้อมูล อนุมานเหตุการณ์นี้ได้จากการเปลี่ยนสถานะของ Freight Settlement Document เช่น 'Ready for Accrual' หรือ 'Transferred for Posting' ซึ่งหมายถึงส่งข้อมูลไปยังระบบ ERP เพื่อชำระเงินแล้ว. บันทึก ติดตามเวลาที่สถานะวงจรการทำงานของ FSD เปลี่ยนเป็นพร้อมชำระเงินหรือบันทึกรายการแล้ว. ประเภทเหตุการณ์ inferred | |||
| เปลี่ยนเส้นทางการขนส่ง | กิจกรรมนี้หมายถึงการเปลี่ยนเส้นทางหรือตารางการขนส่งโดยไม่ได้วางแผนไว้ หลังจากยืนยันการขนส่งแล้ว สาเหตุอาจมาจากเหตุขัดข้อง คำขอจากลูกค้า หรือปัญหาด้านโลจิสติกส์. | ||
| เหตุผลที่สำคัญ การเปลี่ยนเส้นทางมักทำให้ต้นทุนสูงขึ้นและเกิดความล่าช้า การระบุความถี่และสาเหตุของการเปลี่ยนเส้นทางช่วยปรับปรุงความแม่นยำในการวางแผนและเสถียรภาพในการปฏิบัติการ. แหล่งข้อมูล อนุมานเหตุการณ์นี้ได้จากการตรวจพบการเปลี่ยนแปลงสำคัญของขั้นตอน สถานที่ หรือวันที่ใน Freight Order หลังเริ่มดำเนินการขนส่งแล้ว โดยวิเคราะห์เอกสารการเปลี่ยนแปลงในตาราง CDHDR และ CDPOS ได้. บันทึก ตรวจจับการเปลี่ยนแปลงช่องข้อมูลเส้นทางสำคัญในเอกสาร Freight Order หลังเหตุการณ์ 'Shipment Confirmed by Carrier'. ประเภทเหตุการณ์ inferred | |||
| ผ่านพิธีการศุลกากรแล้ว | กิจกรรมนี้หมายถึงหน่วยงานศุลกากรอนุมัติการขนส่งแล้ว และสามารถดำเนินการต่อได้ เหตุการณ์นี้เป็นขั้นตอนสำคัญของโลจิสติกส์ระหว่างประเทศ เพราะช่วยขจัดคอขวดที่อาจส่งผลกระทบอย่างมาก. | ||
| เหตุผลที่สำคัญ พิธีการศุลกากรมักเป็นสาเหตุสำคัญของความล่าช้าในห่วงโซ่อุปทานทั่วโลก การติดตามระยะเวลาและอัตราความสำเร็จของกิจกรรมนี้จึงสำคัญต่อการลดเวลาขนส่งระหว่างประเทศ. แหล่งข้อมูล บันทึกเหตุการณ์นี้เป็นเหตุการณ์ดำเนินงาน 'Customs Clearance' ซึ่งโดยทั่วไปตัวแทนออกของหรือผู้ให้บริการข้อมูลสถานะภายนอกจะเป็นผู้รายงาน และอัปเดตในข้อมูลติดตามการดำเนินงานของ Freight Order. บันทึก ใช้เวลาของเหตุการณ์ดำเนินงาน 'Customs Clearance' ที่รายงานและเชื่อมโยงกับ Freight Order. ประเภทเหตุการณ์ explicit | |||
| ผู้ขนส่งยืนยันการขนส่งแล้ว | เหตุการณ์นี้หมายถึงผู้ขนส่งตกลงดำเนินการขนส่งตามแผน โดยทั่วไปจะได้รับการยืนยันผ่านข้อความ EDI การอัปเดตในพอร์ทัลผู้ขนส่ง หรือการกรอกข้อมูลด้วยตนเอง ซึ่งจะอัปเดตสถานะของ Freight Order. | ||
| เหตุผลที่สำคัญ การยืนยันจากผู้ขนส่งเป็นการรับรองว่าจะดำเนินการตามแผน ช่วยลดความไม่แน่นอน หากได้รับการยืนยันล่าช้า ตารางการขนส่งทั้งหมดอาจได้รับผลกระทบ. แหล่งข้อมูล อนุมานเหตุการณ์นี้ได้จากการเปลี่ยนแปลงช่องสถานะการยืนยันของ Freight Order หรือ Freight Booking โดยจะกำหนดค่าเฉพาะ เช่น 'Confirmed' ในการจัดการสถานะของเอกสาร. บันทึก ติดตามการเปลี่ยนแปลงช่องสถานะการยืนยันในเอกสาร Freight Order. ประเภทเหตุการณ์ inferred | |||
| ยื่นใบขนสินค้าศุลกากรแล้ว | สำหรับการขนส่งระหว่างประเทศ กิจกรรมนี้หมายถึงการยื่นเอกสารศุลกากรที่จำเป็นต่อหน่วยงานรัฐ ซึ่งเป็นเงื่อนไขก่อนขออนุมัติส่งออกหรือนำเข้าสินค้า. | ||
| เหตุผลที่สำคัญ การยื่นใบขนสินค้าศุลกากรให้ทันเวลาเป็นสิ่งสำคัญเพื่อหลีกเลี่ยงความล่าช้าที่ด่านชายแดน กิจกรรมนี้ช่วยติดตามประสิทธิภาพของกระบวนการดำเนินพิธีการศุลกากร. แหล่งข้อมูล บันทึกเหตุการณ์นี้ได้จากเหตุการณ์ดำเนินงานที่รายงานโดยตัวแทนออกของ หรือจากการเปลี่ยนสถานะในระบบจัดการศุลกากรที่เชื่อมต่อ เช่น SAP GTS จากนั้นจะอัปเดต Freight Order ตามข้อมูลดังกล่าว. บันทึก บันทึกเวลาของเหตุการณ์ดำเนินงาน 'Customs Declaration Filed' หรือการเปลี่ยนสถานะที่เกี่ยวข้อง. ประเภทเหตุการณ์ explicit | |||
| สร้างข้อโต้แย้งค่าขนส่งแล้ว | เหตุการณ์นี้หมายถึงพบความคลาดเคลื่อนระหว่างใบแจ้งหนี้ของผู้ขนส่งกับต้นทุนที่คำนวณไว้ใน Freight Settlement Document ซึ่งจะเริ่มเวิร์กโฟลว์จัดการข้อโต้แย้ง. | ||
| เหตุผลที่สำคัญ ข้อโต้แย้งทำให้การจ่ายเงินแก่ผู้ขนส่งล่าช้าและต้องใช้เวลาในการจัดการ การติดตามกิจกรรมนี้ช่วยค้นหาสาเหตุที่แท้จริงของการเรียกเก็บเงินไม่ถูกต้อง เช่น อัตราค่าบริการผิดหรือค่าบริการเพิ่มเติม. แหล่งข้อมูล อนุมานเหตุการณ์นี้ได้จากการเปลี่ยนสถานะของ Freight Settlement Document เป็น 'Dispute' หรืออาจมีการสร้างเอกสารกรณีข้อโต้แย้งแยกต่างหาก. บันทึก บันทึกเวลาที่กำหนดสถานะข้อโต้แย้งใน Freight Settlement Document. ประเภทเหตุการณ์ inferred | |||
คู่มือการดึงข้อมูล
ขั้นตอน
- ค้นหาและเปิดใช้งาน CDS View API: เข้าสู่ระบบ SAP S/4HANA แล้วใช้ธุรกรรม
/IWFND/MAINT_SERVICEเพื่อตรวจสอบว่า OData service ที่จำเป็นสำหรับ CDS view หลักเปิดใช้งานแล้วหรือไม่ ตรวจสอบ service ที่เกี่ยวข้องกับ I_TransportationOrder, C_TranspOrdExecutionEvent, I_ForwardingOrder และ I_FreightSettlementDocument หากยังไม่เปิดใช้งาน ให้ประสานงานกับผู้ดูแล SAP เพื่อเพิ่มและเปิดใช้งาน service จากระบบ backend. - ตั้งค่าการเชื่อมต่อ API: ขอ URL หลักของ OData service จากผู้ดูแล SAP ตั้งค่าแอปพลิเคชันไคลเอนต์เพื่อเชื่อมต่อ API เช่น สคริปต์ Python ที่ใช้ไลบรารี requests, เครื่องมือ ETL เชิงพาณิชย์ หรือ Postman คุณต้องตั้งค่าการยืนยันตัวตน ซึ่งโดยทั่วไปใช้ Basic Authentication (ชื่อผู้ใช้และรหัสผ่าน) หรือ OAuth 2.0 เพื่อการเชื่อมต่อที่ปลอดภัยยิ่งขึ้น.
- กำหนดขอบเขตการดึงข้อมูล: ระบุขอบเขตข้อมูลที่ต้องการดึง เช่น กำหนดช่วงวันที่ย้อนหลัง 6 เดือน และเลือกหน่วยงานที่เกี่ยวข้องสำหรับกรองข้อมูล เช่น Company Code หรือประเภทเอกสาร เช่น Freight Order Type เพื่อให้ข้อมูลตรงกับกระบวนการที่คุณต้องการวิเคราะห์.
- สร้างคำขอข้อมูลการขนส่งหลัก: เริ่มจากค้นหา CDS view I_TransportationOrder ซึ่งเป็นออบเจ็กต์หลักของการขนส่ง หรือที่เรียกว่า Freight Order หรือ Freight Booking ใช้พารามิเตอร์ OData
$selectเพื่อเลือกคอลัมน์ที่ต้องการ รวมถึงแอตทริบิวต์ที่แนะนำ เช่น CarrierName, ModeOfTransport และ RequestedDeliveryDate ใช้$filterเพื่อจำกัดข้อมูลตามวันที่และขอบเขตอื่นๆ. - ค้นหาเหตุการณ์การดำเนินงานและการขนส่ง: ใช้ CDS view C_TranspOrdExecutionEvent เพื่อดึงเหตุการณ์สำคัญด้านโลจิสติกส์ กรอง view นี้ด้วยค่า
EventCodeที่ตรงกับกิจกรรม เช่น 'รับสินค้าแล้ว' (DEPARTURE) และ 'ส่งสินค้าถึงปลายทางแล้ว' (ARRIVAL_AT_DESTINATION) จากนั้นเชื่อมข้อมูลกลับไปยังข้อมูลการขนส่งหลักด้วย TransportationOrder UUID. - ค้นหาออบเจ็กต์ทางธุรกิจที่เกี่ยวข้อง: หากต้องการเก็บข้อมูลกระบวนการทั้งหมด คุณต้องค้นหา CDS view อื่นที่เกี่ยวข้องด้วย ใช้ I_ForwardingOrder สำหรับกิจกรรม 'ได้รับคำขอขนส่ง' และ I_FreightSettlementDocument สำหรับกิจกรรมทางการเงิน เช่น 'สร้างรายการชำระค่าขนส่งแล้ว', 'สร้างข้อโต้แย้งค่าขนส่งแล้ว' และ 'ตรวจสอบใบแจ้งหนี้แล้ว'.
- ดึงกิจกรรมจากสถานะ: กิจกรรมหลายรายการไม่ได้บันทึกเป็นเหตุการณ์แยก แต่เป็นการเปลี่ยนสถานะในเอกสารหลัก สำหรับกิจกรรม เช่น 'มอบหมายผู้ขนส่งแล้ว', 'ผู้ขนส่งยืนยันการขนส่งแล้ว' และ 'ยกเลิกการขนส่งแล้ว' ให้ค้นหาใน view I_TransportationOrder และใช้
LastChangeDateTimeที่สัมพันธ์กับฟิลด์สถานะนั้นเป็นเวลาของเหตุการณ์ โดยต้องจับคู่รหัสสถานะกับกิจกรรมทางธุรกิจให้ถูกต้อง. - รวมและแปลงข้อมูล: รวมข้อมูลจากทุกแหล่งให้อยู่ในโครงสร้างบันทึกเหตุการณ์เดียว สำหรับแต่ละกิจกรรม ให้สร้างหนึ่งแถวที่มีคอลัมน์ ShipmentId, ActivityName และ EventTime ตรวจสอบว่าแต่ละแถวของการขนส่งมีแอตทริบิวต์ที่แนะนำจากคำขอข้อมูลหลักครบถ้วน ขั้นตอนนี้เทียบได้กับการใช้คำสั่ง SQL
UNION ALL. - จัดการเหตุการณ์ที่ซับซ้อนและข้อมูลจากภายนอก: ข้อมูลของกิจกรรม เช่น 'ผ่านพิธีการศุลกากรแล้ว' หรือ 'ดำเนินการชำระเงินแล้ว' อาจอยู่ในฟิลด์เฉพาะหรือระบบภายนอก ตรรกะคำขอข้อมูลที่ให้มาจะใช้ฟิลด์มาตรฐานเป็นข้อมูลตัวแทน คุณอาจต้องปรับคำขอให้เชื่อมกับ CDS view สำหรับศุลกากร หรือจับคู่กับข้อมูลการดึงจาก ERP แยกต่างหากโดยใช้หมายเลข Freight Settlement Document.
- จัดรูปแบบข้อมูลสำหรับ ProcessMind: บันทึกชุดข้อมูลที่รวมแล้วเป็นไฟล์ CSV ตั้งชื่อหัวคอลัมน์ให้ตรงกับข้อกำหนดการอัปโหลด เช่น กำหนดให้คอลัมน์
ShipmentIdตรงกับฟิลด์CaseIdในการตั้งค่าเครื่องมือ ตรวจสอบว่าการประทับเวลาใช้รูปแบบเดียวกัน โดยแนะนำให้ใช้ UTC (YYYY-MM-DDTHH:MM:SSZ).
การกำหนดค่า
- มุมมอง CDS หลัก: การดึงข้อมูลใช้ I_TransportationOrder เป็นหลักสำหรับคำสั่งขนส่งสินค้า, C_TranspOrdExecutionEvent สำหรับเหตุการณ์การดำเนินงาน, I_ForwardingOrder สำหรับคำขอขนส่ง และ I_FreightSettlementDocument สำหรับการชำระบัญชี
- การกรองช่วงวันที่: ควรใช้ตัวกรองวันที่เพื่อควบคุมปริมาณข้อมูล ใช้
CreationDateTimeใน I_TransportationOrder หรือActualBusinessDateTimeใน C_TranspOrdExecutionEvent แนะนำให้ใช้ข้อมูลย้อนหลัง 3 ถึง 6 เดือนสำหรับการวิเคราะห์เบื้องต้น - การกรองประเภทเอกสาร: จำกัดขอบเขตการวิเคราะห์ด้วยการกรองประเภทเอกสารผ่านฟิลด์
TransportationOrderTypeวิธีนี้ช่วยแยกสถานการณ์ด้านโลจิสติกส์ เช่น การจัดส่งขาออกทั่วไปกับการโอนย้ายสินค้าคงคลัง - ตัวกรองระดับองค์กร: หากจำเป็น ให้กรองด้วย
PurchasingOrganizationหรือฟิลด์ระดับองค์กรอื่น เพื่อจำกัดข้อมูลให้เหลือเฉพาะหน่วยธุรกิจหรือภูมิภาคที่ต้องการ - การแบ่งหน้า API: หากมีข้อมูลจำนวนมาก ให้ใช้พารามิเตอร์ OData
$topและ$skipเพื่อดึงข้อมูลทีละหน้า วิธีนี้ช่วยป้องกัน API หมดเวลาและลดการใช้หน่วยความจำฝั่งไคลเอ็นต์ โดยทั่วไปขนาดหน้า 1,000 ถึง 5,000 แถวใช้งานได้ดี - ข้อกำหนดเบื้องต้น: ผู้ใช้หรือบัญชีบริการที่ดึงข้อมูลต้องมีสิทธิ์เข้าถึงบริการ OData ที่เกี่ยวข้อง (ออบเจ็กต์การอนุญาต S_SERVICE) และข้อมูลธุรกิจในมุมมอง CDS ต้องเปิดใช้งานบริการที่เกี่ยวข้องใน SAP Gateway (
/IWFND/MAINT_SERVICE)
ตัวอย่างคำค้น sql
WITH Shipments AS (
SELECT
TransportationOrder AS ShipmentId,
CarrierName,
TranspOrdExecutionBlockRsnCode,
TransportationMode AS ModeOfTransport,
ShippingType AS ShipmentType,
CreationDateTime AS ShipmentCreationTime,
LastChangeDateTime,
LifeCycleStatus,
ConfirmationStatus,
OverallExecutionStatus,
DeliveryOverallStatus,
PlannedDepDateTimeReqByCust AS RequestedDeliveryDate,
TotalChargesAmountInTransacCrcy AS TotalFreightCost
FROM I_TransportationOrder
WHERE
CreationDateTime >= '[START_DATE]' AND CreationDateTime <= '[END_DATE]'
-- AND TransportationOrderType IN ('[Your_Type_1]', '[Your_Type_2]')
)
SELECT
fwo.PurchasingDocument AS ShipmentId,
'Transportation Request Received' AS ActivityName,
fwo.CreationDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM I_ForwardingOrder AS fwo
LEFT JOIN Shipments s ON fwo.PurchasingDocument = s.ShipmentId
WHERE fwo.CreationDateTime >= '[START_DATE]' AND fwo.CreationDateTime <= '[END_DATE]'
UNION ALL
SELECT
s.ShipmentId,
'Shipment Planned' AS ActivityName,
s.ShipmentCreationTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM Shipments AS s
UNION ALL
SELECT
s.ShipmentId,
'Carrier Assigned' AS ActivityName,
s.LastChangeDateTime AS EventTime, -- Best approximation using last change time
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM Shipments AS s
WHERE s.CarrierName IS NOT NULL
UNION ALL
SELECT
s.ShipmentId,
'Shipment Confirmed By Carrier' AS ActivityName,
s.LastChangeDateTime AS EventTime, -- Best approximation using last change time
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM Shipments AS s
WHERE s.ConfirmationStatus = 'C' -- 'Confirmed'
UNION ALL
SELECT
s.ShipmentId,
'Goods Picked Up' AS ActivityName,
evt.ActualBusinessDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM C_TranspOrdExecutionEvent AS evt
JOIN Shipments s ON evt.TransportationOrder = s.ShipmentId
WHERE evt.EventCode = 'DEPARTURE'
UNION ALL
SELECT
s.ShipmentId,
'Customs Declaration Filed' AS ActivityName,
s.LastChangeDateTime AS EventTime, -- Approximation based on status change
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM Shipments AS s
WHERE s.CustomsRelevance IS NOT NULL -- This is a proxy, system config dependent
UNION ALL
SELECT
s.ShipmentId,
'Customs Cleared' AS ActivityName,
s.LastChangeDateTime AS EventTime, -- Approximation based on status change
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM Shipments AS s
WHERE s.CustomsOverallStatus = '4' -- 'Customs Cleared'
UNION ALL
SELECT
s.ShipmentId,
'Shipment Rerouted' AS ActivityName,
s.LastChangeDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM Shipments AS s
WHERE s.TranspOrdExecutionBlockRsnCode = '[Your Rerouting Reason Code]'
UNION ALL
SELECT
s.ShipmentId,
'Goods Delivered' AS ActivityName,
evt.ActualBusinessDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM C_TranspOrdExecutionEvent AS evt
JOIN Shipments s ON evt.TransportationOrder = s.ShipmentId
WHERE evt.EventCode = 'ARRIVAL_AT_DESTINATION'
UNION ALL
SELECT
s.ShipmentId,
'Proof Of Delivery Received' AS ActivityName,
s.LastChangeDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM Shipments AS s
WHERE s.DeliveryOverallStatus = 'C' -- 'POD Received'
UNION ALL
SELECT
fsd.SourceDocument AS ShipmentId,
'Freight Settlement Created' AS ActivityName,
fsd.CreationDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
fsd.TotalAmount AS TotalFreightCost
FROM I_FreightSettlementDocument AS fsd
JOIN Shipments s ON fsd.SourceDocument = s.ShipmentId
UNION ALL
SELECT
fsd.SourceDocument AS ShipmentId,
'Freight Dispute Created' AS ActivityName,
fsd.LastChangeDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
fsd.TotalAmount AS TotalFreightCost
FROM I_FreightSettlementDocument AS fsd
JOIN Shipments s ON fsd.SourceDocument = s.ShipmentId
WHERE fsd.DisputeStatus = '1' -- 'In Dispute'
UNION ALL
SELECT
fsd.SourceDocument AS ShipmentId,
'Invoice Verified' AS ActivityName,
fsd.LastChangeDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
fsd.TotalAmount AS TotalFreightCost
FROM I_FreightSettlementDocument AS fsd
JOIN Shipments s ON fsd.SourceDocument = s.ShipmentId
WHERE fsd.OverallLifeCycleStatus = '06' -- 'Posted for Accruals'
UNION ALL
SELECT
s.ShipmentId,
'Shipment Cancelled' AS ActivityName,
s.LastChangeDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM Shipments AS s
WHERE s.LifeCycleStatus = 'X' -- 'Cancelled'
UNION ALL
SELECT
fsd.SourceDocument AS ShipmentId,
'Payment Processed' AS ActivityName,
fsd.LastChangeDateTime AS EventTime, -- Approximation, actual payment is in ERP
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
fsd.TotalAmount AS TotalFreightCost
FROM I_FreightSettlementDocument AS fsd
JOIN Shipments s ON fsd.SourceDocument = s.ShipmentId
WHERE fsd.InvoiceProcessingStatus = 'C' -- 'Completely Invoiced' ขั้นตอน
- ยืนยันว่าคุณมีสิทธิ์อ่านสคีมา SAP TM HANA โดยตรงผ่านไคลเอ็นต์ SQL, วิวฐานข้อมูล หรือบริการดึงข้อมูลที่ได้รับอนุมัติ ขอรายละเอียดสตริงการเชื่อมต่อ ข้อมูลรับรอง ชื่อสคีมา และสิทธิ์ที่จำเป็นสำหรับอ่านตาราง SAP TM ที่เกี่ยวข้อง ห้ามเรียกคำสั่งค้นหาในระบบจริงโดยตรง หากยังไม่ได้รับอนุมัติด้านความปลอดภัยและการเปลี่ยนแปลงตามที่กำหนด
- ตรวจสอบชื่อจริงของตารางและคอลัมน์ในระบบของคุณ คำสั่งค้นหาด้านล่างใช้ /SCMTMS/D_TORROT และ /SCMTMS/D_TOSTOP เป็นตารางหลัก แต่ข้อมูลสถานะ คู่ค้า วันที่ ต้นทุน ศุลกากร เอกสาร และการชำระเงินอาจอยู่ในตารางหรือส่วนขยายอื่น ขึ้นอยู่กับรุ่นและการติดตั้ง SAP TM ให้แทนที่เฉพาะตัวแทนที่ระบุไว้ หลังตรวจสอบกับแค็ตตาล็อกระบบและโมเดลข้อมูลแล้ว
- กำหนดช่วงเวลาที่ต้องการดึงข้อมูลด้วย [Start timestamp] และ [End timestamp] โดยทั่วไปข้อมูลย้อนหลัง 3 ถึง 6 เดือนเหมาะสำหรับการวิเคราะห์ครั้งแรก ใช้ช่วงเวลาที่ยาวกว่านี้ต่อเมื่อยืนยันแล้วว่าประสิทธิภาพของคำสั่งค้นหาและระยะเวลาการเก็บประวัติเหตุการณ์รองรับได้
- ระบุคีย์เคสของการจัดส่ง คำสั่งค้นหานี้ใช้ TOR_ID จาก /SCMTMS/D_TORROT เป็นรหัสการจัดส่ง หากระบบของคุณใช้รหัสอื่นที่ไม่เปลี่ยนแปลง ให้เปลี่ยนคีย์เคสให้ตรงกันในทุกส่วนของกิจกรรม และเก็บรหัสเอกสารเดิมไว้เป็นคุณลักษณะสำหรับตรวจสอบย้อนหลังเพิ่มเติม หากมี
- จับคู่แต่ละกิจกรรมทางธุรกิจกับเงื่อนไขต้นทางที่ระบุชัดเจน ProcessMind อ่านบันทึกเหตุการณ์ตามข้อมูลที่ได้รับ ดังนั้นคำสั่งค้นหาจะสร้างหนึ่งแถวต่อกิจกรรมที่ดึงมา ระบบจะไม่อนุมานเหตุการณ์สำคัญจากลำดับเอกสาร การไม่มีการประทับเวลา หรือการเปลี่ยนสถานะ
- ตรวจสอบการจับคู่สถานะและการประทับเวลากับผู้วางแผนการขนส่งและเจ้าของกระบวนการทางธุรกิจ โดยเฉพาะค่าที่ใช้แทนการสร้างคำขอ การวางแผน การมอบหมายผู้ขนส่ง การยืนยันจากผู้ขนส่ง การรับสินค้า การยื่นเอกสารศุลกากร การผ่านพิธีการศุลกากร การเปลี่ยนเส้นทาง การส่งมอบ การรับ POD การชำระค่าขนส่ง การโต้แย้ง การตรวจสอบใบแจ้งหนี้ การยกเลิก และการชำระเงิน
- เรียกใช้คำสั่งค้นหาในไคลเอ็นต์ SQL ที่ได้รับอนุมัติ ตรวจสอบว่ามีหนึ่งแถวต่อเหตุการณ์ มี ShipmentId และ ActivityName ที่ไม่เป็นค่าว่าง และมี EventTime ที่ถูกต้อง ตรวจสอบแถวซ้ำที่อาจเกิดจากการเชื่อมตารางแบบหนึ่งต่อหลาย แล้วปรับการจับคู่ข้อมูลต้นทางหรือตรรกะการรวมข้อมูลตามความจำเป็น
- เพิ่มคุณลักษณะที่แนะนำลงในผลลัพธ์ หากมีฟิลด์ต้นทางที่เกี่ยวข้อง คำสั่งค้นหามีตัวแทนสำหรับฟิลด์ที่ไม่สามารถระบุชื่อได้อย่างปลอดภัยหากไม่มีข้อมูลเฉพาะของระบบ ให้แทนที่ตัวแทนเหล่านั้นด้วยคอลัมน์หรือวิวที่ตรวจสอบแล้วและได้รับอนุมัติเท่านั้น
- ใช้กฎตรวจสอบคุณภาพข้อมูลขั้นสุดท้าย ลบแถวที่ไม่มีรหัสเคสหรือการประทับเวลาเหตุการณ์ ปรับการประทับเวลาให้อยู่ในเขตเวลาเดียวกัน เก็บการประทับเวลาจากต้นทางไว้สำหรับตรวจสอบย้อนหลัง และตรวจสอบว่า EndTime ไม่อยู่ก่อน EventTime ห้ามสร้างเหตุการณ์จำลองเพื่อแทนข้อมูลต้นทางที่ขาดหาย
- ส่งออกผลลัพธ์เป็น CSV ที่เข้ารหัส UTF-8 หรือรูปแบบตารางอื่นที่ ProcessMind รองรับ ใช้ชื่อคอลัมน์ที่กำหนดให้ตรงทุกตัว ได้แก่ ShipmentId, ActivityName และ EventTime เพิ่ม EndTime และคุณลักษณะที่แนะนำเมื่อมีข้อมูล จากนั้นอัปโหลดไฟล์หรือเชื่อมต่อผลลัพธ์จากคำสั่งค้นหาที่ได้รับอนุมัติกับ ProcessMind แล้วตรวจสอบว่าจับคู่ฟิลด์รหัสเคส Shipment และชื่อกิจกรรมได้ถูกต้อง
การกำหนดค่า
- ตารางต้นทางหลัก: ใช้ /SCMTMS/D_TORROT สำหรับข้อมูลหลักของ transportation order หรือ Freight Order และ /SCMTMS/D_TOSTOP สำหรับข้อมูลจุดแวะและเหตุการณ์สำคัญ ตรวจสอบออบเจ็กต์ต้นทางเพิ่มเติมทั้งหมดในระบบ SAP TM เป้าหมายก่อนนำไปใช้งาน.
- รหัสเคส: ใช้รหัสการขนส่งหรือ Freight Order ที่คงที่ ตัวอย่างคำขอข้อมูลนี้ใช้ TOR_ID เป็น ShipmentId ตรวจสอบว่ารหัสนี้คงเดิมตลอดการวางแผน การดำเนินงาน การชำระค่าขนส่ง และระเบียนการชำระเงินใน ERP.
- การจับคู่กิจกรรม: กำหนดเงื่อนไขต้นทางที่ชัดเจนสำหรับกิจกรรมที่ต้องการทั้ง 15 รายการ แต่ละกิจกรรมต้องสร้างเป็นแถวจริงในบันทึกเหตุการณ์ ProcessMind ไม่ได้อนุมานกิจกรรมจากแถวอื่น.
- ช่วงวันที่: เริ่มจากข้อมูลย้อนหลังสามถึงหกเดือน กำหนดเงื่อนไข EventTime ให้เร็วที่สุดในแต่ละส่วนของแหล่งข้อมูล สำหรับการโหลดข้อมูลแบบเพิ่ม ให้ใช้ watermark ที่ควบคุมได้และเผื่อช่วงเวลาซ้อนทับเล็กน้อยเพื่อเก็บการอัปเดตที่มาถึงล่าช้า.
- ตัวกรองทางธุรกิจ: กำหนดตัวกรอง company code, purchasing organization, sales organization, document type, transportation mode, carrier, plant, location และ status ให้ตรงกับการติดตั้ง หากยังไม่ได้ตรวจสอบฟิลด์ที่เกี่ยวข้อง ให้ใช้ placeholder เช่น [Company code filter].
- การจัดการการประทับเวลา: แปลงการประทับเวลาจากแหล่งข้อมูลให้เป็นเขตเวลาเดียวกัน หากแหล่งข้อมูลจัดเก็บวันที่และเวลาแยกกัน ให้รวมค่าด้วยวิธีแปลงที่รองรับโดย HANA รุ่นที่ใช้งาน เก็บการประทับเวลาเดิมจากแหล่งข้อมูลไว้เมื่อต้องตรวจสอบย้อนหลัง.
- แอตทริบิวต์ที่แนะนำ: เติม CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost และ IsOnTimeDelivery จากฟิลด์ต้นทางที่ตรวจสอบแล้วหรือ calculation view ที่ได้รับอนุมัติ หากแหล่งข้อมูลไม่มีค่าที่เชื่อถือได้ ให้เว้นค่าเป็น null.
- ประสิทธิภาพ: จำกัดช่วงเวลา เลือกเฉพาะคอลัมน์ที่จำเป็น กรองข้อมูลก่อนเชื่อมตาราง หลีกเลี่ยงการสแกนตารางทั้งหมดโดยไม่มีเงื่อนไข และตรวจสอบแผนการทำงานของ HANA หากชุดข้อมูลมีขนาดใหญ่ ให้ใช้เงื่อนไขที่รองรับการแบ่งพาร์ทิชัน การดึงข้อมูลแบบเพิ่ม staging table หรือ calculation view ที่ได้รับอนุมัติ.
- ควบคุมข้อมูลซ้ำ: การเชื่อมข้อมูลแบบหนึ่งต่อหลายอาจสร้างหลายแถวสำหรับกิจกรรมเดียวกัน ใช้คีย์เหตุการณ์ คีย์เอกสารต้นทาง หรือกฎการรวมข้อมูลที่ตรวจสอบแล้ว ห้ามลบข้อมูลซ้ำด้วยวิธีที่ไม่เจาะจง เพราะอาจทำให้เหตุการณ์ที่เกิดซ้ำจริงหายไป.
- ข้อกำหนดเบื้องต้น: ต้องมีสิทธิ์ฐานข้อมูลที่จำเป็น สิทธิ์เข้าถึงข้อมูล SAP TM และข้อมูล settlement หรือ ERP ที่เชื่อมต่อ เครื่องมือดึงข้อมูลที่ได้รับอนุมัติ และการยืนยันว่าโมดูล SAP TM, การเชื่อมต่อระบบ และส่วนปรับแต่งที่เกี่ยวข้องเปิดใช้งานแล้ว.
- การจับคู่เฉพาะระบบ: รหัสสถานะ บทบาทคู่ค้า เหตุการณ์สำคัญด้านศุลกากร สถานะ settlement สถานะใบแจ้งหนี้ และสถานะการชำระเงินแตกต่างกันตามรุ่นและการตั้งค่า จัดเก็บการจับคู่ไว้ในเอกสารกำหนดค่าที่ควบคุมเวอร์ชัน และทดสอบอีกครั้งหลังอัปเกรด.
ตัวอย่างคำค้น sql
WITH
base_tor AS (
SELECT
r.TOR_ID AS ShipmentId,
r.TOR_ID AS SourceDocumentId,
r.CREATED_AT AS RequestEventTime,
r.CREATED_AT AS PlannedEventTime,
r.CREATED_AT AS CarrierAssignedEventTime,
r.CREATED_AT AS CarrierConfirmedEventTime,
r.CREATED_AT AS PickupEventTime,
r.CREATED_AT AS CustomsFiledEventTime,
r.CREATED_AT AS CustomsClearedEventTime,
r.CREATED_AT AS ReroutedEventTime,
r.CREATED_AT AS DeliveredEventTime,
r.CREATED_AT AS PodReceivedEventTime,
r.CREATED_AT AS SettlementCreatedEventTime,
r.CREATED_AT AS DisputeCreatedEventTime,
r.CREATED_AT AS InvoiceVerifiedEventTime,
r.CREATED_AT AS CancelledEventTime,
r.CREATED_AT AS PaymentProcessedEventTime,
r.CREATED_AT AS EndTime,
CAST(NULL AS NVARCHAR(255)) AS CarrierName,
CAST(NULL AS TIMESTAMP) AS RequestedDeliveryDate,
CAST(NULL AS NVARCHAR(50)) AS ModeOfTransport,
CAST(NULL AS DECIMAL(19, 2)) AS TotalFreightCost,
CAST(NULL AS NVARCHAR(5)) AS IsOnTimeDelivery
FROM "/SCMTMS/D_TORROT" r
WHERE r.CREATED_AT >= TO_TIMESTAMP('[Start timestamp]')
AND r.CREATED_AT < TO_TIMESTAMP('[End timestamp]')
AND ('[Company code filter]' = '[Company code filter]' OR r.TOR_ID IS NOT NULL)
),
stop_data AS (
SELECT
s.TOR_ID AS ShipmentId,
MIN(s.STOP_SEQ) AS FirstStopSequence,
MAX(s.STOP_SEQ) AS LastStopSequence
FROM "/SCMTMS/D_TOSTOP" s
GROUP BY s.TOR_ID
),
source_data AS (
SELECT
b.ShipmentId,
b.SourceDocumentId,
b.RequestEventTime,
b.PlannedEventTime,
b.CarrierAssignedEventTime,
b.CarrierConfirmedEventTime,
b.PickupEventTime,
b.CustomsFiledEventTime,
b.CustomsClearedEventTime,
b.ReroutedEventTime,
b.DeliveredEventTime,
b.PodReceivedEventTime,
b.SettlementCreatedEventTime,
b.DisputeCreatedEventTime,
b.InvoiceVerifiedEventTime,
b.CancelledEventTime,
b.PaymentProcessedEventTime,
b.EndTime,
b.CarrierName,
b.RequestedDeliveryDate,
b.ModeOfTransport,
b.TotalFreightCost,
CASE
WHEN b.DeliveredEventTime IS NOT NULL
AND b.RequestedDeliveryDate IS NOT NULL
AND b.DeliveredEventTime <= b.RequestedDeliveryDate THEN 'true'
WHEN b.DeliveredEventTime IS NOT NULL
AND b.RequestedDeliveryDate IS NOT NULL THEN 'false'
ELSE NULL
END AS IsOnTimeDelivery
FROM base_tor b
LEFT JOIN stop_data s
ON s.ShipmentId = b.ShipmentId
),
event_log AS (
SELECT ShipmentId, 'Transportation Request Received' AS ActivityName, RequestEventTime AS EventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE RequestEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Shipment Planned', PlannedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE PlannedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Carrier Assigned', CarrierAssignedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE CarrierAssignedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Shipment Confirmed By Carrier', CarrierConfirmedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE CarrierConfirmedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Goods Picked Up', PickupEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE PickupEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Customs Declaration Filed', CustomsFiledEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE CustomsFiledEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Customs Cleared', CustomsClearedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE CustomsClearedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Shipment Rerouted', ReroutedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE ReroutedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Goods Delivered', DeliveredEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE DeliveredEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Proof Of Delivery Received', PodReceivedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE PodReceivedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Freight Settlement Created', SettlementCreatedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE SettlementCreatedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Freight Dispute Created', DisputeCreatedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE DisputeCreatedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Invoice Verified', InvoiceVerifiedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE InvoiceVerifiedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Shipment Cancelled', CancelledEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE CancelledEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Payment Processed', PaymentProcessedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE PaymentProcessedEventTime IS NOT NULL
)
SELECT
ShipmentId,
ActivityName,
EventTime,
EndTime,
CarrierName,
RequestedDeliveryDate,
ModeOfTransport,
TotalFreightCost,
IsOnTimeDelivery,
SourceDocumentId
FROM event_log
WHERE ShipmentId IS NOT NULL
AND EventTime IS NOT NULL
ORDER BY ShipmentId, EventTime, ActivityName; ขั้นตอน
- กำหนดความต้องการข้อมูล: เริ่มจากยืนยันตรรกะที่แน่นอนของกิจกรรมที่จำเป็นทั้ง 15 รายการและแอตทริบิวต์ทั้งหมด โดยจับคู่แต่ละกิจกรรมกับการเปลี่ยนสถานะ เหตุการณ์สร้างข้อมูล หรือการเชื่อมโยงเอกสารในระบบ SAP TM ของคุณ เช่น ระบุสถานะการดำเนินงานที่ใช้ยืนยันว่า 'รับสินค้าแล้ว' อย่างชัดเจน.
- เข้าใช้งานสภาพแวดล้อมพัฒนา ABAP: เข้าสู่ระบบ SAP GUI แล้วเปิด ABAP Editor ด้วยรหัสธุรกรรม
SE38ตั้งชื่อโปรแกรมใหม่ เช่นZTM_PROCESS_EXTRACTแล้วคลิก 'Create' ระบุชื่อเรื่องและเลือกประเภทโปรแกรมเป็น 'Executable Program'. - สร้างหน้าจอเลือกข้อมูล: กำหนดหน้าจอที่ผู้ใช้จะเห็นในโปรแกรม โดยเพิ่มพารามิเตอร์สำหรับกรองข้อมูล เช่น ช่วงวันที่สร้าง Freight Order (
SO_CREDT) และ select-options สำหรับประเภทเอกสาร (SO_TYPE) หรือผู้ขนส่ง (SO_CARR). - กำหนดโครงสร้างผลลัพธ์: กำหนดโครงสร้างตารางภายในให้ตรงกับรูปแบบบันทึกเหตุการณ์ที่ต้องการ โดยมีฟิลด์
ShipmentId,ActivityName,EventTime,EndTime,CarrierName,RequestedDeliveryDate,ModeOfTransport,TotalFreightCostและIsOnTimeDelivery. - เขียนตรรกะเลือกข้อมูล: เขียนตรรกะ ABAP หลักเพื่อเลือกข้อมูลของกิจกรรมทั้ง 15 รายการ โดยทั่วไปต้องค้นหาข้อมูลจากตาราง SAP TM หลายตาราง เริ่มจากเลือกเอกสารการขนส่งหลัก เช่น Freight Order ภายในช่วงวันที่ที่กำหนด.
- ดึงเหตุการณ์การวางแผนและการดำเนินงาน: สำหรับเอกสารการขนส่งแต่ละรายการที่เลือก เช่น Freight Order ให้ค้นหาตารางและออบเจ็กต์ทางธุรกิจที่เกี่ยวข้องเพื่อหาเวลาของเหตุการณ์ต่างๆ ใช้ตาราง
/SCMTMS/D_TORROTเพื่อดึงเวลาสร้าง Freight Order ('วางแผนการขนส่งแล้ว'), การมอบหมายผู้ขนส่ง ('มอบหมายผู้ขนส่งแล้ว') และการเปลี่ยนสถานะการดำเนินงานที่ตรงกับ 'รับสินค้าแล้ว' และ 'ส่งสินค้าแล้ว' การสร้าง Forwarding Order ก่อนหน้า (/SCMTMS/D_TRQROT) อาจใช้ระบุเหตุการณ์ 'ได้รับคำขอขนส่ง'. - ดึงข้อมูลการยืนยันจากผู้ขนส่งและการเปลี่ยนเส้นทาง: ค้นหาตารางสถานะหรือเอกสารการเปลี่ยนแปลง (CDHDR/CDPOS) ที่เกี่ยวข้องกับ Freight Order เพื่อระบุเวลาที่ตั้งสถานะ
CONFIRMATIONซึ่งใช้บันทึกเหตุการณ์ 'ผู้ขนส่งยืนยันการขนส่งแล้ว' และค้นหาการเปลี่ยนแปลงข้อมูลเส้นทางที่สำคัญเพื่อบันทึกเหตุการณ์ 'เปลี่ยนเส้นทางการขนส่งแล้ว'. - ดึงเหตุการณ์ด้านศุลกากร: หากใช้ SAP Global Trade Services (GTS) หรือโมดูลที่คล้ายกัน เหตุการณ์ด้านศุลกากร ('ยื่นใบขนสินค้าศุลกากรแล้ว', 'ผ่านพิธีการศุลกากรแล้ว') มักติดตามผ่านเอกสารที่เชื่อมโยงกัน ตรรกะต้องอ่าน document flow (
/SCMTMS/D_TORDOC) ของ Freight Order เพื่อค้นหาเอกสารที่เกี่ยวข้องและเวลาสร้างหรือเปลี่ยนสถานะ. - ดึงเหตุการณ์การชำระค่าขนส่งและข้อโต้แย้ง: ค้นหาตารางส่วนหัว Freight Settlement Document (
/SCMTMS/D_SFIRHD) รวมถึงรายการและสถานะที่เกี่ยวข้อง เพื่อบันทึกเหตุการณ์ 'สร้างรายการชำระค่าขนส่งแล้ว', 'สร้างข้อโต้แย้งค่าขนส่งแล้ว' และ 'ตรวจสอบใบแจ้งหนี้แล้ว' เชื่อมข้อมูลเหล่านี้กลับไปยังShipmentIdต้นทาง. - รวมข้อมูล: สร้างระเบียนใหม่ในตารางภายในสุดท้ายสำหรับแต่ละเหตุการณ์ที่พบ กำหนดกิจกรรมที่เกี่ยวข้องใน
ActivityNameเวลาเหตุการณ์ในEventTimeและรหัส Freight Order หรือ Freight Booking ในShipmentIdเติมแอตทริบิวต์อื่นจากเอกสารต้นทาง. - จัดรูปแบบและส่งออกไฟล์: เมื่อเติมข้อมูลในตารางภายในสุดท้ายครบแล้ว ให้จัดรูปแบบเป็นไฟล์ข้อมูลแบบแบน ใช้คำสั่ง
OPEN DATASET,LOOP AT... TRANSFER...และCLOSE DATASETเพื่อเขียนข้อมูลจากตารางภายในเป็นไฟล์ CSV หรือ TXT บน SAP application server ซึ่งเข้าถึงได้ผ่านธุรกรรม AL11. - ตั้งเวลาทำงานและดาวน์โหลดไฟล์: ตั้งเวลาให้โปรแกรม ABAP ทำงานเป็น background job ได้ด้วยธุรกรรม SM36 จากนั้นดาวน์โหลดไฟล์ที่สร้างบน application server ไปยังเครื่องของคุณด้วยธุรกรรม
CG3Yเพื่อนำเข้า ProcessMind.
การกำหนดค่า
- ช่วงวันที่: หน้าจอเลือกข้อมูลควรกำหนดช่วงวันที่สร้างเอกสารขนส่งหลัก เช่น Freight Order เป็นข้อมูลบังคับ สำหรับการวิเคราะห์เบื้องต้น แนะนำให้ใช้ช่วง 3 ถึง 6 เดือน เพื่อให้ได้ชุดข้อมูลที่เป็นตัวแทนโดยไม่ทำให้ใช้เวลาประมวลผลนานเกินไป.
- ตัวกรองประเภทเอกสาร: เพิ่มตัวกรอง Transportation Document Type เช่น Freight Order หรือ Freight Booking เพื่อให้การวิเคราะห์มุ่งเน้นไปที่กระบวนการเฉพาะ เช่น การขนส่งสินค้าทางถนนหรือทางทะเล.
- ตัวกรองผู้ขนส่ง: ให้ผู้ใช้กรองตามผู้ขนส่งที่ต้องการได้ เพื่อวิเคราะห์ประสิทธิภาพของคู่ค้าด้านโลจิสติกส์แต่ละราย.
- ตัวกรองหน่วยงาน: เพิ่มตัวกรองหน่วยงานที่เกี่ยวข้อง เช่น Purchasing Organization หรือ Company Code เพื่อจำกัดข้อมูลให้อยู่ในส่วนธุรกิจที่ต้องการ.
- ปรับปรุงประสิทธิภาพ: หากชุดข้อมูลมีขนาดใหญ่ ให้เขียนโค้ด ABAP โดยใช้ฟิลด์ฐานข้อมูลที่มีดัชนีในเงื่อนไข
WHEREหลีกเลี่ยงการวนลูปซ้อนเมื่อทำได้ และเลือกเฉพาะฟิลด์ที่จำเป็นจากฐานข้อมูลเพื่อลดการใช้หน่วยความจำ. - ข้อกำหนดเบื้องต้น: ผู้ใช้ที่เรียกใช้รายงานต้องมีสิทธิ์เรียกใช้โปรแกรม ABAP นักพัฒนาต้องมีสิทธิ์
S_DEVELOPตัวโปรแกรมต้องมีสิทธิ์เข้าถึงระบบไฟล์บน application server (ออบเจ็กต์S_DATASET) และสิทธิ์เข้าถึงตารางฐานข้อมูล TM และออบเจ็กต์ BOPF ที่เกี่ยวข้อง.
ตัวอย่างคำค้น abap
REPORT ztm_process_extract.
*&---------------------------------------------------------------------*
*& Data Structures
*&---------------------------------------------------------------------*
TYPES: BEGIN OF ty_s_event_log,
shipmentid TYPE /scmtms/tor_id,
activityname TYPE string,
eventtime TYPE timestamp,
endtime TYPE timestamp,
carriername TYPE string,
requesteddeliverydate TYPE timestamp,
modeoftransport TYPE /scmtms/mot,
totalfreightcost TYPE /scmtms/chargeable_weight,
isontimedelivery TYPE abap_bool,
END OF ty_s_event_log.
DATA: lt_event_log TYPE TABLE OF ty_s_event_log.
*&---------------------------------------------------------------------*
*& Selection Screen
*&---------------------------------------------------------------------*
SELECT-OPTIONS: so_credt FOR sy-datum OBLIGATORY.
SELECT-OPTIONS: so_torid FOR /scmtms/d_torrot-tor_id.
SELECT-OPTIONS: so_carr FOR /scmtms/d_torrot-lsp_id.
*&---------------------------------------------------------------------*
*& Main Logic
*&---------------------------------------------------------------------*
START-OF-SELECTION.
DATA: ls_event_log TYPE ty_s_event_log.
" Select base data: Freight Orders (Shipments)
SELECT tor_id, tor_cat, lsp_id, mot_code, cretd_tst, btd_tstmp_end
FROM /scmtms/d_torrot
INTO TABLE @DATA(lt_tor_root)
WHERE CAST( cretd_tst AS DATS ) IN @so_credt
AND tor_id IN @so_torid
AND lsp_id IN @so_carr.
IF lt_tor_root IS INITIAL.
MESSAGE 'No data found for the given selection.' TYPE 'S' DISPLAY LIKE 'E'.
RETURN.
ENDIF.
" Loop through each shipment to build the event log
LOOP AT lt_tor_root INTO DATA(ls_tor_root).
" 1. Transportation Request Received (Approximation from FWO creation)
SELECT SINGLE created_at_utc FROM /scmtms/d_trqrot
WHERE db_key IN ( SELECT trq_root_key FROM /scmtms/d_tordoc
WHERE parent_key = @ls_tor_root-db_key AND bo_node_cat = 'TRQ_ROOT' )
INTO @DATA(lv_trq_created_ts).
IF sy-subrc = 0.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Transportation Request Received'.
ls_event_log-eventtime = lv_trq_created_ts.
APPEND ls_event_log TO lt_event_log.
ENDIF.
" 2. Shipment Planned
CLEAR ls_event_log.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Shipment Planned'.
ls_event_log-eventtime = ls_tor_root-cretd_tst.
APPEND ls_event_log TO lt_event_log.
" 3. Carrier Assigned
IF ls_tor_root-lsp_id IS NOT INITIAL.
CLEAR ls_event_log.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Carrier Assigned'.
ls_event_log-eventtime = ls_tor_root-cretd_tst. " Approximated with creation time
APPEND ls_event_log TO lt_event_log.
ENDIF.
" Get statuses from /SCMTMS/D_TORSTA
SELECT status, tstmp FROM /scmtms/d_torsta
INTO TABLE @DATA(lt_statuses)
WHERE parent_key = @ls_tor_root-db_key.
" 4. Shipment Confirmed By Carrier
READ TABLE lt_statuses WITH KEY status = 'CONFIRMED' INTO DATA(ls_conf_status).
IF sy-subrc = 0.
CLEAR ls_event_log.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Shipment Confirmed By Carrier'.
ls_event_log-eventtime = ls_conf_status-tstmp.
APPEND ls_event_log TO lt_event_log.
ENDIF.
" 5. Goods Picked Up
READ TABLE lt_statuses WITH KEY status = 'LOADING_END' INTO DATA(ls_pickup_status). " Example status
IF sy-subrc = 0.
CLEAR ls_event_log.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Goods Picked Up'.
ls_event_log-eventtime = ls_pickup_status-tstmp.
APPEND ls_event_log TO lt_event_log.
ENDIF.
" 6. Customs Declaration Filed (Placeholder logic)
" 7. Customs Cleared (Placeholder logic)
" 8. Shipment Rerouted (Placeholder logic, needs change documents)
" 9. Goods Delivered
READ TABLE lt_statuses WITH KEY status = 'UNLOADING_END' INTO DATA(ls_delivery_status). " Example status
IF sy-subrc = 0.
CLEAR ls_event_log.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Goods Delivered'.
ls_event_log-eventtime = ls_delivery_status-tstmp.
APPEND ls_event_log TO lt_event_log.
ENDIF.
" 10. Proof Of Delivery Received
READ TABLE lt_statuses WITH KEY status = 'POD_RECEIVED' INTO DATA(ls_pod_status). " Example status
IF sy-subrc = 0.
CLEAR ls_event_log.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Proof Of Delivery Received'.
ls_event_log-eventtime = ls_pod_status-tstmp.
APPEND ls_event_log TO lt_event_log.
ENDIF.
" 11. Freight Settlement Created
SELECT SINGLE created_at_utc FROM /scmtms/d_sfirhd
WHERE db_key IN ( SELECT sfir_root_key FROM /scmtms/d_tordoc
WHERE parent_key = @ls_tor_root-db_key AND bo_node_cat = 'SFIR_ROOT' )
INTO @DATA(lv_fsd_created_ts).
IF sy-subrc = 0.
CLEAR ls_event_log.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Freight Settlement Created'.
ls_event_log-eventtime = lv_fsd_created_ts.
APPEND ls_event_log TO lt_event_log.
ENDIF.
" 12. Freight Dispute Created (Needs logic based on dispute status in SFIR)
" 13. Invoice Verified (Needs logic based on invoice status in SFIR)
" 14. Shipment Cancelled
READ TABLE lt_statuses WITH KEY status = 'CANCELLED' INTO DATA(ls_cancel_status).
IF sy-subrc = 0.
CLEAR ls_event_log.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Shipment Cancelled'.
ls_event_log-eventtime = ls_cancel_status-tstmp.
APPEND ls_event_log TO lt_event_log.
ENDIF.
" 15. Payment Processed (Data is typically in the ERP system, not TM)
ENDLOOP.
" Final step: Write lt_event_log to a file on the application server
DATA(lv_filepath) = '/usr/sap/trans/[YourInstance]/[YourFileName].csv'.
OPEN DATASET lv_filepath FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
IF sy-subrc = 0.
" Write header
DATA(lv_header) = 'ShipmentId,ActivityName,EventTime'.
TRANSFER lv_header TO lv_filepath.
" Write data
LOOP AT lt_event_log INTO ls_event_log.
DATA(lv_line) = |{ ls_event_log-shipmentid },{ ls_event_log-activityname },{ ls_event_log-eventtime }|.
TRANSFER lv_line TO lv_filepath.
ENDLOOP.
CLOSE DATASET lv_filepath.
ELSE.
MESSAGE 'Error opening file on application server.' TYPE 'E'.
ENDIF.
ENDFOR. พร้อมเริ่มต้นหรือยัง?
ใช้เทมเพลตนี้เป็นจุดเริ่มต้นในการปรับปรุงกระบวนการขนส่งให้มีประสิทธิภาพยิ่งขึ้น พร้อมส่งมอบสินค้าได้เร็วขึ้นและมีต้นทุนต่ำลง เริ่มค้นหาข้อมูลเชิงลึกได้เลยวันนี้!
เริ่มแก้คอขวดในการจัดการการขนส่งวันนี้
ค้นหาจุดที่ไม่มีประสิทธิภาพ ปรับเส้นทาง และลดระยะเวลาดำเนินการได้ 30%.
ไม่ต้องใช้บัตรเครดิต ตั้งค่าเสร็จภายในไม่กี่นาที.