Taşıma Yönetimi Veri Şablonunuz
Taşıma Yönetimi Veri Şablonunuz
- Toplanması önerilen öznitelikler
- İzlenecek temel etkinlikler
- SAP Transportation Management için veri çıkarma yönlendirmesi
Taşıma Yönetimi Öznitelikleri
| Ad | Açıklama | ||
|---|---|---|---|
| Faaliyet adı ActivityName | Taşıma sürecinde gerçekleşen belirli bir iş olayının veya adımının adı. | ||
| Açıklama Activity Name, sevkiyatın yaşam döngüsündeki 'Shipment Planned', 'Goods Picked Up' veya 'Goods Delivered' gibi tek bir görevi ya da kilometre taşını tanımlar. Bu faaliyetler, keşfedilen süreç haritasındaki düğümleri oluşturur. Faaliyetlerin sırasını ve sıklığını analiz etmek; standart süreç akışını, sapmaları, darboğazları ve yeniden işleme 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 sevkiyat akışının uçtan uca görselleştirilip analiz edilmesini sağlar. Nereden alınır? Bu bilgi genellikle SAP TM yürütme takibindeki olay işleyicisinde kaydedilen olay kodlarından veya durum değişikliklerinden elde edilir. İş nesnesi durum değişikliklerini ya da belirli olay mesajlarını kaydeden tablolardan 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 gerçekleştiği zamanı gösteren zaman damgası. | ||
| Açıklama Olay zamanı, taşıma sürecindeki her etkinlik için kesin tarih ve saati sağlar. Bu zamansal veri, çevrim sürelerini, süreleri ve farklı süreç adımları arasındaki bekleme sürelerini hesaplamak için temel oluşturur. Analizde bu öznitelik, olayları doğru sıraya koymak, kronolojik bir günlük oluşturmak ve zamana dayalı tüm performans analizlerini gerçekleştirmek için kullanılır. Gecikmeleri belirlemek, süreç verimliliğini ölçmek ve performansı planlara veya hizmet seviyesi anlaşmalarına göre değerlendirmek için önemlidir. Neden önemli? Zaman damgası, olayları kronolojik olarak sıralamak ve çevrim süreleri 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şleyicisi tablolarından alınır. Örnekler 2023-04-15T10:00:00Z2023-04-16T14:30:00Z2023-04-20T09:15:00Z | |||
| Sevkiyat ShipmentId | Analiz için temel vaka olarak kullanılan, malların tek bir hareketine ait benzersiz tanımlayıcı. | ||
| Açıklama Shipment ID, ilgili tüm taşıma faaliyetlerini ve olaylarını gruplayan birincil anahtardır. İlk talepten nihai teslimat kanıtına ve ödemeye kadar tek bir uçtan uca 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 tamamını izlemesini sağlar. Tek tek sevkiyatlarla ilişkili süreç varyantlarını, çevrim sürelerini ve sonuçları analiz etmeye imkan verir. Böylece taşıma performansına ilişkin kapsamlı bir görünüm sunar. Neden önemli? Bu, tüm olayları ve veri noktalarını belirli bir taşıma siparişine bağlayan temel vaka tanımlayıcısıdır ve uçtan uca süreç analizi için büyük önem taşır. Nereden alınır? Bu tanımlayıcı, SAP TM içindeki 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 tamamlandığı zamanı gösteren zaman damgası. | ||
| Açıklama StartTime bir olayın başlangıcını gösterirken EndTime olayın sona erdiği zamanı belirtir. Bu ayrım, 'Gümrük işlemlerinin tamamlanması' veya 'Malların yüklenmesi' gibi süreye sahip etkinlikler için özellikle yararlıdır. EndTime ile StartTime arasındaki fark, etkinliğin işlem süresini gösterir. Process Mining analizinde hem başlangıç hem de bitiş zamanının bulunması, etkinlik sürelerinin daha ayrıntılı incelenmesini ve işlem süresi ile bekleme süresinin birbirinden ayrılmasını sağlar. Böylece verimsizliklerin tam olarak nerede oluştuğu belirlenebilir: görevin yürütülmesi sırasında mı, yoksa görevler arasındaki devirlerde mi. 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şleyicisi tablolarından alınır. İlgili etkinlik için ayrı bir 'tamamlandı' olayına karşılık gelebilir. Ö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 hedef son tarihtir. Zamanında teslimat performansını ölçmek için temel karşılaştırma noktasıdır. Bu tarih, 'Zamanında teslimat oranı' KPI'ını hesaplamak için gereklidir. Gerçek teslimat zaman damgası bu tarihle karşılaştırılarak kuruluşun hizmet seviyesi anlaşmasını karşılayıp karşılamadığı belirlenebilir. Sapmaların analizi, taşıyıcı performansı sorunları, planlama gecikmeleri veya gümrükte beklemeler gibi sistematik gecikme nedenlerini ortaya çıkarır. Neden önemli? Zamanında teslimat performansını ölçmek için temel oluşturur. Bu, müşteri memnuniyeti ve operasyonel mükemmellik açısından önemli bir KPI'dır. Nereden alınır? Bu tarih genellikle SAP ERP'deki önceki satış siparişinden veya stok transfer siparişinden aktarılır. Freight Unit veya Freight Order 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 | Sevkiyat için kullanılan taşıma yöntemi. Kara yolu, demir yolu, hava yolu veya deniz yolu buna örnek verilebilir. | ||
| Açıklama Bu öznitelik, taşıma türünü belirtir. Farklı taşıma türlerinin maliyet yapıları, transit süreleri ve süreç karmaşıklıkları birbirinden farklıdır. Örneğin uluslararası hava kargo sevkiyatında, yurt içi kamyon taşımacılığına kıyasla gümrük işlemleri gibi farklı etkinlikler bulunur. Süreçleri taşıma türüne göre analiz etmek, iyileştirme çalışmalarını ihtiyaca göre şekillendirmeyi sağlar. Bu yaklaşım, özellikle maliyet analizi için önemlidir. Örneğin hızlı hava taşımacılığı gibi premium taşıma kullanımını, daha ekonomik standart taşıma türleriyle karşılaştırabilirsiniz. Bu bölümlendirme, taşıma harcamalarını anlamak ve kontrol etmek için önemlidir. Neden önemli? Taşıma türüne göre maliyet, süre ve süreç farklılıklarını analiz etmeyi sağlar. Bu, maliyetleri iyileştirmek ve premium taşıma kullanımını belirlemek için önemlidir. Nereden alınır? Freight Order veya Freight Booking üzerindeki temel alanlardan biridir ve 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 | Sevkiyata atanan taşıma taşıyıcısının veya lojistik hizmet sağlayıcısının adı. | ||
| Açıklama Taşıyıcı adı, malların fiziksel taşınmasından sorumlu şirketi tanımlar. Farklı taşıyıcıların hizmet düzeyi, maliyeti ve güvenilirliği değişebileceğinden bu bilgi performans analizi için önemli bir boyuttur. Process Mining içinde bu öznitelik, farklı taşıyıcıların performansını bölümlere ayırarak karşılaştırmak için kullanılır. Taşıyıcı puan kartları oluşturmayı, taşıyıcı bazında zamanında teslimat oranlarını izlemeyi, maliyetleri karşılaştırmayı ve gecikmelerle veya anlaşmazlıklarla en sık ilişkilendirilen taşıyıcıları belirlemeyi sağlar. Bu içgörü, stratejik taşıyıcı yönetimi ve satın alma kararları için büyük değer taşır. Neden önemli? Farklı taşıyıcıların performansını karşılaştırmayı sağlar. Bu, taşıyıcı seçimini, maliyetleri ve hizmet seviyelerini iyileştirmek için önemlidir. Nereden alınır? Bu bilgi Freight Order veya Freight Booking belgesinde saklanır. Taşıyıcıya ait iş ortağı işlevi üzerinden ilişkilendirilir. Örnekler DHL ExpressFedEx FreightMaersk LineUnion Pacific Railroad | |||
| Toplam taşıma maliyeti TotalFreightCost | Sevkiyat için hesaplanan veya faturalandırılan toplam maliyet. | ||
| Açıklama Total Freight Cost, bir sevkiyatın finansal etkisini ifade eder. Bu değer, taşıma yönetimi sistemi tarafından hesaplanan maliyet veya mutabakat sonrasında taşıyıcının faturasındaki nihai tutar olabilir. Bu öznitelik, finansal boyutun süreç analizine dahil edilmesini sağlar. Analistler en pahalı süreç varyantlarını belirleyebilir, gecikmelerin veya yeniden yönlendirmelerin maliyetini hesaplayabilir ve farklı taşıyıcıların veya taşıma modlarının maliyet etkinliğini karşılaştırabilir. Taşıma harcamalarına ve hizmet maliyeti analizine odaklanan Dashboardların temelini oluşturur. Neden önemli? Sürece finansal bir boyut ekleyerek taşıma harcamalarını, sevkiyat başına maliyeti ve süreç verimsizliklerinin finansal etkisini analiz etmeyi sağlar. Nereden alınır? Ücret hesaplaması tamamlandıktan sonra SAP TM'deki Freight Settlement Document 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 gösteren boolean işareti. | ||
| Açıklama Bu hesaplanmış öznitelik, Goods Delivered etkinliğinin zaman damgasını Requested Delivery Date ile karşılaştırır. Teslimat zamanında veya erken gerçekleştiyse true, geciktiyse false değerini alır. Bu öznitelik, her sevkiyat için net bir ikili sonuç oluşturarak performans analizini kolaylaştırır. Zamanında teslimat performansı Dashboardunun ve ilgili KPI’ın temelini oluşturur. Analistlerin geciken sevkiyatları kolayca filtrelemesine ve düşük performansın nedenlerini anlamak için kök neden analizi yapmasına olanak tanır. 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. Gerçek teslimat olayının zaman damgası Talep edilen teslimat tarihiyle karşılaştırılarak veri dönüşümü sırasında hesaplanmalıdır. Örnekler truefalse | |||
| Anlaşmazlık nedeni DisputeReason | Bir taşıma faturası için anlaşmazlık oluşturulduğunda belirtilen neden. | ||
| Açıklama Taşıyıcının faturası SAP TM içinde hesaplanan beklenen maliyetle eşleşmediğinde bir anlaşmazlık oluşturulur. Bu öznitelik, Incorrect Rate, Duplicate Invoice veya Accessorial Charge Not Approved gibi tutarsızlığın nedenini kaydeder. Anlaşmazlık nedenlerinin analizi, Navlun faturası hatası ve anlaşmazlık oranı Dashboardu için önemlidir. Faturalama hatalarının ana nedenlerinin ana verilerden, taşıyıcı hatalarından veya operasyonel aksaklıklardan kaynaklanıp kaynaklanmadığını belirlemeye yardımcı olur. Kuruluş bu içgörüyü kullanarak anlaşmazlıkları azaltmaya yönelik hedefli adımlar atabilir, ödeme döngüsünü hızlandırabilir ve idari yükü azaltabilir. Neden önemli? Taşıma faturalama hatalarının temel nedenini gösterir. Fatura anlaşmazlıklarını azaltmak ve mutabakat sürecini iyileştirmek için hedefli çalışmalar yapılmasını sağlar. Nereden alınır? Bu bilgi, Freight Settlement Document belgesiyle ilişkilendirilmiş 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 | Sevkiyata ait taşıma faturasının bir anlaşmazlığa yol açıp açmadığını gösteren boolean işareti. | ||
| Açıklama Bu hesaplanmış işaret, bir taşıma mutabakatı anlaşmazlığıyla ilişkilendirilmiş sevkiyatları belirler. Bir anlaşmazlık oluşturulduysa true, aksi durumda false değerini alır. 'Taşıma anlaşmazlığı oluşturuldu' etkinliğinin bulunmasından veya 'Anlaşmazlık nedeni' alanının boş olmamasından türetilebilir. Bu öznitelik, taşıma mutabakatı sürecinin analizini kolaylaştırır. Taşıma faturalama farkı oranı KPI'ının kolayca hesaplanmasını ve tüm anlaşmazlıklı sevkiyatların filtrelenmesini sağlar. Analistler daha sonra faturalama hatalarının temel nedenini bulmak için bu sevkiyatların taşıyıcı, güzergâh veya ücret türü gibi ortak özelliklerini inceleyebilir. Neden önemli? Sorunlu taşıma mutabakatlarını kolayca belirlemeyi, anlaşmazlık oranını hızlıca hesaplamayı ve faturalama hatalarının kök nedenini analiz etmeyi sağlar. Nereden alınır? Bu öznitelik SAP TM'de saklanmaz. Freight Settlement Document belgesiyle ilişkilendirilmiş bir anlaşmazlık vakasının bulunup bulunmadığına göre hesaplanmalıdır. Örnekler truefalse | |||
| Çıkış ülkesi OriginCountry | Sevkiyatın başladığı ülke. | ||
| Açıklama Bu öznitelik, taşıma yolculuğunun başladığı ülkeyi tanımlar. İlk teslim alma konumunun adresinden türetilir. Süreci çıkış ülkesine göre analiz etmek, performans, maliyet ve karmaşıklık açısından bölgesel farklılıkları belirlemeye yardımcı olur. Gümrük işlemlerinin daha uzun sürdüğü, taşıyıcı maliyetlerinin daha yüksek olduğu veya gecikmelerin daha sık yaşandığı ülkeleri ortaya çıkarabilir. Bu coğrafi bölümlendirme, küresel tedarik zincirini yönetmek ve lojistik stratejilerini bölgelere göre şekillendirmek için gereklidir. Neden önemli? Sevkiyat performansını coğrafi olarak analiz etmeyi ve bölgesel darboğazları, maliyet etkenlerini veya süreç farklılıklarını belirlemeyi sağlar. Nereden alınır? Freight Order belgesindeki ilk durağın kaynak konumuna ait adres bilgilerinin bir parçasıdır. Örnekler DEUSCNMX | |||
| Gecikme nedeni DelayReason | Sevkiyattaki gecikmenin nedenini açıklayan kod veya metin. | ||
| Açıklama Gecikme nedeni özniteliği, 'Kötü hava koşulları', 'Gümrükte bekleme' veya 'Taşıyıcı gecikmesi' gibi planlanan programdan sapmanın nedenini kaydeder. Bu bilgi genellikle manuel olarak veya taşıyıcının gönderdiği bir olay mesajıyla bildirilir. Kök neden analizi için oldukça yararlı bir özniteliktir. Analistlerin yalnızca bir sevkiyatın geç kaldığını değil, neden geç kaldığını da anlamasını sağlar. Gecikme nedenleri sınıflandırılıp ölçülerek tekrarlanan sorunlar belirlenebilir ve iyileştirme çalışmaları, taşıyıcı iletişimini geliştirmek veya yoğunluğu önlemek için güzergâhları iyileştirmek gibi en etkili alanlara yönlendirilebilir. Neden önemli? Sevkiyat gecikmelerinin arkasındaki nedeni açıklar. İstisnaları azaltmak ve zamanında teslimat performansını iyileştirmek için etkili kök neden analizi yapılmasını sağlar. Nereden alınır? 'Varış/kalkış gecikti' olayı bildirildiğinde, SAP TM'nin olay yönetimi çerçevesinde olay kodu ve nedeni olarak kaydedilebilir. Örnekler WEATHER_DELAYCUSTOMS_INSPECTIONPORT_CONGESTIONMECHANICAL_FAILURE | |||
| Kaynak sistem SourceSystem | Olay verilerinin alındığı sistem. | ||
| Açıklama Bu öznitelik, veriyi oluşturan kaynak sistemi tanımlar. Örneğin SAP TM, SAP ERP veya harici bir taşıyıcı portalı olabilir. Verinin kaynağı hakkında bağlam sağlar ve veri entegrasyonu noktalarını anlamaya yardımcı olur. 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, bir olayın kurum içi sistem tarafından mı yoksa üçüncü taraf bir lojistik hizmet sağlayıcısı tarafından mı bildirildiğini ayırt etmeyi sağlar. Neden önemli? Verinin kaynağını tanımlar. Bu bilgi, veri yönetişimi, sorun giderme ve birden fazla sistemdeki süreç orkestrasyonunu anlamak için önemlidir. Nereden alınır? Bu bilgi genellikle sistem günlüğünün bir parçası olarak saklanır veya veri girişini oluşturan arayüze ya da kullanıcıya göre türetilebilir. Ö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, 'Sevkiyat planlandı' veya 'Fatura doğrulandı' gibi manuel bir etkinlikten sorumlu çalışanı ya da kullanıcıyı tanımlar. 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 tespit etmeye yardımcı olur. Ayrıca uyumluluk ve denetim açısından da önemlidir, çünkü kimin neyi ve ne zaman yaptığını açıkça kaydeder. Aynı görevin farklı kullanıcılar tarafından nasıl gerçekleştirildiğine ilişkin farklılıkları 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 bulunur. Örneğin ERNAM ve AENAM. Ö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şlangıcı için üzerinde anlaşılmış zamandır. Sevkiyatın yürütme aşamasındaki önemli kilometre taşlarından biridir. Bu öznitelik, yolculuğun ilk ayağının zamanında gerçekleşip gerçekleşmediğini izlemek için gereklidir. Planlanan teslim alma zamanı gerçek 'Mallar teslim alındı' olayının zaman damgasıyla karşılaştırılarak teslim alma gecikmeleri hesaplanabilir. Bu da hem sevkiyat noktasının hem de taşıyıcının performansını ve güvenilirliğini değerlendirmeye yardımcı olur. Neden önemli? Teslim alma zamanlamasını ölçmek için temel oluşturur ve sevkiyatın fiziksel yolculuğunun en başındaki gecikmeleri belirlemeye yardımcı olur. Nereden alınır? SAP TM'de Freight Order belgesinin durak sırasına kaydedilen planlanan tarih ve saattir. Örnekler 2023-05-18T09:00:00Z2023-05-30T14:00:00Z2023-06-12T10:30:00Z | |||
| Sevkiyat durumu ShipmentStatus | Veri çıkarma anında sevkiyatın genel güncel durumu. | ||
| Açıklama Sevkiyat durumu, sevkiyatın yaşam döngüsündeki konumunu gösteren bir anlık görüntüdür. Örneğin 'Planlanıyor', 'Yürütülüyor', 'Teslim edildi' veya 'İptal edildi' durumlarını içerebilir. Vakanın bilinen son durumunu temsil eder. Bu öznitelik, sevkiyatları sonuçlarına göre filtrelemek ve analiz etmek için kullanışlıdır. Örneğin bir analist, uçtan uca çevrim süresini ölçmek için yalnızca tamamlanan sevkiyatlara odaklanabilir veya iptallerin temel nedenlerini anlamak için yalnızca iptal edilen sevkiyatları inceleyebilir. Süreç akışını yorumlamak için önemli bağlam sağlar. Neden önemli? Her sevkiyatın genel sonucunu gösterir. Sevkiyatın tamamlanıp tamamlanmadığına, iptal edilip edilmediğine veya hâlâ taşıma aşamasında olup olmadığına göre filtreleme ve analiz yapmayı sağlar. Nereden alınır? SAP TM içindeki Freight Order veya Freight Booking belgesinin başlığında yer alan genel durum alanıdır. Örnekler Planlama AşamasındaTaşımaya HazırYürütülüyorYürütüldüİptal Edildi | |||
| Son veri güncellemesi LastDataUpdate | Process Mining Veri Seti için gerçekleştirilen en son veri çıkarma veya yenileme işleminin zaman damgası. | ||
| Açıklama Bu öznitelik, analiz edilen verilerin güncelliğini gösterir. Verilerin SAP TM gibi kaynak sistemlerden en son çekildiği tarih ve saati belirtir. Her Dashboard veya analiz için önemli bir meta veri unsurudur, çünkü içgörülerin ne kadar güncel olduğunu gösterir. Gerçek zamanlı bilgiye mi yoksa önceki bir döneme ait anlık görüntüye mi baktığınızı anlamanıza yardımcı olur. Bu da zamanında ve bilinçli kararlar almak için gereklidir. Neden önemli? Verilerin güncelliği hakkında önemli bağlam sağlar ve analizin ne kadar güncel olduğunu anlamanıza yardımcı olur. Nereden alınır? Bu bilgi genellikle veri alma sürecinde ETL (Extract, Transform, Load) aracı veya veri hattı tarafından oluşturulur ve saklanır. Örnekler 2023-10-27T08:00:00Z2023-10-26T08:00:00Z | |||
| Varış ülkesi DestinationCountry | Sevkiyatın teslim edildiği ülke. | ||
| Açıklama Bu öznitelik, son teslimat konumunun adresinden türetilen nihai varış ülkesini tanımlar. Çıkış ülkesinde olduğu gibi varış ülkesine göre analiz yapmak, 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 içgörü, ağ optimizasyonu, gerçekçi teslimat beklentileri oluşturma ve uluslararası ticaret uyumluluğunu yönetme açısından değerlidir. Neden önemli? Süreç performansını varış noktasına göre analiz etmeyi ve belirli teslimat bölgeleri, gümrük makamları veya son kilometre taşıyıcılarıyla ilgili sorunları ortaya çıkarmayı sağlar. Nereden alınır? Freight Order belgesindeki son durağın varış konumuna ait adres bilgilerinin bir parçasıdır. Örnekler FRCAGBJP | |||
Taşıma Yönetimi Faaliyetleri
| Aktivite | Açıklama | ||
|---|---|---|---|
| Mallar teslim alındı | Bu faaliyet, malların fiziksel taşınmasının başladığını gösterir. Taşıyıcı, malların yüklendiğini ve göndericinin konumundan ayrıldığını bildirdiğinde kaydedilir. | ||
| Neden önemli? Bu, taşıma aşamasının başladığını gösteren önemli bir yürütme kilometre taşıdır. Zamanında teslimat performansını izlemek ve doğru sevkiyat görünürlüğü sağlamak için gereklidir. Nereden alınır? Bu olay genellikle SAP TM ile entegre SAP Event Management içinde 'Departure' veya 'Loading End' olayı olarak kaydedilir. Freight Order'ın yürütme durumunu günceller. Olay doğrudan Freight Order içinde de kaydedilebilir. Yakalayın Freight Order'ın çıkış konumu için bildirilen 'Departure' yürütme olayının zaman damgasını kullanın. Olay türü explicit | |||
| Mallar teslim edildi | Bu faaliyet, 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? Bu, zamanında teslimat performansını ve müşteri memnuniyetini ölçmek için en önemli kilometre taşıdır. Ayrıca genellikle faturalama ve mutabakat süreçlerini başlatır. Nereden alınır? Bu olay, SAP TM'de 'Arrival at Destination' veya 'Unloading End' yürütme olayı olarak kaydedilir ve Freight Order'ın yürütme durumunu günceller. Veriler çoğu zaman taşıyıcıdan alınır. Yakalayın Freight Order'ın son durağı için bildirilen 'Arrival at Destination' yürütme olayının zaman damgasını kullanın. Olay türü explicit | |||
| Navlun mutabakatı oluşturuldu | Bu faaliyet, taşıyıcıya ödenecek taşıma maliyetlerini hesaplayan Freight Settlement Document (FSD) belgesinin oluşturulmasını gösterir. Bu belge, tahakkuklar ve fatura doğrulaması için kullanılan temel belgedir. | ||
| Neden önemli? Bu adım, taşıma sürecinin finansal mutabakat aşamasını başlatır. Teslimattan mutabakatın oluşturulmasına kadar geçen süreyi analiz etmek, finansal işlemlerdeki darboğazları belirlemeye yardımcı olur. Nereden alınır? Bu, bir Freight Settlement Document oluşturularak kaydedilen açık bir olaydır. Oluşturma zaman damgası, bu belgenin /SCMTMS/D_SFIRHD başlık tablosunda bulunur. Yakalayın Freight Settlement Document'ın oluşturulma tarihini ve saatini kullanın. Olay türü explicit | |||
| Ödeme işlendi | Bu son faaliyet, taşıyıcıya taşıma hizmetleri için ödeme yapıldığını doğrular. Bu olay genellikle SAP TM'den doğrulanmış fatura alındıktan sonra bağ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 sonunu gösterir. Toplam süreç süresini ve zamanında ödeme KPI'larını ölçmek için gereklidir. Nereden alınır? Bu bilgi ERP sisteminde, örneğin S/4HANA Finance içinde, bulunur. Fatura numarası üzerinden Freight Settlement Document ile ilişkilendirilebilir. Bir durum güncellemesi SAP TM'ye geri gönderilebilir veya veriler BKPF ve BSEG gibi ERP tablolarından alınabilir. Yakalayın Ödeme kapatma tarihini ERP sisteminden alın ve fatura referansı üzerinden sevkiyatla ilişkilendirin. Olay türü explicit | |||
| Sevkiyat iptal edildi | Bu faaliyet, talep edildikten veya planlandıktan sonra bir sevkiyatın iptal edilmesini ifade eder. Yürütme aşamasına geçmeyen süreçler için sonlanma noktası görevi görür. | ||
| Neden önemli? İptalleri izlemek, müşteri talebindeki değişiklikler veya planlama hataları gibi süreç başarısızlıklarının nedenlerini belirlemeye yardımcı olur. Yüksek iptal oranları, sipariş yönetiminde veya planlamada altta yatan 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ştirilmesinden çıkarılır. Bu durum değişikliğinin zaman damgası olayı gösterir. Yakalayın Belgenin yaşam döngüsü durumunun 'Cancelled' olarak ayarlandığı zaman damgasını kaydedin. Olay türü inferred | |||
| Sevkiyat planlandı | Bu faaliyet, taşıma gereksinimlerinin somut bir sevkiyat planında birleştirildiğini gösterir. Planlanan rotayı ve kaynakları içeren bir Freight Order (kara veya demir yolu) ya da Freight Booking (deniz veya hava yolu) oluşturulup kaydedildiğinde kaydedilir. | ||
| Neden önemli? Bu kilometre taşının tamamlanması, lojistik yürütmenin başlatılması için gereklidir. Talebin alınmasından bu faaliyete kadar geçen çevrim süresi, planlama verimliliğini ölçen önemli bir KPI'dır. Nereden alınır? Bu olay, bir Freight Order veya Freight Booking belgesinin oluşturulmasına karşılık gelir. Belgedeki planlama durumunun 'Planned' değerine geçmesi gibi bir durum değişikliğinden de çıkarılabilir. İlgili tablolar genellikle başlık verileri için /SCMTMS/D_TORROT tablosudur. Yakalayın Freight Order veya Freight Booking belgesinin oluşturulma zaman damgasını kullanın. Olay türü explicit | |||
| Taşıma talebi alındı | Bu faaliyet, taşıma gereksiniminin oluşturulmasını ifade ederek taşıma sürecinin başlangıcını gösterir. SAP TM'de bu durum genellikle bir Forwarding Order (FWO) veya Order-based Transportation Requirement (OTR) oluşturulmasıyla kaydedilir. | ||
| Neden önemli? Bu, uçtan uca sevkiyat sürecinin temel başlangıç olayıdır. Bu faaliyet ile planlamanın tamamlanması arasındaki süreyi analiz etmek, planlama verimliliğini ölçmek açısından önemlidir. Nereden alınır? Bu olay, bir Forwarding Order (belge türü FWO) veya başka bir taşıma gereksinimi belgesi oluşturulduğunda kaydedilir. /SCMTMS/D_TORROT gibi başlık tablolarındaki oluşturma zaman damgası, olay zamanı olarak kullanılır. Yakalayın Forwarding Order veya Transportation Requirement belgesinin oluşturulma tarihini ve saatini kaydedin. Olay türü explicit | |||
| Taşıyıcı atandı | Bu faaliyet, belirli bir taşıma hizmeti sağlayıcısının veya taşıyıcının seçilerek sevkiyata atandığını gösterir. Atama manuel olarak, otomatik planlamayla veya ihale süreci üzerinden yapılabilir. | ||
| Neden önemli? Bir sevkiyatın onaylanıp yürütülebilmesi için taşıyıcı atamak önemli bir adımdır. Bu adımı izlemek, taşıyıcı seçim süreçlerini analiz etmeye ve rezervasyonun zamanında yapılmasını sağlamaya yardımcı olur. Nereden alınır? Bu olay, Freight Order veya Freight Booking içindeki taşıyıcı alanı, yani 'Carrier' rolündeki taraf, doldurulduğunda kaydedilir. İhale sürecinde ise Freight Request for Quotation'ın sonuçlandırıldığı an esas alınır. Yakalayın Taşıyıcı iş ortağı işlevinin Freight Order içinde ilk kez doldurulduğu veya onaylandığı zaman damgasını belirleyin. Olay türü inferred | |||
| Teslimat kanıtı alındı | Bu faaliyet, imzalı Proof of Delivery (POD) belgesi taşıyıcıdan alınıp sisteme kaydedildiğinde gerçekleşir. Bu işlem, alıcının malları kabul ettiğini 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 önemli bir ön koşuldur. Buradaki gecikmeler, nakitten nakde çevrimini doğrudan etkiler. Nereden alınır? Bu olay genellikle Freight Order üzerindeki POD durumunun 'Received' olarak ayarlanması gibi bir durum değişikliğinden çıkarılır. Bu durum alanındaki değişiklik, faaliyet için zaman damgasını sağlar. Yakalayın Freight Order üzerindeki Proof of Delivery durumunun 'Received' olarak güncellendiği zaman damgasını kaydedin. Olay türü inferred | |||
| Fatura doğrulandı | Bu faaliyet, 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 faaliyet, navlun maliyetleri için denetim ve doğrulama sürecini tamamlar. 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 olay, Freight Settlement Document üzerindeki 'Ready for Accrual' veya 'Transferred for Posting' gibi bir durum değişikliğinden çıkarılır. Bu durum, belgenin ödeme için ERP sistemine gönderildiğini gösterir. Yakalayın FSD yaşam döngüsü durumunun ödeme için hazır olduğunu veya kaydedildiğini gösteren değişikliğin zaman damgasını izleyin. Olay türü inferred | |||
| Gümrük beyannamesi verildi | Uluslararası sevkiyatlarda bu faaliyet, gerekli gümrük belgelerinin yetkililere sunulmasını ifade eder. Malların ihracatı veya ithalatı için gümrükleme izni alınmasının ön koşuludur. | ||
| Neden önemli? Gümrük beyannamelerinin zamanında verilmesi, sınırlardaki gecikmeleri önlemek için önemlidir. Bu faaliyet, gümrük müşavirliği sürecinin verimliliğini izlemeye yardımcı olur. Nereden alınır? Bu olay, gümrük müşaviri tarafından bildirilen özel bir yürütme olayı olarak veya SAP GTS gibi entegre bir gümrük yönetim sistemindeki durum değişikliğinden alınabilir. Freight Order buna göre güncellenir. Yakalayın 'Customs Declaration Filed' yürütme olayının veya buna karşılık gelen durum değişikliğinin zaman damgasını kaydedin. Olay türü explicit | |||
| Gümrükleme tamamlandı | Bu faaliyet, sevkiyatın gümrük yetkilileri tarafından onaylandığını ve ilerleyebileceğini gösterir. Bu olay, önemli bir olası darboğazı ortadan kaldırdığı için uluslararası lojistikte önemli bir kilometre taşıdır. | ||
| Neden önemli? Gümrükleme, küresel tedarik zincirlerinde çoğu zaman önemli gecikmelerin kaynağıdır. Bu faaliyetin süresini ve başarı oranını izlemek, uluslararası taşıma sürelerini iyileştirmek açısından önemlidir. Nereden alınır? Bu olay, genellikle gümrük müşaviri veya harici bir görünürlük sağlayıcısı tarafından bildirilen 'Customs Clearance' yürütme olayı olarak kaydedilir ve Freight Order'ın yürütme takibinde güncellenir. Yakalayın Freight Order ile ilişkili bildirilen 'Customs Clearance' yürütme 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 içinde hesaplanan maliyetler arasında bir tutarsızlık bulunduğunu gösterir. Bu durum bir 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 faaliyeti izlemek, yanlış oranlar veya ek ücretler gibi faturalama hatalarının temel nedenlerini belirlemeye yardımcı olur. Nereden alınır? Bu olay, Freight Settlement Document üzerindeki durumun 'Dispute' olarak ayarlanması gibi bir durum değişikliğinden çıkarılabilir. Ayrıca ayrı bir anlaşmazlık vakası belgesinin oluşturulmasını da içerebilir. Yakalayın Anlaşmazlık durumunun Freight Settlement Document üzerinde ayarlandığı zaman damgasını kaydedin. Olay türü inferred | |||
| Sevkiyat taşıyıcı tarafından onaylandı | Bu olay, taşıyıcının taşıma işlemini planlandığı şekilde gerçekleştirmeyi kabul ettiğini gösterir. Onay genellikle bir EDI mesajı, taşıyıcı portalı güncellemesi veya manuel giriş yoluyla alınır ve Freight Order durumunu günceller. | ||
| Neden önemli? Taşıyıcı onayı, sevkiyat planına bağlılık sağlar ve belirsizliği azaltır. Bu onayın alınmasındaki gecikmeler, sevkiyat programının tamamını riske atabilir. Nereden alınır? Bu olay, Freight Order veya Freight Booking içindeki onay durumu alanında gerçekleşen değişiklikten çıkarılır. Belgenin durum yönetiminde 'Confirmed' gibi belirli bir durum değeri ayarlanır. Yakalayın Freight Order belgesindeki onay durumu alanlarında gerçekleşen değişiklikleri izleyin. Olay türü inferred | |||
| Sevkiyatın rotası değiştirildi | Bu faaliyet, sevkiyat onaylandıktan sonra rotasında veya programında planlanmamış bir değişiklik yapıldığını gösterir. Bunun nedeni aksaklıklar, müşteri talepleri veya lojistik sorunlar olabilir. | ||
| Neden önemli? Rota değişiklikleri çoğu zaman maliyetleri ve gecikmeleri artırır. Rota değişikliklerinin sıklığını ve nedenlerini belirlemek, planlama doğruluğunu ve operasyonel istikrarı iyileştirmeye yardımcı olur. Nereden alınır? Bu olay, yürütme başladıktan sonra Freight Order içindeki aşamalarda, konumlarda veya tarihlerde meydana gelen önemli değişiklikler belirlenerek çıkarılır. Bu amaçla değişiklik belgeleri, CDHDR ve CDPOS tabloları, analiz edilebilir. Yakalayın 'Shipment Confirmed by Carrier' olayından sonra Freight Order belgesindeki temel rota alanlarında gerçekleşen değişiklikleri belirleyin. Olay türü inferred | |||
Veri çıkarma rehberleri
Adımlar
- CDS View API'lerini belirleyin ve etkinleştirin: SAP S/4HANA sisteminize giriş yapın. Temel CDS View'lar için gerekli OData servislerinin etkin olduğunu doğrulamak üzere
/IWFND/MAINT_SERVICEişlemini kullanın. I_TransportationOrder, C_TranspOrdExecutionEvent, I_ForwardingOrder ve I_FreightSettlementDocument ile ilgili temel servisleri kontrol edin. Etkin değillerse SAP yöneticinizle birlikte arka uç sisteminden bu servisleri ekleyip etkinleştirin. - API bağlantısını kurun: OData servislerinin kök URL'sini SAP yöneticinizden alın. API'ye bağlanmak için requests kütüphanesini kullanan bir Python betiği, ticari bir ETL aracı veya Postman gibi bir araç kurun. Kimlik doğrulamayı yapılandırmanız gerekir. Genellikle Basic Authentication, yani kullanıcı adı ve parola, ya da daha güvenli bir bağlantı için OAuth 2.0 kullanılır.
- Çıkarma kapsamını belirleyin: Hangi verileri çıkaracağınızı netleştirin. Örneğin son 6 ayı kapsayan belirli bir tarih aralığı tanımlayın. Verilerin analiz ettiğiniz süreçle ilgili olmasını sağlamak için Company Code gibi kuruluş birimlerini veya Freight Order Type gibi belirli belge türlerini belirleyin.
- Temel sevkiyat sorgusunu oluşturun: I_TransportationOrder CDS View'ını sorgulayarak başlayın. Bu görünüm, Freight Order veya Freight Booking olarak da adlandırılan sevkiyatların merkezi nesnesidir. CarrierName, ModeOfTransport ve RequestedDeliveryDate gibi önerilen öznitelikler dahil olmak üzere ihtiyacınız olan sütunları seçmek için OData
$selectparametresini kullanın. Verileri tarih ve diğer kapsam parametrelerine göre sınırlamak için$filteruygulayın. - Sorgu yürütme ve taşıma olayları: Temel lojistik olaylarını çıkarmak için C_TranspOrdExecutionEvent CDS View'ını kullanın. Bu görünümü, 'Goods Picked Up' (DEPARTURE) ve 'Goods Delivered' (ARRIVAL_AT_DESTINATION) gibi faaliyetlere karşılık gelen belirli
EventCodedeğerlerine göre filtreleyin. Bu verileri TransportationOrder UUID'sini kullanarak temel sevkiyat verileriyle birleştirin. - İlgili iş nesnelerini sorgulayın: Sürecin tamamını yakalamak için ilgili diğer CDS View'ları da sorgulamanız gerekir. 'Transportation Request Received' faaliyeti için I_ForwardingOrder'ı, 'Freight Settlement Created', 'Freight Dispute Created' ve 'Invoice Verified' gibi finansal faaliyetler için I_FreightSettlementDocument'ı sorgulayın.
- Duruma dayalı faaliyetleri çıkarın: Birçok faaliyet ayrı olaylar olarak değil, ana belge üzerindeki durum değişiklikleri olarak kaydedilir. 'Carrier Assigned', 'Shipment Confirmed By Carrier' ve 'Shipment Cancelled' gibi faaliyetler 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ş faaliyetleriyle dikkatle 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 birleştirin. Çıkarılan her faaliyet için ShipmentId, ActivityName ve EventTime sütunlarını içeren bir satır oluşturun. Temel sevkiyat sorgusundaki tüm önerilen özniteliklerin o sevkiyata ait her satırda bulunmasını sağlayın. Bu adım kavramsal olarak SQL
UNION ALLişlemine eşdeğerdir. - Karmaşık ve harici olayları yönetin: 'Customs Cleared' veya 'Payment Processed' gibi faaliyetlerin verileri belirli alanlarda ya da harici sistemlerde bulunabilir. Sağlanan sorgu mantığı, bunlar için standart alanları vekil olarak kullanır. Sorguyu gümrükle ilgili CDS View'larla birleştirecek veya Freight Settlement Document numarasını temel alarak ödeme verileri için ayrı bir ERP çıkarımıyla ilişkilendirecek şekilde uyarlamanız gerekebilir.
- ProcessMind için biçimlendirin: Son birleştirilmiş Veri Setini CSV dosyası olarak kaydedin. Yükleme için sütun başlıklarının gereksinimlerle eşleştiğinden emin olun. Örneğin aracın ayarlarında
ShipmentIdsütununuCaseIdalanıyla eşleştirin. Zaman damgalarının tercihen UTC biçiminde (YYYY-MM-DDTHH:MM:SSZ) tutarlı olduğundan emin olun.
Yapılandırma
- Temel CDS görünümleri: Çıkarma işlemi 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ığı filtreleme: Veri hacmini yönetmek için tarih filtresi uygulamak önemlidir. I_TransportationOrder üzerindeki
CreationDateTimeveya C_TranspOrdExecutionEvent üzerindekiActualBusinessDateTimealanını kullanın. İlk analiz için 3 ila 6 aylık bir aralık önerilir. - Belge türü filtreleme: Analizi belirli belge türlerine odaklamak için
TransportationOrderTypealanını kullanarak filtreleyin. Bu, standart giden sevkiyatlar ile stok transferleri gibi farklı lojistik senaryolarını ayırmaya yardımcı olur. - Kuruluş filtreleri: Uygunsa verileri belirli bir iş birimi veya bölgeyle sınırlamak için
PurchasingOrganizationveya kuruluş düzeyindeki diğer alanlara göre filtreleyin. - API sayfalaması: Büyük veri kümelerinde verileri daha küçük sayfalarda almak için
$topve$skipOData parametrelerini kullanın. Bu yaklaşım API zaman aşımını önler ve istemci tarafındaki bellek tüketimini azaltır. 1000 ila 5000 satırlık sayfa boyutu çoğu durumda etkilidir. - Ön koşullar: Çıkarma işlemini gerçekleştiren kullanıcı veya hizmet hesabının temel OData hizmetleri için yetkilere, yani S_SERVICE yetkilendirme nesnesine ve CDS görünümlerindeki iş verilerine erişim yetkisine sahip olması gerekir. İlgili hizmetler SAP Gateway içinde (
/IWFND/MAINT_SERVICE) etkinleştirilmelidir.
a Ö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
- SAP TM HANA şemasına doğrudan okuma erişiminin onaylı bir SQL istemcisi, veritabanı görünümü veya çıkarma servisi üzerinden kullanılabildiğini 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 sorgu temel tablolar olarak /SCMTMS/D_TORROT ve /SCMTMS/D_TOSTOP tablolarını kullanı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. Belgelenmiş yer tutucuları, sistem kataloğu ve veri modeliyle doğruladıktan sonra yalnızca bunları değiştirin.
- Çıkarma dönemini [Start timestamp] ve [End timestamp] kullanarak tanımlayın. İlk analiz için genellikle üç ila altı aylık kayan bir dönem uygundur. Daha geniş bir dönem kullanmadan önce sorgu performansını ve olay geçmişi saklama süresini doğrulayın.
- Sevkiyat vaka anahtarını belirleyin. Sorgu, sevkiyat tanımlayıcısı olarak /SCMTMS/D_TORROT içindeki TOR_ID alanını kullanır. Uygulamanız farklı ve değişmeyen bir tanımlayıcı kullanıyorsa vaka anahtarını her faaliyet dalında tutarlı biçimde değiştirin. Kullanılabiliyorsa özgün belge tanımlayıcısını ek bir denetim özniteliği olarak koruyun.
- Her iş faaliyetini açık bir kaynak koşuluyla eşleştirin. ProcessMind olay günlüğünü olduğu gibi okur. Bu nedenle sorgu, çıkarılan her faaliyet 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 iş süreci sahipleriyle doğrulayın. Özellikle talep oluşturma, planlama, taşıyıcı atama, taşıyıcı onayı, teslim alma, gümrük beyannamesi, gümrük işlemlerinin tamamlanması, yeniden yönlendirme, 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. Sonuçta her olay için bir satır, boş olmayan bir ShipmentId, boş olmayan bir ActivityName ve geçerli bir EventTime bulunduğunu kontrol edin. Bire çok birleştirmelerden kaynaklanan yinelenen satırları inceleyin ve gerektiğinde kaynak eşleştirmelerini veya toplulaştırma mantığını ayarlayın.
- İlgili kaynak alanları mevcutsa sonucu önerilen özniteliklerle zenginleştirin. Sorgu, sisteme özgü meta veriler olmadan güvenle adlandırılamayan alanlar için açıklayıcı yer tutucular içerir. Bu yer tutucuları yalnızca doğrulanmış sütunlar 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 diliminde standartlaştırın, denetim amacıyla kaynak zaman damgalarını koruyun ve EndTime değerinin EventTime'dan önce olmadığından emin olun. Eksik kaynak kayıtları için yapay olaylar oluşturmayın.
- Sonucu UTF-8 CSV veya ProcessMind tarafından desteklenen başka bir tablo biçiminde dışa aktarın. ShipmentId, ActivityName ve EventTime sütun adlarını tam olarak 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 Shipment vaka tanımlayıcısı ile Activity Name alanlarının doğru eşleştirildiğini doğrulayın.
Yapılandırma
- Temel kaynak tabloları: Taşıma siparişi veya freight order 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 almadan önce tüm ek kaynak nesnelerini hedef SAP TM sisteminde doğrulayın.
- Vaka tanımlayıcısı: Değişmeyen bir sevkiyat veya freight order tanımlayıcısı kullanın. Örnek sorgu, ShipmentId olarak TOR_ID alanını kullanır. Bu tanımlayıcının planlama, yürütme, mutabakat ve ERP ödeme kayıtlarında değişmeden kaldığını doğrulayın.
- Faaliyet eşleştirmesi: Gerekli 15 faaliyetin tamamı için açık kaynak koşulları yapılandırın. Her faaliyet fiziksel bir olay günlüğü satırı olarak üretilmelidir. ProcessMind faaliyetleri diğer satırlardan türetmez.
- Tarih aralığı: Üç ila altı aylık geçmişle başlayın. Her kaynak dalında mümkün olduğunca erken EventTime koşulları uygulayın. Artımlı yüklemelerde kontrollü bir watermark kullanın ve geç güncellemeleri yakalamak için küçük bir örtüşme aralığı ekleyin.
- İş filtreleri: Uygulamaya göre şirket kodu, satın alma organizasyonu, satış organizasyonu, belge türü, taşıma modu, taşıyıcı, tesis, konum ve durum filtrelerini yapılandırın. İlgili alan doğrulanmadığında [Company code filter] gibi yer tutucular kullanın.
- Zaman damgası yönetimi: Kaynak zaman damgalarını tutarlı bir saat dilimine dönüştürün. Bir kaynak ayrı tarih ve saat alanları saklıyorsa bunları HANA sürümünün desteklediği sisteme özgü dönüşümle 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. Kaynak güvenilir bir değer içermiyorsa alanı boş bırakın.
- Performans: Dönemi sınırlayın, yalnızca gerekli sütunları seçin, birleştirmelerden önce filtre uygulayın, sınırsız tam tablo taramalarından kaçının ve HANA yürütme planını inceleyin. Büyük Veri Setleri için bölüm farkındalığı olan koşullar, artımlı çıkarma, hazırlama tabloları veya onaylı hesaplama görünümü kullanın.
- Yinelenen kayıt kontrolü: Bire çok birleştirmeler tek bir faaliyet için birden fazla satır oluşturabilir. Doğrulanmış bir olay anahtarı, kaynak belge anahtarı veya belirli bir toplulaştırma kuralı kullanın. Gerçek tekrar eden olayları kaldırabilecek rastgele tekilleştirme uygulamayın.
- Ön koşullar: Gerekli veritabanı yetkileri, SAP TM verilerine erişim, bağlı ERP veya mutabakat verilerine erişim, onaylı çı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 yönetin ve yükseltmelerden sonra test edin.
a Ö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 faaliyetin her biri ve tüm öznitelikler için kesin mantığı doğrulayarak başlayın. Bunun için her faaliyeti SAP TM sisteminizdeki belirli durum değişiklikleri, oluşturma olayları veya belge bağlantılarıyla eşleştirin. Örneğin 'Goods Picked Up' faaliyetini gösteren kesin yürütme durumunu belirleyin.
- ABAP geliştirme ortamına erişin: SAP GUI'ye giriş yapın ve
SE38işlem kodunu kullanarak ABAP Editor'ı açın. Yeni programınız içinZTM_PROCESS_EXTRACTgibi bir ad girin ve 'Create' seçeneğine tıklayın. Bir başlık girin ve program türünü 'Executable 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 freight order oluşturma tarihi için bir tarih aralığı (
SO_CREDT) ve belge türleri (SO_TYPE) veya taşıyıcılar (SO_CARR) için select-options gibi veri filtreleme parametreleri 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 faaliyetin her biri için veri seçen ana ABAP mantığını yazın. Bu işlem genellikle birden fazla SAP TM tablosunun sorgulanmasını gerektirir. Belirtilen tarih aralığındaki Freight Order gibi birincil sevkiyat belgelerini seçerek başlayın.
- Planlama ve yürütme olaylarını çıkarın: Seçilen her sevkiyat belgesi, örneğin Freight Order, için ilgili tabloları ve iş nesnelerini sorgulayarak farklı olayların zaman damgalarını bulun. Freight Order oluşturma ('Shipment Planned'), taşıyıcı atama ('Carrier Assigned') ve 'Goods Picked Up' ile 'Goods Delivered' faaliyetlerine karşılık gelen yürütme durumu değişiklikleri için
/SCMTMS/D_TORROTtablosunu kullanın. Önceki Forwarding Order'ın (/SCMTMS/D_TRQROT) oluşturulması 'Transportation Request Received' faaliyetini gösterebilir. - Taşıyıcı onayını ve yeniden yönlendirmeyi çıkarın: 'Shipment Confirmed By Carrier' faaliyetini yakalamak için Freight Order ile ilişkili durum tablolarını veya değişiklik belgelerini (CDHDR/CDPOS) sorgulayarak
CONFIRMATIONdurumunun ne zaman ayarlandığını belirleyin. Benzer şekilde, 'Shipment Rerouted' faaliyetini yakalamak için rota bilgilerindeki önemli değişiklikleri arayın. - Gümrük olaylarını çıkarın: SAP Global Trade Services (GTS) veya benzer bir modül kullanıyorsanız 'Customs Declaration Filed' ve 'Customs Cleared' olayları genellikle bağlantılı belgelerde izlenir. Mantık, bu ilgili belgeleri ve oluşturulma veya durum değişikliği zamanlarını bulmak için Freight Order'ın belge akışını (
/SCMTMS/D_TORDOC) okumalıdır. - Mutabakat ve itiraz olaylarını çıkarın: 'Freight Settlement Created', 'Freight Dispute Created' ve 'Invoice Verified' olaylarını yakalamak için Freight Settlement Document başlık tablosunu (
/SCMTMS/D_SFIRHD) ve ilgili kalemleri ve durumları sorgulayın. Bu kayıtları özgünShipmentIdile ilişkilendirin. - Verileri birleştirin: Bulduğunuz her olay için son dahili tablonuzda yeni bir kayıt oluşturun.
ActivityNamealanını ilgili faaliyetle,EventTimealanını olayın zaman damgasıyla veShipmentIdalanını Freight Order veya Freight Booking ID'siyle doldurun. Diğer öznitelikleri kaynak belgelerden alın. - Dosyayı biçimlendirin ve dışa aktarın: Son dahili tablo tamamen doldurulduğunda verileri düz dosya biçimine dönüştürün. Dahili tablonun içeriğini SAP uygulama sunucusundaki 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ı, verileri otomatik olarak çıkarmak için arka plan işi olarak zamanlanabilir (SM36 işlemi). Oluşturulan dosya, ProcessMind'e yüklenmek üzere
CG3Yişlemi kullanılarak uygulama sunucusundan yerel bir makineye indirilebilir.
Yapılandırma
- Tarih aralığı: Seçim ekranında temel taşıma belgesinin, örneğin Freight Order, oluşturulma tarihi için zorunlu bir tarih aralığı bulunmalıdır. İlk analiz için, temsili bir Veri Seti elde etmek ve çalışma süresinin aşırı uzamasını önlemek amacıyla 3 ila 6 aylık bir aralık önerilir.
- Belge türü filtresi: Transportation Document Type, örneğin Freight Order veya Freight Booking, için bir filtre sağlayın. Bu filtre, analizi karayolu taşımacılığı ile deniz taşımacılığı gibi belirli süreçlere odaklamak açısından önemlidir.
- Taşıyıcı filtresi: Kullanıcıların belirli taşıyıcılara göre filtreleme yapmasına imkan verin. Bu, tek tek lojistik iş ortaklarının performansını analiz etmeye yardımcı olur.
- Kuruluş filtreleri: Çıkarma işlemini belirli iş alanlarıyla sınırlamak için Purchasing Organization veya Company Code gibi ilgili kuruluş birimlerine yönelik filtreler ekleyin.
- Performans optimizasyonu: Büyük Veri Setleri için ABAP kodunun
WHEREkoşullarında dizinlenmiş veritabanı alanlarını kullandığından, mümkün olduğunca 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_DEVELOPyetkisine ihtiyacı vardır. Programın kendisi, uygulama sunucusundaki dosya sistemi erişimi (S_DATASETnesnesi) ve ilgili TM veritabanı tabloları ile BOPF nesnelerine erişim yetkileri gerektirir.
a Ö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?
Optimize edilmiş taşıma süreçlerine geçişinizi başlatmak ve daha hızlı, daha düşük maliyetli teslimatlar gerçekleştirmek için bu Templatei kullanın. İçgörüleri bugün ortaya çıkarmaya başlayın!
Taşıma Yönetimi darboğazlarını bugün ortadan kaldırın
Verimsizlikleri belirleyin, rotaları optimize edin ve çevrim süresini %30 azaltın.
Kredi kartı gerekmez. Kurulum birkaç dakika içinde tamamlanır.