Taşıma Yönetimi Veri Template'inuz
Taşıma Yönetimi Veri Template'inuz
- Önerilen Öznitelikler
- İzlenecek Temel Etkinlikler
- Veri Çekim Kılavuzu
Taşıma Yönetimi Öznitelikleri
| Ad | Açıklama | ||
|---|---|---|---|
| Aktivite 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 süreç 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 sunar. Etkinlik akışındaki varyasyonlar, istisnaları, yeniden işleri veya optimal yoldan sapmaları vurgulayabilir. Neden Önemli?dir? Süreç haritasındaki adımları tanımlar, sevkiyatın yolculuğunun, darboğazların ve sapmaların görselleştirilmesine ve analiz edilmesine sunar. Nereden Alınır?? Bu bilgi, Oracle Taşıma Yönetimi 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ükleme YapıldıMallar Teslim Edildi | |||
| Olay Zamanı EventTime | Belirli bir taşıma etkinliğinin veya olayının meydana geldiği tam tarih ve saat. | ||
| Açıklama Bu zaman damgası (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 büyük önem taşır. 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?dir? Bu zaman damgası (zaman damgası), olayları kronolojik olarak sıralamak ve döngü süreleri ve gecikmeler gibi tüm performans metriklerini hesaplamak için gereklidir. Nereden Alınır?? OTM'nin takip olayı veya durum geçmişi tablolarındaki olaylarla ilişkili zaman damgası (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 (Case ID) 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 en önemli bileşenidir. Process Mining'de, Sevkiyat Kimliğine göre olayların analizi, taşıma süreç döngüsünün eksiksiz uçtan uca görünümünü sunar. 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 detaylı bir anlayış sunar. Neden Önemli?dir? Bu, tüm süreç adımlarını birbirine bağlayan temel Case ID'dir ve her bir sevkiyat için tüm taşıma yolculuğunun eksiksiz bir analizini sunar. Nereden Alınır?? Bu, Oracle Taşıma Yönetimi'ta birincil büyük önem taşı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-001, 2, 3, 45SH-001, 2, 3, 46SH-001, 2, 3, 47 | |||
| Gecikme Nedeni DelayReason | Gönderinin ilerlemesindeki 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 kök neden analizinde büyük önem taşır. İş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?dir? Geç teslimatların temel nedenlerine ilişkin kritik önemli bilgi sağlayarak, yaygın sorunları azaltmak ve zamanında performansını iyileştirmek için hedeflenmiş eylemler yapılmasını sunar. 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 | |||
| Gönderi Maliyeti ShipmentCost | Sevkiyatın taşınması için tahsil edilen 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ı sunar. 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?dir? 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 sunar. 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ı (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ı (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ış kontrol paneli'u için gereklidir. Sapmaların analizi, gecikmelerin sistematik nedenlerini belirlemeye ve müşteri memnuniyetini artırmaya yardımcı olur. Neden Önemli?dir? 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 önemli bir boyuttur. Farklı modlar arasında süreç performansını ve maliyetlerini karşılaştırmaya sunar. Ö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?dir? Performans ve maliyet analizinin taşıma moduna göre segmentlere ayrılmasını sağlayarak, kamyon, hava, deniz veya demiryolu lojistiğine özgü stratejik bilgiler 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 sunar. Bu stratejik bilgiler, taşıyıcı seçimi, sözleşme müzakereleri ve performans yönetimi için büyük önem taşır. Neden Önemli?dir? Farklı taşıyıcılar arasında performans kıyaslaması yapmayı sunar, bu da taşıyıcı seçimi, müzakere ve maliyet azaltma optimizasyonu için büyük önem taşır. 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 önemli bilgi, 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?dir? 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 Enerji ve AltyapıiLivingston InternationalFlexport | |||
| Hedef Ülke 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 büyük önem taşır. Ö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?dir? 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 büyük önem taşır. 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 | |||
| Kaynak Sistem SourceSystem | Olay verilerinin kaynaklandığı sistemi, örneğin Oracle Taşıma Yönetimi'ı 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?dir? Veri kaynağı hakkında önemli bilgiler sunar, bu da veri doğrulama ve çok sistemli ortamlardaki analizler için önemlidir. Nereden Alınır?? Bu, genellikle veri çıkarma 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 önemli bilgi sunar. 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?dir? Hesap verebilirliği sunar ve bireysel kullanıcı veya ekip tarafından iş yükü ve performans analizini sunar. 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 büyük önem taşır. Neden Önemli?dir? 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?dir? 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 süreç 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 kontrol paneli'larda bağlam güçlüak 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?dir? 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 sunar; ö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 sunar. 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 stratejik bilgiler, süreçleri her sevkiyat tipinin özel ihtiyaçlarını daha iyi karşılayacak şekilde uyarlamaya yardımcı olur. Neden Önemli?dir? 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 verinin kaynak sistemden son yenilenme veya çıkarılma zamanını gösteren zaman damgası (zaman damgası)dır. | ||
| Açıklama Bu nitelik, verilerin Oracle Taşıma Yönetimi'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ı (zaman damgası), process mining analizinin zamanlamasını anlamak için büyük önem taşır. 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ı güçlüak için gereklidir. Neden Önemli?dir? 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 sunar. 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ı (zaman damgası)dır. Örnekler::::::: 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
| 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 Analizleri kontrol paneli'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ı sunar. Neden Önemli?dir? 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, event logndeki 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ı (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ış kontrol paneli'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?dir? 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 sunar. Nereden Alınır?? Bu nitelik kaynak sistemde bulunmamaktadır. Veri dönüşümü sırasında 'Mallar Teslim Edildi' etkinliğinin zaman damgası (zaman damgası) ile 'RequestedDeliveryDate' niteliğinin karşılaştırılmasıyla hesaplanır. Örnekler::::::: truefalse | |||
Taşıma Yönetimi Aktiviteleri
| 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?dir? 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 gereklidir. 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ı (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?dir? 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ı (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?dir? Bu etkinlik, taşıma süreç 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 büyük önem taşır. 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ı (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 somut 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?dir? 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ı (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 Taşıma Yönetimi'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?dir? Sürecin başlangıç noktası olarak, bu aktivite toplam uçtan uca döngü süresini ölçmek ve talep modellerini anlamak için büyük önem taşır. 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ı (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ı (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?dir? POD (Teslimat Kanıtı), faturalandırma ve uyuşmazlık çözümünde büyük önem taşır. Alındığının takip edilmesi, süreç uyumluluğunu güçlüaya 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ı (zaman damgası)nı kullanın. Event tipi explicit | |||
| Gümrükleme Yapıldı | 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?dir? 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ı (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?dir? Denetim, finansal kontrol ve faturalandırma tutarsızlıklarını belirlemek için büyük önem taşır. 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ı (zaman damgası)nı belirleyin. Event tipi inferred | |||
| Sevkiyat İptal Edildi | Bir sevkiyatın planlandıktan sonra iptal edilmesini temsil eder ve süreç döngüsünü erken sonlandırır. Bu, Sevkiyat nesnesinin durumunun 'iptal edildi' olarak değişmesiyle kaydedilir. | ||
| Neden Önemli?dir? İ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ı (zaman damgası)nı belirleyin. Event tipi inferred | |||
| Sevkiyat Rezerve Edildi | 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?dir? 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 temel 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ı (zaman damgası)nı belirleyin. Event tipi inferred | |||
| Sevkiyat Yolda | 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?dir? Bu etkinlik, transit aşamasının başlangıcını işaret eder; bu, teslimat ilerlemesini izlemek ve transit gecikmelerini belirlemek için büyük önem taşır. Transit Gecikme Noktaları kontrol paneli'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ı (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?dir? 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ı (zaman damgası) aranarak çıkarılır. Yakala Sevkiyatın ihale geçmişindeki durum değişikliğinin 'TENDER_ACCEPTED' olarak zaman damgası (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?dir? 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ı (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?dir? 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ı (zaman damgası)nı kullanın. Event tipi inferred | |||
Veri Çıkarma Kılavuzları
Adımlar
- BI Publisher'a Erişin: Oracle Taşıma Yönetimi (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ışanş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, event lognü 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),(EventTime)ve önerilen öznitelikler.le eşleştiğini doğrulayın.(EventTime)sü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ı güçlüak 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 Taşıma Yönetimi 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ışanş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,(ActivityName)ve(EventTime)gibi 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 Taşıma Yönetimi 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 büyük önem taşır. 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%';