Ulaşım Yönetimi Veri Şablonunuz
Ulaşım Yönetimi Veri Şablonunuz
- Toplanması Önerilen Nitelikler
- Takip Edilmesi Gereken Temel Aktiviteler
- Veri Çekim Rehberliği
Taşıma Yönetimi Nitelikleri
| Ad | Açıklama | ||
|---|---|---|---|
| Faaliyet Adı ActivityName | Bir sevkiyat için taşıma süreci içinde meydana gelen belirli bir olayın veya dönüm noktasının adı. | ||
| Açıklama Bu nitelik, taşıma yaşam döngüsündeki tek bir adımı, örneğin 'Sevkiyat Planlandı', 'Mallar Teslim Alındı' veya 'Mallar Teslim Edildi' gibi açıklar. Her etkinlik, sevkiyatı tamamlanmaya yaklaştıran ayrı bir iş olayını temsil eder. Bu etkinliklerin sırasını ve süresini analiz etmek, process mining'in temelidir. Gerçek süreç akışının keşfedilmesini, adımlar arasındaki darboğazların belirlenmesini ve standart işletme prosedürlerine uyumun ölçülmesini sağlar. Etkinlik akışındaki varyasyonlar, istisnaları, yeniden işleri veya optimal yoldan sapmaları vurgulayabilir. Neden önemli Süreç haritasındaki adımları tanımlar, sevkiyatın yolculuğunun, darboğazların ve sapmaların görselleştirilmesine ve analiz edilmesine olanak tanır. Nereden alınır Bu bilgi, Oracle Transportation Management içindeki takip olayı tablolarından veya durum değişikliği günlüklerinden türetilir. Belirli etkinlik adı, olay kodları ve açıklamalarından birleştirilebilir. Örnekler Sevkiyat PlanlandıMallar Teslim AlındıGümrükten GeçtiMallar Teslim Edildi | |||
| Olay Zamanı EventTime | Belirli bir taşıma etkinliğinin veya olayının meydana geldiği kesin tarih ve saat. | ||
| Açıklama Bu zaman damgası, 'Taşıyıcı Atandı' veya 'Teslimat Kanıtı Alındı' gibi bir etkinliğin sisteme kaydedildiği anı işaret eder. Zaman damgaları, process mining için temeldir çünkü her sevkiyat için olayların kronolojik sırasını belirlerler. Bu zaman damgalarının doğruluğu, tüm zamana dayalı analizler için kritiktir. Etkinlikler arasındaki döngü sürelerini hesaplamak, süreç sürelerini ölçmek, gecikmeleri belirlemek ve hizmet seviyesi anlaşmalarına karşı performansı değerlendirmek için kullanılırlar. Olay Zamanını analiz etmek, süreçte zamanın nerede kaybedildiğini belirlemeye yardımcı olur. Neden önemli Bu zaman damgası, olayları kronolojik olarak sıralamak ve döngü süreleri ve gecikmeler gibi tüm performans metriklerini hesaplamak için esastır. Nereden alınır OTM'nin takip olayı veya durum geçmişi tablolarındaki olaylarla ilişkili zaman damgası alanlarından alınır. Örnekler 2023-10-26T08:00:00Z2023-10-27T14:30:00Z2023-10-28T09:15:00Z | |||
| Sevkiyat ShipmentId | İlgili tüm taşıma faaliyetlerini izlemek için birincil vaka kimliği olarak hizmet veren tek bir sevkiyat için benzersiz tanımlayıcı. | ||
| Açıklama Sevkiyat Kimliği, bir göndericiden bir alıcıya tek bir mal hareketini benzersiz bir şekilde tanımlar. Bu nitelik, planlama, rezervasyon, teslim alma, transit, teslimat ve faturalandırma gibi tüm ilgili olayları tek bir vaka altında gruplandıran süreç analizinin temel taşıdır. Process mining'de, Sevkiyat Kimliğine göre olayların analizi, taşıma yaşam döngüsünün eksiksiz uçtan uca görünümünü sağlar. Toplam döngü süresi, zamanında teslimat performansı ve sevkiyat başına maliyet gibi temel metrikleri hesaplamak için kullanılır, bu da süreç verimliliği ve müşteri hizmetleri seviyeleri hakkında kapsamlı bir anlayış sunar. Neden önemli Bu, tüm süreç adımlarını birbirine bağlayan temel Vaka Kimliğidir ve her bir sevkiyat için tüm taşıma yolculuğunun eksiksiz bir analizini sağlar. Nereden alınır Bu, Oracle Transportation Management'ta birincil anahtardır ve genellikle sevkiyat veya sipariş yönetimi tablolarında bulunur. Belirli tablo ve alan adları için OTM dokümantasyonuna başvurun. Örnekler SH-0012345SH-0012346SH-0012347 | |||
| Gecikme Nedeni DelayReason | Sevkiyatın ilerlemesindeki bir gecikmenin nedenini açıklayan bir kod veya açıklama. | ||
| Açıklama Bir sevkiyat geciktiğinde, bu nitelik 'Hava Durumu', 'Gümrük Bekletme', 'Liman Yoğunluğu' veya 'Mekanik Arıza' gibi gecikme nedenini belirtir. Bu bilgi, taşıyıcı güncellemelerinden veya OTM'deki manuel girişlerden alınır. Bu nitelik, gecikmeli teslimatların temel neden analizinde kritik öneme sahiptir. İşletmeler, gecikme nedenlerini sınıflandırarak ve sayarak, tedarik zincirlerindeki en sık yaşanan sorunları belirleyebilirler. Bu sayede, belirli güzergahlar için daha güvenilir taşıyıcılar seçmek veya gümrük işlemlerini hızlandırmak için belgeleri iyileştirmek gibi hedefe yönelik iyileştirme girişimleri gerçekleştirilebilir. Neden önemli Geç teslimatların temel nedenlerine ilişkin kritik içgörü sağlayarak, yaygın sorunları azaltmak ve zamanında performansını iyileştirmek için hedeflenmiş eylemler yapılmasını sağlar. Nereden alınır Genellikle OTM içindeki takip olay detaylarında yakalanır. Belirli istisna veya gecikme olay kodlarıyla ilişkilendirilebilir. Örnekler HAVA_DURUMU_GECİKMESİGÜMRÜK_MUAYENESİLİMAN_TIKANIKLIĞITRAFİK | |||
| Sevkiyat Maliyeti ShipmentCost | Sevkiyatın taşınması için alınan toplam navlun maliyeti veya finansal tutar. | ||
| Açıklama Bu nitelik, taşıyıcı ücretleri, yakıt ek ücretleri ve diğer ek ücretler dahil olmak üzere bir sevkiyatla ilişkili toplam finansal maliyeti temsil eder. Taşıma sürecinin finansal performansının temel bir ölçüsüdür. Sevkiyat Maliyetini analiz etmek, Ortalama Taşıyıcı Sevkiyat Başına Maliyet KPI'sinin hesaplanmasını sağlar. Maliyet tasarrufu fırsatlarını belirlemek için taşıyıcıya, rotaya, taşıma moduna veya sevkiyat türüne göre segmentlere ayrılabilir. Ayrıca, planlanan ve gerçekleşen maliyetleri karşılaştırmak için Navlun Faturası Uyuşmazlığı Analizi'nde de kullanılır. Neden önemli Taşıma harcamalarını analiz etmek, maliyet tasarrufu fırsatlarını belirlemek ve süreç verimsizliklerinin finansal etkisini ölçmek için gerekli finansal verileri sağlar. Nereden alınır Bu bilgi genellikle OTM'deki bir sevkiyatın finansal veya maliyetlendirme bölümlerinde bulunur, genellikle navlun derecelendirmesi ve mutabakatından sonra doldurulur. Örnekler 250.751200.00545.50 | |||
| Talep Edilen Teslimat Tarihi RequestedDeliveryDate | Müşteri tarafından talep edilen veya hizmet seviyesi anlaşması (SLA) hedefi olarak kabul edilen teslimat tarihi ve saati. | ||
| Açıklama Bu nitelik, bir sevkiyat için hedef teslimat zaman damgasını yakalar. Müşteriye verilen taahhüdü temsil eder ve zamanında performansın ölçülmesi için birincil kriter görevi görür. Process mining'de, bu tarih, bir sevkiyatın zamanında mı yoksa geç mi olduğunu belirlemek için gerçek teslimat zaman damgasıyla ('Mallar Teslim Edildi' etkinliğinden) karşılaştırılır. Bu, Zamanında Teslimat Oranı KPI'sinin temelini oluşturur ve Teslimat Performansı Genel Bakış dashboard'u için esastır. Sapmaların analizi, gecikmelerin sistematik nedenlerini belirlemeye ve müşteri memnuniyetini artırmaya yardımcı olur. Neden önemli Bu, müşteri memnuniyeti ve operasyonel mükemmellik için kritik bir KPI olan zamanında teslimat performansını ölçmek için birincil kriterdir. Nereden alınır Bu bilgi genellikle OTM içinde sipariş veya sevkiyat düzeyinde, sıklıkla teslimat tarihleri veya randevularla ilgili alanlarda depolanır. Örnekler 2023-11-15T17:00:00Z2023-11-20T12:00:00Z2023-11-22T09:00:00Z | |||
| Taşıma Modu TransportationMode | Sevkiyat için kullanılan taşıma yöntemi; örneğin kamyon, demiryolu, deniz veya hava yolu. | ||
| Açıklama Bu nitelik, sevkiyatı taşıma moduna göre sınıflandırır. Yaygın modlar arasında Komple Kamyon Yükü (FTL), Parsiyel Kamyon Yükü (LTL), Deniz, Hava ve Demiryolu bulunur. Bu, sevkiyatın maliyetini, transit süresini ve karmaşıklığını etkileyen temel bir özelliğidir. Analizde, Taşıma Modu, segmentasyon için kritik bir boyuttur. Farklı modlar arasında süreç performansını ve maliyetlerini karşılaştırmaya olanak tanır. Örneğin, hangi modların transit gecikmelere daha yatkın olduğunu veya mil başına daha yüksek maliyetlere sahip olduğunu belirlemeye yardımcı olarak lojistik ağları hakkında stratejik kararları destekler. Neden önemli Performans ve maliyet analizinin taşıma moduna göre segmentlere ayrılmasını sağlayarak, kamyon, hava, deniz veya demiryolu lojistiğine özgü içgörüler ortaya çıkarır. Nereden alınır Bu, OTM'deki sevkiyat düzeyinde standart bir niteliktir ve genellikle özel bir 'mod' veya 'taşıma tipi' alanında bulunur. Örnekler FTLLTLOKYANUSHAVA | |||
| Taşıyıcı Adı CarrierName | Sevkiyatı taşımaktan sorumlu taşıma firmasının veya hizmet sağlayıcısının adı. | ||
| Açıklama Bu nitelik, malların taşınmasını gerçekleştirmek üzere atanan lojistik ortağını tanımlar. Örnekler arasında büyük navlun şirketleri, yerel kuryeler veya okyanus hatları bulunur. Taşıyıcıya göre performans analizi, taşıma process mining'inin birincil hedefidir. Bu nitelik, sevkiyatları zamanında teslimat oranı, sevkiyat başına maliyet, transit süresi ve gecikmeler veya faturalama tutarsızlıkları gibi sorunların sıklığı gibi metrikler açısından taşıyıcıları karşılaştırmak için segmentlere ayırmaya olanak tanır. Bu içgörüler, taşıyıcı seçimi, sözleşme müzakereleri ve performans yönetimi için hayati öneme sahiptir. Neden önemli Farklı taşıyıcılar arasında performans kıyaslaması yapmayı sağlar, bu da taşıyıcı seçimi, müzakere ve maliyet azaltma optimizasyonu için kritiktir. Nereden alınır OTM içindeki sevkiyat detaylarında bulunur, atanan taşıyıcı veya hizmet sağlayıcı kayıtlarından bağlantılıdır. Sevkiyatlar ve hizmet sağlayıcıları ile ilgili tablolarda saklanabilir. Örnekler FedEx FreightUPS Tedarik Zinciri ÇözümleriMaersk LineKnight-Swift Transportation | |||
| Gümrük Temsilcisi CustomsAgent | Sevkiyatın gümrükleme sürecini yönetmekten sorumlu gümrük komisyoncusu veya acentesi. | ||
| Açıklama Uluslararası sevkiyatlar için bu öznitelik, gümrük belgeleri ve prosedürleri ile görevli üçüncü taraf acenteyi veya dahili ekibi tanımlar. Bu acentenin performansı, genel transit süresini önemli ölçüde etkileyebilir. Gümrük Acentesi Bazında Gümrükleme Döngü Süresini analiz etmek, performanslarını kıyaslamaya yardımcı olur. Belirli ülkelerde veya belirli emtia türleri için hangi acentelerin en verimli olduğunu belirleyebilir. Bu içgörü, en iyi gümrük ortaklarını seçmek ve yetersiz performans gösteren acentelerle süreçlerini iyileştirmek için çalışmak açısından değerlidir. Neden önemli Gümrük müşavirlerinin performans ölçümünü sağlayarak, en verimli ortakları belirlemeye ve gümrükle ilgili gecikmeleri azaltmaya yardımcı olur. Nereden alınır Bu bilgi, OTM'deki uluslararası sevkiyat detaylarında bir hizmet sağlayıcı veya taraf rolü olarak depolanabilir. Örnekler Küresel Gümrük HizmetleriLivingston InternationalFlexport | |||
| Kaynak Sistem SourceSystem | Olay verilerinin kaynaklandığı sistemi, örneğin Oracle Transportation Management'ı tanımlar. | ||
| Açıklama Bu nitelik, verinin oluşturulduğu kaynak uygulamayı belirtir. Karmaşık bir lojistik ortamında, veri OTM'den, bir depo yönetim sisteminden (WMS), bir taşıyıcının EDI aracılığıyla sisteminden veya diğer entegre platformlardan gelebilir. Kaynak sistemi anlamak, veri yönetimi, kalite değerlendirmesi ve sorun giderme için önemlidir. Verinin bağlamını anlamaya yardımcı olur ve veri granülaritesindeki veya zamanlamasındaki varyasyonları açıklayabilir. Analiz için, yalnızca belirli, güvenilir bir sistemden kaynaklanan olayları filtrelemek için kullanılabilir. Neden önemli Veri kaynağı hakkında kritik bağlam sağlar, bu da veri doğrulama ve çok sistemli ortamlardaki analizler için önemlidir. Nereden alınır Bu, genellikle veri extraction süreci sırasında kayıtların kaynağını etiketlemek için eklenen statik bir değerdir. Örnekler Oracle OTMOTM CloudSAP TM | |||
| Kullanıcı Adı UserName | Belirli bir etkinliği gerçekleştiren veya sorumlu olan kullanıcının adı veya kimliği. | ||
| Açıklama Bu nitelik, 'Sevkiyat Planlandı' veya 'Taşıyıcı Atandı' gibi belirli bir olayı gerçekleştiren bireysel kullanıcıyı veya sistem ajanını tanımlar. Bu bilgi, süreçteki kaynak katılımına ilişkin hesap verebilirlik ve içgörü sağlar. Process mining'de, etkinliklerin kullanıcıya göre analizi, iş yükü dağılımını anlamaya, eğitim ihtiyaçlarını belirlemeye ve farklı kullanıcı veya ekiplerin performansını karşılaştırmaya yardımcı olur. Ayrıca manuel olarak gerçekleştirilen etkinlikler ile sistem tarafından otomatik olarak yürütülen etkinlikler arasında ayrım yapmak için de kullanılabilir. Neden önemli Hesap verebilirliği sağlar ve bireysel kullanıcı veya ekip tarafından iş yükü ve performans analizini mümkün kılar. Nereden alınır OTM'nin geçmiş veya log tablolarındaki durum değişiklikleri veya olaylarla ilişkili kullanıcı kimliği alanlarından (örn. INSERT_USER) alınır. Örnekler JSMITHLOJİSTİK_PLANLAYICI_ASYSTEM_AUTO | |||
| Menşe Ülke OriginCountry | Sevkiyatın yolculuğunun başladığı ülke. | ||
| Açıklama Bu nitelik, göndericinin konumuna göre sevkiyatın başlangıç ülkesini belirtir. Lojistik analizinde kullanılan önemli bir coğrafi bilgi parçasıdır. Menşe Ülkeye göre süreçleri analiz etmek, performanstaki bölgesel farklılıkları anlamaya yardımcı olur. Örneğin, gümrükleme süreleri, taşıyıcı maliyetleri ve transit süreleri menşe ülkeye bağlı olarak önemli ölçüde değişebilir. Bu segmentasyon, uluslararası lojistiği yönetmek ve bölgeye özgü darboğazları belirlemek için çok önemlidir. Neden önemli Taşımacılık sürecinin coğrafi analizini sağlayarak, bölgeye özgü darboğazları, maliyetleri ve performans farklılıklarını belirlemeye yardımcı olur. Nereden alınır Sevkiyatın kaynak yeri veya göndericisinin adres detaylarından türetilir, OTM'nin konum ana verilerinde saklanır. Örnekler USADEUÇİNMEKS | |||
| Navlun Faturası Tutarsızlığı FreightBillDiscrepancy | Navlun faturasının denetimi sırasında bir tutarsızlık bulunup bulunmadığını gösteren bir işaret. | ||
| Açıklama Bu boole niteliği, taşıyıcıdan alınan navlun faturası OTM'de hesaplanan beklenen maliyetle eşleşmediğinde 'doğru' olarak ayarlanır. Tutarsızlıklar yanlış oranlardan, ek ücretlerden veya diğer faturalama hatalarından kaynaklanabilir. Bu nitelik, Navlun Faturası Tutarsızlık Oranı KPI'sinin temelini oluşturur. Bu bayrakların taşıyıcıya, rotaya veya sevkiyat türüne göre sıklığını analiz etmek, faturalama hatalarının temel nedenlerini belirlemeye yardımcı olur. Bu, veri doğruluğunu iyileştirme, denetim sürecini kolaylaştırma ve fazla ödemeleri önleme girişimlerini destekler. Neden önemli Faturalandırma hataları olan sevkiyatları işaretleyerek Navlun Faturası Tutarsızlık Analizini doğrudan destekler, fazla ödemeleri azaltmaya ve finansal kontrolleri iyileştirmeye yardımcı olur. Nereden alınır Bu, genellikle OTM içindeki navlun mutabakatı ve fatura eşleştirme sürecinde ayarlanan bir durum veya bayraktır. Örnekler truefalse | |||
| Sevkiyat Durumu ShipmentStatus | Sevkiyatın yaşam döngüsündeki genel mevcut durumu; örneğin 'Planlandı', 'Transit Halinde' veya 'Teslim Edildi'. | ||
| Açıklama Bu nitelik, sevkiyatın genel süreçteki konumuna dair üst düzey bir özet sunar. Zamansal bir olay olan bir etkinliğin aksine, durum sevkiyat vakasının halini temsil eder. Process mining etkinlik akışına odaklansa da, genel durum vakaları filtrelemek ve dashboard'larda bağlam sağlamak için faydalıdır. Örneğin, bir analiz yalnızca 'Tamamlanmış' sevkiyatlara odaklanabilir veya birçok sevkiyatın neden olağan dışı uzun bir süre 'Transit Halinde' durumunda takılı kaldığını araştırabilir. Neden önemli Bir sevkiyatın ilerlemesinin üst düzey bir özetini sunar; bu, analizde vakaları filtrelemek ve segmentlere ayırmak için faydalıdır. Nereden alınır OTM'deki ana sevkiyat kaydında bulunur ve iş akışındaki mevcut durumunu temsil eder. Örnekler PLANLANDIKAYDEDİLDİTRANSİT_HALİNDETESLİM EDİLDİ | |||
| Sevkiyat Tipi ShipmentType | Sevkiyatın hizmet seviyesi, emtia tipi veya iş birimi gibi bir sınıflandırması. | ||
| Açıklama Bu nitelik, sevkiyat için işe özgü bir kategorizasyon sağlar; örneğin 'Standart', 'Hızlandırılmış', 'Tehlikeli Maddeler' veya 'Şirketler Arası'. Bu sınıflandırma, farklı iş kuralları, öncelikler veya analitik görünümler uygulamaya yardımcı olur. Process mining'de Sevkiyat Tipi'ni bir boyut olarak kullanmak, farklı türdeki sevkiyatlar için süreçleri karşılaştırmaya olanak tanır. Bu, belirli türlerin gecikmelere daha yatkın olup olmadığını, daha yüksek maliyetlere sahip olup olmadığını veya standart dışı süreç yollarını takip edip etmediğini ortaya çıkarabilir. Bu içgörüler, süreçleri her sevkiyat tipinin özel ihtiyaçlarını daha iyi karşılayacak şekilde uyarlamaya yardımcı olur. Neden önemli Analizin iş bağlamına göre segmentlere ayrılmasını sağlayarak, farklı sevkiyat türlerinin farklı süreçleri takip edip etmediğini veya farklı performans seviyelerine sahip olup olmadığını anlamaya yardımcı olur. Nereden alınır Bu, genellikle OTM'deki sevkiyat veya sipariş kaydında yapılandırılabilir bir alan veya niteliktir. Örnekler StandartHızlandırılmışUluslararasıYurtiçi | |||
| Son Veri Güncellemesi LastDataUpdate | Bu `event` için `veri`nin kaynak sistemden son yenilenme veya çıkarılma zamanını gösteren `timestamp`. | ||
| Açıklama Bu nitelik, verilerin Oracle Transportation Management'tan en son ne zaman çekildiğini kaydeder. İş olayının gerçekleştiği zamanı değil, analiz edilen verinin güncelliğini yansıtır. Bu zaman damgası, process mining analizinin zamanlamasını anlamak için kritik öneme sahiptir. Kullanıcıların gerçek zamanlı bilgilere mi yoksa belirli bir zamandaki bir anlık görüntüye mi baktıklarını anlamalarına yardımcı olur. Veri yenileme döngülerini yönetmek ve kararların güncel bilgilere dayanmasını sağlamak için esastır. Neden önemli Verilerin güncelliğini gösterir, kullanıcıların analizin ne kadar güncel olduğunu ve bir sonraki veri yenilemesinin ne zaman beklendiğini bilmelerini sağlar. Nereden alınır Bu, genellikle veri alımı veya ETL süreci sırasında eklenen sistem tarafından oluşturulmuş bir zaman damgasıdır. Örnekler 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| Uçtan Uca Döngü Süresi EndToEndCycleTime | İlk taşıma talebinden malların nihai teslimatına kadar sevkiyatın toplam süresi. | ||
| Açıklama Bu hesaplanmış metrik, bir sevkiyat vakası için toplam geçen süreyi ölçer. Genellikle 'Taşıma Talebi Alındı' etkinliği ile 'Mallar Teslim Edildi' etkinliği arasındaki zaman farkı olarak hesaplanır. Bu nitelik, Ortalama Uçtan Uca Döngü Süresi KPI'sinin temelini oluşturur. Tüm taşıma sürecinin verimliliğinin bütünsel bir ölçüsünü sağlar. Bu sürenin analizi, uzun süreli sevkiyatları belirlemeye yardımcı olur ve süreç iyileştirme girişimlerinin etkisini ölçmek için bir temel oluşturur. Neden önemli Genel süreç hızının tek, kritik bir ölçüsünü sağlar; bu, uzun süreli sevkiyatları belirlemeye ve zaman içindeki iyileşmeleri izlemeye yardımcı olur. Nereden alınır Bu nitelik kaynak sistemde bulunmamaktadır. Process mining analizi veya veri dönüşümü sırasında vaka düzeyinde hesaplanır. Örnekler 5 gün 4 saat12 gün 8 saat 30 dakika2 gün 1 saat | |||
| Varış Ülkesi DestinationCountry | Sevkiyatın teslim edilmesinin planlandığı ülke. | ||
| Açıklama Bu nitelik, alıcının konumuna göre sevkiyatın nihai varış ülkesini belirtir. Coğrafi süreç analizi için Menşe Ülkeyi tamamlar. Menşe gibi, Varış Ülkesine göre analiz yapmak, farklı ticaret rotalarındaki performans farklılıklarını anlamak için hayati öneme sahiptir. Özellikle gümrükleme sürelerini, son kilometre teslimat performansını ve bölgeye özgü taşıyıcı etkinliğini analiz etmek için önemlidir. Bu, lojistik stratejilerini farklı varış piyasalarının gereksinimlerine göre uyarlamaya yardımcı olur. Neden önemli Belirli ticaret yollarındaki performansı analiz etmek ve varış pazarlarındaki gümrük, taşıyıcı ve düzenlemelerle ilgili zorlukları anlamak için çok önemlidir. Nereden alınır Sevkiyatın varış yeri veya alıcısının adres detaylarından türetilir, OTM'nin konum ana verilerinde saklanır. Örnekler CANFRAJPNBRA | |||
| Yeniden Rotalandırıldı mı IsRerouted | Sevkiyatın rotasının ilk rezervasyondan sonra değişip değişmediğini gösteren bir işaret. | ||
| Açıklama Bu nitelik, bir sevkiyat planlandıktan ve rezerve edildikten sonra önemli bir yeniden rota belirleme olayına uğradığında 'doğru' olarak ayarlanan bir boole bayrağıdır. Bu, müşteri talebi, beklenmedik aksaklıklar veya optimizasyon fırsatlarından kaynaklanabilir. Bu nitelik, Sevkiyat Yeniden Yönlendirme Oranı KPI'sini ve Yeniden Yönlendirme ve Hızlandırma İçgörüleri dashboard'unu doğrudan destekler. Yeniden yönlendirmelerin sıklığını takip etmek, planlama veya yürütmedeki temel sorunları belirlemeye yardımcı olur. Operasyonel istikrarsızlıkları ve ilgili maliyetleri vurgulayarak yöneticilerin maliyetli ve kesintiye neden olan değişiklikleri en aza indirme yollarını bulmalarını sağlar. Neden önemli Yeniden rotalamalar gibi operasyonel istisnaların sıklığını ve etkisini ölçmeye yardımcı olur, planlama ve yürütme sürecindeki verimsizlikleri vurgular. Nereden alınır Bu bayrak, olay günlüğündeki belirli yeniden rota belirleme olaylarını tespit ederek veya nihai rotayı başlangıçta planlanan rotayla karşılaştırarak türetilir. Örnekler truefalse | |||
| Zamanında Teslimat Yapıldı mı IsOnTimeDelivery | Sevkiyatın talep edilen teslimat tarihinde veya öncesinde teslim edilip edilmediğini gösteren hesaplanmış bir işaret. | ||
| Açıklama Bu boole niteliği, 'Mallar Teslim Edildi' etkinliğinin zaman damgası ile 'Talep Edilen Teslim Tarihi' niteliğinin karşılaştırılmasıyla türetilir. Teslimat zamanında veya erken ise 'doğru', geç ise 'yanlış' değerini alır. Bu nitelik, Zamanında Teslimat Oranı KPI'sini doğrudan destekler ve Teslimat Performansı Genel Bakış dashboard'unun temel bir bileşenidir. Her sevkiyat için net, ikili bir sonuç sağlayarak teslimat performansının analizini basitleştirir, zamanında ve geç sevkiyatları filtrelemeyi, toplamayı ve görselleştirmeyi kolaylaştırır. Neden önemli Bu hesaplanmış bayrak, Zamanında Teslimat KPI'sinin ölçümünü basitleştirir ve zamanında yapılan teslimatlarla geç yapılan sevkiyatların kolayca filtrelenmesini ve analiz edilmesini sağlar. Nereden alınır Bu nitelik kaynak sistemde bulunmamaktadır. Veri dönüşümü sırasında 'Mallar Teslim Edildi' etkinliğinin zaman damgası ile 'RequestedDeliveryDate' niteliğinin karşılaştırılmasıyla hesaplanır. Örnekler truefalse | |||
Taşıma Yönetimi Etkinlikleri
| Aktivite | Açıklama | ||
|---|---|---|---|
| Mallar Teslim Alındı | Bu etkinlik, taşıyıcının malları başlangıç noktasından teslim almasıyla fiziksel taşımanın başlangıcını işaret eder. Bu olay, sevkiyatın ilk durağı 'DEPARTED' olarak işaretlendiğinde yakalanır. | ||
| Neden önemli Bu, transit aşamasının başlangıcını işaret eden kritik bir dönüm noktasıdır. Taşıyıcı teslim alma performansını ve gerçek transit sürelerini izlemek için esastır. Nereden alınır SHIPMENT_STOP tablosundaki ilk durağın durum değişikliğinden 'AYRILDI' olarak veya teslim almayı gösteren bir sevkiyat durumu olayını izleyerek çıkarılır. Yakala Sevkiyat için SHIPMENT_STOP tablosundaki ilk kaydın ACTUAL_DEPARTURE zaman damgasını kullanın. Event tipi inferred | |||
| Mallar Teslim Edildi | Bu etkinlik, sevkiyatın nihai varış yeri alıcısına başarılı bir şekilde teslim edilmesini temsil eder. Bu, sevkiyatın son durağına fiili bir varış zamanı işaretlendiğinde yakalanır. | ||
| Neden önemli Bu, zamanında teslimat performansını ve uçtan uca döngü süresini ölçmek için birincil dönüm noktasıdır. Taşıma yürütme sürecinin doruk noktasıdır. Nereden alınır Sevkiyatla ilişkili SHIPMENT_STOP tablosundaki son durak kaydındaki ACTUAL_ARRIVAL alanının doldurulmasından çıkarılır. Yakala Sevkiyat için SHIPMENT_STOP tablosundaki son kaydın ACTUAL_ARRIVAL zaman damgasını kullanın. Event tipi inferred | |||
| Ödeme İşlendi | Bu, taşıyıcıya hizmetleri için ödemenin başarılı bir şekilde işlenmesini temsil eden son etkinliktir. Bu olay, sevkiyatın finansal kapanışını işaret eder. | ||
| Neden önemli Bu etkinlik, taşıma yaşam döngüsünü sonlandırır. Taşıyıcı ödeme işleme sürelerini ölçmek ve taşıyıcı ilişkilerini etkili bir şekilde yönetmek için çok önemlidir. Nereden alınır İlişkili fiş veya faturadaki durum değişikliğinin 'ÖDENDİ' durumuna geçişinden çıkarılır. Bu veriler VOUCHER veya BILL tablolarında bulunur. Yakala VOUCHER.VOUCHER_STATUS_ID'nin 'PAID' (Ödendi) olarak değiştiği zaman damgasını belirleyin. Event tipi inferred | |||
| Sevkiyat Planlandı | Bu etkinlik, bir veya daha fazla sipariş serbest bırakmanın OTM planlama motoru tarafından uygulanabilir bir sevkiyata başarılı bir şekilde planlanmasını temsil eder. Sistem, bir sevkiyatın durumunu planlandığını gösterecek şekilde değiştirdiğinde yakalanır, örneğin 'PLANNING_PLANNED FINAL'. | ||
| Neden önemli Bu, talep aşamasını yürütme aşamasından ayıran önemli bir dönüm noktasıdır. Bu etkinliğe kadar geçen süreyi analiz etmek, planlama verimliliğini ve motor performansı darboğazlarını belirlemeye yardımcı olur. Nereden alınır SHIPMENT tablosundaki Sevkiyat nesnesinin durum geçmişinden çıkarılır. Planlama tamamlandığını gösteren bir duruma değişikliği arayın. Yakala SHIPMENT.SHIPMENT_STATUS_VALUE_GID'nin 'Planlandı' durumuna değiştiği zaman damgasını belirleyin. Event tipi inferred | |||
| Taşıma Talebi Alındı | Bu etkinlik, sistem içinde bir taşıma ihtiyacının, tipik olarak bir Sipariş Serbest Bırakma olarak oluşturulmasını işaret eder. Bu olay, Oracle Transportation Management'ta yeni bir Sipariş Serbest Bırakma kaydının oluşturulduğunda yakalanır ve sevkiyat için ilk talebi temsil eder. | ||
| Neden önemli Sürecin başlangıç noktası olarak, bu aktivite toplam uçtan uca döngü süresini ölçmek ve talep modellerini anlamak için kritik öneme sahiptir. Talep anından planlamaya kadar geçen süreyi analiz etmeye yardımcı olur. Nereden alınır Bu, ORDER_RELEASE tablosundaki Sipariş Serbest Bırakma kaydının oluşturulma zaman damgasından yakalanan açık bir olaydır. INSERT_DATE veya belirli oluşturulma tarihi alanları kullanılabilir. Yakala ORDER_RELEASE tablosundaki Sipariş Serbest Bırakma'nın oluşturulma zaman damgasını kullanın. Event tipi explicit | |||
| Teslimat Kanıtı Alındı | Bu, imzalı bir belge gibi teslimatın tamamlandığına dair resmi onayın alınmasını ve kaydedilmesini temsil eder. Bu genellikle sevkiyata eklenmiş belirli bir belge türü olarak kaydedilir. | ||
| Neden önemli POD (Teslimat Kanıtı), faturalandırma ve uyuşmazlık çözümünde kritik öneme sahiptir. Alındığının takip edilmesi, süreç uyumluluğunu sağlamaya ve finansal ödeme döngüsünü hızlandırmaya yardımcı olur. Nereden alınır Bu, açık bir olay olabilir veya sevkiyata bağlı bir POD belgesinin oluşturulma tarihinden çıkarılabilir. POD belge tipine sahip belgeler için DOCUMENT tablosunu inceleyin. Yakala Sevkiyatla ilişkili bir 'POD' belge tipinin oluşturulma zaman damgasını kullanın. Event tipi explicit | |||
| Gümrükten Geçti | Uluslararası sevkiyatlar için bu aktivite, malların bir sınırda veya limanda gümrükten başarıyla geçtiği noktayı temsil eder. Bu genellikle belirli bir sevkiyat olayı veya durum güncellemesi aracılığıyla yakalanır. | ||
| Neden önemli Gümrükleme, uluslararası lojistikte önemli gecikmelerin yaygın bir kaynağıdır. Bu etkinliği takip etmek, gümrükleme döngü sürelerini ölçmeye ve optimize etmeye yardımcı olur. Nereden alınır Bu olay genellikle manuel olarak girilen veya entegre edilmiş bir 'Gümrük' sevkiyat olayı aracılığıyla yakalanır. Gümrükle ilgili belirli olay kodları için SHIPMENT_STATUS tablosunu inceleyin. Yakala SHIPMENT_STATUS tablosundan 'Gümrükten Geçti' olayının zaman damgasını belirleyin. Event tipi explicit | |||
| Navlun Faturası Denetlendi | Bu etkinlik, taşıyıcının faturasının sevkiyat detaylarıyla eşleştirildiği ve doğrulandığı navlun faturası denetim sürecinin tamamlandığını gösterir. Bir sevkiyatın fatura durumu 'VOUCHER_AUDITED' veya benzer bir duruma geçtiğinde kaydedilir. | ||
| Neden önemli Denetim, finansal kontrol ve faturalandırma tutarsızlıklarını belirlemek için çok önemlidir. Bu etkinliği analiz etmek, denetimden ödemeye kadar olan süreci kolaylaştırır ve Navlun Faturası Tutarsızlık Oranı KPI'ını destekler. Nereden alınır Sevkiyatla ilişkili Fatura nesnesindeki durum değişikliğinden çıkarılır. Denetim tamamlanmasıyla ilgili durum güncellemeleri için BILL tablosuna bakın. Yakala BILL.BILL_STATUS_VALUE_GID'nin 'Denetlendi' durumuna değiştiği zaman damgasını belirleyin. Event tipi inferred | |||
| Sevkiyat İptal Edildi | Bir sevkiyatın planlandıktan sonra iptal edilmesini temsil eder ve yaşam döngüsünü erken sonlandırır. Bu, Sevkiyat nesnesinin durumunun 'iptal edildi' olarak değişmesiyle kaydedilir. | ||
| Neden önemli İptalleri takip etmek, süreç istisnalarını ve başarısızlıklarını anlamak için önemlidir. Talep değişiklikleri veya planlama hataları gibi iptal nedenlerini belirlemeye yardımcı olur. Nereden alınır SHIPMENT tablosundaki Sevkiyat nesnesinin durum geçmişinden çıkarılır. 'PLANLAMA_İPTAL_EDİLDİ' gibi bir duruma değişikliği arayın. Yakala SHIPMENT.SHIPMENT_STATUS_VALUE_GID'nin 'İptal Edildi' durumuna değiştiği zaman damgasını belirleyin. Event tipi inferred | |||
| Sevkiyat Rezervasyonu Yapıldı | Başarılı bir ihale sonrası taşıyıcı ile yapılan resmi rezervasyon onayını temsil eder. Bu genellikle sevkiyat durumunun 'SECURE RESOURCES_BOOKED' veya eşdeğer bir duruma güncellendiğinde yakalanır. | ||
| Neden önemli Bu, taşıyıcının taahhüdünü teyit eder ve sevkiyatı resmi olarak yürütme aşamasına taşır. Sevkiyat Planlama Döngü Süresi KPI'sini ölçmek için kritik bir adımdır. Nereden alınır SHIPMENT tablosundaki Sevkiyat nesnesindeki bir durum değişikliğinden çıkarılır, taşıyıcı atamasından sonra ne zaman onaylanmış veya rezerve edilmiş bir duruma geçtiğini izler. Yakala SHIPMENT.SHIPMENT_STATUS_VALUE_GID'nin 'Rezerve Edildi' durumuna değiştiği zaman damgasını belirleyin. Event tipi inferred | |||
| Sevkiyat Transit Halinde | Malların alındığını ve şimdi aktif olarak varış noktasına doğru hareket ettiğini gösterir. Bu tek bir anlık nokta değildir, ancak bu durumun başlangıcı 'Mallar Teslim Alındı' aktivitesinden hemen sonra yakalanır. | ||
| Neden önemli Bu etkinlik, transit aşamasının başlangıcını işaret eder; bu, teslimat ilerlemesini izlemek ve transit gecikmelerini belirlemek için kritiktir. Transit Gecikme Noktaları dashboard'unun temelini oluşturur. Nereden alınır Bu, 'Mallar Teslim Alındı' ile aynı olaydır ancak süreç modellerinde genellikle yeni bir aşamanın başlangıcını belirtmek için ayrı bir etkinlik olarak temsil edilir. İlk durağın kalkışından türetilir. Yakala Mallar Teslim Alındı' ile aynı: İlk SHIPMENT_STOP'tan ACTUAL_DEPARTURE zaman damgasını kullanın. Event tipi inferred | |||
| Taşıyıcı Atandı | Bu, bir sevkiyatın belirli bir taşıyıcıya başarılı bir şekilde teklif edildiği ve kabul edildiği noktayı işaret eder. Bu, sevkiyatın teklif durumunun 'TENDER_ACCEPTED' veya benzer bir duruma değişmesi gözlemlenerek yakalanır. | ||
| Neden önemli Bunun takibi, taşıyıcı seçimi ve ihale sürecinin verimliliğini analiz etmeye yardımcı olur. Buradaki gecikmeler, sevkiyat hareket etmeden önce bile genel programı önemli ölçüde etkileyebilir. Nereden alınır SHIPMENT_TENDER tablosundaki durum geçmişinden, özellikle durumun bir taşıyıcı tarafından kabul edildiğini gösteren zaman damgası aranarak çıkarılır. Yakala Sevkiyatın ihale geçmişindeki durum değişikliğinin 'TENDER_ACCEPTED' olarak zaman damgasını kullanın. Event tipi inferred | |||
| Teslim Alma Randevusu Planlandı | Bu etkinlik, belirli bir teslim alma tarihi ve saatinin planlandığını ve kaydedildiğini gösterir. Bu genellikle sevkiyatın durak seviyesindeki randevuyla ilgili verilerden yakalanır. | ||
| Neden önemli Randevuların planlanması önemli bir koordinasyon adımıdır. Bunun analizi, planlama verimliliğini ve teslim alma dakikliğine etkisini anlamaya yardımcı olur. Nereden alınır SHIPMENT_STOP tablosunda bulunan sevkiyatın ilk durağının (teslim alma yeri) randevu tarihi ve saat alanlarının doldurulmasından çıkarılır. Yakala Teslim alma durağı için randevu alanları ilk kez doldurulduğunda zaman damgasını kullanın. Event tipi inferred | |||
| Teslimat Randevusu Planlandı | Bu etkinlik, alıcıyla belirli bir teslimat tarihi ve saatinin planlandığını işaret eder. Bu olay, sevkiyatın son durağındaki randevu verilerinden yakalanır. | ||
| Neden önemli Bu, nihai teslimatı koordine etmede önemli bir adımdır. Varış ve planlanan teslimat arasındaki süreyi analiz etmek, son kilometre operasyonlarındaki darboğazları ortaya çıkarabilir. Nereden alınır SHIPMENT_STOP tablosunda bulunan sevkiyatın son durağının (teslimat yeri) randevu tarihi ve saat alanlarının doldurulmasından çıkarılır. Yakala Teslimat durağı için randevu alanları ilk kez doldurulduğunda zaman damgasını kullanın. Event tipi inferred | |||
Veri Çekim Kılavuzları
Adımlar
- BI Publisher'a Erişin: Oracle Transportation Management (OTM) uygulamanıza giriş yapın. İş Süreci Otomasyonu, ardından Raporlama'ya gidin ve Rapor Yöneticisi'ni seçin. Bu, Oracle Business Intelligence Publisher arayüzünü açacaktır.
- Veri Modeli Oluşturun: BI Publisher'da Yeni düğmesine tıklayın ve Veri Modeli'ni seçin. Bu, raporunuz için veri kaynağını tanımlayacağınız veri modeli düzenleyicisini açacaktır.
- SQL Sorgusunu Tanımlayın: Veri modeli düzenleyicisinde, Veri Kümeleri diyagramındaki artı simgesine tıklayın ve SQL Sorgusu'nu seçin. Veri kümesine, örneğin 'OTM_Process_Mining_DS' gibi bir ad verin. OTM veritabanınızı Veri Kaynağı olarak seçin. Bu belgenin 'sorgu' bölümünde yer alan SQL sorgusunun tamamını kopyalayın ve SQL Sorgusu metin kutusuna yapıştırın.
- Parametreleri Ekleyin: Sorgu, tarih aralığı ve alan adı için parametreler kullanır (:P_START_DATE, :P_END_DATE, :P_DOMAIN_NAME). BI Publisher bunları otomatik olarak algılayacaktır. Tarih parametreleri için veri türünü Tarih olarak ayarlamak gibi özelliklerini yapılandırabilirsiniz.
- Veri Modelini Kaydedin: Kaydet simgesine tıklayın. BI Publisher kataloğunda bir konum seçin, 'OTM Sevkiyat Süreci Çıkarımı' gibi açıklayıcı bir ad sağlayın ve veri modelini kaydedin.
- Raporu Oluşturun: Kataloğa geri dönün, Yeni düğmesine tıklayın ve Rapor'u seçin. Rapor oluşturma sihirbazında, 'Veri Modeli Kullan' seçeneğini belirleyin ve az önce kaydettiğiniz veri modelini bulun.
- Rapor Düzenini Yapılandırın: Sihirbaz, bir düzen oluşturmanızda size rehberlik edecektir. Basit bir 'Tablo' düzeni yeterlidir. Veri kümenizdeki tüm sütunları tabloya sürükleyip bırakın. Herhangi bir gruplandırma veya toplama işlemi yapmayın.
- Raporu Kaydedin: Düzen yapılandırıldıktan sonra son adıma geçin ve raporu kaydedin. Veri modeline benzer bir ad verin.
- Raporu Çalıştırın: Yeni oluşturulan raporu açın. Parametreler (Başlangıç Tarihi, Bitiş Tarihi, Alan Adı) için değerler girmeniz istenecektir. İstenen aralığı girin.
- Verileri Dışa Aktarın: Rapor çalışıp verileri görüntüledikten sonra, Eylemler menüsüne tıklayın ve Dışa Aktar'ı seçin. CSV formatını seçin. Bu, olay günlüğünü içeren bir CSV dosyası indirecektir.
- Yüklemeye Hazırlanın: İndirilen CSV dosyasını açın. Sütun başlıklarının gerekli öznitelikler olan
ShipmentId,ActivityName,EventTimeve önerilen özniteliklerle eşleştiğini doğrulayın.EventTimesütununun tutarlı bir tarih/saat biçiminde olduğundan emin olun. Dosya artık ProcessMind'e yüklenmeye hazırdır.
Konfigürasyon
- Veri Kaynağı: Sorgu, genellikle GLOGOWNER olarak adlandırılan birincil OTM operasyonel veritabanı şemasına karşı çalıştırılmalıdır.
- Rapor Parametreleri:
P_START_DATE: Raporlama döneminin başlangıcı. Format 'YYYY-MM-DD' olmalıdır.P_END_DATE: Raporlama döneminin sonu. Format 'YYYY-MM-DD' olmalıdır.P_DOMAIN_NAME: Veri çekilecek belirli OTM alanı. '[Alan Adınız]' kullanın.
- Tarih Aralığı: İlk analiz için, veri hacmi ile performansı dengelemek amacıyla 3 ila 6 aylık bir dönem için veri çekilmesi önerilir. Üretim çalıştırmaları için, verileri aylık veya üç aylık gruplar halinde çekmeyi düşünün.
- İzinler: Raporu çalıştıran OTM kullanıcısının, veri modelleri ve raporlar oluşturmak ve değiştirmek için BI PUBLISHER DATA MODEL DEVELOPER ve BI PUBLISHER REPORT DEVELOPER gibi belirli rollere ihtiyacı vardır. Temel veritabanı tablolarına salt okunur erişim de gereklidir.
- Performans: Sorgu, birden fazla büyük tabloyu birleştirir. Yüksek veri hacmine sahip ortamlar için, sistem performansını etkilememek adına bu raporu yoğun olmayan saatlerde çalıştırmanız şiddetle tavsiye edilir. Raporun zamanında tamamlanmasını sağlamak için tarih aralığı mümkün olduğunca dar tutulmalıdır.
a Örnek Sorgu config
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' Adımlar
- Veritabanı Bağlantısı Kurun: Oracle Transportation Management veritabanı için salt okunur kimlik bilgilerini ve bağlantı detaylarını (ana bilgisayar, port, hizmet kimliği) edinin.
GLOGOWNERşemasına erişiminiz olması gerekecektir. - SQL İstemcisini Yapılandırın: Oracle SQL Developer, DBeaver veya Toad gibi bir SQL istemci aracını, önceki adımdaki veritabanı bağlantı detayları ile kurun.
- Sorguyu Hazırlayın: Bu belgede sağlanan SQL sorgusunun tamamını SQL istemcinizin sorgu düzenleyicisine kopyalayın.
- Sorgu Parametrelerini Ayarlayın: Sorgunun
WHEREyan tümcelerindeki yer tutucu değerleri bulun.[START_DATE],[END_DATE]ve[YOUR_DOMAIN_NAME]değerlerini çıkarma işleminiz için uygun değerlerle değiştirmelisiniz. Örneğin, tarihleri 3-6 aylık bir dönemi kapsayacak şekilde ayarlayın ve analiz etmek istediğiniz operasyonel alanı belirtin. - Sorguyu Çalıştırın: Değiştirilmiş SQL sorgusunu çalıştırın. Tarih aralığına ve sistem boyutuna bağlı olarak bu işlem birkaç dakika sürebilir.
- Sonuçları İnceleyin: Sorgu tamamlandığında, satırların döndürüldüğünden ve
ShipmentId,ActivityNameveEventTimegibi anahtar sütunların dolu olduğundan emin olmak için istemcinizdeki çıktıyı hızlıca gözden geçirin. - CSV'ye Aktarın: Tüm sonuç kümesini bir CSV dosyasına aktarın. Standart CSV ayarlarını kullanın: virgül ayırıcı, metin için çift tırnak ve UTF-8 kodlaması.
- Sütun Başlıklarını Sonlandırın: Yüklemeden önce, CSV dosyasındaki sütun başlıklarının gerekli öznitelik adlarıyla tam olarak eşleştiğini doğrulayın:
ShipmentId,ActivityName,EventTime,CarrierName,RequestedDeliveryDate,ShipmentCost,TransportationModeveDelayReason. - ProcessMind'e Yükleyin: Hazırlanan CSV dosyası artık ProcessMind'e yüklenmeye ve analiz edilmeye hazırdır.
Konfigürasyon
- Veritabanı Şeması: Sorgu, genellikle
GLOGOWNERolarak adlandırılan standart Oracle Transportation Management veritabanı şemasına karşı çalıştırılmak üzere tasarlanmıştır. - Gerekli Yetkilendirmeler: Sorguda referans verilen tablolara salt okunur erişimi olan bir veritabanı kullanıcısı gereklidir. Bu tablolar arasında
SHIPMENT,SHIPMENT_STOP,ORDER_RELEASE,SHIPMENT_STATUS,SERVPROV,SHIPMENT_COST,DOCUMENT,BILLveVOUCHERbulunur. - Alan Filtreleme: Çok kiracılı bir OTM ortamında
DOMAIN_NAME'e göre filtreleme yapmak kritik öneme sahiptir. Sorgu, doğru iş varlığı için veri çekmek üzere yapılandırılması gereken[YOUR_DOMAIN_NAME]adlı bir yer tutucu içerir. - Tarih Aralığı: Performansı ve veri hacmini yönetmek için bir başlangıç ve bitiş tarihi belirtmelisiniz.
SHIPMENT.INSERT_DATEgibi dizinlenmiş bir sütunda filtreleme yapılması önerilir. İlk analiz için 3 ila 6 aylık bir dönem tipiktir. - Durum Kodu Özelleştirmesi: Sorgu, yaygın, varsayılan durum kodlarını (örneğin,
PLANNING_PLANNED FINAL,TENDER_ACCEPTED) kullanır. OTM uygulamanız özelleştirilmiş durum kodları kullanabilir. Sisteminizin yapılandırmasına uyması içinWHEREyan tümcelerindeki değerleri ayarlamanız gerekebilir.
a Örnek Sorgu 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%';