Taşıma Yönetimi Veri Templateiniz
Taşıma Yönetimi Veri Templateiniz
- Toplanması önerilen öznitelikler
- İzlenecek temel etkinlikler
- SAP Taşıma Yönetimi için veri çıkarma kılavuzu
Taşıma Yönetimi öznitelikleri
| Ad | Açıklama | ||
|---|---|---|---|
| Etkinlik adı ActivityName | Taşıma sürecinde gerçekleşen belirli bir iş olayının veya adımın adı. | ||
| Açıklama Etkinlik adı, sevkiyatın yaşam döngüsündeki Shipment Planned, Goods Picked Up veya Goods Delivered gibi tek bir görevi ya da aşamayı belirtir. Keşfedilen süreç haritasındaki düğümleri bu etkinlikler oluşturur. Etkinliklerin sırasını ve sıklığını analiz etmek; standart süreç akışını, sapmaları, darboğazları ve yeniden çalışma döngülerini belirlemeye yardımcı olur. Taşıma yönetiminde süreç keşfi ve uyumluluk kontrolünün temelini oluşturur. Neden önemli? Bu öznitelik, taşıma sürecindeki adımları tanımlar ve uçtan uca sevkiyat akışının görselleştirilip analiz edilmesini sağlar. Nereden alınır? Bu bilgi genellikle SAP TM operasyon takibindeki olay işleyicide kaydedilen olay kodlarından veya durum değişikliklerinden elde edilir. İş nesnesi durum değişikliklerini kaydeden tablolardan ya da belirli olay mesajlarından alınabilir. Örnekler Sevkiyat planlandıTaşıyıcı atandıMallar teslim alındıMallar teslim edildiTeslimat kanıtı alındı | |||
| Olay zamanı EventTime | Belirli bir etkinliğin veya olayın ne zaman gerçekleştiğini gösteren zaman damgası. | ||
| Açıklama Olay zamanı, taşıma sürecindeki her etkinliğin kesin tarih ve saatini verir. Bu zaman verileri, çevrim sürelerini, işlem sürelerini ve süreç adımları arasındaki bekleme sürelerini hesaplamak için gereklidir. Analizde bu öznitelik, olayları doğru sıraya koymak, kronolojik bir günlük oluşturmak ve zamana dayalı performans analizleri yapmak için kullanılır. Gecikmeleri belirlemek, süreç verimliliğini ölçmek ve performansı takvimlere ya da hizmet seviyesi anlaşmalarına göre değerlendirmek açısından önemlidir. Neden önemli? Zaman damgası, olayları kronolojik sıraya koymak ve çevrim süresi ile zamanında teslimat gibi tüm performans metriklerini hesaplamak için gereklidir. Nereden alınır? Bildirilen olayların zaman damgalarını saklayan /SAPTRX/EH_EVMSG gibi SAP TM olay işleyici tablolarından alınır. Örnekler 2023-04-15T10:00:00Z2023-04-16T14:30:00Z2023-04-20T09:15:00Z | |||
| Sevkiyat ShipmentId | Analizin temel vakasını oluşturan, malların tek bir taşıma hareketine ait benzersiz tanımlayıcı. | ||
| Açıklama Shipment ID, taşıma süreciyle ilgili tüm etkinlikleri ve olayları bir araya getiren birincil anahtardır. İlk talepten teslimat kanıtının alınmasına ve ödemenin yapılmasına kadar uçtan uca tek bir taşıma sürecini temsil eder. Process Mining’de bu öznitelik, vaka görünümünü oluşturmak için gereklidir ve analistlerin her sevkiyatın tüm yolculuğunu izlemesini sağlar. Sevkiyat bazında süreç çeşitlerini, çevrim sürelerini ve sonuçları analiz etmeye imkân vererek taşıma performansına dair kapsamlı bir görünüm sunar. Neden önemli? Bu temel vaka tanımlayıcısı, tüm olayları ve veri noktalarını belirli bir taşıma siparişine bağlar. Uçtan uca süreç analizi için gereklidir. Nereden alınır? Bu tanımlayıcı, SAP TM’deki Freight Order numarası veya Freight Booking numarasıdır. /SCMTMS/D_TORROT ve /SCMTMS/D_TRQROT gibi tablolarda bulunabilir. Örnekler 610000432161000056786100009876 | |||
| Bitiş zamanı EndTime | Belirli bir etkinliğin ne zaman tamamlandığını gösteren zaman damgası. | ||
| Açıklama StartTime bir olayın başlangıcını, EndTime ise bitişini gösterir. Bu bilgi, Customs Clearance veya Goods Loading gibi süre gerektiren etkinliklerde özellikle yararlıdır. EndTime ile StartTime arasındaki fark, etkinliğin işlem süresini verir. Process Mining analizinde başlangıç ve bitiş zamanlarının ikisinin de bulunması, etkinlik sürelerini daha ayrıntılı incelemeyi ve işlem süresini bekleme süresinden ayırmayı sağlar. Böylece verimsizliğin bir görevin yürütülmesinden mi yoksa görevler arasındaki devir teslimlerden mi kaynaklandığını belirleyebilirsiniz. Neden önemli? Etkinliklerin işlem sürelerini kesin olarak hesaplamayı ve aktif çalışma süresini olaylar arasındaki bekleme süresinden ayırmayı sağlar. Nereden alınır? StartTime gibi bu bilgi de olay işleyici tablolarından alınır. İlgili etkinliğe ait ayrı bir completed olayıyla eşleşebilir. Örnekler 2023-04-15T11:30:00Z2023-04-16T15:00:00Z2023-04-20T09:45:00Z | |||
| Talep edilen teslimat tarihi RequestedDeliveryDate | Müşterinin talep ettiği veya satış siparişinde belirtilen teslimat tarihi ve saati. | ||
| Açıklama Talep edilen teslimat tarihi, Mallar teslim edildi etkinliği için hedeflenen son tarihtir. Zamanında teslimat performansını ölçerken temel alınır. Bu tarih, Zamanında teslimat oranı KPI’ını hesaplamak için kullanılır. Kuruluşlar, gerçek teslimat zaman damgasını talep edilen tarihle karşılaştırarak hizmet düzeyi taahhütlerini yerine getirip getirmediklerini belirleyebilir. Sapmaları incelemek; taşıyıcı performansı, planlama gecikmeleri veya gümrükte bekleme gibi tekrar eden gecikme nedenlerini ortaya çıkarabilir. Neden önemli? Zamanında teslimat performansını ölçmek için temel oluşturur. Müşteri memnuniyetini ve operasyonel mükemmelliği izleyen önemli bir KPI’dır. Nereden alınır? Bu tarih genellikle önceki satış siparişinden veya SAP ERP’deki stok nakil siparişinden aktarılır. Navlun Birimi ya da Navlun Siparişi belgesinin tarih ve saat alanlarında saklanır. Örnekler 2023-05-20T17:00:00Z2023-06-01T12:00:00Z2023-06-15T23:59:59Z | |||
| Taşıma türü ModeOfTransport | Gönderide kullanılan kara, demir, hava veya deniz yolu gibi taşıma yöntemi. | ||
| Açıklama Bu öznitelik, taşıma türünü belirtir. Her türün maliyet yapısı, taşıma süresi ve süreç karmaşıklığı farklıdır. Örneğin, uluslararası hava kargo gönderisinde gümrük işlemleri gibi etkinlikler yer alırken yurt içi kamyon taşımacılığında farklı adımlar bulunur. Süreçleri taşıma türüne göre analiz ederek her türe uygun iyileştirme çalışmaları belirleyebilirsiniz. Bu analiz, özellikle hızlandırılmış hava kargosu gibi yüksek maliyetli seçeneklerin standart ve daha ekonomik taşıma türlerine kıyasla ne sıklıkta kullanıldığını görmek açısından maliyet incelemelerinde önemlidir. Bu gruplandırma, taşıma harcamalarını anlamanıza ve kontrol etmenize yardımcı olur. Neden önemli? Taşıma türüne göre maliyet, süre ve süreç farklılıklarını analiz etmenizi sağlar. Maliyetleri iyileştirmek ve yüksek maliyetli taşıma seçeneklerinin kullanımını belirlemek için bu analizden yararlanabilirsiniz. Nereden alınır? Navlun Siparişi veya Navlun Rezervasyonu belgesindeki temel alanlardan biridir. Genellikle Transportation Mode veya MOT olarak adlandırılır. Örnekler 01 (Kara yolu)02 (Demir yolu)04 (Hava yolu)05 (Deniz yolu) | |||
| Taşıyıcı adı CarrierName | Gönderi için belirlenen taşıma şirketinin veya lojistik hizmet sağlayıcısının adı. | ||
| Açıklama Taşıyıcı adı, malları fiziksel olarak taşımaktan sorumlu şirketi belirtir. Farklı taşıyıcıların hizmet düzeyi, maliyeti ve güvenilirliği değişebileceğinden bu bilgi performans analizinde önemli bir ölçüttür. Process Mining çalışmalarında bu öznitelik, farklı taşıyıcıların performansını gruplandırıp karşılaştırmak için kullanılır. Taşıyıcı bazında performans kartları oluşturabilir, zamanında teslimat oranlarını izleyebilir, maliyetleri karşılaştırabilir ve gecikme ya da anlaşmazlıklarla en sık ilişkilendirilen taşıyıcıları belirleyebilirsiniz. Bu bilgiler, taşıyıcı yönetimi ve satın alma kararlarına yön verir. Neden önemli? Farklı taşıyıcıların performansını karşılaştırmanızı sağlar. Bu karşılaştırma, taşıyıcı seçimini, maliyetleri ve hizmet düzeylerini iyileştirmeye yardımcı olur. Nereden alınır? Bu bilgi, Navlun Siparişi veya Navlun Rezervasyonu belgesinde saklanır. Taşıyıcı için tanımlanan iş ortağı işlevi üzerinden belgeye bağlanır. Örnekler DHL ExpressFedEx FreightMaersk LineUnion Pacific Railroad | |||
| Toplam navlun maliyeti TotalFreightCost | Gönderi için hesaplanan veya faturalanan toplam maliyet. | ||
| Açıklama Toplam navlun maliyeti, gönderinin finansal etkisini gösterir. Bu tutar, taşıma yönetimi sisteminin hesapladığı maliyet veya mutabakat sonrasında taşıyıcının faturasında yer alan nihai tutar olabilir. Bu öznitelik, süreç analizine finansal boyut kazandırır. Analistler en pahalı süreç varyantlarını belirleyebilir, gecikme veya güzergâh değişikliklerinin maliyetini hesaplayabilir ve farklı taşıyıcıların ya da taşıma türlerinin maliyet etkinliğini karşılaştırabilir. Taşıma harcamalarını ve hizmet maliyetini inceleyen Dashboardlar için temel bir veridir. Neden önemli? Sürece finansal bir boyut ekleyerek taşıma harcamalarını, gönderi başına maliyeti ve süreç verimsizliklerinin finansal etkisini analiz etmenizi sağlar. Nereden alınır? SAP TM’de ücret hesaplaması tamamlandıktan sonra Navlun Mutabakatı Belgesinden alınır. /SCMTMS/D_SFIRHD gibi tablolarda bulunabilir. Örnekler 250.751200.005430.50 | |||
| Zamanında teslim edildi mi IsOnTimeDelivery | Malların talep edilen teslimat tarihinde veya daha önce teslim edilip edilmediğini belirten boole değeri. | ||
| Açıklama Bu hesaplanan öznitelik, Mallar teslim edildi etkinliğinin zaman damgasını Talep edilen teslimat tarihiyle karşılaştırır. Teslimat zamanında veya erken yapıldıysa true, geciktiyse false değerini alır. Bu öznitelik, her gönderi için net bir ikili sonuç sunarak performans analizini kolaylaştırır. Zamanında teslimat performansı Dashboardının ve ilgili KPI’ın temelini oluşturur. Analistler, geciken gönderileri kolayca filtreleyip düşük performansın nedenlerini inceleyebilir. Neden önemli? Teslimat taahhütlerine uyumu doğrudan ölçer ve zamanında teslimat KPI’ının hesaplanmasını ve görselleştirilmesini kolaylaştırır. Nereden alınır? Bu öznitelik SAP TM’de saklanmaz. Veri dönüştürme sırasında gerçek teslimat olayı zaman damgası Talep edilen teslimat tarihiyle karşılaştırılarak hesaplanmalıdır. Örnekler truefalse | |||
| Anlaşmazlık nedeni DisputeReason | Navlun faturası için anlaşmazlık bildirildiğinde belirtilen neden. | ||
| Açıklama Taşıyıcının faturası SAP TM’de hesaplanan beklenen maliyetle uyuşmadığında anlaşmazlık kaydı oluşturulur. Bu öznitelik, Fiyat uyuşmazlığı, Yinelenen fatura veya Onaylanmamış ek ücret gibi farkın nedenini kaydeder. Anlaşmazlık nedenlerini incelemek, Navlun faturası hataları ve anlaşmazlık oranı Dashboardı için önemlidir. Bu inceleme, faturalama hatalarının temelinde ana veri sorunları, taşıyıcı hataları veya operasyonel aksaklıklar olup olmadığını belirlemeye yardımcı olur. Kuruluş, bu bilgilerle anlaşmazlıkları azaltmaya yönelik adımlar atabilir; böylece ödeme süreci hızlanır ve idari iş yükü azalır. Neden önemli? Navlun faturalama hatalarının temel nedenini göstererek fatura anlaşmazlıklarını azaltmaya ve mutabakat sürecini iyileştirmeye yönelik adımlar belirlemenizi sağlar. Nereden alınır? Bu bilgi, Navlun Mutabakatı Belgesiyle ilişkili anlaşmazlık yönetimi vakasında kaydedilir. Örnekler Ücret uyuşmazlığıYanlış ağırlıkOnaylanmamış demuraj ücretiYinelenen fatura | |||
| Anlaşmazlık var mı IsDisputed | Gönderinin navlun faturası için anlaşmazlık kaydı oluşturulup oluşturulmadığını belirten boole değeri. | ||
| Açıklama Bu hesaplanan gösterge, navlun mutabakatıyla ilgili anlaşmazlık kaydı bulunan gönderileri belirler. Anlaşmazlık oluşturulduysa true, oluşturulmadıysa false değerini alır. Navlun anlaşmazlığı oluşturuldu etkinliğinin bulunup bulunmadığına veya Anlaşmazlık nedeni alanının boş olup olmadığına bakılarak hesaplanabilir. Bu öznitelik, navlun mutabakatı sürecinin analizini kolaylaştırır. Navlun faturalama farkı oranı KPI’ını kolayca hesaplamanızı ve anlaşmazlık bulunan tüm gönderileri filtrelemenizi sağlar. Analistler daha sonra faturalama hatalarının temel nedenini bulmak için bu gönderilerin taşıyıcı, güzergâh veya ücret türü gibi ortak özelliklerini inceleyebilir. Neden önemli? Sorunlu navlun mutabakatlarını kolayca belirlemenizi, anlaşmazlık oranını hızla hesaplamanızı ve faturalama hatalarının temel nedenlerini incelemenizi sağlar. Nereden alınır? Bu öznitelik SAP TM’de saklanmaz. Navlun Mutabakatı Belgesine bağlı bir anlaşmazlık vakası olup olmadığına göre hesaplanmalıdır. Örnekler truefalse | |||
| Çıkış ülkesi OriginCountry | Gönderinin çıktığı ülke. | ||
| Açıklama Bu öznitelik, taşıma yolculuğunun başladığı ülkeyi belirtir. İlk teslim alma noktasının adresinden alınır. Süreci çıkış ülkesine göre analiz ederek performans, maliyet ve karmaşıklık açısından bölgesel farklılıkları belirleyebilirsiniz. Gümrük işlemlerinin daha uzun sürdüğü, taşıyıcı maliyetlerinin yüksek olduğu veya gecikmelerin daha sık yaşandığı ülkeler bu analizle ortaya çıkabilir. Bu coğrafi gruplandırma, küresel tedarik zincirini yönetmek ve lojistik stratejilerini bölgelere göre uyarlamak için önemlidir. Neden önemli? Gönderi performansını coğrafi bölgelere göre analiz etmenizi, bölgesel darboğazları, maliyet etkenlerini ve süreç farklılıklarını belirlemenizi sağlar. Nereden alınır? Navlun Siparişi belgesindeki ilk durağın kaynak konumuna ait adres bilgilerinin bir parçasıdır. Örnekler DEUSCNMX | |||
| Gecikme nedeni DelayReason | Gönderideki gecikmenin nedenini açıklayan kod veya metin. | ||
| Açıklama Gecikme nedeni özniteliği, planlanan programdan sapmanın nedenini kaydeder. Bu nedenler arasında Kötü hava koşulları, Gümrükte bekleme veya Taşıyıcı gecikmesi bulunabilir. Bilgi genellikle elle girilir veya taşıyıcıdan gelen olay mesajıyla iletilir. Bu öznitelik, temel neden analizinde kullanılır. Analistlerin gönderinin geç kaldığını görmekle kalmayıp gecikmenin nedenini anlamasına yardımcı olur. Gecikme nedenlerini sınıflandırıp sayısal olarak inceleyerek tekrar eden sorunları belirleyebilir ve iyileştirme çalışmalarını taşıyıcı iletişimini geliştirmek ya da yoğunluğu önlemek için güzergâhları düzenlemek gibi etkili alanlara yöneltebilirsiniz. Neden önemli? Gönderilerin neden geciktiğini gösterir. Böylece istisnaların azaltılması ve zamanında teslimat performansının iyileştirilmesi için temel nedenleri inceleyebilirsiniz. Nereden alınır? SAP TM’nin olay yönetimi çerçevesinde, Varış/Gidiş gecikti olayı bildirildiğinde olay kodu ve nedeni olarak kaydedilebilir. Örnekler WEATHER_DELAYCUSTOMS_INSPECTIONPORT_CONGESTIONMECHANICAL_FAILURE | |||
| Gönderi durumu ShipmentStatus | Veriler çıkarılırken gönderinin genel durumunu belirtir. | ||
| Açıklama Gönderi durumu, gönderinin yaşam döngüsündeki mevcut aşamayı gösterir. Durum Planlanıyor, Taşımaya hazır, Yürütülüyor, Teslim edildi veya İptal edildi olabilir. Bu alan, vakayla ilgili bilinen son durumu yansıtır. Gönderileri sonuçlarına göre filtreleyip analiz etmek için bu öznitelikten yararlanabilirsiniz. Örneğin, uçtan uca çevrim süresini ölçmek için yalnızca tamamlanan gönderileri inceleyebilir veya iptallerin temel nedenlerini anlamak üzere sadece iptal edilen gönderilere odaklanabilirsiniz. Süreç akışını yorumlarken bu bilgi önemli bir bağlam sağlar. Neden önemli? Her gönderinin genel sonucunu gösterir. Böylece gönderileri tamamlanma, iptal edilme veya hâlâ yolda olma durumlarına göre filtreleyip analiz edebilirsiniz. Nereden alınır? SAP TM’de Navlun Siparişi veya Navlun Rezervasyonu belgesinin başlığındaki genel durum alanıdır. Örnekler PlanlanıyorTaşımaya hazırYürütülüyorGerçekleştirildiİptal edildi | |||
| Kaynak sistem SourceSystem | Olay verilerinin geldiği sistem. | ||
| Açıklama Bu öznitelik, veriyi oluşturan kaynak sistemi (ör. SAP TM, SAP ERP veya harici bir taşıyıcı portalı) belirtir. Verinin nereden geldiğini anlamanızı ve veri entegrasyon noktalarını görmenizi sağlar. Karmaşık bir sistem ortamında kaynak sistemi bilmek, verileri doğrulamak, entegrasyon sorunlarını gidermek ve farklı sistemlerin genel sürece nasıl katkıda bulunduğunu anlamak için önemlidir. Örneğin, kurum içi bir sistemin bildirdiği olayları üçüncü taraf bir lojistik sağlayıcının bildirdiklerinden ayırmaya yardımcı olur. Neden önemli? Verinin kaynağını belirtir. Veri yönetişimi, sorun giderme ve birden fazla sistemdeki süreç düzenlemesini anlamak için gereklidir. Nereden alınır? Bu bilgi genellikle sistem günlüğünde saklanır veya veri girişini oluşturan arayüz ya da kullanıcıya göre belirlenebilir. Örnekler SAP_TM_P01SAP_ERP_E01CARRIER_PORTAL_XYZ | |||
| Kullanıcı adı UserName | Bir etkinliği gerçekleştiren kişinin kullanıcı kimliği veya adı. | ||
| Açıklama Bu öznitelik, Shipment Planned veya Invoice Verified gibi manuel bir etkinlikten sorumlu çalışanı ya da kullanıcıyı belirtir. Süreç adımlarını bunları gerçekleştiren kişilerle veya ekiplerle ilişkilendirir. Etkinlikleri kullanıcı bazında analiz etmek, iş yükü dağılımını anlamaya, eğitim ihtiyaçlarını belirlemeye ve yüksek performans gösterenleri fark etmeye yardımcı olur. Ayrıca uyumluluk ve denetim için kimin neyi, ne zaman yaptığını açıkça kaydeder. Farklı kullanıcıların aynı görevi nasıl gerçekleştirdiğindeki farklılıkları da ortaya çıkarabilir. Neden önemli? Manuel süreç adımlarını belirli kullanıcılarla ilişkilendirerek iş yükünü, bireysel performansı ve eğitim fırsatlarını analiz etmenizi sağlar. Nereden alınır? Genellikle taşıma belgelerine ait değişiklik günlüğünde veya belge başlığı tablolarında, Oluşturan ya da Değiştiren alanlarında (ör. ERNAM, AENAM) bulunur. Örnekler CB998030SMITHJPLANNER_EU | |||
| Planlanan teslim alma tarihi ScheduledPickupDate | Taşıyıcının malları sevkiyat noktasından teslim alması için planlanan tarih ve saat. | ||
| Açıklama Planlanan teslim alma tarihi, fiziksel taşımanın başlaması için üzerinde anlaşılan zamanı belirtir. Gönderinin yürütme aşamasındaki önemli bir kilometre taşıdır. Yolculuğun ilk ayağındaki zamanlamayı izlemek için bu öznitelikten yararlanabilirsiniz. Planlanan teslim alma saatini Mallar teslim alındı olayının gerçek zaman damgasıyla karşılaştırarak teslim alma gecikmelerini hesaplayabilirsiniz. Bu karşılaştırma, hem sevkiyat noktasının hem de taşıyıcının performansını ve güvenilirliğini değerlendirmenize yardımcı olur. Neden önemli? Teslim alma zamanlamasını ölçmek için temel oluşturur ve gönderinin fiziksel yolculuğunun en başındaki gecikmeleri belirlemeye yardımcı olur. Nereden alınır? SAP TM’de Navlun Siparişi belgesinin durak sıralamasında saklanan planlanmış tarih ve saattir. Örnekler 2023-05-18T09:00:00Z2023-05-30T14:00:00Z2023-06-12T10:30:00Z | |||
| Son veri güncellemesi LastDataUpdate | Process Mining Veri Seti için en son veri çıkarımının veya yenilemenin zaman damgası. | ||
| Açıklama Bu öznitelik, analiz edilen verilerin ne kadar güncel olduğunu gösterir. Verilerin SAP TM gibi kaynak sistemlerden Process Mining aracına en son ne zaman aktarıldığını belirtir. Her Dashboard veya analiz için önemli bir üst veri öğesidir; içgörülerin ne kadar güncel olduğunu anlamanıza yardımcı olur. Gerçek zamanlı bilgileri mi yoksa önceki bir döneme ait anlık görüntüyü mü incelediğinizi göstererek zamanında ve bilinçli kararlar almanızı sağlar. Neden önemli? Verilerin güncelliğine dair önemli bilgiler sunar ve analizlerin ne kadar güncel olduğunu anlamanıza yardımcı olur. Nereden alınır? Bu bilgi genellikle veri alımı sırasında ETL (Extract, Transform, Load) aracı veya veri hattı tarafından oluşturulup saklanır. Örnekler 2023-10-27T08:00:00Z2023-10-26T08:00:00Z | |||
| Varış ülkesi DestinationCountry | Gönderinin teslim edileceği ülke. | ||
| Açıklama Bu öznitelik, son teslimat konumunun adresinden alınan gönderinin nihai varış ülkesini belirtir. Çıkış ülkesinde olduğu gibi, varış ülkesine göre analiz yapmak da bölgesel lojistik sorunlarını anlamak için önemlidir. Hangi varış noktalarında teslimat gecikmelerinin daha sık yaşandığını veya son kilometre teslimat maliyetlerinin daha yüksek olduğunu ortaya çıkarabilir. Bu bilgiler, ağın iyileştirilmesine, gerçekçi teslimat beklentileri belirlenmesine ve uluslararası ticaret uyumluluğunun yönetilmesine yardımcı olur. Neden önemli? Süreç performansını varış noktasına göre analiz etmenizi sağlar. Belirli teslimat bölgeleri, gümrük makamları veya son kilometre taşıyıcılarıyla ilgili sorunları ortaya çıkarır. Nereden alınır? Navlun Siparişi belgesindeki son durağın varış konumuna ait adres bilgilerinin bir parçasıdır. Örnekler FRCAGBJP | |||
Taşıma Yönetimi etkinlikleri
| Aktivite | Açıklama | ||
|---|---|---|---|
| Mallar teslim alındı | Bu etkinlik, malların fiziksel taşınmasının başladığını gösterir. Taşıyıcı, malların yüklendiğini ve göndericinin konumundan yola çıktığını bildirdiğinde kaydedilir. | ||
| Neden önemli? Bu önemli operasyon aşaması, taşıma sürecinin başladığını gösterir. Zamanında teslimat performansını izlemek ve sevkiyatın durumunu doğru biçimde görmek için bu bilgi gereklidir. Nereden alınır? Bu olay genellikle SAP TM ile entegre SAP Event Management sistemine Departure veya Loading End olayı olarak kaydedilir ve Freight Order’ın operasyon durumunu günceller. Doğrudan Freight Order’a da kaydedilebilir. Kaydedin Freight Order’ın çıkış konumu için bildirilen Departure operasyon olayının zaman damgasını kullanın. Olay türü explicit | |||
| Mallar teslim edildi | Bu etkinlik, sevkiyatın nihai varış noktasına ulaşmasını ve fiziksel taşımanın tamamlanmasını ifade eder. Taşıyıcı, malların alıcının konumunda boşaltıldığını bildirdiğinde kaydedilir. | ||
| Neden önemli? Zamanında teslimat performansını ve müşteri memnuniyetini ölçmek için en önemli aşamadır. Genellikle faturalama ve mutabakat süreçlerini de başlatır. Nereden alınır? Bu adım, SAP TM’de Arrival at Destination veya Unloading End operasyon olayı olarak kaydedilir ve Freight Order’ın operasyon durumunu günceller. Veriler çoğunlukla taşıyıcıdan alınır. Kaydedin Freight Order’ın son durağı için bildirilen Arrival at Destination operasyon olayının zaman damgasını kullanın. Olay türü explicit | |||
| Navlun mutabakat belgesi oluşturuldu | Bu etkinlik, taşıyıcıya ödenecek taşıma maliyetlerini hesaplayan Freight Settlement Document (FSD) belgesinin oluşturulmasını ifade eder. Tahakkuk ve fatura doğrulama işlemlerinde kullanılan temel belgedir. | ||
| Neden önemli? Bu adımla taşıma sürecinin finansal mutabakat aşaması başlar. Teslimat ile mutabakat belgesinin oluşturulması arasındaki süreyi analiz etmek, finansal işlemlerdeki darboğazları belirlemeye yardımcı olur. Nereden alınır? Bu olay, Freight Settlement Document oluşturulduğunda açıkça kaydedilir. Belgenin oluşturulma zaman damgası, /SCMTMS/D_SFIRHD başlık tablosunda bulunur. Kaydedin Freight Settlement Document belgesinin oluşturulma tarihini ve saatini kullanın. Olay türü explicit | |||
| Ödeme yapıldı | Bu son etkinlik, taşıyıcıya taşıma hizmetleri için ödeme yapıldığını doğrular. Genellikle SAP TM’den doğrulanmış fatura alındıktan sonra bağlantılı ERP sisteminde gerçekleşir. | ||
| Neden önemli? Bu adım, uçtan uca taşıma yaşam döngüsünün gerçek bitişini gösterir. Genel süreç süresini ve zamanında ödeme KPI’larını ölçmek için gereklidir. Nereden alınır? Bu bilgi ERP sisteminde (ör. S/4HANA Finance) bulunur. Fatura numarası üzerinden Freight Settlement Document ile ilişkilendirilebilir. Durum güncellemesi SAP TM’ye geri gönderilebilir veya veriler BKPF ve BSEG gibi ERP tablolarından alınabilir. Kaydedin ERP sisteminden ödeme kapatma tarihini alın ve fatura referansını kullanarak sevkiyatla ilişkilendirin. Olay türü explicit | |||
| Sevkiyat iptal edildi | Bu etkinlik, talep edildikten veya planlandıktan sonra sevkiyatın iptal edilmesini ifade eder. Operasyona geçmeyen süreçlerin son noktasıdır. | ||
| Neden önemli? İptalleri izlemek, müşteri talebindeki değişiklikler veya planlama hataları gibi süreç başarısızlığı nedenlerini belirlemeye yardımcı olur. Yüksek iptal oranları, sipariş yönetimi veya planlamadaki temel sorunlara işaret edebilir. Nereden alınır? Bu olay, Forwarding Order veya Freight Order yaşam döngüsü durumunun Cancelled olarak değişmesinden çıkarılır. Durum değişikliğinin zaman damgası olay zamanını belirtir. Kaydedin Belgenin yaşam döngüsü durumu Cancelled olarak ayarlandığında oluşan zaman damgasını kaydedin. Olay türü inferred | |||
| Sevkiyat planlandı | Bu etkinlik, taşıma gereksinimlerinin somut bir sevkiyat planında birleştirildiğini gösterir. Planlanan güzergâh ve kaynakları içeren Freight Order (kara veya demir yolu) ya da Freight Booking (deniz veya hava yolu) oluşturulup kaydedildiğinde yakalanır. | ||
| Neden önemli? Bu aşamanın tamamlanması, lojistik operasyonlarının başlatılması için gereklidir. Talep ile bu etkinlik arasındaki çevrim süresi, planlama verimliliğini ölçen temel KPI’lardan biridir. Nereden alınır? Bu olay, Freight Order veya Freight Booking belgesinin oluşturulmasına karşılık gelir. Belgedeki planlama durumunun Planned olarak değişmesi gibi bir durum değişikliğinden de çıkarılabilir. Başlık verileri genellikle /SCMTMS/D_TORROT tablosunda bulunur. Kaydedin Freight Order veya Freight Booking belgesinin oluşturulma zaman damgasını kullanın. Olay türü explicit | |||
| Taşıma talebi alındı | Bu etkinlik, taşıma ihtiyacının oluşturulmasıyla sürecin başladığını gösterir. SAP TM’de bu adım genellikle Forwarding Order (FWO) veya Order-based Transportation Requirement (OTR) oluşturulduğunda kaydedilir. | ||
| Neden önemli? Bu, uçtan uca sevkiyat sürecinin temel başlangıç olayıdır. Planlamanın tamamlanmasına kadar geçen süreyi analiz etmek, planlama verimliliğini ölçmek açısından önemlidir. Nereden alınır? Bu olay, Forwarding Order (belge türü FWO) veya başka bir taşıma gereksinimi belgesi oluşturulduğunda kaydedilir. Olay zamanı olarak, /SCMTMS/D_TORROT gibi başlık tablosundaki oluşturulma zaman damgası kullanılır. Kaydedin Forwarding Order veya Transportation Requirement belgesinin oluşturulma tarihini ve saatini kaydedin. Olay türü explicit | |||
| Taşıyıcı atandı | Bu etkinlik, belirli bir taşıma hizmeti sağlayıcısının, yani taşıyıcının, seçilip sevkiyata atandığını gösterir. Atama elle, otomatik planlamayla veya ihale süreciyle yapılabilir. | ||
| Neden önemli? Sevkiyat onaylanıp yürütülmeden önce taşıyıcının atanması gerekir. Bu adımı izlemek, taşıyıcı seçimi sürecini analiz etmeye ve rezervasyonun zamanında yapılmasını sağlamaya yardımcı olur. Nereden alınır? Freight Order veya Freight Booking içindeki taşıyıcı alanı (Carrier rolündeki taraf) doldurulduğunda bu adım kaydedilir. İhale sürecinde ise Freight Request for Quotation verildiğinde gerçekleşir. Kaydedin Freight Order içindeki taşıyıcı işlevinin ilk kez doldurulduğu veya onaylandığı zaman damgasını belirleyin. Olay türü inferred | |||
| Teslimat kanıtı alındı | Bu etkinlik, imzalı Proof of Delivery (POD) belgesi taşıyıcıdan alınıp sisteme kaydedildiğinde gerçekleşir. Belge, alıcının malları teslim aldığını doğrular. | ||
| Neden önemli? POD’nin alınması, müşteriye fatura kesmek ve taşıyıcıyla navlun ücretlerini mutabık hale getirmek için ön koşuldur. Bu adımdaki gecikmeler, nakitten nakde çevrim süresini doğrudan etkiler. Nereden alınır? Bu adım genellikle Freight Order’daki durum değişikliğinden çıkarılır. Örneğin POD durumu Received olarak ayarlanır. Bu durum alanındaki değişiklik, etkinliğin zaman damgasını verir. Kaydedin Freight Order’daki Proof of Delivery durumu Received olarak güncellendiğinde oluşan zaman damgasını kaydedin. Olay türü inferred | |||
| Fatura doğrulandı | Bu etkinlik, taşıyıcının faturasının Freight Settlement Document ile başarıyla eşleştirildiğini ve ödeme için onaylandığını gösterir. ERP sisteminde ödeme süreci başlatılmadan önceki son adımdır. | ||
| Neden önemli? Bu etkinlikle navlun maliyetlerinin denetim ve doğrulama süreci tamamlanır. Bu aşamadaki gecikmeler, taşıyıcılara geç ödeme yapılmasına ve ilişkilerin zarar görmesine yol açabilir. Nereden alınır? Bu adım, Freight Settlement Document üzerindeki Ready for Accrual veya Transferred for Posting gibi durum değişikliklerinden çıkarılır. Bu durumlar, belgenin ödeme için ERP sistemine gönderildiğini gösterir. Kaydedin FSD yaşam döngüsü durumu ödeme için hazır olduğunu veya kaydedildiğini gösterdiğinde oluşan zaman damgasını izleyin. Olay türü inferred | |||
| Gümrük beyannamesi verildi | Uluslararası sevkiyatlarda bu etkinlik, gerekli gümrük belgelerinin yetkililere sunulmasını ifade eder. Malların ihracat veya ithalat işlemlerinin tamamlanması için gümrük izni alınmasının ön koşuludur. | ||
| Neden önemli? Gümrük beyannamelerinin zamanında verilmesi, sınır geçişlerindeki gecikmeleri önlemek açısından önemlidir. Bu etkinlik, gümrük müşavirliği sürecinin verimliliğini izlemenize yardımcı olur. Nereden alınır? Bu olay, gümrük müşaviri tarafından bildirilen özel bir operasyon olayı olarak veya SAP GTS gibi entegre bir gümrük yönetim sistemindeki durum değişikliğinden yakalanabilir. Freight Order da buna göre güncellenir. Kaydedin Customs Declaration Filed operasyon olayının veya buna karşılık gelen durum değişikliğinin zaman damgasını kaydedin. Olay türü explicit | |||
| Gümrükten geçti | Bu etkinlik, sevkiyatın gümrük yetkililerince onaylandığını ve yoluna devam edebileceğini gösterir. Olası önemli bir darboğazı ortadan kaldırdığı için uluslararası lojistikte önemli bir aşamadır. | ||
| Neden önemli? Gümrük işlemleri, küresel tedarik zincirlerinde sık sık ciddi gecikmelere yol açar. Uluslararası taşıma sürelerini iyileştirmek için bu etkinliğin süresini ve başarı oranını izlemek önemlidir. Nereden alınır? Bu adım, genellikle gümrük müşaviri veya harici bir görünürlük sağlayıcısı tarafından bildirilen Customs Clearance operasyon olayı olarak kaydedilir ve Freight Order’ın operasyon takibinde güncellenir. Kaydedin Freight Order ile ilişkili, bildirilen Customs Clearance operasyon olayının zaman damgasını kullanın. Olay türü explicit | |||
| Navlun anlaşmazlığı oluşturuldu | Bu olay, taşıyıcının faturası ile Freight Settlement Document belgesinde hesaplanan maliyetler arasında tutarsızlık bulunduğunu gösterir. Bu durum, anlaşmazlık çözüm iş akışını başlatır. | ||
| Neden önemli? Anlaşmazlıklar taşıyıcı ödemelerini geciktirir ve çözüm için idari çalışma gerektirir. Bu etkinliği izlemek, yanlış ücretler veya ek hizmet bedelleri gibi faturalama hatalarının temel nedenlerini belirlemeye yardımcı olur. Nereden alınır? Bu durum, Freight Settlement Document üzerindeki durum değişikliğinden çıkarılabilir; örneğin Dispute durumu ayarlanır. Ayrıca ayrı bir anlaşmazlık dosyası belgesi de oluşturulabilir. Kaydedin Freight Settlement Document üzerinde anlaşmazlık durumu ayarlandığında oluşan zaman damgasını kaydedin. Olay türü inferred | |||
| Sevkiyat taşıyıcı tarafından onaylandı | Bu olay, taşıyıcının planlanan taşımayı gerçekleştirmeyi kabul ettiğini gösterir. Onay genellikle EDI mesajı, taşıyıcı portalındaki güncelleme veya Freight Order durumunu değiştiren manuel bir giriş yoluyla alınır. | ||
| Neden önemli? Taşıyıcının onayı, sevkiyat planının uygulanacağına dair güvence verir ve belirsizliği azaltır. Onayın gecikmesi, sevkiyat takviminin tamamını riske atabilir. Nereden alınır? Bu olay, Freight Order veya Freight Booking içindeki onay durumu alanındaki değişiklikten çıkarılır. Belgenin durum yönetiminde Confirmed gibi belirli bir durum değeri ayarlanır. Kaydedin Freight Order belgesindeki onay durumu alanlarında yapılan değişiklikleri izleyin. Olay türü inferred | |||
| Sevkiyatın güzergâhı değişti | Bu etkinlik, onaylandıktan sonra sevkiyatın güzergâhında veya takviminde planlanmamış bir değişiklik yapıldığını gösterir. Değişikliklere aksaklıklar, müşteri talepleri veya lojistik sorunlar yol açabilir. | ||
| Neden önemli? Güzergâh değişiklikleri çoğu zaman maliyetleri artırır ve gecikmelere neden olur. Bu değişikliklerin sıklığını ve nedenlerini belirlemek, planlama doğruluğunu ve operasyonel istikrarı artırmaya yardımcı olur. Nereden alınır? Bu olay, operasyon başladıktan sonra Freight Order’daki aşama, konum veya tarihlerde önemli değişiklikler tespit edilerek çıkarılır. Bu amaçla CDHDR ve CDPOS tablolarındaki değişiklik belgeleri analiz edilebilir. Kaydedin Shipment Confirmed by Carrier olayından sonra Freight Order belgesindeki temel güzergâh alanlarında yapılan değişiklikleri tespit edin. Olay türü inferred | |||
Veri çıkarma kılavuzları
Adımlar
- CDS görünümü API’lerini belirleyin ve etkinleştirin: SAP S/4HANA sisteminize giriş yapın. Temel CDS görünümleri için gerekli OData hizmetlerinin etkin olduğunu doğrulamak üzere
/IWFND/MAINT_SERVICEişlemini kullanın. I_TransportationOrder, C_TranspOrdExecutionEvent, I_ForwardingOrder ve I_FreightSettlementDocument ile ilgili hizmetleri kontrol edin. Etkin değillerse SAP yöneticinizle birlikte arka uç sisteminden ekleyip etkinleştirin. - API bağlantısını kurun: OData hizmetlerinin kök URL’sini SAP yöneticinizden alın. API’ye bağlanmak için requests kitaplığını kullanan bir Python betiği, ticari bir ETL aracı veya Postman gibi bir istemci uygulaması kurun. Kimlik doğrulamayı yapılandırmanız gerekir. Genellikle Basic Authentication (kullanıcı adı ve parola) ya da daha güvenli bağlantı için OAuth 2.0 kullanılır.
- Veri çıkarma kapsamını belirleyin: Hangi verileri çıkaracağınızı belirleyin. Örneğin son 6 ay için bir tarih aralığı seçin. Verilerin analiz ettiğiniz süreçle ilgili olmasını sağlamak için Şirket kodu gibi kuruluş birimlerini veya Navlun Siparişi Türü gibi belirli belge türlerini filtreleyin.
- Temel sevkiyat sorgusunu oluşturun: I_TransportationOrder CDS görünümünü sorgulayarak başlayın. Navlun Siparişleri veya Navlun Rezervasyonları olarak da bilinen sevkiyatlar için bu görünüm temel nesnedir. İhtiyacınız olan sütunları seçmek için OData
$selectparametresini kullanın. CarrierName, ModeOfTransport ve RequestedDeliveryDate gibi önerilen öznitelikleri ekleyin. Verileri tarihe ve diğer kapsam parametrelerine göre sınırlamak için$filteruygulayın. - Yürütme ve taşıma olaylarını sorgulayın: Temel lojistik olaylarını çıkarmak için C_TranspOrdExecutionEvent CDS görünümünü kullanın. Bu görünümü, 'Mallar Alındı' (DEPARTURE) ve 'Mallar Teslim Edildi' (ARRIVAL_AT_DESTINATION) gibi etkinliklere karşılık gelen belirli
EventCodedeğerlerine göre filtreleyin. TransportationOrder UUID değerini kullanarak bu verileri temel sevkiyat verileriyle birleştirin. - İlgili iş nesnelerini sorgulayın: Sürecin tamamını yakalamak için ilgili diğer CDS görünümlerini de sorgulayın. 'Taşıma Talebi Alındı' etkinliği için I_ForwardingOrder görünümünü, 'Navlun Mutabakatı Oluşturuldu', 'Navlun İtirazı Oluşturuldu' ve 'Fatura Doğrulandı' gibi finansal etkinlikler için I_FreightSettlementDocument görünümünü sorgulayın.
- Durum değişikliklerine dayalı etkinlikleri çıkarın: Birçok etkinlik ayrı olaylar olarak değil, ana belgedeki durum değişiklikleri olarak kaydedilir. 'Taşıyıcı Atandı', 'Sevkiyat Taşıyıcı Tarafından Onaylandı' ve 'Sevkiyat İptal Edildi' gibi etkinlikler için I_TransportationOrder görünümünü sorgulayın ve ilgili durum alanıyla ilişkili
LastChangeDateTimedeğerini olay zamanı olarak kullanın. Bunun için durum kodlarını iş etkinlikleriyle dikkatlice eşleştirmeniz gerekir. - Verileri birleştirin ve dönüştürün: Tüm kaynaklardan çıkarılan verileri tek bir olay günlüğü yapısında bir araya getirin. Çıkardığınız her etkinlik için ShipmentId, ActivityName ve EventTime sütunlarını içeren bir satır oluşturun. Temel sevkiyat sorgusundaki önerilen tüm özniteliklerin o sevkiyata ait her satırda bulunduğundan emin olun. Bu adım, kavramsal olarak SQL
UNION ALLişlemine karşılık gelir. - Karmaşık ve harici olayları ele alın: 'Gümrükten Geçti' veya 'Ödeme İşlendi' gibi etkinliklerin verileri belirli alanlarda, hatta harici sistemlerde bulunabilir. Sağlanan sorgu mantığı, bu veriler için standart alanları gösterge olarak kullanır. Sorguyu gümrüğe özel CDS görünümleriyle birleştirmeniz veya ödeme verilerini Navlun Mutabakat Belgesi numarasına göre ayrı bir ERP veri çıkarımıyla eşleştirmeniz gerekebilir.
- ProcessMind için biçimlendirin: Birleştirilmiş son veri setini CSV dosyası olarak kaydedin. Sütun başlıklarının yükleme gereksinimleriyle eşleştiğinden emin olun. Örneğin, aracın ayarlarında
ShipmentIdsütununuCaseIdalanıyla eşleştirin. Zaman damgalarının tutarlı bir biçimde, tercihen UTC olarak (YYYY-MM-DDTHH:MM:SSZ) kaydedildiğini doğrulayın.
Yapılandırma
- Temel CDS görünümleri: Veri çıkarımı ağırlıklı olarak I_TransportationOrder (navlun siparişleri için), C_TranspOrdExecutionEvent (yürütme olayları için), I_ForwardingOrder (taşıma talepleri için) ve I_FreightSettlementDocument (mutabakat için) görünümlerine dayanır.
- Tarih aralığı filtresi: Veri hacmini yönetmek için tarih filtresi uygulamak önemlidir. I_TransportationOrder görünümündeki
CreationDateTimeveya C_TranspOrdExecutionEvent görünümündekiActualBusinessDateTimealanını kullanın. İlk analiz için 3 ila 6 aylık bir aralık önerilir. - Belge türü filtresi: Analizi belirli senaryolara odaklamak için
TransportationOrderTypealanını kullanarak belge türlerine göre filtreleyin. Böylece standart giden sevkiyatları stok transferleri gibi farklı lojistik senaryolarından ayırabilirsiniz. - Kuruluş filtreleri: Uygunsa verileri belirli bir iş birimi veya bölgeyle sınırlamak için
PurchasingOrganizationya da kuruluş düzeyindeki diğer alanlara göre filtreleyin. - API sayfalama: Büyük veri setlerinde verileri daha küçük sayfalar halinde almak için OData
$topve$skipparametrelerini kullanın. Bu, API zaman aşımını önler ve istemci tarafındaki bellek kullanımını azaltır. Genellikle 1.000 ila 5.000 satırlık sayfa boyutu işe yarar. - Ön koşullar: Veri çıkarımını yapan kullanıcı veya hizmet hesabının temel OData hizmetlerine (yetkilendirme nesnesi S_SERVICE) ve CDS görünümlerindeki iş verilerine erişim yetkisi olmalıdır. İlgili hizmetler SAP Gatewayde (
/IWFND/MAINT_SERVICE) etkinleştirilmiş olmalıdır.
Örnek sorgu sql
WITH Shipments AS (
SELECT
TransportationOrder AS ShipmentId,
CarrierName,
TranspOrdExecutionBlockRsnCode,
TransportationMode AS ModeOfTransport,
ShippingType AS ShipmentType,
CreationDateTime AS ShipmentCreationTime,
LastChangeDateTime,
LifeCycleStatus,
ConfirmationStatus,
OverallExecutionStatus,
DeliveryOverallStatus,
PlannedDepDateTimeReqByCust AS RequestedDeliveryDate,
TotalChargesAmountInTransacCrcy AS TotalFreightCost
FROM I_TransportationOrder
WHERE
CreationDateTime >= '[START_DATE]' AND CreationDateTime <= '[END_DATE]'
-- AND TransportationOrderType IN ('[Your_Type_1]', '[Your_Type_2]')
)
SELECT
fwo.PurchasingDocument AS ShipmentId,
'Transportation Request Received' AS ActivityName,
fwo.CreationDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM I_ForwardingOrder AS fwo
LEFT JOIN Shipments s ON fwo.PurchasingDocument = s.ShipmentId
WHERE fwo.CreationDateTime >= '[START_DATE]' AND fwo.CreationDateTime <= '[END_DATE]'
UNION ALL
SELECT
s.ShipmentId,
'Shipment Planned' AS ActivityName,
s.ShipmentCreationTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM Shipments AS s
UNION ALL
SELECT
s.ShipmentId,
'Carrier Assigned' AS ActivityName,
s.LastChangeDateTime AS EventTime, -- Best approximation using last change time
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM Shipments AS s
WHERE s.CarrierName IS NOT NULL
UNION ALL
SELECT
s.ShipmentId,
'Shipment Confirmed By Carrier' AS ActivityName,
s.LastChangeDateTime AS EventTime, -- Best approximation using last change time
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM Shipments AS s
WHERE s.ConfirmationStatus = 'C' -- 'Confirmed'
UNION ALL
SELECT
s.ShipmentId,
'Goods Picked Up' AS ActivityName,
evt.ActualBusinessDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM C_TranspOrdExecutionEvent AS evt
JOIN Shipments s ON evt.TransportationOrder = s.ShipmentId
WHERE evt.EventCode = 'DEPARTURE'
UNION ALL
SELECT
s.ShipmentId,
'Customs Declaration Filed' AS ActivityName,
s.LastChangeDateTime AS EventTime, -- Approximation based on status change
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM Shipments AS s
WHERE s.CustomsRelevance IS NOT NULL -- This is a proxy, system config dependent
UNION ALL
SELECT
s.ShipmentId,
'Customs Cleared' AS ActivityName,
s.LastChangeDateTime AS EventTime, -- Approximation based on status change
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM Shipments AS s
WHERE s.CustomsOverallStatus = '4' -- 'Customs Cleared'
UNION ALL
SELECT
s.ShipmentId,
'Shipment Rerouted' AS ActivityName,
s.LastChangeDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM Shipments AS s
WHERE s.TranspOrdExecutionBlockRsnCode = '[Your Rerouting Reason Code]'
UNION ALL
SELECT
s.ShipmentId,
'Goods Delivered' AS ActivityName,
evt.ActualBusinessDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM C_TranspOrdExecutionEvent AS evt
JOIN Shipments s ON evt.TransportationOrder = s.ShipmentId
WHERE evt.EventCode = 'ARRIVAL_AT_DESTINATION'
UNION ALL
SELECT
s.ShipmentId,
'Proof Of Delivery Received' AS ActivityName,
s.LastChangeDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM Shipments AS s
WHERE s.DeliveryOverallStatus = 'C' -- 'POD Received'
UNION ALL
SELECT
fsd.SourceDocument AS ShipmentId,
'Freight Settlement Created' AS ActivityName,
fsd.CreationDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
fsd.TotalAmount AS TotalFreightCost
FROM I_FreightSettlementDocument AS fsd
JOIN Shipments s ON fsd.SourceDocument = s.ShipmentId
UNION ALL
SELECT
fsd.SourceDocument AS ShipmentId,
'Freight Dispute Created' AS ActivityName,
fsd.LastChangeDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
fsd.TotalAmount AS TotalFreightCost
FROM I_FreightSettlementDocument AS fsd
JOIN Shipments s ON fsd.SourceDocument = s.ShipmentId
WHERE fsd.DisputeStatus = '1' -- 'In Dispute'
UNION ALL
SELECT
fsd.SourceDocument AS ShipmentId,
'Invoice Verified' AS ActivityName,
fsd.LastChangeDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
fsd.TotalAmount AS TotalFreightCost
FROM I_FreightSettlementDocument AS fsd
JOIN Shipments s ON fsd.SourceDocument = s.ShipmentId
WHERE fsd.OverallLifeCycleStatus = '06' -- 'Posted for Accruals'
UNION ALL
SELECT
s.ShipmentId,
'Shipment Cancelled' AS ActivityName,
s.LastChangeDateTime AS EventTime,
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
s.TotalFreightCost
FROM Shipments AS s
WHERE s.LifeCycleStatus = 'X' -- 'Cancelled'
UNION ALL
SELECT
fsd.SourceDocument AS ShipmentId,
'Payment Processed' AS ActivityName,
fsd.LastChangeDateTime AS EventTime, -- Approximation, actual payment is in ERP
s.CarrierName,
s.ModeOfTransport,
s.RequestedDeliveryDate,
fsd.TotalAmount AS TotalFreightCost
FROM I_FreightSettlementDocument AS fsd
JOIN Shipments s ON fsd.SourceDocument = s.ShipmentId
WHERE fsd.InvoiceProcessingStatus = 'C' -- 'Completely Invoiced' Adımlar
- Onaylı bir SQL istemcisi, veritabanı görünümü veya veri çıkarma hizmeti üzerinden SAP TM HANA şemasına doğrudan okuma erişiminiz olduğunu doğrulayın. İlgili SAP TM tablolarını okumak için gereken bağlantı dizesini, kimlik bilgilerini, şema adını ve yetkileri alın. Gerekli güvenlik ve değişiklik onayları olmadan üretim sistemini doğrudan sorgulamayın.
- Sisteminizdeki fiziksel tablo ve sütun adlarını doğrulayın. Aşağıdaki sorguda temel tablolar olarak /SCMTMS/D_TORROT ve /SCMTMS/D_TOSTOP kullanılır. Ancak durum, iş ortağı, tarih, maliyet, gümrük, belge ve ödeme verileri SAP TM sürümüne ve uygulamaya bağlı olarak ek tablolarda veya uzantılarda tutulabilir. Yer tutucuları yalnızca sistem kataloğu ve veri modeliyle doğruladıktan sonra değiştirin.
- Veri çıkarma dönemini [Start timestamp] ve [End timestamp] değerlerini kullanarak belirleyin. İlk analiz için genellikle üç ila altı aylık hareketli bir dönem uygundur. Daha uzun bir dönem kullanmadan önce sorgu performansını ve olay geçmişinin saklama süresini doğrulayın.
- Sevkiyat vaka anahtarını belirleyin. Sorguda sevkiyat tanımlayıcısı olarak /SCMTMS/D_TORROT tablosundaki TOR_ID kullanılır. Uygulamanızda farklı ve kararlı bir tanımlayıcı kullanılıyorsa vaka anahtarını tüm etkinlik dallarında tutarlı biçimde değiştirin. Varsa özgün belge tanımlayıcısını ek bir denetim özniteliği olarak koruyun.
- Her iş etkinliğini açık bir kaynak koşuluyla eşleştirin. ProcessMind olay günlüğünü olduğu gibi okur; bu nedenle sorgu, çıkarılan her etkinlik için bir satır oluşturur. Belge sırasından, eksik zaman damgalarından veya durum ilerlemesinden kilometre taşları çıkarmaz.
- Durum ve zaman damgası eşleştirmelerini taşıma planlamacıları ve süreç sahipleriyle doğrulayın. Özellikle talep oluşturma, planlama, taşıyıcı atama ve onayı, teslim alma, gümrük beyanı, gümrükten geçiş, rota değişikliği, teslimat, POD alımı, navlun mutabakatı, itiraz, fatura doğrulama, iptal ve ödeme değerlerini teyit edin.
- Sorguyu onaylı SQL istemcisinde çalıştırın. Her olay için bir satır bulunduğunu, ShipmentId ve ActivityName alanlarının boş olmadığını ve EventTime değerinin geçerli olduğunu kontrol edin. Bire çok birleşimlerden kaynaklanan yinelenen satırları inceleyin; gerekirse kaynak eşleştirmelerini veya toplama mantığını düzenleyin.
- İlgili kaynak alanları mevcutsa sonucu önerilen özniteliklerle zenginleştirin. Sorguda, sisteme özgü meta veriler olmadan güvenle adlandırılamayan alanlar için yer tutucular bulunur. Bu yer tutucuları yalnızca doğrulanmış sütunlarla veya onaylı görünümlerle değiştirin.
- Son veri kalitesi kurallarını uygulayın. Vaka tanımlayıcısı veya olay zaman damgası bulunmayan satırları kaldırın, zaman damgalarını tek bir saat dilimine göre standartlaştırın, denetim amacıyla kaynak zaman damgalarını koruyun ve EndTime değerinin EventTime değerinden önce olmadığını doğrulayın. Kaynakta bulunmayan olaylar oluşturmayın.
- Sonucu UTF-8 CSV veya ProcessMind’in desteklediği başka bir tablo biçiminde dışa aktarın. ShipmentId, ActivityName ve EventTime sütun adlarını aynen kullanın. Dolu olduklarında EndTime ve önerilen öznitelikleri de ekleyin. Dosyayı yükleyin veya onaylı sorgu sonucunu ProcessMind’e bağlayın; ardından Sevkiyat vaka tanımlayıcısı ile Etkinlik Adı alanlarının doğru eşleştirildiğini doğrulayın.
Yapılandırma
- Temel kaynak tabloları: Taşıma siparişi veya navlun siparişi kök verileri için /SCMTMS/D_TORROT, durak ve kilometre taşı verileri için /SCMTMS/D_TOSTOP tablolarını kullanın. Dağıtıma geçmeden önce hedef SAP TM sistemindeki tüm ek kaynak nesneleri doğrulayın.
- Vaka tanımlayıcısı: Kararlı bir sevkiyat veya navlun siparişi tanımlayıcısı kullanın. Örnek sorguda ShipmentId olarak TOR_ID kullanılır. Bu tanımlayıcının planlama, yürütme, mutabakat ve ERP ödeme kayıtları boyunca değişmediğini doğrulayın.
- Etkinlik eşleştirmesi: Gerekli 15 etkinliğin tümü için açık kaynak koşulları yapılandırın. Her etkinlik fiziksel bir olay günlüğü satırı olarak oluşturulmalıdır. ProcessMind etkinlikleri diğer satırlardan türetmez.
- Tarih aralığı: Üç ila altı aylık geçmiş verilerle başlayın. Her kaynak dalında EventTime koşullarını mümkün olduğunca erken uygulayın. Artımlı yüklemelerde kontrollü bir watermark kullanın ve geç güncellemeleri yakalamak için kısa bir örtüşme aralığı ekleyin.
- İş filtreleri: Uygulamaya göre şirket kodu, satın alma kuruluşu, satış kuruluşu, belge türü, taşıma modu, taşıyıcı, tesis, konum ve durum filtrelerini yapılandırın. İlgili alan doğrulanmadıysa [Company code filter] gibi yer tutucular kullanın.
- Zaman damgalarını işleme: Kaynak zaman damgalarını tutarlı bir saat dilimine dönüştürün. Kaynakta tarih ve saat ayrı alanlarda tutuluyorsa bunları HANA sürümünün desteklediği sisteme özgü dönüştürme yöntemiyle birleştirin. Denetlenebilirlik gerektiğinde özgün kaynak zaman damgasını koruyun.
- Önerilen öznitelikler: CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost ve IsOnTimeDelivery alanlarını doğrulanmış kaynak alanlarından veya onaylı hesaplama görünümlerinden doldurun. Kaynakta güvenilir bir değer yoksa alanı boş bırakın.
- Performans: Dönemi sınırlayın, yalnızca gerekli sütunları seçin, birleşimlerden önce filtre uygulayın, tüm tabloyu sınırsız taramaktan kaçının ve HANA yürütme planını inceleyin. Büyük veri setlerinde bölümlemeyi dikkate alan koşullar, artımlı veri çıkarımı, hazırlama tabloları veya onaylı bir hesaplama görünümü kullanın.
- Yinelenen kayıtları denetleme: Bire çok birleşimler tek bir etkinlik için birden fazla satır oluşturabilir. Doğrulanmış bir olay anahtarı, kaynak belge anahtarı veya deterministik toplama kuralı kullanın. Geçerli yinelenen etkinlikleri silebilecek gelişigüzel tekilleştirme uygulamayın.
- Ön koşullar: Gerekli veritabanı yetkileri, SAP TM verilerine erişim, bağlı ERP veya mutabakat verilerine erişim, onaylı veri çıkarma araçları ve ilgili SAP TM modüllerinin, entegrasyonların ve özel geliştirmelerin etkin olduğunun doğrulanması gerekir.
- Sisteme özgü eşleştirme: Durum kodları, iş ortağı rolleri, gümrük kilometre taşları, mutabakat durumları, fatura durumları ve ödeme durumları sürüme ve yapılandırmaya göre değişir. Eşleştirmeleri kontrollü bir yapılandırma belgesinde tutun ve yükseltmelerden sonra test edin.
Örnek sorgu sql
WITH
base_tor AS (
SELECT
r.TOR_ID AS ShipmentId,
r.TOR_ID AS SourceDocumentId,
r.CREATED_AT AS RequestEventTime,
r.CREATED_AT AS PlannedEventTime,
r.CREATED_AT AS CarrierAssignedEventTime,
r.CREATED_AT AS CarrierConfirmedEventTime,
r.CREATED_AT AS PickupEventTime,
r.CREATED_AT AS CustomsFiledEventTime,
r.CREATED_AT AS CustomsClearedEventTime,
r.CREATED_AT AS ReroutedEventTime,
r.CREATED_AT AS DeliveredEventTime,
r.CREATED_AT AS PodReceivedEventTime,
r.CREATED_AT AS SettlementCreatedEventTime,
r.CREATED_AT AS DisputeCreatedEventTime,
r.CREATED_AT AS InvoiceVerifiedEventTime,
r.CREATED_AT AS CancelledEventTime,
r.CREATED_AT AS PaymentProcessedEventTime,
r.CREATED_AT AS EndTime,
CAST(NULL AS NVARCHAR(255)) AS CarrierName,
CAST(NULL AS TIMESTAMP) AS RequestedDeliveryDate,
CAST(NULL AS NVARCHAR(50)) AS ModeOfTransport,
CAST(NULL AS DECIMAL(19, 2)) AS TotalFreightCost,
CAST(NULL AS NVARCHAR(5)) AS IsOnTimeDelivery
FROM "/SCMTMS/D_TORROT" r
WHERE r.CREATED_AT >= TO_TIMESTAMP('[Start timestamp]')
AND r.CREATED_AT < TO_TIMESTAMP('[End timestamp]')
AND ('[Company code filter]' = '[Company code filter]' OR r.TOR_ID IS NOT NULL)
),
stop_data AS (
SELECT
s.TOR_ID AS ShipmentId,
MIN(s.STOP_SEQ) AS FirstStopSequence,
MAX(s.STOP_SEQ) AS LastStopSequence
FROM "/SCMTMS/D_TOSTOP" s
GROUP BY s.TOR_ID
),
source_data AS (
SELECT
b.ShipmentId,
b.SourceDocumentId,
b.RequestEventTime,
b.PlannedEventTime,
b.CarrierAssignedEventTime,
b.CarrierConfirmedEventTime,
b.PickupEventTime,
b.CustomsFiledEventTime,
b.CustomsClearedEventTime,
b.ReroutedEventTime,
b.DeliveredEventTime,
b.PodReceivedEventTime,
b.SettlementCreatedEventTime,
b.DisputeCreatedEventTime,
b.InvoiceVerifiedEventTime,
b.CancelledEventTime,
b.PaymentProcessedEventTime,
b.EndTime,
b.CarrierName,
b.RequestedDeliveryDate,
b.ModeOfTransport,
b.TotalFreightCost,
CASE
WHEN b.DeliveredEventTime IS NOT NULL
AND b.RequestedDeliveryDate IS NOT NULL
AND b.DeliveredEventTime <= b.RequestedDeliveryDate THEN 'true'
WHEN b.DeliveredEventTime IS NOT NULL
AND b.RequestedDeliveryDate IS NOT NULL THEN 'false'
ELSE NULL
END AS IsOnTimeDelivery
FROM base_tor b
LEFT JOIN stop_data s
ON s.ShipmentId = b.ShipmentId
),
event_log AS (
SELECT ShipmentId, 'Transportation Request Received' AS ActivityName, RequestEventTime AS EventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE RequestEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Shipment Planned', PlannedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE PlannedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Carrier Assigned', CarrierAssignedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE CarrierAssignedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Shipment Confirmed By Carrier', CarrierConfirmedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE CarrierConfirmedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Goods Picked Up', PickupEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE PickupEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Customs Declaration Filed', CustomsFiledEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE CustomsFiledEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Customs Cleared', CustomsClearedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE CustomsClearedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Shipment Rerouted', ReroutedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE ReroutedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Goods Delivered', DeliveredEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE DeliveredEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Proof Of Delivery Received', PodReceivedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE PodReceivedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Freight Settlement Created', SettlementCreatedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE SettlementCreatedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Freight Dispute Created', DisputeCreatedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE DisputeCreatedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Invoice Verified', InvoiceVerifiedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE InvoiceVerifiedEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Shipment Cancelled', CancelledEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE CancelledEventTime IS NOT NULL
UNION ALL
SELECT ShipmentId, 'Payment Processed', PaymentProcessedEventTime, EndTime, CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost, IsOnTimeDelivery, SourceDocumentId FROM source_data WHERE PaymentProcessedEventTime IS NOT NULL
)
SELECT
ShipmentId,
ActivityName,
EventTime,
EndTime,
CarrierName,
RequestedDeliveryDate,
ModeOfTransport,
TotalFreightCost,
IsOnTimeDelivery,
SourceDocumentId
FROM event_log
WHERE ShipmentId IS NOT NULL
AND EventTime IS NOT NULL
ORDER BY ShipmentId, EventTime, ActivityName; Adımlar
- Veri gereksinimlerini belirleyin: Gerekli 15 etkinliğin her biri ve tüm öznitelikler için kullanılacak mantığı netleştirerek başlayın. Bunun için her etkinliği SAP TM sisteminizdeki belirli durum değişiklikleri, oluşturma olayları veya belge bağlantılarıyla eşleştirin. Örneğin, 'Mallar Alındı' etkinliğini gösteren yürütme durumunu kesin olarak belirleyin.
- ABAP geliştirme ortamına erişin: SAP GUI’ye giriş yapın ve
SE38işlem koduyla ABAP Düzenleyicisi’ni açın. Yeni programınız için örneğinZTM_PROCESS_EXTRACTgibi bir ad girin ve 'Oluştur' seçeneğine tıklayın. Bir başlık girin ve program türünü 'Yürütülebilir Program' olarak ayarlayın. - Seçim ekranını oluşturun: Programda kullanıcıların göreceği seçim ekranını tanımlayın. Bu ekranda navlun siparişi oluşturma tarihi (
SO_CREDT) için tarih aralığı gibi veri filtreleme parametreleri ve belge türleri (SO_TYPE) ya da taşıyıcılar (SO_CARR) için seçim seçenekleri bulunmalıdır. - Çıktı yapısını tanımlayın: Gerekli olay günlüğü biçimiyle eşleşen bir dahili tablo yapısı tanımlayın. Bu yapıda
ShipmentId,ActivityName,EventTime,EndTime,CarrierName,RequestedDeliveryDate,ModeOfTransport,TotalFreightCostveIsOnTimeDeliveryalanları bulunmalıdır. - Veri seçme mantığını uygulayın: 15 etkinliğin her biri için veri seçecek temel ABAP mantığını yazın. Bu işlem genellikle birden fazla SAP TM tablosunun sorgulanmasını gerektirir. Belirtilen tarih aralığındaki Navlun Siparişleri gibi temel sevkiyat belgelerini seçerek başlayın.
- Planlama ve yürütme olaylarını çıkarın: Seçilen her sevkiyat belgesi (örneğin Navlun Siparişi) için farklı olayların zaman damgalarını bulmak üzere ilgili tabloları ve iş nesnelerini sorgulayın. Navlun Siparişi oluşturma ('Sevkiyat Planlandı'), taşıyıcı atama ('Taşıyıcı Atandı') ve 'Mallar Alındı' ile 'Mallar Teslim Edildi' etkinliklerine karşılık gelen yürütme durumu değişiklikleri için
/SCMTMS/D_TORROTtablosunu kullanın. Önceki Sevkiyat Siparişinin (/SCMTMS/D_TRQROT) oluşturulması, 'Taşıma Talebi Alındı' etkinliğini gösterebilir. - Taşıyıcı onayını ve rota değişikliğini çıkarın: 'Sevkiyat Taşıyıcı Tarafından Onaylandı' etkinliğini yakalamak için Navlun Siparişiyle ilişkili durum tablolarını veya değişiklik belgelerini (CDHDR/CDPOS) sorgulayarak
CONFIRMATIONdurumunun ne zaman ayarlandığını belirleyin. Benzer şekilde, 'Sevkiyatın Rotası Değiştirildi' etkinliğini yakalamak için önemli rota değişikliklerini arayın. - Gümrük olaylarını çıkarın: SAP Global Trade Services (GTS) veya benzer bir modül kullanıyorsanız 'Gümrük Beyanı Verildi' ve 'Gümrükten Geçti' olayları genellikle bağlantılı belgelerde izlenir. Bu belgeleri ve oluşturulma ya da durum değişikliği zamanlarını bulmak için mantığın Navlun Siparişinin belge akışını (
/SCMTMS/D_TORDOC) okuması gerekir. - Mutabakat ve itiraz olaylarını çıkarın: 'Navlun Mutabakatı Oluşturuldu', 'Navlun İtirazı Oluşturuldu' ve 'Fatura Doğrulandı' olaylarını yakalamak için Navlun Mutabakat Belgesi başlık tablosunu (
/SCMTMS/D_SFIRHD) ve ilgili kalemleri ve durumları sorgulayın. Bu kayıtları özgünShipmentIddeğeriyle ilişkilendirin. - Verileri birleştirin: Bulduğunuz her olay için son dahili tablonuzda yeni bir kayıt oluşturun.
ActivityNamealanına ilgili etkinliği,EventTimealanına olayın zaman damgasını,ShipmentIdalanına ise Navlun Siparişi veya Navlun Rezervasyonu kimliğini yazın. Diğer öznitelikleri kaynak belgelerden doldurun. - Dosyayı biçimlendirin ve dışa aktarın: Son dahili tabloyu tamamen doldurduktan sonra verileri düz dosya biçimine getirin. Dahili tablonun içeriğini SAP uygulama sunucusundaki bir CSV veya TXT dosyasına yazmak için
OPEN DATASET,LOOP AT... TRANSFER...veCLOSE DATASETkomutlarını kullanın. Dosyaya AL11 işlemi üzerinden erişilebilir. - Zamanlayın ve alın: ABAP programını otomatik veri çıkarımı için arka plan işi olarak zamanlayabilirsiniz (SM36 işlemi). Oluşturulan dosyayı, ProcessMind’e yüklemek üzere
CG3Yişlemiyle uygulama sunucusundan yerel bir makineye indirebilirsiniz.
Yapılandırma
- Tarih aralığı: Seçim ekranında temel taşıma belgesinin (örneğin Navlun Siparişi) oluşturulma tarihi için zorunlu bir tarih aralığı bulunmalıdır. İlk analizde, aşırı uzun çalışma süresine yol açmadan temsili bir veri seti elde etmek için 3 ila 6 aylık aralık önerilir.
- Belge türü filtresi: Taşıma Belgesi Türü (örneğin Navlun Siparişi veya Navlun Rezervasyonu) için filtre ekleyin. Bu filtre, analizi karayolu ve denizyolu taşımacılığı gibi belirli süreçlere odaklamak için önemlidir.
- Taşıyıcı filtresi: Kullanıcıların belirli taşıyıcılara göre filtreleme yapmasını sağlayın. Böylece lojistik iş ortaklarının performansı ayrı ayrı analiz edilebilir.
- Kuruluş filtreleri: Veri çıkarımını belirli iş alanlarıyla sınırlamak için Satın Alma Kuruluşu veya Şirket Kodu gibi ilgili kuruluş birimlerine yönelik filtreler ekleyin.
- Performans iyileştirmesi: Büyük veri setlerinde ABAP kodunun
WHEREkoşullarında dizinlenmiş veritabanı alanlarını kullandığından, mümkün olduğunda iç içe döngülerden kaçındığından ve bellek kullanımını azaltmak için veritabanından yalnızca gerekli alanları seçtiğinden emin olun. - Ön koşullar: Raporu çalıştıran kullanıcının ABAP programlarını yürütme yetkisi olmalıdır. Geliştiricinin
S_DEVELOPyetkisi gerekir. Programın uygulama sunucusundaki dosya sistemine erişim (S_DATASETnesnesi) ve ilgili TM veritabanı tabloları ile BOPF nesnelerine erişim yetkileri de olmalıdır.
Örnek sorgu abap
REPORT ztm_process_extract.
*&---------------------------------------------------------------------*
*& Data Structures
*&---------------------------------------------------------------------*
TYPES: BEGIN OF ty_s_event_log,
shipmentid TYPE /scmtms/tor_id,
activityname TYPE string,
eventtime TYPE timestamp,
endtime TYPE timestamp,
carriername TYPE string,
requesteddeliverydate TYPE timestamp,
modeoftransport TYPE /scmtms/mot,
totalfreightcost TYPE /scmtms/chargeable_weight,
isontimedelivery TYPE abap_bool,
END OF ty_s_event_log.
DATA: lt_event_log TYPE TABLE OF ty_s_event_log.
*&---------------------------------------------------------------------*
*& Selection Screen
*&---------------------------------------------------------------------*
SELECT-OPTIONS: so_credt FOR sy-datum OBLIGATORY.
SELECT-OPTIONS: so_torid FOR /scmtms/d_torrot-tor_id.
SELECT-OPTIONS: so_carr FOR /scmtms/d_torrot-lsp_id.
*&---------------------------------------------------------------------*
*& Main Logic
*&---------------------------------------------------------------------*
START-OF-SELECTION.
DATA: ls_event_log TYPE ty_s_event_log.
" Select base data: Freight Orders (Shipments)
SELECT tor_id, tor_cat, lsp_id, mot_code, cretd_tst, btd_tstmp_end
FROM /scmtms/d_torrot
INTO TABLE @DATA(lt_tor_root)
WHERE CAST( cretd_tst AS DATS ) IN @so_credt
AND tor_id IN @so_torid
AND lsp_id IN @so_carr.
IF lt_tor_root IS INITIAL.
MESSAGE 'No data found for the given selection.' TYPE 'S' DISPLAY LIKE 'E'.
RETURN.
ENDIF.
" Loop through each shipment to build the event log
LOOP AT lt_tor_root INTO DATA(ls_tor_root).
" 1. Transportation Request Received (Approximation from FWO creation)
SELECT SINGLE created_at_utc FROM /scmtms/d_trqrot
WHERE db_key IN ( SELECT trq_root_key FROM /scmtms/d_tordoc
WHERE parent_key = @ls_tor_root-db_key AND bo_node_cat = 'TRQ_ROOT' )
INTO @DATA(lv_trq_created_ts).
IF sy-subrc = 0.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Transportation Request Received'.
ls_event_log-eventtime = lv_trq_created_ts.
APPEND ls_event_log TO lt_event_log.
ENDIF.
" 2. Shipment Planned
CLEAR ls_event_log.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Shipment Planned'.
ls_event_log-eventtime = ls_tor_root-cretd_tst.
APPEND ls_event_log TO lt_event_log.
" 3. Carrier Assigned
IF ls_tor_root-lsp_id IS NOT INITIAL.
CLEAR ls_event_log.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Carrier Assigned'.
ls_event_log-eventtime = ls_tor_root-cretd_tst. " Approximated with creation time
APPEND ls_event_log TO lt_event_log.
ENDIF.
" Get statuses from /SCMTMS/D_TORSTA
SELECT status, tstmp FROM /scmtms/d_torsta
INTO TABLE @DATA(lt_statuses)
WHERE parent_key = @ls_tor_root-db_key.
" 4. Shipment Confirmed By Carrier
READ TABLE lt_statuses WITH KEY status = 'CONFIRMED' INTO DATA(ls_conf_status).
IF sy-subrc = 0.
CLEAR ls_event_log.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Shipment Confirmed By Carrier'.
ls_event_log-eventtime = ls_conf_status-tstmp.
APPEND ls_event_log TO lt_event_log.
ENDIF.
" 5. Goods Picked Up
READ TABLE lt_statuses WITH KEY status = 'LOADING_END' INTO DATA(ls_pickup_status). " Example status
IF sy-subrc = 0.
CLEAR ls_event_log.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Goods Picked Up'.
ls_event_log-eventtime = ls_pickup_status-tstmp.
APPEND ls_event_log TO lt_event_log.
ENDIF.
" 6. Customs Declaration Filed (Placeholder logic)
" 7. Customs Cleared (Placeholder logic)
" 8. Shipment Rerouted (Placeholder logic, needs change documents)
" 9. Goods Delivered
READ TABLE lt_statuses WITH KEY status = 'UNLOADING_END' INTO DATA(ls_delivery_status). " Example status
IF sy-subrc = 0.
CLEAR ls_event_log.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Goods Delivered'.
ls_event_log-eventtime = ls_delivery_status-tstmp.
APPEND ls_event_log TO lt_event_log.
ENDIF.
" 10. Proof Of Delivery Received
READ TABLE lt_statuses WITH KEY status = 'POD_RECEIVED' INTO DATA(ls_pod_status). " Example status
IF sy-subrc = 0.
CLEAR ls_event_log.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Proof Of Delivery Received'.
ls_event_log-eventtime = ls_pod_status-tstmp.
APPEND ls_event_log TO lt_event_log.
ENDIF.
" 11. Freight Settlement Created
SELECT SINGLE created_at_utc FROM /scmtms/d_sfirhd
WHERE db_key IN ( SELECT sfir_root_key FROM /scmtms/d_tordoc
WHERE parent_key = @ls_tor_root-db_key AND bo_node_cat = 'SFIR_ROOT' )
INTO @DATA(lv_fsd_created_ts).
IF sy-subrc = 0.
CLEAR ls_event_log.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Freight Settlement Created'.
ls_event_log-eventtime = lv_fsd_created_ts.
APPEND ls_event_log TO lt_event_log.
ENDIF.
" 12. Freight Dispute Created (Needs logic based on dispute status in SFIR)
" 13. Invoice Verified (Needs logic based on invoice status in SFIR)
" 14. Shipment Cancelled
READ TABLE lt_statuses WITH KEY status = 'CANCELLED' INTO DATA(ls_cancel_status).
IF sy-subrc = 0.
CLEAR ls_event_log.
ls_event_log-shipmentid = ls_tor_root-tor_id.
ls_event_log-activityname = 'Shipment Cancelled'.
ls_event_log-eventtime = ls_cancel_status-tstmp.
APPEND ls_event_log TO lt_event_log.
ENDIF.
" 15. Payment Processed (Data is typically in the ERP system, not TM)
ENDLOOP.
" Final step: Write lt_event_log to a file on the application server
DATA(lv_filepath) = '/usr/sap/trans/[YourInstance]/[YourFileName].csv'.
OPEN DATASET lv_filepath FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
IF sy-subrc = 0.
" Write header
DATA(lv_header) = 'ShipmentId,ActivityName,EventTime'.
TRANSFER lv_header TO lv_filepath.
" Write data
LOOP AT lt_event_log INTO ls_event_log.
DATA(lv_line) = |{ ls_event_log-shipmentid },{ ls_event_log-activityname },{ ls_event_log-eventtime }|.
TRANSFER lv_line TO lv_filepath.
ENDLOOP.
CLOSE DATASET lv_filepath.
ELSE.
MESSAGE 'Error opening file on application server.' TYPE 'E'.
ENDIF.
ENDFOR. Başlamaya hazır mısınız?
Taşıma süreçlerinizi iyileştirmeye başlamak, teslimatları daha hızlı ve daha düşük maliyetle gerçekleştirmek için bu Templateten yararlanın. İçgörüleri bugün keşfetmeye başlayın!
Taşıma Yönetimi darboğazlarını bugün ortadan kaldırın
Verimsizlikleri belirleyin, rotaları iyileştirin ve çevrim süresini %30 azaltın.
Kredi kartı gerekmez. Kurulumu dakikalar içinde tamamlayın.