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
Thuộc tính quản lý vận tải
| Tên | Mô tả | ||
|---|---|---|---|
| Chuyến hàng ShipmentId | Mã định danh duy nhất của một chuyến hàng, dùng làm mã hồ sơ chính để theo dõi mọi hoạt động vận tải liên quan. | ||
| Mô tả Shipment ID xác định duy nhất một lượt vận chuyển hàng hóa từ người gửi đến người nhận. Thuộc tính này là nền tảng của phân tích quy trình, giúp nhóm mọi sự kiện liên quan như lập kế hoạch, đặt chỗ, lấy hàng, vận chuyển, giao hàng và lập hóa đơn vào cùng một hồ sơ. Trong process mining, phân tích sự kiện theo Shipment ID giúp bạn theo dõi toàn bộ vòng đời vận tải từ đầu đến cuối cho từng chuyến hàng. Mã này được dùng để tính các chỉ số quan trọng như tổng thời gian xử lý, tỷ lệ giao hàng đúng hạn và chi phí mỗi chuyến hàng, qua đó giúp hiểu rõ hiệu quả quy trình và chất lượng dịch vụ khách hàng. Vì sao điều này quan trọng Đây là Case ID thiết yếu, kết nối mọi bước trong quy trình để phân tích toàn bộ hành trình vận tải của từng chuyến hàng. Lấy dữ liệu ở đâu Đây thường là khóa chính trong Oracle Transportation Management, có trong các bảng quản lý chuyến hàng hoặc đơn hàng. Tham khảo tài liệu OTM để biết tên bảng và trường cụ thể. Ví dụ SH-0012345SH-0012346SH-0012347 | |||
| Tên hoạt động ActivityName | Tên của một sự kiện hoặc cột mốc cụ thể trong quy trình vận tải của chuyến hàng. | ||
| Mô tả Thuộc tính này mô tả một bước trong vòng đời vận tải, chẳng hạn như 'Đã lập kế hoạch cho chuyến hàng', 'Đã lấy hàng' hoặc 'Đã giao hàng'. Mỗi hoạt động là một sự kiện kinh doanh riêng, đưa chuyến hàng đến gần hơn với bước hoàn tất. Phân tích thứ tự và thời lượng của các hoạt động là trọng tâm của process mining. Việc này giúp khám phá luồng quy trình thực tế, xác định điểm nghẽn giữa các bước và đo mức độ tuân thủ quy trình vận hành tiêu chuẩn. Những khác biệt trong luồng hoạt động có thể cho thấy ngoại lệ, công việc phải làm lại hoặc sai lệch so với lộ trình tối ưu. Vì sao điều này quan trọng Thuộc tính này xác định các bước trong sơ đồ quy trình, giúp trực quan hóa và phân tích hành trình của chuyến hàng, các điểm nghẽn và sai lệch. Lấy dữ liệu ở đâu Thông tin này được lấy từ các bảng theo dõi sự kiện hoặc nhật ký thay đổi trạng thái trong Oracle Transportation Management. Tên hoạt động cụ thể có thể được ghép từ mã sự kiện và nội dung mô tả. Ví dụ Đã lập kế hoạch cho chuyến hàngĐã lấy hàngĐã thông quanĐã giao hàng | |||
| Thời điểm sự kiện EventTime | Ngày giờ chính xác khi một hoạt động hoặc sự kiện vận tải cụ thể diễn ra. | ||
| Mô tả Dấu thời gian này ghi lại chính xác thời điểm một hoạt động như 'Đã chỉ định hãng vận chuyển' hoặc 'Đã nhận xác nhận giao hàng' được lưu trong hệ thống. Dấu thời gian là dữ liệu nền tảng cho process mining vì chúng xác định thứ tự thời gian của các sự kiện trong từng chuyến hàng. Độ chính xác của dấu thời gian rất quan trọng đối với mọi phân tích dựa trên thời gian. Dữ liệu này được dùng để tính thời gian giữa các hoạt động, đo thời lượng quy trình, xác định chậm trễ và đánh giá hiệu suất theo thỏa thuận mức dịch vụ. Phân tích thời điểm sự kiện giúp xác định khâu đang làm mất thời gian. Vì sao điều này quan trọng Dấu thời gian này 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 xử lý và độ trễ. Lấy dữ liệu ở đâu Lấy từ các trường dấu thời gian gắn với sự kiện trong bảng theo dõi sự kiện hoặc lịch sử trạng thái của OTM. Ví dụ 2023-10-26T08:00:00Z2023-10-27T14:30:00Z2023-10-28T09:15:00Z | |||
| Chi phí chuyến hàng ShipmentCost | Tổng chi phí vận tải hoặc số tiền phải trả để vận chuyển chuyến hàng. | ||
| Mô tả Thuộc tính này thể hiện tổng chi phí tài chính của một chuyến hàng, gồm phí hãng vận chuyển, phụ phí nhiên liệu và các khoản phí dịch vụ khác. Đây là chỉ số quan trọng để đánh giá hiệu quả tài chính của quy trình vận tải. Phân tích chi phí chuyến hàng giúp tính KPI chi phí trung bình mỗi chuyến theo hãng vận chuyển. Bạn có thể phân nhóm theo hãng vận chuyển, tuyến đường, phương thức vận tải hoặc loại chuyến hàng để tìm cơ hội tiết kiệm. Thuộc tính này cũng được dùng trong phân tích sai lệch hóa đơn vận tải để so sánh chi phí dự kiến với chi phí thực tế. Vì sao điều này quan trọng Cung cấp dữ liệu tài chính để phân tích chi tiêu vận tải, tìm cơ hội tiết kiệm và đo ảnh hưởng tài chính của những điểm chưa hiệu quả trong quy trình. Lấy dữ liệu ở đâu Thông tin này thường có trong phần tài chính hoặc tính chi phí của chuyến hàng trong OTM, thường được điền sau khi tính cước và quyết toán. Ví dụ 250.751200.00545.50 | |||
| Ngày giao hàng yêu cầu RequestedDeliveryDate | Ngày giờ giao hàng khách yêu cầu hoặc ngày giờ được thống nhất làm mục tiêu trong thỏa thuận mức dịch vụ (SLA). | ||
| Mô tả Thuộc tính này ghi nhận thời điểm mục tiêu cần giao chuyến hàng. Đây là cam kết với khách hàng và là mốc chính để đo hiệu suất giao hàng đúng hạn. Trong process mining, ngày này được so sánh với thời điểm giao hàng thực tế (từ hoạt động 'Đã giao hàng') để xác định chuyến hàng đúng hạn hay trễ. Đây là cơ sở để tính KPI tỷ lệ giao hàng đúng hạn và rất cần thiết cho dashboard Tổng quan hiệu suất giao hàng. Phân tích sai lệch giúp xác định nguyên nhân chậm trễ có tính hệ thống và cải thiện mức độ hài lòng của khách hàng. Vì sao điều này quan trọng Đây là mốc chính để đo hiệu suất 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 Thông tin này thường được lưu ở cấp đơn hàng hoặc chuyến hàng trong OTM, thường trong các trường liên quan đến ngày giao hàng hoặc lịch hẹn. Ví dụ 2023-11-15T17:00:00Z2023-11-20T12:00:00Z2023-11-22T09:00:00Z | |||
| Nguyên nhân chậm trễ DelayReason | Mã hoặc nội dung mô tả nguyên nhân khiến chuyến hàng bị chậm trễ. | ||
| Mô tả Khi chuyến hàng bị chậm, thuộc tính này cho biết nguyên nhân, chẳng hạn như 'Thời tiết', 'Hải quan giữ hàng', 'Cảng ùn tắc' hoặc 'Sự cố kỹ thuật'. Thông tin được lấy từ cập nhật của hãng vận chuyển hoặc do người dùng nhập trong OTM. Thuộc tính này rất cần thiết để tìm nguyên nhân gốc rễ của việc giao hàng trễ. Bằng cách phân loại và đếm các nguyên nhân chậm trễ, doanh nghiệp có thể xác định những vấn đề thường gặp nhất trong chuỗi cung ứng. Từ đó, doanh nghiệp có thể cải tiến đúng trọng tâm, chẳng hạn như chọn hãng vận chuyển đáng tin cậy hơn cho một số tuyến hoặc cải thiện chứng từ để đẩy nhanh thông quan. Vì sao điều này quan trọng Giúp xác định nguyên nhân gốc rễ khiến chuyến hàng bị trễ, từ đó có thể xử lý đúng trọng tâm các vấn đề thường gặp và cải thiện hiệu suất giao hàng đúng hạn. Lấy dữ liệu ở đâu Thông tin này thường được ghi trong chi tiết sự kiện theo dõi của OTM. Thuộc tính có thể gắn với mã sự kiện ngoại lệ hoặc chậm trễ cụ thể. Ví dụ WEATHER_DELAYCUSTOMS_INSPECTIONPORT_CONGESTIONTRAFFIC | |||
| Phương thức vận tải TransportationMode | Phương tiện vận chuyển chuyến hàng, chẳng hạn như xe tải, đường sắt, đường biển hoặc đường hàng không. | ||
| Mô tả Thuộc tính này phân loại chuyến hàng theo phương thức vận tải. Các phương thức phổ biến gồm nguyên chuyến xe tải (FTL), hàng lẻ (LTL), đường biển, đường hàng không và đường sắt. Đây là đặc điểm cơ bản của chuyến hàng, ảnh hưởng đến chi phí, thời gian vận chuyển và độ phức tạp. Trong phân tích, phương thức vận tải là một chiều phân nhóm quan trọng. Thuộc tính này giúp so sánh hiệu suất quy trình và chi phí giữa các phương thức. Ví dụ, bạn có thể xác định phương thức nào thường gặp chậm trễ trên đường hoặc có chi phí mỗi dặm cao hơn, từ đó hỗ trợ quyết định chiến lược về mạng lưới logistics. Vì sao điều này quan trọng Cho phép phân tích hiệu suất và chi phí theo phương thức vận tải, qua đó làm rõ đặc điểm của vận tải đường bộ, đường hàng không, đường biển hoặc đường sắt. Lấy dữ liệu ở đâu Đây là thuộc tính tiêu chuẩn ở cấp chuyến hàng trong OTM, thường nằm trong trường riêng về 'mode' hoặc 'transport type'. Ví dụ FTLLTLĐƯỜNG BIỂNAIR | |||
| Tên hãng vận chuyển CarrierName | Tên hãng vận chuyển hoặc nhà cung cấp dịch vụ chịu trách nhiệm vận chuyển chuyến hàng. | ||
| Mô tả Thuộc tính này xác định đối tác logistics được giao vận chuyển hàng hóa. Ví dụ gồm các công ty vận tải hàng hóa lớn, đơn vị chuyển phát địa phương hoặc hãng tàu biển. Phân tích hiệu suất theo hãng vận chuyển là mục tiêu chính của process mining trong vận tải. Thuộc tính này giúp phân nhóm chuyến hàng để so sánh các hãng theo chỉ số như tỷ lệ giao hàng đúng hạn, chi phí mỗi chuyến, thời gian vận chuyển và tần suất xảy ra vấn đề như chậm trễ hoặc sai lệch hóa đơn. Những thông tin này rất hữu ích khi chọn hãng vận chuyển, đàm phán hợp đồng và quản lý hiệu suất. Vì sao điều này quan trọng Cho phép so sánh hiệu suất giữa các hãng vận chuyển, hỗ trợ tối ưu việc lựa chọn, đàm phán và giảm chi phí. Lấy dữ liệu ở đâu Có trong thông tin chi tiết chuyến hàng của OTM, liên kết với hồ sơ hãng vận chuyển hoặc nhà cung cấp dịch vụ được chỉ định. Dữ liệu có thể được lưu trong các bảng liên quan đến chuyến hàng và nhà cung cấp dịch vụ. Ví dụ FedEx FreightUPS Supply Chain SolutionsMaersk LineKnight-Swift Transportation | |||
| Đã đổi tuyến IsRerouted | Cờ cho biết tuyến đường của lô hàng có thay đổi sau khi đặt chỗ ban đầu hay không. | ||
| Mô tả Cờ dạng đúng/sai này được đặt thành “true” nếu lô hàng bị đổi tuyến đáng kể sau khi đã được lên kế hoạch và đặt chỗ. Việc này có thể do khách hàng yêu cầu, sự cố bất ngờ hoặc cơ hội tối ưu hóa. Thuộc tính này hỗ trợ trực tiếp KPI Tỷ lệ đổi tuyến lô hàng và dashboard Thông tin về đổi tuyến và giao nhanh. Theo dõi tần suất đổi tuyến giúp phát hiện vấn đề tiềm ẩn trong khâu lập kế hoạch hoặc thực hiện. Qua đó, bạn có thể nhận diện sự bất ổn trong vận hành và chi phí liên quan, rồi tìm cách hạn chế những thay đổi tốn kém và gây gián đoạn. Vì sao điều này quan trọng Giúp định lượng tần suất và tác động của các ngoại lệ trong vận hành như đổi tuyến, qua đó làm rõ những điểm chưa hiệu quả trong khâu lập kế hoạch và thực hiện. Lấy dữ liệu ở đâu Cờ này được xác định bằng cách phát hiện các sự kiện đổi tuyến cụ thể trong nhật ký sự kiện hoặc so sánh tuyến cuối cùng với tuyến đã lên kế hoạch ban đầu. Ví dụ truefalse | |||
| Đại lý hải quan CustomsAgent | Nhà môi giới hoặc đại lý hải quan chịu trách nhiệm làm thủ tục thông quan cho lô hàng. | ||
| Mô tả Với các lô hàng quốc tế, thuộc tính này xác định đại lý bên thứ ba hoặc nhóm nội bộ phụ trách chứng từ và thủ tục hải quan. Hiệu suất của đại lý có thể ảnh hưởng đáng kể đến tổng thời gian vận chuyển. Phân tích Thời gian thông quan theo đại lý hải quan giúp bạn so sánh hiệu suất giữa các đại lý. Bạn có thể xác định đại lý nào xử lý hiệu quả nhất tại từng quốc gia hoặc với từng loại hàng hóa. Thông tin này hữu ích khi chọn đối tác hải quan phù hợp và phối hợp với các đại lý có hiệu suất thấp để cải thiện quy trình. Vì sao điều này quan trọng Giúp đo lường hiệu suất của các nhà môi giới hải quan, xác định đối tác xử lý hiệu quả nhất và giảm chậm trễ liên quan đến hải quan. Lấy dữ liệu ở đâu Thông tin này có thể được lưu dưới dạng nhà cung cấp dịch vụ hoặc vai trò đối tác trong chi tiết lô hàng quốc tế của OTM. Ví dụ Global Customs ServicesLivingston InternationalFlexport | |||
| Giao hàng đúng hạn IsOnTimeDelivery | Cờ được tính toán để cho biết lô hàng được giao vào hoặc trước ngày giao hàng yêu cầu. | ||
| Mô tả Thuộc tính dạng đúng/sai này được tính bằng cách so sánh dấu thời gian của hoạt động “Đã giao hàng” với “Ngày giao hàng yêu cầu”. Giá trị là “true” nếu hàng được giao đúng hạn hoặc sớm hơn, và “false” nếu giao trễ. Thuộc tính này trực tiếp dùng để tính KPI Tỷ lệ giao hàng đúng hạn và là thành phần chính của dashboard Tổng quan hiệu suất giao hàng. Thuộc tính cung cấp kết quả rõ ràng, đúng hoặc sai cho từng lô hàng, giúp bạn dễ lọc, tổng hợp và trực quan hóa các lô hàng giao đúng hạn hoặc trễ. Vì sao điều này quan trọng Cờ được tính toán này giúp đo lường KPI Giao hàng đúng hạn và dễ dàng lọc, phân tích các lô hàng giao đúng hạn hoặc trễ. Lấy dữ liệu ở đâu Thuộc tính này không có trong hệ thống nguồn. Thuộc tính được tính khi chuyển đổi dữ liệu bằng cách so sánh dấu thời gian của hoạt động “Đã giao hàng” với thuộc tính “RequestedDeliveryDate”. Ví dụ truefalse | |||
| Hệ thống nguồn SourceSystem | Xác định hệ thống tạo ra dữ liệu sự kiện, chẳng hạn như Oracle Transportation Management. | ||
| Mô tả Thuộc tính này cho biết ứng dụng nguồn tạo ra dữ liệu. Trong môi trường logistics phức tạp, dữ liệu có thể đến từ OTM, hệ thống quản lý kho (WMS), hệ thống của hãng vận chuyển qua EDI hoặc các nền tảng tích hợp khác. Hiểu rõ hệ thống nguồn rất quan trọng đối với quản trị và đánh giá chất lượng dữ liệu, cũng như xử lý sự cố. Thông tin này giúp bạn hiểu bối cảnh dữ liệu và lý giải khác biệt về mức độ chi tiết hoặc thời điểm cập nhật. Khi phân tích, bạn có thể lọc để chỉ xem sự kiện từ một hệ thống đáng tin cậy cụ thể. Vì sao điều này quan trọng Thuộc tính này cung cấp thông tin quan trọng về nguồn gốc dữ liệu, cần thiết để xác thực dữ liệu và phân tích trong môi trường có nhiều hệ thống. Lấy dữ liệu ở đâu Đây thường là giá trị cố định được thêm trong quá trình trích xuất dữ liệu để ghi nhãn nguồn gốc của bản ghi. Ví dụ Oracle OTMOTM CloudSAP TM | |||
| Lần cập nhật dữ liệu gần nhất LastDataUpdate | Dấu thời gian cho biết lần gần nhất dữ liệu của sự kiện này được làm mới hoặc trích xuất từ hệ thống nguồn. | ||
| Mô tả Thuộc tính này ghi lại thời điểm dữ liệu được lấy gần nhất từ Oracle Transportation Management. Nó cho biết dữ liệu đang phân tích mới đến đâu, không phải thời điểm sự kiện kinh doanh diễn ra. Dấu thời gian này rất quan trọng để hiểu dữ liệu phân tích process mining được cập nhật kịp thời đến mức nào. Thuộc tính giúp người dùng biết họ đang xem thông tin gần thời gian thực hay ảnh chụp dữ liệu tại một thời điểm cụ thể. Đây cũng là thông tin cần thiết để quản lý chu kỳ làm mới dữ liệu và đảm bảo quyết định dựa trên thông tin hiện hành. Vì sao điều này quan trọng Cho biết dữ liệu mới đến đâu, giúp người dùng biết phân tích đang phản ánh tình hình hiện tại như thế nào và khi nào dữ liệu sẽ được làm mới tiếp theo. Lấy dữ liệu ở đâu Đây thường là dấu thời gian do hệ thống tự tạo trong quá trình nạp dữ liệu hoặc ETL. Ví dụ 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| Loại chuyến hàng ShipmentType | Phân loại chuyến hàng, chẳng hạn theo cấp độ dịch vụ, loại hàng hóa hoặc đơn vị kinh doanh. | ||
| Mô tả Thuộc tính này phân loại lô hàng theo nhu cầu kinh doanh, chẳng hạn như “Tiêu chuẩn”, “Giao nhanh”, “Hàng nguy hiểm” hoặc “Liên công ty”. Phân loại này giúp áp dụng các quy tắc, mức độ ưu tiên hoặc góc nhìn phân tích khác nhau. Khi dùng Loại lô hàng làm chiều phân tích trong process mining, bạn có thể so sánh quy trình giữa các loại lô hàng. Qua đó, bạn có thể biết loại nào thường bị chậm trễ hơn, tốn kém hơn hoặc đi theo luồng quy trình khác chuẩn. Những thông tin này giúp điều chỉnh quy trình để đáp ứng tốt hơn nhu cầu của từng loại lô hàng. Vì sao điều này quan trọng Cho phép phân tích theo từng bối cảnh kinh doanh, giúp bạn xác định các loại lô hàng có đi theo quy trình khác nhau hoặc đạt hiệu suất khác nhau hay không. Lấy dữ liệu ở đâu Đây thường là trường hoặc thuộc tính có thể cấu hình trên bản ghi lô hàng hoặc đơn hàng trong OTM. Ví dụ Tiêu chuẩnGiao nhanhQuốc tếNội địa | |||
| Quốc gia điểm đến DestinationCountry | Quốc gia dự kiến giao chuyến hàng. | ||
| Mô tả Thuộc tính này cho biết quốc gia đích cuối cùng của chuyến hàng, dựa trên địa điểm của người nhận. Thuộc tính này bổ sung cho quốc gia xuất phát trong phân tích quy trình theo khu vực địa lý. Tương tự quốc gia xuất phát, phân tích theo quốc gia điểm đến rất quan trọng để hiểu khác biệt về hiệu suất giữa các tuyến thương mại. Thuộc tính này đặc biệt hữu ích khi phân tích thời gian thông quan, hiệu suất giao hàng chặng cuối và hiệu quả của hãng vận chuyển theo từng khu vực. Nhờ đó, doanh nghiệp có thể điều chỉnh chiến lược logistics phù hợp với yêu cầu của từng thị trường đích. Vì sao điều này quan trọng Rất cần thiết để phân tích hiệu suất trên từng tuyến thương mại và hiểu các vấn đề về hải quan, hãng vận chuyển và quy định tại thị trường đích. Lấy dữ liệu ở đâu Được lấy từ thông tin địa chỉ của địa điểm đích hoặc người nhận chuyến hàng, lưu trong dữ liệu danh mục địa điểm của OTM. Ví dụ CANFRAJPNBRA | |||
| Quốc gia xuất phát OriginCountry | Quốc gia nơi chuyến hàng bắt đầu hành trình. | ||
| Mô tả Thuộc tính này cho biết quốc gia xuất phát của chuyến hàng, dựa trên địa điểm của người gửi. Đây là thông tin địa lý quan trọng cho phân tích vận tải. Phân tích quy trình theo quốc gia xuất phát giúp hiểu rõ khác biệt về hiệu suất giữa các khu vực. Ví dụ, thời gian thông quan, chi phí hãng vận chuyển và thời gian vận chuyển có thể khác nhau đáng kể tùy theo quốc gia xuất phát. Cách phân nhóm này rất quan trọng để quản lý vận tải quốc tế và xác định điểm nghẽn theo từng khu vực. Vì sao điều này quan trọng Hỗ trợ phân tích quy trình vận tải theo khu vực địa lý, giúp xác định điểm nghẽn, chi phí và khác biệt về hiệu suất ở từng khu vực. Lấy dữ liệu ở đâu Được lấy từ thông tin địa chỉ của địa điểm xuất phát hoặc người gửi chuyến hàng, lưu trong dữ liệu danh mục địa điểm của OTM. Ví dụ USADEUCHNMEX | |||
| Sai lệch hóa đơn vận tải FreightBillDiscrepancy | Cờ cho biết có phát hiện sai lệch khi kiểm tra hóa đơn vận tải hay không. | ||
| Mô tả Thuộc tính dạng đúng/sai này được đặt thành “true” nếu hóa đơn vận tải nhận từ đơn vị vận chuyển không khớp với chi phí dự kiến tính trong OTM. Sai lệch có thể do áp dụng sai mức giá, phí phụ thu hoặc lỗi thanh toán khác. Thuộc tính này là cơ sở để tính KPI Tỷ lệ sai lệch hóa đơn vận tải. Phân tích tần suất xuất hiện cờ sai lệch theo đơn vị vận chuyển, tuyến đường hoặc loại lô hàng giúp tìm ra nguyên nhân gốc rễ của lỗi thanh toán. Từ đó, bạn có thể cải thiện độ chính xác của dữ liệu, đơn giản hóa khâu kiểm tra và ngăn thanh toán thừa. Vì sao điều này quan trọng Đánh dấu các lô hàng có lỗi thanh toán để hỗ trợ trực tiếp việc phân tích sai lệch hóa đơn vận tải, giảm thanh toán thừa và tăng cường kiểm soát tài chính. Lấy dữ liệu ở đâu Đây thường là trạng thái hoặc cờ được thiết lập trong quá trình quyết toán vận tải và đối chiếu hóa đơn trong OTM. Ví dụ truefalse | |||
| Tên người dùng UserName | Tên hoặc mã người dùng đã thực hiện hay chịu trách nhiệm cho một hoạt động cụ thể. | ||
| Mô tả Thuộc tính này xác định người dùng hoặc tác nhân hệ thống đã thực hiện một sự kiện cụ thể, chẳng hạn như “Lập kế hoạch lô hàng” hoặc “Chỉ định đơn vị vận chuyển”. Thông tin này giúp xác định trách nhiệm và cho biết tài nguyên nào tham gia vào quy trình. Trong process mining, phân tích hoạt động theo người dùng giúp bạn 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à so sánh hiệu suất giữa người dùng hoặc nhóm. Bạn cũng có thể phân biệt hoạt động do người dùng thực hiện với hoạt động do hệ thống tự động xử lý. Vì sao điều này quan trọng Giúp xác định trách nhiệm và phân tích khối lượng công việc, hiệu suất theo từng người dùng hoặc nhóm. Lấy dữ liệu ở đâu Lấy từ các trường mã người dùng, chẳng hạn như INSERT_USER, gắn với thay đổi trạng thái hoặc sự kiện trong bảng lịch sử hay nhật ký của OTM. Ví dụ JSMITHLOGISTICS_PLANNER_ASYSTEM_AUTO | |||
| Trạng thái chuyến hàng ShipmentStatus | Trạng thái hiện tại của chuyến hàng trong vòng đời, chẳng hạn như 'Đã lập kế hoạch', 'Đang vận chuyển' hoặc 'Đã giao hàng'. | ||
| Mô tả Thuộc tính này tóm tắt tiến độ của chuyến hàng trong toàn bộ quy trình. Khác với hoạt động, vốn là sự kiện diễn ra tại một thời điểm, trạng thái thể hiện tình trạng của hồ sơ chuyến hàng. Process mining tập trung vào luồng hoạt động, còn trạng thái tổng thể hữu ích khi lọc hồ sơ và cung cấp bối cảnh cho dashboard. Ví dụ, bạn có thể chỉ phân tích các chuyến hàng 'Đã hoàn tất' hoặc tìm hiểu vì sao nhiều chuyến hàng bị kẹt ở trạng thái 'Đang vận chuyển' lâu bất thường. Vì sao điều này quan trọng Tóm tắt tiến độ chuyến hàng, hữu ích khi lọc và phân nhóm hồ sơ trong quá trình phân tích. Lấy dữ liệu ở đâu Có trong bản ghi chính của chuyến hàng trên OTM, thể hiện trạng thái hiện tại của chuyến hàng trong quy trình làm việc. Ví dụ ĐÃ LẬP KẾ HOẠCHĐÃ ĐẶT CHỖĐANG VẬN CHUYỂNĐÃ GIAO HÀNG | |||
Hoạt động quản lý vận tải
| Hoạt động | Mô tả | ||
|---|---|---|---|
| Đã giao hàng | Hoạt động này thể hiện chuyến hàng đã được giao thành công đến người nhận tại điểm đích cuối cùng. Sự kiện được ghi lại khi điểm dừng cuối cùng của chuyến hàng có thời gian đến thực tế. | ||
| Vì sao điều này quan trọng Đây là cột mốc chính để đo hiệu suất giao hàng đúng hạn và tổng thời gian xử lý từ đầu đến cuối. Hoạt động này khép lại quy trình vận tải. Lấy dữ liệu ở đâu Suy ra từ thời điểm trường ACTUAL_ARRIVAL được điền trong bản ghi điểm dừng cuối cùng thuộc bảng SHIPMENT_STOP của chuyến hàng. Thu thập Dùng dấu thời gian ACTUAL_ARRIVAL từ bản ghi cuối cùng trong bảng SHIPMENT_STOP của chuyến hàng. Loại sự kiện inferred | |||
| Đã lập kế hoạch cho chuyến hàng | Hoạt động này thể hiện việc công cụ lập kế hoạch OTM đã lập kế hoạch thành công cho một hoặc nhiều Order Release thành một chuyến hàng khả thi. Sự kiện được ghi lại khi hệ thống đổi trạng thái chuyến hàng để cho biết đã lập kế hoạch, chẳng hạn 'PLANNING_PLANNED FINAL'. | ||
| Vì sao điều này quan trọng Đây là cột mốc quan trọng, đánh dấu chuyển tiếp từ giai đoạn phát sinh nhu cầu sang giai đoạn thực hiện. Phân tích thời gian trước hoạt động này giúp đánh giá hiệu quả lập kế hoạch và xác định điểm nghẽn về hiệu suất của công cụ. Lấy dữ liệu ở đâu Suy ra từ lịch sử trạng thái của đối tượng Shipment trong bảng SHIPMENT. Tìm thay đổi sang trạng thái cho biết việc lập kế hoạch đã hoàn tất. Thu thập Xác định dấu thời gian khi SHIPMENT.SHIPMENT_STATUS_VALUE_GID chuyển sang trạng thái 'Planned'. Loại sự kiện inferred | |||
| Đã lấy hàng | Hoạt động này đánh dấu thời điểm bắt đầu vận chuyển thực tế, khi hãng vận chuyển nhận hàng tại điểm xuất phát. Sự kiện được ghi lại khi điểm dừng đầu tiên của chuyến hàng được đánh dấu là 'DEPARTED'. | ||
| Vì sao điều này quan trọng Đây là cột mốc quan trọng, đánh dấu giai đoạn hàng đang trên đường vận chuyển. Hoạt động này cần thiết để theo dõi hiệu suất lấy hàng của hãng vận chuyển và thời gian vận chuyển thực tế. Lấy dữ liệu ở đâu Suy ra từ thay đổi trạng thái của điểm dừng đầu tiên trong bảng SHIPMENT_STOP thành 'DEPARTED', hoặc từ sự kiện trạng thái chuyến hàng cho biết đã lấy hàng. Thu thập Dùng dấu thời gian ACTUAL_DEPARTURE từ bản ghi đầu tiên trong bảng SHIPMENT_STOP của chuyến hàng. Loại sự kiện inferred | |||
| Đã nhận xác nhận giao hàng | Hoạt động này thể hiện việc nhận và ghi lại xác nhận chính thức rằng hàng đã được giao, chẳng hạn như chứng từ có chữ ký. Thông tin thường được ghi nhận dưới dạng một loại chứng từ cụ thể đính kèm với chuyến hàng. | ||
| Vì sao điều này quan trọng POD rất quan trọng cho việc lập hóa đơn và xử lý tranh chấp. Theo dõi thời điểm nhận POD giúp đảm bảo tuân thủ quy trình và rút ngắn chu kỳ quyết toán tài chính. Lấy dữ liệu ở đâu Đây có thể là sự kiện được ghi nhận rõ ràng hoặc được suy ra từ ngày tạo chứng từ POD liên kết với chuyến hàng. Tìm chứng từ có loại POD trong bảng DOCUMENT. Thu thập Dùng dấu thời gian tạo chứng từ loại 'POD' liên kết với chuyến hàng. Loại sự kiện explicit | |||
| Đã nhận yêu cầu vận chuyển | Hoạt động này ghi nhận nhu cầu vận chuyển được tạo trong hệ thống, thường dưới dạng Order Release. Sự kiện được ghi lại khi Oracle Transportation Management tạo một bản ghi Order Release mới, thể hiện nhu cầu vận chuyển ban đầu. | ||
| Vì sao điều này quan trọng Đây là điểm bắt đầu của quy trình, rất quan trọng để đo tổng thời gian xử lý từ đầu đến cuối và hiểu các mô hình nhu cầu. Hoạt động này giúp phân tích thời gian từ lúc nhận yêu cầu đến khi lập kế hoạch. Lấy dữ liệu ở đâu Đây là sự kiện được ghi nhận rõ ràng từ dấu thời gian tạo bản ghi Order Release trong bảng ORDER_RELEASE. Có thể dùng INSERT_DATE hoặc các trường ngày tạo cụ thể. Thu thập Dùng dấu thời gian tạo Order Release trong bảng ORDER_RELEASE. Loại sự kiện explicit | |||
| Đã xử lý thanh toán | Đây là hoạt động cuối cùng, thể hiện việc thanh toán cho hãng vận chuyển đã được xử lý thành công. Sự kiện này đánh dấu hoàn tất phần tài chính của chuyến hàng. | ||
| Vì sao điều này quan trọng Hoạt động này khép lại vòng đời vận tải. Đây là dữ liệu cần thiết để đo thời gian xử lý thanh toán cho hãng vận chuyển và quản lý quan hệ với các hãng hiệu quả. Lấy dữ liệu ở đâu Suy ra từ thay đổi trạng thái của chứng từ thanh toán hoặc hóa đơn liên quan sang 'PAID'. Dữ liệu này nằm trong bảng VOUCHER hoặc BILL. Thu thập Xác định dấu thời gian khi VOUCHER.VOUCHER_STATUS_ID chuyển thành 'PAID'. Loại sự kiện inferred | |||
| Chuyến hàng đang trên đường | Cho biết hàng đã được lấy và đang trên đường đến điểm đích. Đây không phải một thời điểm đơn lẻ, nhưng thời điểm bắt đầu trạng thái này được ghi nhận ngay sau hoạt động 'Đã lấy hàng'. | ||
| Vì sao điều này quan trọng Hoạt động này đánh dấu thời điểm bắt đầu vận chuyển, rất quan trọng để theo dõi tiến độ giao hàng và xác định chậm trễ trên đường. Đây là dữ liệu nền tảng cho dashboard Điểm nóng chậm trễ trong quá trình vận chuyển. Lấy dữ liệu ở đâu Đây là cùng sự kiện với 'Đã lấy hàng', nhưng thường được thể hiện thành một hoạt động riêng trong mô hình quy trình để đánh dấu giai đoạn mới. Sự kiện được suy ra từ thời điểm điểm dừng đầu tiên khởi hành. Thu thập Giống với 'Đã lấy hàng': dùng dấu thời gian ACTUAL_DEPARTURE từ SHIPMENT_STOP đầu tiên. Loại sự kiện inferred | |||
| Đã chỉ định hãng vận chuyển | Đây là thời điểm chuyến hàng được gửi chào vận chuyển thành công và một hãng vận chuyển cụ thể chấp nhận. Có thể ghi nhận sự kiện này khi trạng thái chào vận chuyển của chuyến hàng đổi thành 'TENDER_ACCEPTED' hoặc trạng thái tương tự. | ||
| Vì sao điều này quan trọng Theo dõi hoạt động này giúp phân tích hiệu quả chọn hãng vận chuyển và gửi chào vận chuyển. Nếu xảy ra chậm trễ ở đây, toàn bộ lịch trình có thể bị ảnh hưởng đáng kể trước cả khi hàng bắt đầu di chuyển. Lấy dữ liệu ở đâu Suy ra từ lịch sử trạng thái trong bảng SHIPMENT_TENDER, cụ thể là dấu thời gian khi trạng thái cho biết hãng vận chuyển đã chấp nhận. Thu thập Dùng dấu thời gian trạng thái chuyển thành 'TENDER_ACCEPTED' trong lịch sử chào vận chuyển của chuyến hàng. Loại sự kiện inferred | |||
| Đã đặt chỗ cho chuyến hàng | Đây là xác nhận đặt chỗ chính thức với hãng vận chuyển sau khi hãng chấp nhận chào vận chuyển. Thông thường, sự kiện được ghi lại khi trạng thái chuyến hàng chuyển thành 'SECURE RESOURCES_BOOKED' hoặc trạng thái tương đương. | ||
| Vì sao điều này quan trọng Bước này xác nhận hãng vận chuyển đã cam kết và chính thức đưa chuyến hàng vào giai đoạn thực hiện. Đây là bước quan trọng để đo KPI thời gian lập kế hoạch chuyến hàng. Lấy dữ liệu ở đâu Suy ra từ thay đổi trạng thái của đối tượng Shipment trong bảng SHIPMENT, theo dõi thời điểm trạng thái chuyển sang đã xác nhận hoặc đã đặt chỗ sau khi chỉ định hãng vận chuyển. Thu thập Xác định dấu thời gian khi SHIPMENT.SHIPMENT_STATUS_VALUE_GID chuyển sang trạng thái 'Booked'. Loại sự kiện inferred | |||
| Đã hủy chuyến hàng | Hoạt động này thể hiện chuyến hàng bị hủy sau khi đã lập kế hoạch, khiến vòng đời kết thúc sớm. Sự kiện được ghi nhận khi trạng thái của đối tượng Shipment chuyển sang trạng thái 'cancelled'. | ||
| Vì sao điều này quan trọng Theo dõi các trường hợp hủy giúp hiểu rõ ngoại lệ và sự cố trong quy trình. Việc này giúp xác định nguyên nhân hủy, chẳng hạn như thay đổi nhu cầu hoặc lỗi lập kế hoạch. Lấy dữ liệu ở đâu Suy ra từ lịch sử trạng thái của đối tượng Shipment trong bảng SHIPMENT. Tìm thay đổi sang trạng thái như 'PLANNING_CANCELED'. Thu thập Xác định dấu thời gian khi SHIPMENT.SHIPMENT_STATUS_VALUE_GID chuyển sang trạng thái 'Cancelled'. Loại sự kiện inferred | |||
| Đã kiểm tra hóa đơn vận tải | Hoạt động này đánh dấu việc hoàn tất kiểm tra hóa đơn vận tải, trong đó hóa đơn của hãng vận chuyển được đối chiếu với thông tin chuyến hàng. Sự kiện được ghi lại khi trạng thái hóa đơn của chuyến hàng chuyển thành 'VOUCHER_AUDITED' hoặc trạng thái tương tự. | ||
| Vì sao điều này quan trọng Kiểm tra hóa đơn rất quan trọng để kiểm soát tài chính và phát hiện sai lệch thanh toán. Phân tích hoạt động này giúp tinh gọn quy trình từ kiểm tra đến thanh toán và hỗ trợ KPI tỷ lệ sai lệch hóa đơn vận tải. Lấy dữ liệu ở đâu Suy ra từ thay đổi trạng thái của đối tượng Bill liên kết với chuyến hàng. Tìm các cập nhật trạng thái cho biết đã hoàn tất kiểm tra trong bảng BILL. Thu thập Xác định dấu thời gian khi BILL.BILL_STATUS_VALUE_GID chuyển sang trạng thái 'Audited'. Loại sự kiện inferred | |||
| Đã lên lịch hẹn giao hàng | Hoạt động này đánh dấu thời điểm đã lên lịch ngày giờ giao hàng cụ thể với người nhận. Sự kiện được lấy từ dữ liệu lịch hẹn tại điểm dừng cuối cùng của chuyến hàng. | ||
| Vì sao điều này quan trọng Đây là bước quan trọng để phối hợp giao hàng chặng cuối. Phân tích khoảng thời gian từ lúc hàng đến đến lịch giao hàng có thể giúp phát hiện điểm nghẽn trong khâu giao hàng chặng cuối. Lấy dữ liệu ở đâu Suy ra từ thời điểm các trường ngày giờ hẹn được điền cho điểm dừng cuối cùng (nơi giao hàng) của chuyến hàng trong bảng SHIPMENT_STOP. Thu thập Dùng dấu thời gian khi các trường lịch hẹn được điền lần đầu cho điểm dừng giao hàng. Loại sự kiện inferred | |||
| Đã lên lịch hẹn lấy hàng | Hoạt động này cho biết ngày giờ lấy hàng cụ thể đã được lên lịch và ghi nhận. Thông tin thường được lấy từ dữ liệu lịch hẹn ở cấp điểm dừng của chuyến hàng. | ||
| Vì sao điều này quan trọng Lên lịch hẹn là bước phối hợp quan trọng. Phân tích hoạt động này giúp đánh giá hiệu quả lên lịch và ảnh hưởng của việc này đến khả năng lấy hàng đúng giờ. Lấy dữ liệu ở đâu Suy ra từ thời điểm các trường ngày giờ hẹn được điền cho điểm dừng đầu tiên (nơi lấy hàng) của chuyến hàng trong bảng SHIPMENT_STOP. Thu thập Dùng dấu thời gian khi các trường lịch hẹn được điền lần đầu cho điểm dừng lấy hàng. Loại sự kiện inferred | |||
| Đã thông quan | Với các chuyến hàng quốc tế, hoạt động này đánh dấu thời điểm hàng hóa hoàn tất thủ tục hải quan tại biên giới hoặc cảng. Thông tin thường được ghi nhận qua một sự kiện hoặc cập nhật trạng thái cụ thể của chuyến hàng. | ||
| Vì sao điều này quan trọng Thông quan thường là nguyên nhân gây chậm trễ đáng kể trong vận tải quốc tế. Theo dõi hoạt động này giúp đo lường và tối ưu thời gian xử lý thủ tục thông quan. Lấy dữ liệu ở đâu Sự kiện này thường được ghi nhận qua sự kiện vận chuyển 'Customs' do người dùng nhập hoặc được tích hợp từ hệ thống khác. Tìm mã sự kiện liên quan đến hải quan trong bảng SHIPMENT_STATUS. Thu thập Xác định dấu thời gian của sự kiện 'Customs Cleared' trong bảng SHIPMENT_STATUS. Loại sự kiện explicit | |||
Hướng dẫn trích xuất dữ liệu
Các bước
- Mở BI Publisher: Đăng nhập vào ứng dụng Oracle Transportation Management (OTM). Chọn Business Process Automation, sau đó chọn Reporting rồi Report Manager. Giao diện Oracle Business Intelligence Publisher sẽ mở ra.
- Tạo Data Model: Trong BI Publisher, nhấp vào nút New rồi chọn Data Model. Trình chỉnh sửa data model sẽ mở ra để bạn xác định nguồn dữ liệu cho báo cáo.
- Tạo truy vấn SQL: Trong trình chỉnh sửa data model, nhấp vào biểu tượng dấu cộng trên sơ đồ Data Sets rồi chọn SQL Query. Đặt tên cho tập dữ liệu, chẳng hạn “OTM_Process_Mining_DS”. Chọn cơ sở dữ liệu OTM làm Data Source. Sao chép toàn bộ truy vấn SQL trong phần “query” của tài liệu này và dán vào ô SQL Query.
- Thêm tham số: Truy vấn sử dụng các tham số cho khoảng ngày và tên miền (:P_START_DATE, :P_END_DATE, :P_DOMAIN_NAME). BI Publisher sẽ tự nhận diện các tham số này. Bạn có thể cấu hình thuộc tính của chúng, chẳng hạn đặt kiểu dữ liệu Date cho các tham số ngày.
- Lưu Data Model: Nhấp vào biểu tượng Save. Chọn vị trí trong danh mục BI Publisher, đặt tên mô tả như “OTM Shipment Process Extraction” rồi lưu data model.
- Tạo báo cáo: Quay lại danh mục, nhấp vào nút New rồi chọn Report. Trong trình hướng dẫn tạo báo cáo, chọn “Use Data Model” và tìm data model bạn vừa lưu.
- Thiết lập bố cục báo cáo: Trình hướng dẫn sẽ giúp bạn tạo bố cục. Bố cục “Table” đơn giản là đủ. Kéo tất cả các cột từ tập dữ liệu vào bảng. Không nhóm hoặc tổng hợp dữ liệu.
- Lưu báo cáo: Sau khi thiết lập bố cục, chuyển đến bước cuối và lưu báo cáo. Đặt tên tương tự tên data model.
- Chạy báo cáo: Mở báo cáo vừa tạo. Bạn sẽ được yêu cầu nhập các tham số (Start Date, End Date, Domain Name). Nhập khoảng thời gian mong muốn.
- Xuất dữ liệu: Sau khi báo cáo chạy và hiển thị dữ liệu, nhấp vào menu Actions rồi chọn Export. Chọn định dạng CSV. Thao tác này sẽ tải xuống tệp CSV chứa nhật ký sự kiện.
- Chuẩn bị tải lên: Mở tệp CSV vừa tải xuống. Kiểm tra tiêu đề cột có khớp với các thuộc tính bắt buộc hay không:
ShipmentId,ActivityName,EventTimevà các thuộc tính được đề xuất. Đảm bảo cộtEventTimedùng định dạng ngày giờ nhất quán. Tệp đã sẵn sàng để tải lên ProcessMind.
Cấu hình
- Nguồn dữ liệu: Chạy truy vấn trên lược đồ cơ sở dữ liệu vận hành chính của OTM, thường có tên GLOGOWNER.
- Tham số báo cáo:
P_START_DATE: Ngày bắt đầu kỳ báo cáo. Dùng định dạng “YYYY-MM-DD”.P_END_DATE: Ngày kết thúc kỳ báo cáo. Dùng định dạng “YYYY-MM-DD”.P_DOMAIN_NAME: Tên miền OTM cần trích xuất dữ liệu. Dùng “[Your Domain Name]”.
- Khoảng ngày: Với lần phân tích đầu tiên, nên trích xuất dữ liệu trong khoảng 3 đến 6 tháng để cân bằng khối lượng dữ liệu và hiệu suất. Khi chạy trong môi trường thực tế, hãy cân nhắc trích xuất theo từng tháng hoặc quý.
- Quyền truy cập: Người dùng OTM chạy báo cáo cần có các vai trò cụ thể, chẳng hạn BI PUBLISHER DATA MODEL DEVELOPER và BI PUBLISHER REPORT DEVELOPER, để tạo và chỉnh sửa data model cũng như báo cáo. Người dùng cũng cần quyền chỉ đọc các bảng cơ sở dữ liệu liên quan.
- Hiệu suất: Truy vấn kết hợp nhiều bảng lớn. Nếu dữ liệu có khối lượng lớn, nên chạy báo cáo ngoài giờ cao điểm để tránh ảnh hưởng đến hiệu suất hệ thống. Hãy giới hạn khoảng ngày ở mức hẹp nhất có thể để báo cáo hoàn tất đúng thời gian.
Truy vấn mẫu sql
WITH SHIPMENTS_BASE AS (
SELECT
S.SHIPMENT_GID AS ShipmentId,
SP.SERVPROV_NAME AS CarrierName,
S.TOTAL_ACTUAL_COST AS ShipmentCost,
TM.TRANSPORT_MODE_NAME AS TransportationMode,
(
SELECT MAX(ORL.LATE_DELIVERY_DATE)
FROM SHIPMENT_S_SHIP_UNIT SSU
JOIN S_SHIP_UNIT SU ON SSU.S_SHIP_UNIT_GID = SU.S_SHIP_UNIT_GID
JOIN ORDER_RELEASE ORL ON SU.ORDER_RELEASE_GID = ORL.ORDER_RELEASE_GID
WHERE SSU.SHIPMENT_GID = S.SHIPMENT_GID
) AS RequestedDeliveryDate,
S.DOMAIN_NAME
FROM SHIPMENT S
LEFT JOIN SERVPROV SP ON S.SERVPROV_GID = SP.SERVPROV_GID
LEFT JOIN TRANSPORT_MODE TM ON S.TRANSPORT_MODE_GID = TM.TRANSPORT_MODE_GID
WHERE S.INSERT_DATE BETWEEN TO_DATE(:P_START_DATE, 'YYYY-MM-DD') AND TO_DATE(:P_END_DATE, 'YYYY-MM-DD') + 1
AND S.DOMAIN_NAME = :P_DOMAIN_NAME
)
-- 1. Transportation Request Received
SELECT
SB.ShipmentId,
'Transportation Request Received' AS ActivityName,
MIN(ORL.INSERT_DATE) AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_S_SHIP_UNIT SSU ON SB.ShipmentId = SSU.SHIPMENT_GID
JOIN S_SHIP_UNIT SU ON SSU.S_SHIP_UNIT_GID = SU.S_SHIP_UNIT_GID
JOIN ORDER_RELEASE ORL ON SU.ORDER_RELEASE_GID = ORL.ORDER_RELEASE_GID
WHERE SB.DOMAIN_NAME = ORL.DOMAIN_NAME
GROUP BY SB.ShipmentId, SB.CarrierName, SB.RequestedDeliveryDate, SB.ShipmentCost, SB.TransportationMode
UNION ALL
-- 2. Shipment Planned
SELECT
SB.ShipmentId,
'Shipment Planned' AS ActivityName,
SS.STATUS_CHANGE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STATUS SS ON SB.ShipmentId = SS.SHIPMENT_GID
WHERE SS.STATUS_CODE_GID = 'PLANNING_PLANNED FINAL'
UNION ALL
-- 3. Carrier Assigned
SELECT
SB.ShipmentId,
'Carrier Assigned' AS ActivityName,
ST.UPDATE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_TENDER ST ON SB.ShipmentId = ST.SHIPMENT_GID
WHERE ST.TENDER_STATUS_GID = 'TENDER_ACCEPTED'
UNION ALL
-- 4. Shipment Booked
SELECT
SB.ShipmentId,
'Shipment Booked' AS ActivityName,
SS.STATUS_CHANGE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STATUS SS ON SB.ShipmentId = SS.SHIPMENT_GID
WHERE SS.STATUS_CODE_GID = 'SECURE RESOURCES_BOOKED'
UNION ALL
-- 5. Pickup Appointment Scheduled
SELECT
SB.ShipmentId,
'Pickup Appointment Scheduled' AS ActivityName,
SST.APPOINTMENT_START_TIME AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = 1 AND SST.APPOINTMENT_START_TIME IS NOT NULL
UNION ALL
-- 6. Goods Picked Up
SELECT
SB.ShipmentId,
'Goods Picked Up' AS ActivityName,
SST.ACTUAL_DEPARTURE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = 1 AND SST.ACTUAL_DEPARTURE_DATE IS NOT NULL
UNION ALL
-- 7. Shipment In Transit
SELECT
SB.ShipmentId,
'Shipment In Transit' AS ActivityName,
SST.ACTUAL_DEPARTURE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = 1 AND SST.ACTUAL_DEPARTURE_DATE IS NOT NULL
UNION ALL
-- 8. Customs Cleared
SELECT
SB.ShipmentId,
'Customs Cleared' AS ActivityName,
SE.EVENT_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
SE.EVENT_REMARK_TEXT AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_EVENT SE ON SB.ShipmentId = SE.SHIPMENT_GID
WHERE SE.EVENT_CODE = '[Your Customs Cleared Event Code]'
UNION ALL
-- 9. Delivery Appointment Scheduled
SELECT
SB.ShipmentId,
'Delivery Appointment Scheduled' AS ActivityName,
SST.APPOINTMENT_START_TIME AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = (SELECT MAX(SST2.STOP_NUM) FROM SHIPMENT_STOP SST2 WHERE SST2.SHIPMENT_GID = SB.ShipmentId)
AND SST.APPOINTMENT_START_TIME IS NOT NULL
UNION ALL
-- 10. Goods Delivered
SELECT
SB.ShipmentId,
'Goods Delivered' AS ActivityName,
SST.ACTUAL_ARRIVAL_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = (SELECT MAX(SST2.STOP_NUM) FROM SHIPMENT_STOP SST2 WHERE SST2.SHIPMENT_GID = SB.ShipmentId)
AND SST.ACTUAL_ARRIVAL_DATE IS NOT NULL
UNION ALL
-- 11. Proof of Delivery Received
SELECT
SB.ShipmentId,
'Proof of Delivery Received' AS ActivityName,
SE.EVENT_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
SE.EVENT_REMARK_TEXT AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_EVENT SE ON SB.ShipmentId = SE.SHIPMENT_GID
WHERE SE.EVENT_CODE = '[Your POD Received Event Code]'
UNION ALL
-- 12. Freight Bill Audited
SELECT
SB.ShipmentId,
'Freight Bill Audited' AS ActivityName,
B.UPDATE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN BILL B ON SB.ShipmentId = B.SHIPMENT_GID
WHERE B.BILL_STATUS_GID = 'VOUCHER_AUDITED'
UNION ALL
-- 13. Payment Processed
SELECT
SB.ShipmentId,
'Payment Processed' AS ActivityName,
B.UPDATE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN BILL B ON SB.ShipmentId = B.SHIPMENT_GID
WHERE B.BILL_STATUS_GID = '[Your Payment Processed Bill Status]'
UNION ALL
-- 14. Shipment Cancelled
SELECT
SB.ShipmentId,
'Shipment Cancelled' AS ActivityName,
S.UPDATE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT S ON SB.ShipmentId = S.SHIPMENT_GID
WHERE S.SHIPMENT_STATUS_GID = 'SHIPMENT_CANCELLED' Các bước
- Kết nối cơ sở dữ liệu: Lấy thông tin đăng nhập chỉ đọc và thông tin kết nối (máy chủ, cổng, mã dịch vụ) cho cơ sở dữ liệu Oracle Transportation Management. Bạn cần quyền truy cập lược đồ
GLOGOWNER. - Cấu hình ứng dụng SQL: Thiết lập công cụ SQL như Oracle SQL Developer, DBeaver hoặc Toad bằng thông tin kết nối cơ sở dữ liệu ở bước trước.
- Chuẩn bị truy vấn: Sao chép toàn bộ truy vấn SQL trong tài liệu này vào trình soạn thảo truy vấn của ứng dụng SQL.
- Đặt tham số truy vấn: Tìm các giá trị giữ chỗ trong mệnh đề
WHEREcủa truy vấn. Thay[START_DATE],[END_DATE]và[YOUR_DOMAIN_NAME]bằng các giá trị phù hợp để trích xuất dữ liệu. Ví dụ, chọn khoảng ngày từ 3 đến 6 tháng và chỉ định miền vận hành bạn muốn phân tích. - Chạy truy vấn: Chạy truy vấn SQL đã chỉnh sửa. Tùy vào khoảng ngày và quy mô hệ thống, quá trình này có thể mất vài phút.
- Kiểm tra kết quả: Khi truy vấn chạy xong, kiểm tra nhanh kết quả trong ứng dụng để đảm bảo có dữ liệu trả về và các cột chính như
ShipmentId,ActivityNamevàEventTimeđã có giá trị. - Xuất sang CSV: Xuất toàn bộ kết quả sang tệp CSV. Dùng thiết lập CSV tiêu chuẩn: dấu phẩy làm dấu phân cách, dấu ngoặc kép cho văn bản và mã hóa UTF-8.
- Kiểm tra tiêu đề cột: Trước khi tải lên, xác nhận tiêu đề cột trong tệp CSV khớp chính xác với tên thuộc tính bắt buộc:
ShipmentId,ActivityName,EventTime,CarrierName,RequestedDeliveryDate,ShipmentCost,TransportationModevàDelayReason. - Tải lên ProcessMind: Tệp CSV đã chuẩn bị sẵn sàng để tải lên ProcessMind và phân tích.
Cấu hình
- Lược đồ cơ sở dữ liệu: Truy vấn được thiết kế để chạy trên lược đồ cơ sở dữ liệu Oracle Transportation Management tiêu chuẩn, thường có tên
GLOGOWNER. - Quyền cần thiết: Cần có người dùng cơ sở dữ liệu với quyền chỉ đọc các bảng được truy vấn. Các bảng này gồm
SHIPMENT,SHIPMENT_STOP,ORDER_RELEASE,SHIPMENT_STATUS,SERVPROV,SHIPMENT_COST,DOCUMENT,BILLvàVOUCHER. - Lọc theo miền: Trong môi trường OTM nhiều bên thuê, việc lọc theo
DOMAIN_NAMElà rất quan trọng. Truy vấn có giá trị giữ chỗ[YOUR_DOMAIN_NAME]; bạn cần cấu hình giá trị này để trích xuất dữ liệu của đúng đơn vị kinh doanh. - Khoảng ngày: Để kiểm soát hiệu suất và khối lượng dữ liệu, bạn cần chỉ định ngày bắt đầu và ngày kết thúc. Nên lọc theo cột có chỉ mục như
SHIPMENT.INSERT_DATE. Với lần phân tích đầu tiên, khoảng thời gian từ 3 đến 6 tháng thường phù hợp. - Tùy chỉnh mã trạng thái: Truy vấn dùng các mã trạng thái mặc định phổ biến, chẳng hạn
PLANNING_PLANNED FINALvàTENDER_ACCEPTED. Hệ thống OTM của bạn có thể dùng mã trạng thái tùy chỉnh. Bạn có thể cần điều chỉnh các giá trị trong mệnh đềWHEREcho khớp với cấu hình hệ thống.
Truy vấn mẫu sql
WITH ShipmentBase AS (
SELECT s.SHIPMENT_GID, s.SERVPROV_GID, s.LATE_DELIVERY_DATE, s.TRANSPORT_MODE_GID, sc.TotalShipmentCost
FROM GLOGOWNER.SHIPMENT s
LEFT JOIN (
SELECT sc.SHIPMENT_GID, SUM(sc.COST) as TotalShipmentCost
FROM GLOGOWNER.SHIPMENT_COST sc
GROUP BY sc.SHIPMENT_GID
) sc ON s.SHIPMENT_GID = sc.SHIPMENT_GID
WHERE s.INSERT_DATE BETWEEN TO_DATE('[START_DATE]', 'YYYY-MM-DD') AND TO_DATE('[END_DATE]', 'YYYY-MM-DD')
AND s.DOMAIN_NAME = '[YOUR_DOMAIN_NAME]'
),
OrderReleaseInfo AS (
SELECT ssu.SHIPMENT_GID, MIN(orl.INSERT_DATE) as Earliest_OR_Date
FROM GLOGOWNER.S_SHIP_UNIT ssu
JOIN GLOGOWNER.S_SHIP_UNIT_LINE ssul ON ssu.S_SHIP_UNIT_GID = ssul.S_SHIP_UNIT_GID
JOIN GLOGOWNER.ORDER_RELEASE_LINE orl ON ssul.ORDER_RELEASE_LINE_GID = orl.ORDER_RELEASE_LINE_GID
GROUP BY ssu.SHIPMENT_GID
)
-- 1. Transportation Request Received
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Transportation Request Received' AS "ActivityName",
ori.Earliest_OR_Date AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN OrderReleaseInfo ori ON sb.SHIPMENT_GID = ori.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE ori.Earliest_OR_Date IS NOT NULL
UNION ALL
-- 2. Shipment Planned
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Shipment Planned' AS "ActivityName",
ss.INSERT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STATUS ss ON sb.SHIPMENT_GID = ss.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE ss.STATUS_CODE_GID = 'PLANNING_PLANNED FINAL'
UNION ALL
-- 3. Carrier Assigned
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Carrier Assigned' AS "ActivityName",
ss.INSERT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STATUS ss ON sb.SHIPMENT_GID = ss.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE ss.STATUS_CODE_GID = 'TENDER_ACCEPTED'
UNION ALL
-- 4. Shipment Booked
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Shipment Booked' AS "ActivityName",
ss.INSERT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STATUS ss ON sb.SHIPMENT_GID = ss.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE ss.STATUS_CODE_GID = 'SECURE RESOURCES_BOOKED'
UNION ALL
-- 5. Pickup Appointment Scheduled
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Pickup Appointment Scheduled' AS "ActivityName",
stp.APPT_START_TIME AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STOP stp ON sb.SHIPMENT_GID = stp.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE stp.STOP_NUM = 1 AND stp.APPT_START_TIME IS NOT NULL
UNION ALL
-- 6. Goods Picked Up
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Goods Picked Up' AS "ActivityName",
stp.ACTUAL_DEPARTURE_TIME AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STOP stp ON sb.SHIPMENT_GID = stp.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE stp.STOP_NUM = 1 AND stp.ACTUAL_DEPARTURE_TIME IS NOT NULL
UNION ALL
-- 7. Shipment In Transit
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Shipment In Transit' AS "ActivityName",
stp.ACTUAL_DEPARTURE_TIME AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STOP stp ON sb.SHIPMENT_GID = stp.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE stp.STOP_NUM = 1 AND stp.ACTUAL_DEPARTURE_TIME IS NOT NULL
UNION ALL
-- 8. Customs Cleared
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Customs Cleared' AS "ActivityName",
se.EVENT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
se.REMARK_TEXT AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_EVENT se ON sb.SHIPMENT_GID = se.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE se.EVENT_CODE_GID = '[Your Customs Cleared Event Code]'
UNION ALL
-- 9. Delivery Appointment Scheduled
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Delivery Appointment Scheduled' AS "ActivityName",
stp.APPT_START_TIME AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STOP stp ON sb.SHIPMENT_GID = stp.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE stp.STOP_NUM = (SELECT MAX(s2.STOP_NUM) FROM GLOGOWNER.SHIPMENT_STOP s2 WHERE s2.SHIPMENT_GID = stp.SHIPMENT_GID)
AND stp.APPT_START_TIME IS NOT NULL
UNION ALL
-- 10. Goods Delivered
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Goods Delivered' AS "ActivityName",
stp.ACTUAL_ARRIVAL_TIME AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STOP stp ON sb.SHIPMENT_GID = stp.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE stp.STOP_NUM = (SELECT MAX(s2.STOP_NUM) FROM GLOGOWNER.SHIPMENT_STOP s2 WHERE s2.SHIPMENT_GID = stp.SHIPMENT_GID)
AND stp.ACTUAL_ARRIVAL_TIME IS NOT NULL
UNION ALL
-- 11. Proof of Delivery Received
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Proof of Delivery Received' AS "ActivityName",
d.INSERT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.DOCUMENT d ON sb.SHIPMENT_GID = d.OBJECT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE d.OBJECT_TYPE_GID = 'SHIPMENT' AND d.DOCUMENT_TYPE_GID = 'POD'
UNION ALL
-- 12. Freight Bill Audited
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Freight Bill Audited' AS "ActivityName",
b.UPDATE_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.BILL b ON sb.SHIPMENT_GID = b.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE b.APPROVAL_STATUS_GID = 'VOUCHER_AUDITED'
UNION ALL
-- 13. Payment Processed
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Payment Processed' AS "ActivityName",
v.UPDATE_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.BILL b ON sb.SHIPMENT_GID = b.SHIPMENT_GID
JOIN GLOGOWNER.VOUCHER v ON b.BILL_GID = v.BILL_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE v.VOUCHER_STATUS_GID = 'VOUCHER_PAID' -- This status may vary based on configuration
UNION ALL
-- 14. Shipment Cancelled
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Shipment Cancelled' AS "ActivityName",
ss.INSERT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STATUS ss ON sb.SHIPMENT_GID = ss.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE ss.STATUS_CODE_GID LIKE '%CANCELLED%'; Sẵn sàng bắt đầu chưa?
Dùng mẫu này để chuyển dữ liệu thô thành thông tin hữu ích và cải thiện đáng kể quy trình vận tải. Bắt đầu tối ưu hóa ngay hôm nay.
Tối ưu hóa hoạt động quản lý vận tải ngay hôm nay
Rút ngắn 30% thời gian chu trình và loại bỏ điểm nghẽn trong Oracle OTM.
Không cần thẻ tín dụng • Dùng thử miễn phí trong 14 ngày