Mẫu dữ liệu quản lý vận tải của bạn
Mẫu dữ liệu quản lý vận tải của bạn
- Các thuộc tính nên thu thập
- Các hoạt động chính cần theo dõi
- Hướng dẫn trích xuất dữ liệu từ SAP Transportation Management
Thuộc tính quản lý vận tải
| Tên | Mô tả | ||
|---|---|---|---|
| Lô hàng ShipmentId | Mã định danh duy nhất cho một lần vận chuyển hàng hóa, được dùng làm trường hợp trung tâm để phân tích. | ||
| Mô tả Shipment ID là khóa chính dùng để nhóm mọi hoạt động và sự kiện liên quan đến vận chuyển. Mã này đại diện cho một quy trình vận chuyển đầu cuối, từ yêu cầu ban đầu đến khi nhận chứng từ xác nhận giao hàng và thanh toán. Trong process mining, thuộc tính này rất cần thiết để tạo chế độ xem theo từng trường hợp, giúp chuyên viên phân tích theo dõi toàn bộ hành trình của mỗi lô hàng. Nhờ đó, họ có thể phân tích các biến thể quy trình, thời gian chu kỳ và kết quả của từng lô hàng, qua đó hiểu rõ hiệu suất vận chuyển. Vì sao điều này quan trọng Đây là mã định danh trường hợp cốt lõi, liên kết mọi sự kiện và điểm dữ liệu với một đơn hàng vận chuyển cụ thể, rất cần thiết để phân tích quy trình đầu cuối. Lấy dữ liệu ở đâu Mã định danh này là số Freight Order hoặc Freight Booking trong SAP TM. Bạn có thể tìm thấy mã trong các bảng như /SCMTMS/D_TORROT và /SCMTMS/D_TRQROT. Ví dụ 610000432161000056786100009876 | |||
| Tên hoạt động ActivityName | Tên của một sự kiện nghiệp vụ hoặc bước cụ thể đã diễn ra trong quy trình vận chuyển. | ||
| Mô tả Tên hoạt động mô tả một tác vụ hoặc mốc trong vòng đời lô hàng, chẳng hạn 'Đã lập kế hoạch vận chuyển', 'Đã nhận hàng' hoặc 'Đã giao hàng'. Các hoạt động này tạo thành những nút trong sơ đồ quy trình được phát hiện. Phân tích trình tự và tần suất hoạt động giúp xác định luồng quy trình chuẩn, các sai lệch, điểm nghẽn và vòng lặp làm lại. Đây là nền tảng để khám phá quy trình và kiểm tra mức độ tuân thủ trong quản lý vận chuyển. Vì sao điều này quan trọng Thuộc tính này xác định các bước trong quy trình vận chuyển, giúp trực quan hóa và phân tích luồng vận chuyển đầu cuối. Lấy dữ liệu ở đâu Thuộc tính này thường được xác định từ mã sự kiện hoặc thay đổi trạng thái được ghi lại trong bộ xử lý sự kiện theo dõi thực hiện của SAP TM. Dữ liệu có thể lấy từ các bảng ghi nhận thay đổi trạng thái của đối tượng nghiệp vụ hoặc thông điệp sự kiện cụ thể. Ví dụ Đã lập kế hoạch vận chuyểnĐã chỉ định hãng vận chuyểnĐã nhận hàngĐã giao hàngĐã nhận chứng từ xác nhận giao hàng | |||
| Thời điểm sự kiện EventTime | Dấu thời gian cho biết thời điểm một hoạt động hoặc sự kiện cụ thể diễn ra. | ||
| Mô tả Thời điểm sự kiện cung cấp ngày giờ chính xác của từng hoạt động trong quy trình vận chuyển. Dữ liệu thời gian này là cơ sở để tính thời gian chu kỳ, thời lượng và thời gian chờ giữa các bước. Khi phân tích, thuộc tính này giúp sắp xếp sự kiện đúng thứ tự, tạo nhật ký theo trình tự thời gian và thực hiện các phân tích hiệu suất dựa trên thời gian. Thuộc tính này rất cần thiết để phát hiện chậm trễ, đo lường hiệu quả quy trình và đánh giá kết quả so với lịch trình hoặc thỏa thuận mức dịch vụ. Vì sao điều này quan trọng Dấu thời gian rất cần thiết để sắp xếp sự kiện theo trình tự thời gian và tính các chỉ số hiệu suất như thời gian chu kỳ và tỷ lệ giao hàng đúng hạn. Lấy dữ liệu ở đâu Lấy dữ liệu từ các bảng bộ xử lý sự kiện trong SAP TM, chẳng hạn /SAPTRX/EH_EVMSG, nơi lưu dấu thời gian của các sự kiện được báo cáo. Ví dụ 2023-04-15T10:00:00Z2023-04-16T14:30:00Z2023-04-20T09:15:00Z | |||
| Giao hàng đúng hạn IsOnTimeDelivery | Giá trị đúng/sai cho biết hàng hóa có được giao vào hoặc trước ngày khách yêu cầu hay không. | ||
| Mô tả Đây là thuộc tính được tính bằng cách so sánh thời điểm của hoạt động “Đã giao hàng” với “Ngày giao hàng khách yêu cầu”. Giá trị là đúng nếu hàng được giao đúng hạn hoặc sớm hơn, và sai nếu giao trễ. Thuộc tính này giúp đơn giản hóa việc phân tích hiệu quả bằng cách xác định rõ kết quả của từng lô hàng. Đây là cơ sở cho dashboard Hiệu quả giao hàng đúng hạn và KPI tương ứng. Nhà phân tích có thể dễ dàng lọc các lô hàng giao trễ và tìm nguyên nhân khiến hiệu quả kém. Vì sao điều này quan trọng Đo trực tiếp mức độ đáp ứng cam kết giao hàng, giúp tính toán và trực quan hóa KPI giao hàng đúng hạn. Lấy dữ liệu ở đâu Thuộc tính này không được lưu trong SAP TM. Bạn cần tính thuộc tính này trong bước chuyển đổi dữ liệu bằng cách so sánh thời điểm sự kiện giao hàng thực tế với Ngày giao hàng khách yêu cầu. Ví dụ truefalse | |||
| Ngày giao hàng khách yêu cầu RequestedDeliveryDate | Ngày và giờ giao hàng mà khách yêu cầu hoặc được ghi trong đơn hàng bán. | ||
| Mô tả Ngày giao hàng khách yêu cầu là hạn mục tiêu cho hoạt động “Đã giao hàng”. Đây là mốc chính để đo lường hiệu quả giao hàng đúng hạn. Ngày này rất quan trọng khi tính KPI “Tỷ lệ giao hàng đúng hạn”. Bằng cách so sánh thời điểm giao hàng thực tế với ngày khách yêu cầu, doanh nghiệp có thể xác định mình có đáp ứng cam kết dịch vụ hay không. Phân tích chênh lệch giúp tìm ra nguyên nhân chậm trễ có tính hệ thống, chẳng hạn hiệu quả của đơn vị vận tải, chậm trễ trong khâu lập kế hoạch hoặc vướng mắc tại hải quan. Vì sao điều này quan trọng Đây là mốc chuẩn để đo lường hiệu quả giao hàng đúng hạn, một KPI quan trọng đối với sự hài lòng của khách hàng và hiệu quả vận hành. Lấy dữ liệu ở đâu Ngày này thường được chuyển từ đơn hàng bán hoặc lệnh điều chuyển hàng tồn kho trước đó trong SAP ERP. Ngày được lưu trong các trường ngày giờ của Freight Unit hoặc Freight Order. Ví dụ 2023-05-20T17:00:00Z2023-06-01T12:00:00Z2023-06-15T23:59:59Z | |||
| Phương thức vận tải ModeOfTransport | Phương thức vận chuyển lô hàng, chẳng hạn đường bộ, đường sắt, đường hàng không hoặc đường biển. | ||
| Mô tả Thuộc tính này xác định phương thức vận tải. Mỗi phương thức có cơ cấu chi phí, thời gian vận chuyển và độ phức tạp quy trình khác nhau. Ví dụ, lô hàng quốc tế vận chuyển bằng đường hàng không có thể cần các hoạt động như thông quan, khác với lô hàng nội địa vận chuyển bằng xe tải. Phân tích quy trình theo phương thức vận tải giúp bạn xây dựng các sáng kiến cải tiến phù hợp. Cách phân nhóm này cũng rất quan trọng khi phân tích chi phí, nhất là để xác định mức độ sử dụng dịch vụ vận tải cao cấp, chẳng hạn chuyển phát nhanh bằng đường hàng không, so với các phương thức tiêu chuẩn tiết kiệm hơn. Đây là cơ sở để hiểu và kiểm soát chi phí vận tải. Vì sao điều này quan trọng Giúp phân tích chi phí, thời gian và khác biệt quy trình theo phương thức vận tải, từ đó tối ưu chi phí và xác định mức độ sử dụng dịch vụ vận tải cao cấp. Lấy dữ liệu ở đâu Đây là trường quan trọng trong Freight Order hoặc Freight Booking, thường có nhãn Transportation Mode hoặc MOT. Ví dụ 01 (Đường bộ)02 (Đường sắt)04 (Đường hàng không)05 (Đường biển) | |||
| Tên đơn vị vận tải CarrierName | Tên đơn vị vận tải hoặc nhà cung cấp dịch vụ logistics được chỉ định cho lô hàng. | ||
| Mô tả Tên đơn vị vận tải cho biết công ty nào chịu trách nhiệm vận chuyển hàng hóa. Đây là chiều phân tích quan trọng vì mỗi đơn vị có thể khác nhau về chất lượng dịch vụ, chi phí và độ tin cậy. Trong process mining, thuộc tính này giúp phân nhóm và so sánh hiệu quả giữa các đơn vị vận tải. Bạn có thể lập bảng đánh giá từng đơn vị, theo dõi tỷ lệ giao hàng đúng hạn, so sánh chi phí và xác định đơn vị nào thường liên quan đến chậm trễ hoặc tranh chấp. Thông tin này rất cần thiết để quản lý và lựa chọn nhà vận tải. Vì sao điều này quan trọng Giúp so sánh hiệu quả giữa các đơn vị vận tải, từ đó lựa chọn đơn vị phù hợp và tối ưu chi phí cũng như chất lượng dịch vụ. Lấy dữ liệu ở đâu Thông tin này được lưu trong chứng từ Freight Order hoặc Freight Booking, liên kết với đơn vị vận tải thông qua chức năng đối tác kinh doanh. Ví dụ DHL ExpressFedEx FreightMaersk LineUnion Pacific Railroad | |||
| Thời điểm kết thúc EndTime | Dấu thời gian cho biết thời điểm hoàn tất một hoạt động cụ thể. | ||
| Mô tả StartTime cho biết thời điểm bắt đầu sự kiện, còn EndTime đánh dấu thời điểm sự kiện kết thúc. Thuộc tính này đặc biệt hữu ích với các hoạt động có thời lượng, chẳng hạn 'Customs Clearance' hoặc 'Goods Loading'. Chênh lệch giữa EndTime và StartTime là thời gian xử lý hoạt động đó. Trong phân tích process mining, có cả thời điểm bắt đầu và kết thúc giúp phân tích thời lượng hoạt động chi tiết hơn, đồng thời tách thời gian xử lý khỏi thời gian chờ. Nhờ đó, bạn có thể xác định chính xác điểm kém hiệu quả nằm ở đâu, trong lúc thực hiện tác vụ hay khi bàn giao giữa các tác vụ. Vì sao điều này quan trọng Giúp tính chính xác thời gian xử lý hoạt động và phân biệt thời gian làm việc thực tế với thời gian chờ giữa các sự kiện. Lấy dữ liệu ở đâu Tương tự StartTime, dữ liệu này được lấy từ các bảng bộ xử lý sự kiện. Thời điểm này có thể tương ứng với một sự kiện 'completed' riêng cho hoạt động. Ví dụ 2023-04-15T11:30:00Z2023-04-16T15:00:00Z2023-04-20T09:45:00Z | |||
| Tổng chi phí vận tải TotalFreightCost | Tổng chi phí được tính hoặc lập hóa đơn cho lô hàng. | ||
| Mô tả Tổng chi phí vận tải thể hiện tác động tài chính của một lô hàng. Đây có thể là chi phí do hệ thống quản lý vận tải tính toán hoặc số tiền cuối cùng trên hóa đơn của đơn vị vận tải sau khi quyết toán. Thuộc tính này bổ sung góc nhìn tài chính vào phân tích quy trình. Nhà phân tích có thể xác định các biến thể quy trình tốn kém nhất, tính chi phí do chậm trễ hoặc đổi tuyến, và so sánh hiệu quả chi phí giữa các đơn vị vận tải hoặc phương thức vận tải. Đây là dữ liệu nền tảng cho dashboard theo dõi chi tiêu vận tải và phân tích chi phí phục vụ khách hàng. Vì sao điều này quan trọng Bổ sung góc nhìn tài chính vào quy trình, giúp phân tích chi tiêu vận tải, chi phí trên mỗi lô hàng và tác động tài chính của những điểm kém hiệu quả trong quy trình. Lấy dữ liệu ở đâu Dữ liệu lấy từ chứng từ Freight Settlement trong SAP TM sau khi tính phí. Bạn có thể tìm thấy dữ liệu trong các bảng như /SCMTMS/D_SFIRHD. Ví dụ 250.751200.005430.50 | |||
| Có tranh chấp IsDisputed | Giá trị đúng/sai cho biết hóa đơn vận tải của lô hàng có phát sinh tranh chấp hay không. | ||
| Mô tả Cờ được tính này xác định các lô hàng có tranh chấp quyết toán vận tải liên quan. Giá trị là đúng nếu có tranh chấp được tạo, nếu không thì là sai. Có thể xác định thuộc tính này dựa trên hoạt động “Đã tạo tranh chấp vận tải” hoặc trường “Lý do tranh chấp” có dữ liệu. Thuộc tính này giúp đơn giản hóa việc phân tích quy trình quyết toán vận tải. Bạn có thể dễ dàng tính KPI Tỷ lệ chênh lệch hóa đơn vận tải và lọc tất cả lô hàng có tranh chấp. Sau đó, nhà phân tích có thể tìm các đặc điểm chung như đơn vị vận tải, tuyến đường hoặc loại phí để xác định nguyên nhân gốc rễ của lỗi hóa đơn. Vì sao điều này quan trọng Giúp nhanh chóng xác định các khoản quyết toán vận tải có vấn đề, tính tỷ lệ tranh chấp và tìm nguyên nhân gốc rễ của lỗi hóa đơn. Lấy dữ liệu ở đâu Thuộc tính này không được lưu trong SAP TM. Bạn cần tính thuộc tính này dựa trên việc có hay không hồ sơ tranh chấp liên kết với chứng từ Freight Settlement. Ví dụ truefalse | |||
| Hệ thống nguồn SourceSystem | Hệ thống nơi dữ liệu sự kiện phát sinh. | ||
| Mô tả Thuộc tính này xác định hệ thống nguồn tạo ra dữ liệu, chẳng hạn SAP TM, SAP ERP hoặc cổng thông tin bên ngoài của hãng vận chuyển. Thuộc tính cho biết nguồn gốc dữ liệu và giúp bạn hiểu các điểm tích hợp dữ liệu. Trong môi trường có nhiều hệ thống, biết hệ thống nguồn rất quan trọng để xác thực dữ liệu, xử lý sự cố tích hợp và hiểu cách các hệ thống khác nhau đóng góp vào quy trình chung. Ví dụ, thuộc tính này giúp phân biệt sự kiện do hệ thống nội bộ báo cáo với sự kiện do nhà cung cấp dịch vụ logistics bên thứ ba báo cáo. Vì sao điều này quan trọng Xác định nguồn gốc dữ liệu, rất cần thiết cho quản trị dữ liệu, xử lý sự cố và tìm hiểu cách điều phối quy trình giữa nhiều hệ thống. Lấy dữ liệu ở đâu Thông tin này thường được lưu trong nhật ký hệ thống hoặc có thể xác định dựa trên giao diện hay người dùng đã tạo mục dữ liệu. Ví dụ SAP_TM_P01SAP_ERP_E01CARRIER_PORTAL_XYZ | |||
| Lần cập nhật dữ liệu gần nhất LastDataUpdate | Dấu thời gian của lần trích xuất hoặc làm mới dữ liệu gần nhất cho tập dữ liệu process mining. | ||
| Mô tả Thuộc tính này cho biết dữ liệu đang phân tích có mới hay không. Thuộc tính thể hiện ngày giờ dữ liệu được lấy gần nhất từ các hệ thống nguồn như SAP TM vào công cụ process mining. Đây là thông tin siêu dữ liệu quan trọng đối với mọi bảng điều khiển hoặc phân tích, vì nó cho biết dữ liệu chuyên sâu cập nhật đến thời điểm nào. Nhờ đó, người dùng biết mình đang xem thông tin mới nhất hay ảnh chụp dữ liệu từ một giai đoạn trước, điều cần thiết để đưa ra quyết định kịp thời và có căn cứ. Vì sao điều này quan trọng Cung cấp thông tin quan trọng về độ mới của dữ liệu, giúp người dùng biết phân tích được cập nhật đến thời điểm nào. Lấy dữ liệu ở đâu Thông tin này thường được công cụ ETL (Extract, Transform, Load) hoặc luồng dữ liệu tạo và lưu trong quá trình nạp dữ liệu. Ví dụ 2023-10-27T08:00:00Z2023-10-26T08:00:00Z | |||
| Lý do chậm trễ DelayReason | Mã hoặc nội dung giải thích nguyên nhân lô hàng bị chậm trễ. | ||
| Mô tả Thuộc tính Lý do chậm trễ ghi lại nguyên nhân khiến lịch trình thực tế lệch so với kế hoạch, chẳng hạn “Thời tiết xấu”, “Vướng mắc tại hải quan” hoặc “Đơn vị vận tải chậm trễ”. Thông tin này thường được báo cáo thủ công hoặc gửi qua thông điệp sự kiện từ đơn vị vận tải. Thuộc tính này hỗ trợ phân tích nguyên nhân gốc rễ. Thay vì chỉ biết lô hàng bị trễ, nhà phân tích có thể tìm hiểu lý do. Phân loại và thống kê các nguyên nhân chậm trễ giúp doanh nghiệp nhận diện vấn đề lặp lại và tập trung cải tiến vào những khâu có ảnh hưởng lớn nhất, chẳng hạn cải thiện trao đổi với đơn vị vận tải hoặc tối ưu tuyến đường để tránh ùn tắc. Vì sao điều này quan trọng Giải thích nguyên nhân lô hàng chậm trễ, giúp phân tích nguyên nhân gốc rễ để giảm sự cố và cải thiện tỷ lệ giao hàng đúng hạn. Lấy dữ liệu ở đâu Thông tin này có thể được ghi thành mã sự kiện và lý do trong khung quản lý sự kiện của SAP TM khi có báo cáo sự kiện “Đến/Rời trễ”. Ví dụ WEATHER_DELAYCUSTOMS_INSPECTIONPORT_CONGESTIONMECHANICAL_FAILURE | |||
| Lý do tranh chấp DisputeReason | Lý do được cung cấp khi có tranh chấp về hóa đơn vận tải. | ||
| Mô tả Khi hóa đơn của đơn vị vận tải không khớp với chi phí dự kiến được tính trong SAP TM, một tranh chấp sẽ được tạo. Thuộc tính này ghi lại lý do chênh lệch, chẳng hạn “Sai đơn giá”, “Hóa đơn trùng lặp” hoặc “Phụ phí chưa được duyệt”. Phân tích lý do tranh chấp rất quan trọng đối với dashboard Tỷ lệ lỗi và tranh chấp hóa đơn vận tải. Việc này giúp xác định nguyên nhân gốc rễ của sai lệch hóa đơn, có thể do dữ liệu chủ, lỗi từ đơn vị vận tải hoặc vấn đề trong vận hành. Từ đó, doanh nghiệp có thể xử lý đúng trọng tâm để giảm tranh chấp, rút ngắn chu kỳ thanh toán và giảm khối lượng công việc hành chính. Vì sao điều này quan trọng Cho biết nguyên nhân gốc rễ của lỗi hóa đơn vận tải, giúp xử lý đúng trọng tâm để giảm tranh chấp và cải thiện quy trình quyết toán. Lấy dữ liệu ở đâu Thông tin này được ghi trong hồ sơ quản lý tranh chấp liên kết với chứng từ Freight Settlement. Ví dụ Sai lệch đơn giáSai trọng lượngPhí lưu phương tiện chưa được duyệtHóa đơn trùng lặp | |||
| Ngày lấy hàng theo lịch ScheduledPickupDate | Ngày và giờ dự kiến để đơn vị vận tải nhận hàng tại điểm gửi hàng. | ||
| Mô tả Ngày lấy hàng theo lịch là thời điểm đã thống nhất để bắt đầu vận chuyển hàng hóa. Đây là mốc quan trọng trong giai đoạn thực hiện lô hàng. Thuộc tính này cần thiết để theo dõi đúng giờ ở chặng đầu tiên. So sánh giờ lấy hàng theo lịch với thời điểm thực tế của sự kiện “Đã lấy hàng” giúp doanh nghiệp tính thời gian chậm trễ. Qua đó, bạn có thể đánh giá hiệu quả và độ tin cậy của cả địa điểm gửi hàng lẫn đơn vị vận tải. Vì sao điều này quan trọng Làm mốc chuẩn để đo lường việc lấy hàng đúng giờ, giúp phát hiện chậm trễ ngay từ đầu hành trình vận chuyển. Lấy dữ liệu ở đâu Đây là ngày giờ dự kiến được lưu trong chuỗi điểm dừng của Freight Order trong SAP TM. Ví dụ 2023-05-18T09:00:00Z2023-05-30T14:00:00Z2023-06-12T10:30:00Z | |||
| Quốc gia đích DestinationCountry | Quốc gia nơi lô hàng được giao đến. | ||
| Mô tả Thuộc tính này xác định quốc gia đích cuối cùng của lô hàng, dựa trên địa chỉ tại điểm giao hàng cuối cùng. Tương tự quốc gia xuất phát, phân tích theo quốc gia đích rất quan trọng để hiểu những thách thức logistics ở từng khu vực. Phân tích có thể cho thấy điểm đến nào thường giao hàng trễ hoặc có chi phí giao hàng chặng cuối cao hơn. Thông tin này hữu ích khi tối ưu mạng lưới, đặt kỳ vọng giao hàng thực tế và quản lý tuân thủ thương mại quốc tế. Vì sao điều này quan trọng Giúp phân tích hiệu quả quy trình theo điểm đến, làm rõ vấn đề tại từng khu vực giao hàng, cơ quan hải quan hoặc đơn vị vận tải chặng cuối. Lấy dữ liệu ở đâu Đây là một phần thông tin địa chỉ của địa điểm nhận hàng tại điểm dừng cuối cùng trong Freight Order. Ví dụ FRCAGBJP | |||
| Quốc gia xuất phát OriginCountry | Quốc gia nơi lô hàng bắt đầu hành trình. | ||
| Mô tả Thuộc tính này xác định quốc gia xuất phát của hành trình vận tải, dựa trên địa chỉ của điểm lấy hàng đầu tiên. Phân tích quy trình theo quốc gia xuất phát giúp nhận diện khác biệt giữa các khu vực về hiệu quả, chi phí và độ phức tạp. Qua đó, bạn có thể phát hiện quốc gia có thời gian thông quan lâu hơn, chi phí vận tải cao hơn hoặc thường xuyên xảy ra chậm trễ. Phân nhóm theo địa lý là yếu tố cần thiết để quản lý chuỗi cung ứng toàn cầu và điều chỉnh chiến lược logistics cho từng khu vực. Vì sao điều này quan trọng Cho phép phân tích hiệu quả lô hàng theo khu vực địa lý, giúp xác định điểm nghẽn, yếu tố làm tăng chi phí hoặc khác biệt quy trình giữa các vùng. Lấy dữ liệu ở đâu Đây là một phần thông tin địa chỉ của địa điểm xuất phát tại điểm dừng đầu tiên trong Freight Order. Ví dụ DEUSCNMX | |||
| Tên người dùng UserName | ID hoặc tên người thực hiện một hoạt động. | ||
| Mô tả Thuộc tính này xác định nhân viên hoặc người dùng chịu trách nhiệm thực hiện hoạt động thủ công, chẳng hạn 'Đã lập kế hoạch vận chuyển' hoặc 'Đã xác minh hóa đơn'. Thuộc tính liên kết các bước trong quy trình với cá nhân hoặc nhóm đã thực hiện. Phân tích hoạt động theo người dùng giúp hiểu cách phân bổ khối lượng công việc, xác định nhu cầu đào tạo và ghi nhận những người có thành tích tốt. Thuộc tính này cũng rất quan trọng đối với việc tuân thủ và kiểm toán, vì lưu lại rõ ai đã làm gì và vào thời điểm nào. Qua đó, bạn có thể thấy cách những người dùng khác nhau thực hiện cùng một tác vụ. Vì sao điều này quan trọng Gắn các bước thủ công trong quy trình với người dùng cụ thể, giúp phân tích khối lượng công việc, hiệu suất cá nhân và cơ hội đào tạo. Lấy dữ liệu ở đâu Thường nằm trong bảng nhật ký thay đổi hoặc bảng tiêu đề chứng từ vận tải, chẳng hạn ở các trường “Người tạo” hoặc “Người thay đổi” (ví dụ: ERNAM, AENAM). Ví dụ CB998030SMITHJPLANNER_EU | |||
| Trạng thái lô hàng ShipmentStatus | Trạng thái tổng thể hiện tại của lô hàng tại thời điểm trích xuất dữ liệu. | ||
| Mô tả Trạng thái lô hàng cho biết lô hàng đang ở giai đoạn nào, chẳng hạn “Đang lập kế hoạch”, “Đang thực hiện”, “Đã giao hàng” hoặc “Đã hủy”. Đây là trạng thái gần nhất được ghi nhận của hồ sơ. Thuộc tính này giúp lọc và phân tích lô hàng theo kết quả. Chẳng hạn, nhà phân tích có thể chỉ xem các lô đã hoàn tất để đo thời gian xử lý từ đầu đến cuối, hoặc chỉ xem các lô bị hủy để tìm nguyên nhân. Thông tin này cũng giúp diễn giải luồng quy trình chính xác hơn. Vì sao điều này quan trọng Cho biết kết quả tổng quan của từng lô hàng, giúp lọc và phân tích các lô đã hoàn tất, bị hủy hoặc vẫn đang vận chuyển. Lấy dữ liệu ở đâu Đây là trường trạng thái tổng thể trong phần tiêu đề của chứng từ Freight Order hoặc Freight Booking trong SAP TM. Ví dụ Đang lập kế hoạchSẵn sàng vận chuyểnĐang thực hiệnĐã thực hiệnĐã hủy | |||
Hoạt động quản lý vận tải
| Hoạt động | Mô tả | ||
|---|---|---|---|
| Đã chỉ định hãng vận chuyển | Hoạt động này cho biết một nhà cung cấp dịch vụ vận tải cụ thể, tức hãng vận chuyển, đã được chọn và chỉ định cho lô hàng. Việc này có thể diễn ra theo cách thủ công, qua lập kế hoạch tự động hoặc quy trình mời thầu. | ||
| Vì sao điều này quan trọng Cần chỉ định hãng vận chuyển trước khi xác nhận và thực hiện lô hàng. Theo dõi bước này giúp phân tích quy trình lựa chọn hãng vận chuyển và bảo đảm việc đặt chỗ đúng hạn. Lấy dữ liệu ở đâu Sự kiện được ghi nhận khi trường hãng vận chuyển (đối tác có vai trò 'Carrier') được điền trong Freight Order hoặc Freight Booking. Với quy trình mời thầu, sự kiện xảy ra khi Freight Request for Quotation được trao. Thu thập Xác định dấu thời gian lần đầu thông tin đối tác vận chuyển được điền hoặc xác nhận trong Freight Order. Loại sự kiện inferred | |||
| Đã giao hàng | Hoạt động này đánh dấu thời điểm lô hàng đến điểm giao cuối cùng và quá trình vận chuyển thực tế hoàn tất. Sự kiện được ghi nhận khi hãng vận chuyển báo hàng đã được dỡ xuống tại địa điểm của bên nhận hàng. | ||
| Vì sao điều này quan trọng Đây là mốc quan trọng nhất để đo lường hiệu suất giao hàng đúng hạn và sự hài lòng của khách hàng. Mốc này cũng thường kích hoạt quy trình lập hóa đơn và quyết toán. Lấy dữ liệu ở đâu Sự kiện này được ghi nhận trong SAP TM dưới dạng sự kiện thực hiện 'Arrival at Destination' hoặc 'Unloading End', qua đó cập nhật trạng thái thực hiện của Freight Order. Dữ liệu thường do hãng vận chuyển cung cấp. Thu thập Dùng dấu thời gian của sự kiện thực hiện 'Arrival at Destination' được báo cáo tại điểm dừng cuối cùng của Freight Order. Loại sự kiện explicit | |||
| Đã hủy lô hàng | Hoạt động này thể hiện việc hủy lô hàng sau khi đã có yêu cầu hoặc kế hoạch vận chuyển. Đây là điểm kết thúc của những quy trình không chuyển sang giai đoạn thực hiện. | ||
| Vì sao điều này quan trọng Theo dõi các trường hợp hủy giúp xác định nguyên nhân quy trình không tiếp tục, chẳng hạn nhu cầu khách hàng thay đổi hoặc lỗi lập kế hoạch. Tỷ lệ hủy cao có thể cho thấy vấn đề tiềm ẩn trong quản lý đơn hàng hoặc lập kế hoạch. Lấy dữ liệu ở đâu Sự kiện này được xác định khi trạng thái vòng đời của Forwarding Order hoặc Freight Order chuyển thành 'Cancelled'. Dấu thời gian thay đổi trạng thái là thời điểm sự kiện. Thu thập Ghi nhận dấu thời gian khi trạng thái vòng đời của chứng từ được đặt thành 'Cancelled'. Loại sự kiện inferred | |||
| Đã lập kế hoạch vận chuyển | Hoạt động này cho biết các yêu cầu vận chuyển đã được gộp thành kế hoạch vận chuyển cụ thể. Sự kiện được ghi nhận khi tạo và lưu Freight Order (đường bộ/đường sắt) hoặc Freight Booking (đường biển/đường hàng không), trong đó có tuyến đường và tài nguyên dự kiến. | ||
| Vì sao điều này quan trọng Hoàn tất mốc này là điều kiện cần để bắt đầu thực hiện vận chuyển. Thời gian từ lúc nhận yêu cầu đến hoạt động này là KPI quan trọng để đo lường hiệu quả lập kế hoạch. Lấy dữ liệu ở đâu Sự kiện này tương ứng với việc tạo chứng từ Freight Order hoặc Freight Booking. Bạn cũng có thể xác định sự kiện qua thay đổi trạng thái trên chứng từ, chẳng hạn trạng thái lập kế hoạch chuyển thành 'Planned'. Dữ liệu tiêu đề thường nằm trong bảng /SCMTMS/D_TORROT. Thu thập Dùng dấu thời gian tạo chứng từ Freight Order hoặc Freight Booking. Loại sự kiện explicit | |||
| Đã nhận chứng từ xác nhận giao hàng | Hoạt động này diễn ra khi nhận được chứng từ xác nhận giao hàng (POD) có chữ ký từ hãng vận chuyển và ghi nhận vào hệ thống. Chứng từ xác nhận bên nhận đã nhận hàng. | ||
| Vì sao điều này quan trọng Nhận POD là điều kiện quan trọng để lập hóa đơn cho khách hàng và quyết toán cước với hãng vận chuyển. Chậm trễ ở bước này ảnh hưởng trực tiếp đến chu kỳ thu hồi và chi tiền. Lấy dữ liệu ở đâu Sự kiện này thường được xác định qua thay đổi trạng thái của Freight Order, chẳng hạn trạng thái POD chuyển thành 'Received'. Dấu thời gian thay đổi trạng thái này được dùng làm thời điểm hoạt động. Thu thập Ghi nhận dấu thời gian khi trạng thái Proof of Delivery trên Freight Order được cập nhật thành 'Received'. Loại sự kiện inferred | |||
| Đã nhận hàng | Hoạt động này đánh dấu thời điểm hàng hóa bắt đầu được vận chuyển thực tế. Sự kiện được ghi nhận khi hãng vận chuyển báo hàng đã được chất lên phương tiện và rời khỏi địa điểm của bên gửi hàng. | ||
| Vì sao điều này quan trọng Đây là mốc quan trọng trong quá trình thực hiện, đánh dấu thời điểm hàng bắt đầu được vận chuyển. Mốc này rất cần thiết để theo dõi hiệu suất giao hàng đúng hạn và cung cấp thông tin chính xác về lô hàng. Lấy dữ liệu ở đâu Sự kiện này thường được ghi nhận trong SAP Event Management, hệ thống tích hợp với SAP TM, dưới dạng sự kiện 'Departure' hoặc 'Loading End'. Sự kiện cập nhật trạng thái thực hiện của Freight Order. Sự kiện cũng có thể được ghi trực tiếp trong Freight Order. Thu thập Dùng dấu thời gian của sự kiện thực hiện 'Departure' được báo cáo tại điểm xuất phát của Freight Order. Loại sự kiện explicit | |||
| Đã nhận yêu cầu vận chuyển | Hoạt động này đánh dấu thời điểm bắt đầu quy trình vận chuyển, khi phát sinh nhu cầu vận chuyển. Trong SAP TM, sự kiện này thường được ghi nhận khi tạo Forwarding Order (FWO) hoặc Order-based Transportation Requirement (OTR). | ||
| Vì sao điều này quan trọng Đây là sự kiện bắt đầu chính của quy trình vận chuyển đầu cuối. Phân tích thời gian từ hoạt động này đến khi hoàn tất lập kế hoạch là yếu tố quan trọng để đo lường hiệu quả lập kế hoạch. Lấy dữ liệu ở đâu Sự kiện này được ghi nhận khi tạo Forwarding Order (loại chứng từ FWO) hoặc chứng từ yêu cầu vận chuyển khác. Dấu thời gian tạo trong bảng tiêu đề, chẳng hạn /SCMTMS/D_TORROT, được dùng làm thời điểm sự kiện. Thu thập Ghi nhận ngày giờ tạo Forwarding Order hoặc chứng từ Transportation Requirement. Loại sự kiện explicit | |||
| Đã tạo chứng từ quyết toán cước | Hoạt động này đánh dấu việc tạo Freight Settlement Document (FSD), chứng từ tính chi phí vận chuyển phải trả cho hãng vận chuyển. Đây là chứng từ chính dùng để ghi nhận chi phí trích trước và đối chiếu hóa đơn. | ||
| Vì sao điều này quan trọng Đây là thời điểm bắt đầu giai đoạn quyết toán tài chính trong quy trình vận chuyển. Phân tích thời gian từ lúc giao hàng đến khi tạo chứng từ quyết toán giúp phát hiện điểm nghẽn trong khâu xử lý tài chính. Lấy dữ liệu ở đâu Sự kiện này được ghi nhận trực tiếp khi tạo Freight Settlement Document. Dấu thời gian tạo có trong bảng tiêu đề của chứng từ, /SCMTMS/D_SFIRHD. Thu thập Dùng ngày giờ tạo Freight Settlement Document. Loại sự kiện explicit | |||
| Đã xử lý thanh toán | Hoạt động cuối này xác nhận hãng vận chuyển đã được thanh toán cho dịch vụ vận chuyển. Sự kiện thường diễn ra trong hệ thống ERP được kết nối sau khi nhận hóa đơn đã xác minh từ SAP TM. | ||
| Vì sao điều này quan trọng Đây là điểm kết thúc thực sự của toàn bộ vòng đời vận chuyển. Sự kiện này rất cần thiết để đo tổng thời gian quy trình và KPI thanh toán đúng hạn. Lấy dữ liệu ở đâu Thông tin này nằm trong hệ thống ERP, chẳng hạn S/4HANA Finance. Có thể liên kết thông tin với Freight Settlement Document qua số hóa đơn. Trạng thái có thể được cập nhật lại trong SAP TM, hoặc bạn cần lấy dữ liệu từ các bảng ERP như BKPF và BSEG. Thu thập Lấy ngày thanh toán được ghi nhận từ hệ thống ERP, rồi liên kết với lô hàng qua mã tham chiếu hóa đơn. Loại sự kiện explicit | |||
| Đã đổi tuyến vận chuyển | Hoạt động này cho biết tuyến đường hoặc lịch trình của lô hàng đã thay đổi ngoài kế hoạch sau khi được xác nhận. Nguyên nhân có thể là sự cố, yêu cầu của khách hàng hoặc vấn đề logistics. | ||
| Vì sao điều này quan trọng Đổi tuyến thường làm tăng chi phí và gây chậm trễ. Xác định tần suất và nguyên nhân đổi tuyến giúp cải thiện độ chính xác của kế hoạch và sự ổn định trong vận hành. Lấy dữ liệu ở đâu Sự kiện này được xác định khi phát hiện thay đổi đáng kể về chặng đường, địa điểm hoặc ngày tháng trong Freight Order sau khi quá trình thực hiện đã bắt đầu. Có thể phân tích chứng từ thay đổi trong các bảng CDHDR và CDPOS để xác định sự kiện. Thu thập Phát hiện thay đổi ở các trường tuyến đường chính trong Freight Order sau sự kiện 'Shipment Confirmed by Carrier'. Loại sự kiện inferred | |||
| Đã nộp tờ khai hải quan | Với lô hàng quốc tế, hoạt động này là việc nộp chứng từ hải quan cần thiết cho cơ quan chức năng. Đây là điều kiện cần để được phép xuất khẩu hoặc nhập khẩu hàng hóa. | ||
| Vì sao điều này quan trọng Nộp tờ khai hải quan đúng hạn là điều quan trọng để tránh chậm trễ tại cửa khẩu. Theo dõi hoạt động này giúp đánh giá hiệu quả của quy trình khai thuê hải quan. Lấy dữ liệu ở đâu Sự kiện này có thể được ghi nhận dưới dạng sự kiện thực hiện cụ thể do đại lý hải quan báo cáo, hoặc qua thay đổi trạng thái trong hệ thống quản lý hải quan tích hợp như SAP GTS. Freight Order sẽ được cập nhật tương ứng. Thu thập Ghi nhận dấu thời gian của sự kiện thực hiện 'Customs Declaration Filed' hoặc thay đổi trạng thái tương ứng. Loại sự kiện explicit | |||
| Đã tạo tranh chấp cước | Sự kiện này cho biết có sai lệch giữa hóa đơn của hãng vận chuyển và chi phí được tính trong Freight Settlement Document. Việc này kích hoạt quy trình xử lý tranh chấp. | ||
| Vì sao điều này quan trọng Tranh chấp làm chậm thanh toán cho hãng vận chuyển và cần thời gian xử lý hành chính. Theo dõi hoạt động này giúp tìm nguyên nhân gốc rễ của sai lệch hóa đơn, chẳng hạn đơn giá không chính xác hoặc phụ phí. Lấy dữ liệu ở đâu Có thể xác định sự kiện này qua thay đổi trạng thái của Freight Settlement Document, khi trạng thái 'Dispute' được thiết lập. Ngoài ra, hệ thống có thể tạo một chứng từ riêng cho vụ việc tranh chấp. Thu thập Ghi nhận dấu thời gian khi trạng thái tranh chấp được thiết lập trên Freight Settlement Document. Loại sự kiện inferred | |||
| Đã thông quan | Hoạt động này cho biết cơ quan hải quan đã phê duyệt lô hàng và hàng được phép tiếp tục hành trình. Đây là một mốc quan trọng trong logistics quốc tế vì giúp loại bỏ một điểm nghẽn tiềm ẩn đáng kể. | ||
| Vì sao điều này quan trọng Thông quan thường là nguyên nhân gây chậm trễ lớn trong chuỗi cung ứng toàn cầu. Theo dõi thời gian và tỷ lệ thông quan thành công là yếu tố then chốt để rút ngắn thời gian vận chuyển quốc tế. Lấy dữ liệu ở đâu Sự kiện này được ghi nhận dưới dạng sự kiện thực hiện 'Customs Clearance', thường do đại lý hải quan hoặc nhà cung cấp dịch vụ theo dõi bên ngoài báo cáo, rồi cập nhật vào phần theo dõi thực hiện của Freight Order. Thu thập Dùng dấu thời gian của sự kiện thực hiện 'Customs Clearance' được báo cáo cho Freight Order. Loại sự kiện explicit | |||
| Đã xác minh hóa đơn | Hoạt động này cho biết hóa đơn của hãng vận chuyển đã được đối chiếu thành công với Freight Settlement Document và được duyệt thanh toán. Đây là bước cuối trước khi quy trình thanh toán bắt đầu trong hệ thống ERP. | ||
| Vì sao điều này quan trọng Hoạt động này hoàn tất việc kiểm tra và xác minh chi phí vận chuyển. Chậm trễ ở giai đoạn này có thể khiến hãng vận chuyển nhận tiền muộn, ảnh hưởng đến quan hệ hợp tác. Lấy dữ liệu ở đâu Sự kiện này được xác định qua thay đổi trạng thái của Freight Settlement Document, chẳng hạn 'Ready for Accrual' hoặc 'Transferred for Posting', cho biết chứng từ đã được gửi đến hệ thống ERP để thanh toán. Thu thập Theo dõi dấu thời gian khi trạng thái vòng đời của FSD thay đổi để cho biết chứng từ đã sẵn sàng thanh toán hoặc đã được hạch toán. Loại sự kiện inferred | |||
| Hãng vận chuyển đã xác nhận lô hàng | Sự kiện này cho biết hãng vận chuyển đồng ý thực hiện việc vận chuyển theo kế hoạch. Xác nhận thường được gửi qua thông điệp EDI, cập nhật trên cổng thông tin của hãng vận chuyển hoặc nhập thủ công, sau đó trạng thái Freight Order được cập nhật. | ||
| Vì sao điều này quan trọng Xác nhận của hãng vận chuyển thể hiện cam kết thực hiện kế hoạch, giúp giảm bất định. Nếu xác nhận đến muộn, toàn bộ lịch vận chuyển có thể bị ảnh hưởng. Lấy dữ liệu ở đâu Sự kiện này được xác định qua thay đổi trong trường trạng thái xác nhận của Freight Order hoặc Freight Booking. Một giá trị trạng thái cụ thể, chẳng hạn 'Confirmed', sẽ được thiết lập trong phần quản lý trạng thái của chứng từ. Thu thập Theo dõi thay đổi trong các trường trạng thái xác nhận của chứng từ Freight Order. Loại sự kiện inferred | |||
Hướng dẫn trích xuất dữ liệu
Các bước
- Xác định và kích hoạt API CDS View: Đăng nhập vào hệ thống SAP S/4HANA. Dùng giao dịch
/IWFND/MAINT_SERVICEđể kiểm tra các dịch vụ OData cần thiết cho những CDS view cốt lõi đã hoạt động hay chưa. Hãy kiểm tra các dịch vụ liên quan đến I_TransportationOrder, C_TranspOrdExecutionEvent, I_ForwardingOrder và I_FreightSettlementDocument. Nếu dịch vụ chưa hoạt động, hãy phối hợp với quản trị viên SAP để thêm và kích hoạt dịch vụ từ hệ thống backend. - Thiết lập kết nối API: Xin quản trị viên SAP URL gốc của các dịch vụ OData. Thiết lập ứng dụng client để kết nối API, chẳng hạn như tập lệnh Python dùng thư viện requests, công cụ ETL thương mại hoặc Postman. Bạn cần cấu hình xác thực, thường là Basic Authentication (tên người dùng và mật khẩu) hoặc OAuth 2.0 để kết nối an toàn hơn.
- Xác định phạm vi trích xuất: Chọn phạm vi dữ liệu cần trích xuất. Xác định khoảng thời gian cụ thể, chẳng hạn 6 tháng gần nhất. Chọn các đơn vị tổ chức cần lọc, như Company Code, hoặc loại chứng từ cụ thể như Freight Order Type để dữ liệu phù hợp với quy trình bạn đang phân tích.
- Tạo truy vấn dữ liệu lô hàng cơ sở: Bắt đầu bằng cách truy vấn CDS view I_TransportationOrder. View này là đối tượng trung tâm chứa dữ liệu lô hàng, còn gọi là Freight Order hoặc Freight Booking. Dùng tham số OData
$selectđể chọn các cột cần thiết, bao gồm những thuộc tính được đề xuất như CarrierName, ModeOfTransport và RequestedDeliveryDate. Dùng$filterđể giới hạn dữ liệu theo ngày và các điều kiện phạm vi khác. - Truy vấn sự kiện thực hiện và vận tải: Dùng CDS view C_TranspOrdExecutionEvent để trích xuất các sự kiện logistics quan trọng. Lọc view theo các giá trị
EventCodecụ thể tương ứng với hoạt động như 'Goods Picked Up' (DEPARTURE) và 'Goods Delivered' (ARRIVAL_AT_DESTINATION). Nối dữ liệu này với dữ liệu lô hàng cơ sở bằng TransportationOrder UUID. - Truy vấn các đối tượng nghiệp vụ liên quan: Để ghi nhận đầy đủ quy trình, bạn cần truy vấn các CDS view liên quan khác. Truy vấn I_ForwardingOrder cho hoạt động 'Transportation Request Received' và I_FreightSettlementDocument cho các hoạt động tài chính như 'Freight Settlement Created', 'Freight Dispute Created' và 'Invoice Verified'.
- Trích xuất hoạt động dựa trên trạng thái: Nhiều hoạt động không phải là sự kiện riêng biệt mà là thay đổi trạng thái trên chứng từ chính. Với các hoạt động như 'Carrier Assigned', 'Shipment Confirmed By Carrier' và 'Shipment Cancelled', hãy truy vấn view I_TransportationOrder và dùng
LastChangeDateTimegắn với trường trạng thái tương ứng làm thời điểm sự kiện. Bạn cần ánh xạ cẩn thận mã trạng thái sang hoạt động nghiệp vụ. - Gộp và chuyển đổi dữ liệu: Gộp dữ liệu trích xuất từ tất cả nguồn thành một cấu trúc nhật ký sự kiện duy nhất. Với mỗi hoạt động được trích xuất, tạo một dòng gồm các cột bắt buộc: ShipmentId, ActivityName và EventTime. Đảm bảo mọi thuộc tính được đề xuất từ truy vấn lô hàng cơ sở đều có mặt trên từng dòng của lô hàng đó. Về mặt khái niệm, bước này tương đương với thao tác SQL
UNION ALL. - Xử lý sự kiện phức tạp và bên ngoài: Dữ liệu cho các hoạt động như 'Customs Cleared' hoặc 'Payment Processed' có thể nằm trong các trường cụ thể hoặc thậm chí trong hệ thống bên ngoài. Logic truy vấn được cung cấp dùng các trường tiêu chuẩn làm dữ liệu thay thế. Bạn có thể cần điều chỉnh truy vấn để nối với CDS view chuyên về hải quan hoặc đối chiếu với dữ liệu trích xuất riêng từ ERP dựa trên số Freight Settlement Document.
- Định dạng dữ liệu cho ProcessMind: Lưu tập dữ liệu đã gộp cuối cùng thành tệp CSV. Đảm bảo tiêu đề cột đáp ứng yêu cầu tải lên, chẳng hạn ánh xạ cột
ShipmentIdsang trườngCaseIdtrong phần cài đặt công cụ. Kiểm tra để dấu thời gian dùng định dạng nhất quán, tốt nhất là UTC (YYYY-MM-DDTHH:MM:SSZ).
Cấu hình
- Các CDS View cốt lõi: Việc trích xuất chủ yếu dựa vào I_TransportationOrder (đơn vận chuyển), C_TranspOrdExecutionEvent (sự kiện thực hiện), I_ForwardingOrder (yêu cầu vận chuyển) và I_FreightSettlementDocument (quyết toán).
- Lọc theo khoảng thời gian: Bạn cần lọc ngày để kiểm soát khối lượng dữ liệu. Dùng
CreationDateTimetrong I_TransportationOrder hoặcActualBusinessDateTimetrong C_TranspOrdExecutionEvent. Với lần phân tích đầu tiên, nên chọn khoảng thời gian từ 3 đến 6 tháng. - Lọc theo loại chứng từ: Để tập trung vào phạm vi cần phân tích, hãy lọc theo loại chứng từ bằng trường
TransportationOrderType. Cách này giúp tách các tình huống logistics khác nhau, chẳng hạn như giao hàng tiêu chuẩn và điều chuyển hàng tồn kho. - Lọc theo tổ chức: Nếu phù hợp, hãy lọc theo
PurchasingOrganizationhoặc các trường cấp tổ chức khác để giới hạn dữ liệu ở một đơn vị kinh doanh hoặc khu vực cụ thể. - Phân trang API: Với tập dữ liệu lớn, hãy dùng tham số OData
$topvà$skipđể lấy dữ liệu thành các trang nhỏ hơn. Cách này giúp tránh API hết thời gian chờ và giảm mức sử dụng bộ nhớ ở phía máy khách. Kích thước trang từ 1.000 đến 5.000 dòng thường phù hợp. - Điều kiện tiên quyết: Tài khoản người dùng hoặc tài khoản dịch vụ thực hiện trích xuất cần có quyền truy cập vào các dịch vụ OData bên dưới (đối tượng phân quyền S_SERVICE) và dữ liệu nghiệp vụ trong các CDS View. Bạn cũng cần kích hoạt các dịch vụ tương ứng trong SAP Gateway (
/IWFND/MAINT_SERVICE).
Truy vấn mẫu 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' Các bước
- Xác nhận có thể truy cập chỉ đọc trực tiếp vào lược đồ SAP TM HANA thông qua ứng dụng SQL, chế độ xem cơ sở dữ liệu hoặc dịch vụ trích xuất đã được phê duyệt. Lấy chuỗi kết nối, thông tin đăng nhập, tên lược đồ và quyền cần thiết để đọc các bảng SAP TM liên quan. Không truy vấn trực tiếp môi trường production nếu chưa có phê duyệt bảo mật và thay đổi phù hợp.
- Xác nhận tên bảng và cột thực tế trong hệ thống của bạn. Truy vấn bên dưới dùng /SCMTMS/D_TORROT và /SCMTMS/D_TOSTOP làm bảng cốt lõi, nhưng dữ liệu trạng thái, đối tác, ngày, chi phí, hải quan, chứng từ và thanh toán có thể nằm trong các bảng hoặc phần mở rộng khác, tùy phiên bản và cách triển khai SAP TM. Chỉ thay các chỗ giữ chỗ đã được ghi rõ sau khi đối chiếu với danh mục hệ thống và mô hình dữ liệu.
- Xác định khoảng thời gian trích xuất bằng [Start timestamp] và [End timestamp]. Khoảng thời gian luân phiên từ ba đến sáu tháng thường phù hợp cho lần phân tích đầu tiên. Chỉ dùng khoảng dài hơn sau khi xác nhận hiệu suất truy vấn và thời gian lưu lịch sử sự kiện.
- Xác định mã trường hợp của lô hàng. Truy vấn dùng TOR_ID từ /SCMTMS/D_TORROT làm mã định danh lô hàng. Nếu cách triển khai của bạn dùng mã định danh ổn định khác, hãy thay mã trường hợp nhất quán trong mọi nhánh hoạt động và giữ mã chứng từ gốc làm thuộc tính kiểm tra bổ sung nếu có.
- Ánh xạ từng hoạt động nghiệp vụ với điều kiện nguồn cụ thể. ProcessMind đọc nguyên trạng nhật ký sự kiện, vì vậy truy vấn tạo một dòng cho mỗi hoạt động được trích xuất. Hệ thống không suy ra mốc sự kiện từ thứ tự chứng từ, dấu thời gian bị thiếu hoặc diễn tiến trạng thái.
- Xác thực ánh xạ trạng thái và dấu thời gian với nhân sự lập kế hoạch vận tải và chủ sở hữu quy trình nghiệp vụ. Đặc biệt, hãy xác nhận các giá trị thể hiện việc tạo yêu cầu, lập kế hoạch, phân công đơn vị vận chuyển, xác nhận của đơn vị vận chuyển, lấy hàng, khai báo hải quan, thông quan, đổi tuyến, giao hàng, nhận POD, quyết toán cước, tranh chấp, xác minh hóa đơn, hủy và thanh toán.
- Chạy truy vấn trong ứng dụng SQL đã được phê duyệt. Kiểm tra kết quả để đảm bảo mỗi sự kiện có một dòng, ShipmentId không rỗng, ActivityName không rỗng và EventTime hợp lệ. Kiểm tra các dòng trùng do phép nối một-nhiều và điều chỉnh ánh xạ nguồn hoặc logic tổng hợp nếu cần.
- Bổ sung các thuộc tính được khuyến nghị nếu có trường nguồn tương ứng. Truy vấn có các chỗ giữ chỗ chuyên dụng cho những trường không thể xác định tên an toàn nếu thiếu siêu dữ liệu riêng của hệ thống. Chỉ thay các chỗ giữ chỗ đó bằng cột đã xác minh hoặc chế độ xem được phê duyệt.
- Áp dụng các quy tắc chất lượng dữ liệu cuối cùng. Loại bỏ dòng không có mã trường hợp hoặc dấu thời gian sự kiện, chuẩn hóa dấu thời gian về một múi giờ, giữ dấu thời gian nguồn để kiểm tra và đảm bảo EndTime không sớm hơn EventTime. Không tạo sự kiện giả cho bản ghi nguồn bị thiếu.
- Xuất kết quả thành CSV UTF-8 hoặc định dạng bảng khác được ProcessMind hỗ trợ. Dùng chính xác tên cột bắt buộc ShipmentId, ActivityName và EventTime. Thêm EndTime cùng các thuộc tính được khuyến nghị nếu có dữ liệu. Tải tệp lên hoặc kết nối kết quả truy vấn đã được phê duyệt với ProcessMind, sau đó xác minh các trường mã trường hợp Shipment và tên hoạt động đã được ánh xạ chính xác.
Cấu hình
- Bảng nguồn cốt lõi: Dùng /SCMTMS/D_TORROT cho dữ liệu gốc của transportation order hoặc freight order, và /SCMTMS/D_TOSTOP cho dữ liệu điểm dừng và mốc. Xác minh mọi đối tượng nguồn bổ sung trong hệ thống SAP TM đích trước khi triển khai.
- Mã định danh hồ sơ: Dùng mã định danh ổn định của lô hàng hoặc freight order. Truy vấn mẫu dùng TOR_ID làm ShipmentId. Xác nhận mã này không thay đổi giữa các bước lập kế hoạch, thực hiện, quyết toán và ghi nhận thanh toán ERP.
- Ánh xạ hoạt động: Cấu hình điều kiện nguồn cụ thể cho cả 15 hoạt động bắt buộc. Mỗi hoạt động phải được ghi thành một dòng sự kiện thực tế trong nhật ký sự kiện. ProcessMind không suy ra hoạt động từ các dòng khác.
- Khoảng thời gian: Bắt đầu với dữ liệu lịch sử từ ba đến sáu tháng. Áp dụng điều kiện EventTime càng sớm càng tốt trong từng nhánh nguồn. Với các lần tải tăng dần, hãy dùng mốc kiểm soát có quản lý và thêm một khoảng chồng lấn ngắn để ghi nhận các cập nhật đến muộn.
- Bộ lọc nghiệp vụ: Cấu hình bộ lọc company code, purchasing organization, sales organization, loại chứng từ, phương thức vận tải, đơn vị vận tải, nhà máy, địa điểm và trạng thái theo cách triển khai. Dùng phần giữ chỗ như [Company code filter] nếu chưa xác minh được trường áp dụng.
- Xử lý dấu thời gian: Chuyển dấu thời gian nguồn về cùng một múi giờ. Nếu nguồn lưu ngày và giờ ở các trường riêng, hãy kết hợp chúng bằng cách chuyển đổi phù hợp với phiên bản HANA của hệ thống. Giữ dấu thời gian gốc nếu cần khả năng kiểm tra.
- Thuộc tính được đề xuất: Điền CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost và IsOnTimeDelivery từ các trường nguồn đã xác minh hoặc calculation view được phê duyệt. Để trống nếu nguồn không có giá trị đáng tin cậy.
- Hiệu năng: Giới hạn khoảng thời gian, chỉ chọn các cột cần thiết, lọc trước khi nối, tránh quét toàn bộ bảng không giới hạn và xem lại kế hoạch thực thi HANA. Với tập dữ liệu lớn, hãy dùng điều kiện lọc phù hợp với phân vùng, trích xuất tăng dần, bảng trung gian hoặc calculation view đã được phê duyệt.
- Kiểm soát dòng trùng: Phép nối một-nhiều có thể tạo nhiều dòng cho cùng một hoạt động. Dùng khóa sự kiện đã xác minh, khóa chứng từ nguồn hoặc quy tắc tổng hợp xác định. Không loại trùng tùy tiện vì có thể xóa các sự kiện lặp lại hợp lệ.
- Điều kiện tiên quyết: Cần có quyền truy cập cơ sở dữ liệu, dữ liệu SAP TM và dữ liệu ERP hoặc quyết toán được kết nối, công cụ trích xuất đã được phê duyệt, đồng thời xác nhận các mô-đun SAP TM, tích hợp và phần tùy chỉnh liên quan đang hoạt động.
- Ánh xạ riêng theo hệ thống: Mã trạng thái, vai trò đối tác, mốc hải quan, trạng thái quyết toán, trạng thái hóa đơn và trạng thái thanh toán thay đổi theo phiên bản và cấu hình. Lưu các ánh xạ trong tài liệu cấu hình có kiểm soát và kiểm thử lại sau khi nâng cấp.
Truy vấn mẫu 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; Các bước
- Xác định yêu cầu dữ liệu: Trước tiên, xác nhận logic chính xác cho từng hoạt động trong số 15 hoạt động bắt buộc và tất cả thuộc tính. Bạn cần ánh xạ từng hoạt động với thay đổi trạng thái, sự kiện tạo hoặc liên kết chứng từ cụ thể trong hệ thống SAP TM. Ví dụ, xác định chính xác trạng thái thực hiện nào thể hiện 'Goods Picked Up'.
- Truy cập môi trường phát triển ABAP: Đăng nhập SAP GUI và mở ABAP Editor bằng mã giao dịch
SE38. Nhập tên cho chương trình mới, chẳng hạnZTM_PROCESS_EXTRACT, rồi nhấp 'Create'. Nhập tiêu đề và đặt loại chương trình là 'Executable Program'. - Tạo màn hình chọn dữ liệu: Trong chương trình, xác định màn hình chọn dữ liệu mà người dùng sẽ thấy. Màn hình nên có các tham số lọc dữ liệu, chẳng hạn khoảng ngày tạo freight order (
SO_CREDT), cùng các tùy chọn chọn loại chứng từ (SO_TYPE) hoặc đơn vị vận tải (SO_CARR). - Xác định cấu trúc đầu ra: Tạo cấu trúc bảng nội bộ khớp với định dạng nhật ký sự kiện bắt buộc. Cấu trúc cần có các trường
ShipmentId,ActivityName,EventTime,EndTime,CarrierName,RequestedDeliveryDate,ModeOfTransport,TotalFreightCostvàIsOnTimeDelivery. - Triển khai logic chọn dữ liệu: Viết logic ABAP chính để chọn dữ liệu cho từng hoạt động trong số 15 hoạt động. Thông thường, bước này cần truy vấn nhiều bảng SAP TM. Trước tiên, chọn các chứng từ lô hàng chính, chẳng hạn Freight Order, trong khoảng thời gian đã chỉ định.
- Trích xuất sự kiện lập kế hoạch và thực hiện: Với mỗi chứng từ lô hàng được chọn, chẳng hạn Freight Order, hãy truy vấn các bảng và đối tượng nghiệp vụ liên quan để tìm dấu thời gian của từng sự kiện. Dùng bảng
/SCMTMS/D_TORROTđể lấy thời điểm tạo Freight Order ('Shipment Planned'), chỉ định đơn vị vận tải ('Carrier Assigned') và thay đổi trạng thái thực hiện tương ứng với 'Goods Picked Up' và 'Goods Delivered'. Việc tạo Forwarding Order trước đó (/SCMTMS/D_TRQROT) có thể thể hiện hoạt động 'Transportation Request Received'. - Trích xuất xác nhận của đơn vị vận tải và sự kiện đổi tuyến: Truy vấn bảng trạng thái hoặc chứng từ thay đổi (CDHDR/CDPOS) liên kết với Freight Order để xác định thời điểm trạng thái
CONFIRMATIONđược thiết lập, tương ứng với 'Shipment Confirmed By Carrier'. Tương tự, tìm các thay đổi đáng kể trong thông tin tuyến đường để ghi nhận 'Shipment Rerouted'. - Trích xuất sự kiện hải quan: Nếu dùng SAP Global Trade Services (GTS) hoặc mô-đun tương tự, các sự kiện hải quan ('Customs Declaration Filed', 'Customs Cleared') thường được theo dõi qua chứng từ liên kết. Logic cần đọc luồng chứng từ (
/SCMTMS/D_TORDOC) của Freight Order để tìm chứng từ liên quan và thời điểm tạo hoặc đổi trạng thái của chúng. - Trích xuất sự kiện quyết toán và tranh chấp: Truy vấn bảng tiêu đề Freight Settlement Document (
/SCMTMS/D_SFIRHD) cùng các mục và trạng thái liên quan để ghi nhận sự kiện 'Freight Settlement Created', 'Freight Dispute Created' và 'Invoice Verified'. Liên kết các sự kiện này vềShipmentIdban đầu. - Gộp dữ liệu: Với mỗi sự kiện tìm được, tạo một bản ghi trong bảng nội bộ cuối cùng. Điền hoạt động tương ứng vào
ActivityName, dấu thời gian sự kiện vàoEventTimevà mã Freight Order hoặc Freight Booking vàoShipmentId. Lấy các thuộc tính khác từ chứng từ nguồn. - Định dạng và xuất tệp: Sau khi điền đầy đủ bảng nội bộ cuối cùng, định dạng dữ liệu thành tệp phẳng. Dùng các lệnh
OPEN DATASET,LOOP AT... TRANSFER...vàCLOSE DATASETđể ghi nội dung bảng nội bộ vào tệp CSV hoặc TXT trên máy chủ ứng dụng SAP, có thể truy cập qua giao dịch AL11. - Lên lịch và lấy tệp: Có thể lên lịch chạy chương trình ABAP dưới dạng tác vụ nền bằng giao dịch SM36 để tự động trích xuất dữ liệu. Sau đó, tải tệp được tạo từ máy chủ ứng dụng về máy tính bằng giao dịch
CG3Yđể tải lên ProcessMind.
Cấu hình
- Khoảng thời gian: Màn hình chọn dữ liệu cần có khoảng ngày bắt buộc cho ngày tạo chứng từ vận tải cốt lõi, chẳng hạn Freight Order. Với lần phân tích đầu tiên, nên chọn khoảng thời gian từ 3 đến 6 tháng để có tập dữ liệu đại diện mà không làm thời gian chạy quá lâu.
- Bộ lọc loại chứng từ: Cung cấp bộ lọc Transportation Document Type, chẳng hạn Freight Order hoặc Freight Booking. Bộ lọc này rất quan trọng để tập trung phân tích vào các quy trình cụ thể như vận tải đường bộ hoặc đường biển.
- Bộ lọc đơn vị vận tải: Cho phép người dùng lọc theo từng đơn vị vận tải. Nhờ đó, bạn có thể phân tích hiệu quả của từng đối tác logistics.
- Bộ lọc tổ chức: Thêm bộ lọc cho các đơn vị tổ chức liên quan, chẳng hạn Purchasing Organization hoặc Company Code, để giới hạn dữ liệu trong các mảng kinh doanh cụ thể.
- Tối ưu hiệu năng: Với tập dữ liệu lớn, hãy đảm bảo mã ABAP dùng các trường cơ sở dữ liệu có chỉ mục trong mệnh đề
WHERE, tránh vòng lặp lồng nhau nếu có thể và chỉ chọn các trường cần thiết để giảm mức sử dụng bộ nhớ. - Điều kiện tiên quyết: Người chạy báo cáo cần có quyền thực thi chương trình ABAP. Nhà phát triển cần quyền
S_DEVELOP. Bản thân chương trình cần quyền truy cập hệ thống tệp trên máy chủ ứng dụng (đối tượngS_DATASET) và quyền truy cập các bảng cơ sở dữ liệu TM cùng đối tượng BOPF liên quan.
Truy vấn mẫu 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. Bạn đã sẵn sàng bắt đầu?
Dùng mẫu này để bắt đầu cải tiến quy trình vận tải và giao hàng nhanh hơn với chi phí thấp hơn. Khám phá thông tin chuyên sâu ngay hôm nay!
Xử lý điểm nghẽn trong quản lý vận tải ngay hôm nay
Xác định điểm kém hiệu quả, tối ưu hóa tuyến đường và rút ngắn 30% thời gian chu kỳ.
Không cần thẻ tín dụng. Thiết lập chỉ trong vài phút.