Ulaşım Yönetimi Veri Şablonunuz
Ulaşım Yönetimi Veri Şablonunuz
- Toplanması Önerilen Nitelikler
- Takip Edilmesi Gereken Temel Aktiviteler
- SAP Transportation Management için veri çekim rehberliği
Ulaşım Yönetimi Nitelikleri
| Ad | Açıklama | ||
|---|---|---|---|
| Faaliyet Adı ActivityName | Ulaşım sürecinde meydana gelen belirli bir iş olayının veya adımının adı. | ||
| Açıklama Aktivite Adı, 'Sevkiyat Planlandı', 'Mallar Teslim Alındı' veya 'Mallar Teslim Edildi' gibi sevkiyatın yaşam döngüsündeki tek bir görevi veya 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. Ulaşım yönetiminde süreç keşfinin ve uygunluk denetiminin belkemiğidir. Neden önemli Bu öznitelik, ulaşım sürecindeki adımları tanımlayarak, uçtan uca sevkiyat akışının görselleştirilmesine ve analiz edilmesine olanak tanır. Nereden alınır Bu, genellikle SAP TM yürütme takip olay işleyicisinde kaydedilen olay kodlarından veya durum değişikliklerinden türetilir. İş nesnesi durum değişikliklerini veya 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 faaliyetin veya event'in ne zaman gerçekleştiğini gösteren zaman damgasıdır. | ||
| Açıklama Olay Zamanı, nakliye sürecindeki her aktivite için kesin tarih ve saati sağlar. Bu zamansal veri, döngü sürelerini, süreleri ve farklı süreç adımları arasındaki bekleme sürelerini hesaplamak için temeldir. Analizde, bu öznitelik olayları doğru bir şekilde sıralamak, kronolojik bir günlük oluşturmak ve tüm zaman tabanlı performans analizlerini yapmak için kullanılır. Gecikmeleri belirlemek, süreç verimliliğini ölçmek ve programlara veya hizmet seviyesi anlaşmalarına karşı performansı değerlendirmek için kritik öneme sahiptir. Neden önemli Zaman damgası, olayları kronolojik olarak sıralamak ve döngü süreleri ile zamanında teslimat gibi tüm performans metriklerini hesaplamak için gereklidir. Nereden alınır Bildirilen olaylar için zaman damgalarını depolayan /SAPTRX/EH_EVMSG gibi SAP TM'deki olay işleyici tablolarından alınır. Örnekler 2023-04-15T10:00:00Z2023-04-16T14:30:00Z2023-04-20T09:15:00Z | |||
| Sevkiyat ShipmentId | Tek bir mal hareketinin benzersiz tanımlayıcısı, analiz için merkezi vaka olarak hizmet eder. | ||
| Açıklama Sevkiyat Kimliği, ilgili tüm ulaşım faaliyetlerini ve olaylarını gruplayan birincil anahtardır. Başlangıç talebinden nihai teslimat kanıtına ve ödemeye kadar tek, uçtan uca bir ulaşım sürecini temsil eder. Süreç madenciliğinde, bu öznitelik durum görünümünü oluşturmak için gereklidir ve analistlerin her sevkiyatın tam yolculuğunu takip etmelerini sağlar. Süreç varyantlarının, döngü sürelerinin ve bireysel sevkiyatlarla ilişkili sonuçların analizini mümkün kılarak, ulaşım performansının kapsamlı bir görünümünü sunar. Neden önemli Bu, tüm olayları ve veri noktalarını belirli bir ulaşım emrine bağlayan temel vaka tanımlayıcısıdır ve uçtan uca süreç analizi için kritik öneme sahiptir. Nereden alınır Bu tanımlayıcı, Navlun Emri numarası veya SAP TM'deki Navlun Rezervasyon numarasıdır. /SCMTMS/D_TORROT ve /SCMTMS/D_TRQROT gibi tablolarda bulunabilir. Örnekler 610000432161000056786100009876 | |||
| Bitiş Saati EndTime | Belirli bir etkinliğin ne zaman tamamlandığını gösteren zaman damgası. | ||
| Açıklama StartTime bir event'in başlangıcını gösterirken, EndTime onun sonucunu işaret eder. Bu, 'Gümrükleme' veya 'Mal Yükleme' gibi bir süreye sahip aktiviteler için özellikle faydalıdır. EndTime ile StartTime arasındaki fark, o aktivitenin işlem süresini temsil eder. Process Mining analizinde, hem başlangıç hem de bitiş zamanına sahip olmak, aktivite sürelerinin daha ayrıntılı analizini sağlayarak işlem süresini bekleme süresinden ayırmaya olanak tanır. Bu, verimsizliklerin tam olarak nerede yattığını, bir görevin yürütülmesi içinde mi yoksa görevler arası aktarımlarda mı olduğunu belirlemeye yardımcı olur. Neden önemli Aktivite işlem sürelerinin hassas bir şekilde hesaplanmasına olanak tanır, aktif çalışma süresini olaylar arasındaki bekleme süresinden ayırır. Nereden alınır StartTime gibi, bu da olay işleyici tablolarından alınır. Belirli bir aktivite 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üşteri tarafından talep edilen veya satış siparişinde belirtilen teslimat tarihi ve saati. | ||
| Açıklama Talep Edilen Teslimat Tarihi, 'Mallar Teslim Edildi' faaliyeti için hedef son teslim tarihidir. Zamanında teslimat performansını ölçmek için birincil karşılaştırma ölçütü olarak hizmet eder. Bu tarih, 'Zamanında Teslimat Oranı' KPI'ını hesaplamak için çok önemlidir. Gerçek teslimat zaman damgasını bu talep edilen tarihle karşılaştırarak, kuruluşlar hizmet seviyesi anlaşmalarını karşılayıp karşılamadıklarını belirleyebilirler. Sapmaları analiz etmek, taşıyıcı performans sorunları, planlama gecikmeleri veya gümrük bekletmeleri gibi gecikmelerin sistemik nedenlerini belirlemeye yardımcı olur. Neden önemli Bu, müşteri memnuniyeti ve operasyonel mükemmellik için kritik bir Nereden alınır Bu tarih genellikle SAP ERP'deki önceki satış siparişinden veya stok transfer siparişinden aktarılır. Navlun Birimi veya Navlun Emri'nin tarih/saat alanlarında saklanır. Örnekler 2023-05-20T17:00:00Z2023-06-01T12:00:00Z2023-06-15T23:59:59Z | |||
| Taşıma Modu. ModeOfTransport | Sevkiyat için kullanılan, kara yolu, demir yolu, hava yolu veya deniz yolu gibi ulaşım yöntemi. | ||
| Açıklama Bu öznitelik, ulaşım modunu belirtir. Farklı modların farklı maliyet yapıları, transit süreleri ve süreç karmaşıklıkları vardır. Örneğin, uluslararası bir hava taşımacılığı sevkiyatı, yurt içi kamyon yükü sevkiyatına kıyasla gümrükleme gibi farklı faaliyetlere sahip olacaktır. Süreçleri ulaşım moduna göre analiz etmek, özel iyileştirme girişimlerine olanak tanır. Ayrıca, özellikle premium navlun (örn. hızlandırılmış hava) kullanımını standart, daha ekonomik modlara karşı belirlemek için maliyet analizi açısından da kritik öneme sahiptir. Bu segmentasyon, ulaşım harcamalarını anlamanın ve kontrol etmenin anahtarıdır. Neden önemli Maliyet optimizasyonu ve premium navlun kullanımını belirlemek için kritik olan nakliye moduna göre maliyet, zaman ve süreç varyasyonlarının analizini sağlar. Nereden alınır Bu, Navlun Emri veya Navlun Rezervasyonu üzerindeki, genellikle Ulaşım Modu veya MOT olarak etiketlenen önemli bir alandır. Örnekler 01 (Karayolu)02 (Demiryolu)04 (Havayolu)05 (Denizyolu) | |||
| Taşıyıcı Adı CarrierName | Sevkiyata atanan ulaşım taşıyıcısının veya lojistik hizmet sağlayıcısının adı. | ||
| Açıklama Taşıyıcı Adı, malları fiziksel olarak taşıyan şirketi tanımlar. Bu, farklı taşıyıcıların değişen hizmet seviyeleri, maliyet ve güvenilirlik düzeyleri olabileceğinden, performans analizi için kritik bir boyuttur. Süreç madenciliğinde, bu öznitelik çeşitli taşıyıcılar arasındaki performansı segmentlere ayırmak ve karşılaştırmak için kullanılır. Taşıyıcı puan kartları oluşturulmasına, taşıyıcı başına zamanında teslimat oranlarının izlenmesine, maliyetlerin karşılaştırılmasına ve hangi taşıyıcıların gecikmeler veya anlaşmazlıklarla en sık ilişkili olduğunun belirlenmesine olanak tanır. Bu içgörü, stratejik taşıyıcı yönetimi ve tedariki için hayati öneme sahiptir. Neden önemli Farklı taşıyıcılar arasında performans karşılaştırması yapılmasını sağlar, bu da taşıyıcı seçimi, maliyet ve hizmet seviyelerini optimize etmek için anahtardır. Nereden alınır Bu bilgi Navlun Emri veya Navlun Rezervasyonu belgesinde saklanır. Taşıyıcı için iş ortağı işlevi aracılığıyla bağlantılıdır. Örnekler DHL ExpressFedEx FreightMaersk LineUnion Pacific Demiryolu | |||
| Toplam Navlun Maliyeti TotalFreightCost | Sevkiyat için toplam hesaplanan veya faturalanan maliyet. | ||
| Açıklama Toplam Navlun Maliyeti, bir sevkiyatın finansal etkisini temsil eder. Bu, ulaşım yönetim sistemi tarafından hesaplanan maliyet veya taşıyıcının fatura mutabakatından sonraki nihai tutarı olabilir. Bu nitelik, finansal boyutun süreç analizine entegre 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. Ulaşım harcamalarına ve hizmet maliyeti analizine odaklanan dashboard'lar için temel bir veridir. Neden önemli Sürece finansal bir boyut katarak, nakliye harcamaları, sevkiyat başına maliyet ve süreç verimsizliklerinin finansal etkisinin analizini sağlar. Nereden alınır Ücret hesaplaması yapıldıktan sonra SAP TM'deki Navlun Ödeme Belgesi'nden alınır. /SCMTMS/D_SFIRHD gibi tablolarda bulunabilir. Örnekler 250.751200.005430.50 | |||
| Zamanında Teslimat IsOnTimeDelivery | Malların talep edilen teslimat tarihinde veya öncesinde teslim edilip edilmediğini gösteren bir boolean bayrağı. | ||
| Açıklama Bu, 'Mallar Teslim Edildi' aktivitesinin zaman damgasını 'Talep Edilen Teslimat Tarihi' ile karşılaştıran hesaplanmış bir özniteliktir. Teslimat zamanında veya erken ise doğru, geç ise yanlış değerini alır. Bu öznitelik, her sevkiyat için net bir ikili sonuç oluşturarak performans analizini basitleştirir. Zamanında Teslimat Performansı Dashboard'u ve ilgili KPI'ın temelidir. Analistlerin geç sevkiyatları kolayca filtrelemesini ve kötü performansın nedenlerini anlamak için temel neden analizi yapmasını sağlar. Neden önemli Teslimat taahhütlerine uyumu doğrudan ölçer, kritik zamanında teslimat KPI'sının hesaplanmasını ve görselleştirilmesini basitleştirir. Nereden alınır Bu öznitelik SAP TM'de saklanmaz. Gerçek teslimat olayı zaman damgasını Talep Edilen Teslimat Tarihi ile karşılaştırarak veri dönüşümü sırasında hesaplanmalıdır. Örnekler truefalse | |||
| Gecikme Nedeni DelayReason | Sevkiyattaki bir gecikmenin nedenini açıklayan bir kod veya metin. | ||
| Açıklama Gecikme Nedeni özniteliği, 'Kötü Hava', 'Gümrük Bekletmesi' veya 'Taşıyıcı Gecikmesi' gibi planlanan programdan sapmanın nedenini yakalar. Bu bilgi genellikle manuel olarak veya taşıyıcıdan gelen bir olay mesajı aracılığıyla rapor edilir. Bu, temel neden analizi için güçlü bir özniteliktir. Analistlerin bir sevkiyatın geciktiğini bilmenin ötesine geçerek nedenini anlamalarını sağlar. Gecikme nedenlerini kategorize ederek ve nicelikselleştirerek, kuruluşlar tekrarlayan sorunları belirleyebilir ve geliştirme çabalarını taşıyıcı iletişimini iyileştirmek veya tıkanıklığı önlemek için rotaları optimize etmek gibi en etkili alanlara odaklayabilirler. Neden önemli Sevkiyat gecikmelerinin arkasındaki 'neden'i açıklayarak, istisnaları azaltmak ve zamanında performansı iyileştirmek için güçlü kök neden analizine olanak tanır. Nereden alınır Bu, bir 'Varış/Kalkış Gecikti' olayı raporlandığında, SAP TM'in olay yönetimi çerçevesinde bir olay kodu ve nedeni olarak yakalanabilir. Örnekler HAVA_DURUMU_GECIKMESICUSTOMS_INSPECTIONLİMAN_YOĞUNLUĞUMEKANİK_ARIZA | |||
| Hedef Ülke DestinationCountry | Sevkiyatın teslim edildiği ülke. | ||
| Açıklama Bu öznitelik, son teslimat konumunun adresinden türetilen, sevkiyatın nihai varış ülkesini tanımlar. Menşe ülkeye benzer şekilde, varış ülkesine göre analiz yapmak, bölgesel lojistik zorluklarını anlamak için çok önemlidir. Hangi varış noktalarının teslimat gecikmelerine en yatkın olduğunu veya daha yüksek son mil teslimat maliyetlerine sahip olduğunu gösteren kalıpları ortaya çıkarabilir. Bu içgörü, ağ optimizasyonu, gerçekçi teslimat beklentileri belirleme ve uluslararası ticaret uyumluluğunu yönetme için değerlidir. Neden önemli Süreç performansının varış yerine göre analizini sağlar, belirli teslimat bölgeleri, gümrük otoriteleri veya son mil taşıyıcılarıyla ilgili sorunları vurgular. Nereden alınır Bu, Navlun Emri'ndeki son durağın varış konumu için adres bilgilerinin bir parçasıdır. Örnekler FRCAGBJP | |||
| İhtilaflı mı IsDisputed | Sevkiyatın navlun faturasının bir ihtilafla sonuçlanıp sonuçlanmadığını gösteren bir boolean bayrağı. | ||
| Açıklama İlişkili bir navlun ödeme anlaşmazlığı olan sevkiyatları tanımlayan bu hesaplanan işaret, bir anlaşmazlık oluşturulmuşsa doğru, aksi takdirde yanlış değerini alır. 'Navlun Anlaşmazlığı Oluşturuldu' aktivitesinin varlığından veya boş olmayan bir 'Anlaşmazlık Nedeni'nden türetilebilir. Bu öznitelik, navlun ödeme sürecinin analizini basitleştirir. Navlun Faturalandırma Tutarsızlık Oranı KPI'sının kolay hesaplanmasını sağlar ve tüm ihtilaflı sevkiyatları filtrelemeye yardımcı olur. Analistler daha sonra faturalama hatalarının temel nedenini bulmak için taşıyıcılar, rotalar veya ücret türleri gibi bu sevkiyatların ortak özelliklerini araştırabilir. Neden önemli Sorunlu navlun ödemelerinin tanımlanmasını basitleştirir, anlaşmazlık oranının hızlı hesaplanmasını ve faturalama hatalarının temel neden analizini mümkün kılar. Nereden alınır Bu öznitelik SAP TM'de saklanmaz. Navlun Ödeme Belgesi'ne bağlı bir anlaşmazlık durumunun varlığına göre hesaplanmalıdır. Örnekler truefalse | |||
| Kaynak Sistem SourceSystem | Olay verilerinin kaynaklandığı sistem. | ||
| Açıklama Bu öznitelik, örneğin SAP TM, SAP ERP veya harici bir taşıyıcı portalı gibi veriyi oluşturan kaynak sistemi tanımlar. Verinin kaynağı hakkında bağlam sağlar ve veri entegrasyon noktalarını anlamaya yardımcı olur. Karmaşık bir ortamda, kaynak sistemi bilmek veri doğrulama, entegrasyon sorunlarını giderme ve farklı sistemlerin genel sürece nasıl katkıda bulunduğunu anlamak için çok önemlidir. Örneğin, dahili bir sistem tarafından bildirilen bir olay ile üçüncü taraf bir lojistik sağlayıcısı tarafından bildirilen bir olay arasında ayrım yapabilir. Neden önemli Veri yönetimini, sorun gidermeyi ve birden fazla sistem arasındaki süreç orkestrasyonunu anlamayı sağlayan, verinin kaynağını belirtir. 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 veya kullanıcıya göre türetilebilir. Örnekler SAP_TM_P01SAP_ERP_E01CARRIER_PORTAL_XYZ | |||
| Kullanıcı Adı UserName | Bir aktiviteyi gerçekleştiren kişinin kullanıcı kimliği veya adı. | ||
| Açıklama Bu öznitelik, 'Sevkiyat Planlandı' veya 'Fatura Doğrulandı' gibi manuel bir aktiviteyi gerçekleştiren çalışanı veya kullanıcıyı tanımlar. Süreç adımlarını bunları gerçekleştiren kişi veya ekiplerle ilişkilendirir. Faaliyetleri kullanıcıya göre analiz etmek, iş yükü dağılımını anlamaya, eğitim ihtiyaçlarını belirlemeye ve en iyi performans gösterenleri tanımaya yardımcı olur. Aynı zamanda uyumluluk ve denetim amaçları için de kritik öneme sahiptir, kimin neyi ne zaman yaptığının net bir kaydını sağlar. Bu, farklı kullanıcıların aynı görevi nasıl yerine getirdiğindeki farklılıkları ortaya çıkarabilir. Neden önemli Manuel süreç adımlarını belirli kullanıcılara atayarak, iş yükü, bireysel performans ve eğitim fırsatlarının analizini sağlar. Nereden alınır Genellikle ulaşım belgeleri için değişiklik log'unda veya belge başlığı tablolarında, 'Oluşturan' veya 'Değiştiren' alanları (örn. ERNAM, AENAM) gibi bulunur. Örnekler CB998030SMITHJPLANLAYICI_AB | |||
| Menşe Ülke OriginCountry | Sevkiyatın menşe ülkesi. | ||
| Açıklama Bu öznitelik, ulaşım yolculuğunun başlangıç ülkesini tanımlar. İlk teslim alma konumunun adresinden türetilmiştir. Süreci menşe ülkeye göre analiz etmek, performans, maliyet ve karmaşıklıktaki bölgesel farklılıkları belirlemeye yardımcı olur. Daha uzun gümrükleme sürelerine, daha yüksek taşıyıcı maliyetlerine veya daha sık gecikmelere sahip ülkeleri vurgulayabilir. Bu coğrafi segmentasyon, küresel bir tedarik zincirini yönetmek ve lojistik stratejilerini belirli bölgelere uyarlamak için gereklidir. Neden önemli Sevkiyat performansının coğrafi analizini yaparak bölgesel darboğazları, maliyet etkenlerini veya süreç varyasyonlarını belirlemeye yardımcı olur. Nereden alınır Bu, Navlun Emri'ndeki ilk durağın kaynak konumu için adres bilgilerinin bir parçasıdır. Örnekler DEUSCNMX | |||
| 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şılan zamandır. Sevkiyatın yürütme aşamasında önemli bir kilometre taşıdır. Bu öznitelik, yolculuğun ilk ayağının zamanında yapılmasını izlemek için gereklidir. Planlanan teslim alma süresini gerçek 'Mallar Teslim Alındı' olay zaman damgasıyla karşılaştırarak, şirketler teslim alma gecikmelerini hesaplayabilir. Bu, hem sevkiyat konumunun hem de taşıyıcının performansını ve güvenilirliğini değerlendirmeye yardımcı olur. Neden önemli Teslim alma zamanında yapılmasını ölçmek için temel olarak hizmet eder, sevkiyatın fiziksel yolculuğunun en başındaki gecikmeleri belirlemeye yardımcı olur. Nereden alınır Bu, SAP TM'deki Navlun Emri'nin durak dizisinde saklanan planlı bir tarih/saattir. Örnekler 2023-05-18T09:00:00Z2023-05-30T14:00:00Z2023-06-12T10:30:00Z | |||
| Sevkiyat Döngü Süresi ShipmentCycleTime | İlk talepten nihai teslimat kanıtına kadar sevkiyatın toplam süresi. | ||
| Açıklama Bu, bir sevkiyat için uçtan uca döngü süresini temsil eden hesaplanmış bir metriktir. Genellikle 'Teslimat Kanıtı Alındı' ve 'Ulaşım Talebi Alındı' zaman damgaları arasındaki fark olarak hesaplanır. Sevkiyat Döngü Süresi, ulaşım sürecinin genel verimliliğini ölçmek için birincil bir KPI'dır. Performansa üst düzey bir görünüm sunar ve zaman içinde veya taşıyıcı veya rota gibi farklı boyutlarda analiz edildiğinde eğilimleri ve büyük darboğazları ortaya çıkarabilir. Uçtan Uca Sevkiyat Döngü Süresi Dashboard'u için gereklidir. Neden önemli Ulaşım sürecinin toplam uçtan uca süresini ölçer, genel süreç hızının ve verimliliğinin anahtar bir göstergesini sunar. Nereden alınır Bu, her vaka için ilk olayın başlangıç zamanının son olayın bitiş zamanından çıkarılarak türetilen hesaplanmış bir metriktir. Örnekler 5 gün 4 saat12 gün 8 saat22 saat 30 dakika | |||
| Sevkiyat Durumu ShipmentStatus | Veri çıkarma anındaki sevkiyatın mevcut genel durumu. | ||
| Açıklama Sevkiyat Durumu, 'Planlamada', 'Uygulamada', 'Teslim Edildi' veya 'İptal Edildi' gibi sevkiyatın yaşam döngüsünde nerede olduğuna dair bir anlık görüntü sunar. Bu, durumun bilinen son halini 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 döngü süresini ölçmek için yalnızca tamamlanmış sevkiyatlara odaklanabilir veya iptallerin temel nedenlerini anlamak için yalnızca iptal edilmiş sevkiyatları analiz edebilir. Süreç akışını yorumlamak için önemli bir bağlam sağlar. Neden önemli Her sevkiyat için üst düzey bir sonuç sunarak, bir sevkiyatın tamamlanmış, iptal edilmiş veya hala transit halinde olup olmadığına göre filtreleme ve analiz yapılmasına olanak tanır. Nereden alınır Bu, SAP TM'deki Navlun Emri veya Navlun Rezervasyonu belgesinin başlığında bulunan genel durum alanıdır. Örnekler PlanlamadaTaşımaya HazırUygulamadaYürütüldüİptal Edildi | |||
| Son Veri Güncellemesi LastDataUpdate | Süreç madenciliği veri kümesi için en son veri çıkarımının veya yenilemenin zaman damgası. | ||
| Açıklama Bu öznitelik, analiz edilen verinin güncelliğini gösterir. Verilerin SAP TM gibi kaynak sistemlerden süreç madenciliği aracına en son çekildiği tarih ve saati yansıtır. Bu, herhangi bir Dashboard veya analiz için kritik bir meta veri öğesidir, çünkü içgörülerin ne kadar güncel olduğu hakkında bağlam sağlar. Kullanıcıların gerçek zamanlı bilgilere mi yoksa önceki bir döneme ait bir anlık görüntüye mi baktıklarını anlamalarına yardımcı olur, bu da zamanında ve bilinçli kararlar almak için gereklidir. Neden önemli Verilerin güncelliği hakkında kritik bağlam sağlayarak, kullanıcıların analizin ne kadar güncel olduğunun farkında olmasını sağlar. Nereden alınır Bu, genellikle veri alımı sürecinde ETL (Çıkar, Dönüştür, Yükle) aracı veya veri hattı tarafından oluşturulur ve saklanır. Örnekler 2023-10-27T08:00:00Z2023-10-26T08:00:00Z | |||
| Uyuşmazlık Nedeni DisputeReason | Bir navlun faturasına itiraz edildiğinde sağlanan neden. | ||
| Açıklama Bir taşıyıcının faturası SAP TM'de hesaplanan beklenen maliyetle eşleşmediğinde bir anlaşmazlık oluşur. Bu nitelik, 'Yanlış Fiyat', 'Tekrar Eden Fatura' veya 'Ek Ücret Onaylanmadı' gibi bu tutarsızlığın nedenini yakalar. Anlaşmazlık nedenlerini analiz etmek, Navlun Faturası Hatası ve Anlaşmazlık Oranı dashboard'u için kritik öneme sahiptir. Bu, faturalandırma yanlışlıklarının temel nedenlerini (ana Neden önemli Navlun faturalandırma hatalarının temel nedenini sunarak, fatura anlaşmazlıklarını azaltmak ve ödeme sürecini iyileştirmek için hedeflenmiş eylemleri mümkün kılar. Nereden alınır Bu bilgi, bir Navlun Ödeme Belgesi ile ilişkili anlaşmazlık yönetimi durumunda yakalanır. Örnekler Fiyat UyuşmazlığıYanlış AğırlıkOnaylanmamış Demuraj ÜcretiMükerrer Fatura | |||
Ulaşım Yönetimi Aktiviteleri
| Aktivite | Açıklama | ||
|---|---|---|---|
| Mallar Teslim Alındı | Bu aktivite, malların fiziksel taşımasının başlangıcını işaret eder. Taşıyıcı, malların yüklendiğini ve göndericinin konumundan ayrıldığını raporladığında yakalanır. | ||
| Neden önemli Bu, transit aşamasının başlangıcını ifade eden önemli bir yürütme kilometre taşıdır. Zamanında performansı takip etmek ve doğru sevkiyat görünürlüğü sağlamak için kritiktir. Nereden alınır Bu olay, SAP TM ile entegre olan SAP Event Management'ta genellikle 'Kalkış' veya 'Yükleme Sonu' olayı olarak kaydedilir. Navlun Emri'nin yürütme durumunu günceller. Doğrudan Navlun Emri'nde de kaydedilebilir. Yakala Yük Siparişi'nin çıkış lokasyonu için bildirilen 'Kalkış' yürütme event'inin timestamp'ini kullanın. Event tipi explicit | |||
| Mallar Teslim Edildi | Bu aktivite, sevkiyatın nihai varış noktasına ulaşmasını ve fiziksel taşımanın tamamlanmasını temsil eder. Taşıyıcı, malların alıcının konumunda boşaltıldığını raporladığında yakalanır. | ||
| 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 faturalandırma ve ödeme süreçleri için tetikleyici olarak hizmet eder. Nereden alınır Bu, SAP TM'de bir 'Varış Noktasına Ulaştı' veya 'Boşaltma Sonu' yürütme olayı olarak kaydedilir ve Navlun Emri'nin yürütme durumunu günceller. Veriler genellikle taşıyıcıdan alınır. Yakala Yük Siparişi'nin son durağı için bildirilen 'Varış Yerine Ulaşma' yürütme event'inin timestamp'ini kullanın. Event tipi explicit | |||
| Navlun Ödemesi Oluşturuldu | Bu aktivite, taşıyıcıya ödenecek ulaşım maliyetlerini hesaplayan Navlun Ödeme Belgesi'nin (FSD) oluşturulmasını işaret eder. Bu, tahakkuklar ve fatura doğrulaması için kullanılan birincil belgedir. | ||
| Neden önemli Bu, ulaşım sürecinin finansal ödeme aşamasını başlatır. Teslimattan ödeme oluşturmaya kadar geçen süreyi analiz etmek, finansal işlemlerdeki darboğazları belirlemeye yardımcı olur. Nereden alınır Bu, bir Navlun Ödeme Belgesi'nin oluşturulmasıyla yakalanan açık bir olaydır. Bu belge için oluşturma zaman damgası, /SCMTMS/D_SFIRHD başlık tablosunda mevcuttur. Yakala Navlun Uzlaşma Belgesinin oluşturulma tarihini ve saatini kullanın. Event tipi explicit | |||
| Ödeme İşlendi | Bu son aktivite, taşıyıcıya ulaşım hizmetleri için ödeme yapıldığını teyit eder. Bu olay genellikle, doğrulanmış fatura SAP TM'den alındıktan sonra bağlantılı ERP sisteminde gerçekleşir. | ||
| Neden önemli Bu, uçtan uca nakliye yaşam döngüsünün gerçek sonunu işaret eder. Genel süreç süresini ve zamanında ödeme KPI'larını ölçmek için hayati öneme sahiptir. Nereden alınır Bu bilgi ERP sisteminde (örn. S/4HANA Finance) bulunur. Fatura numarası aracılığıyla Navlun Ödeme Belgesi'ne geri bağlanabilir. Bir durum güncellemesi SAP TM'e geri gönderilebilir veya veriler BKPF ve BSEG gibi ERP tablolarından alınmalıdır. Yakala Ödeme temizleme tarihini ERP sisteminden alın ve fatura referansı aracılığıyla sevkiyatla ilişkilendirin. Event tipi explicit | |||
| Sevkiyat İptal Edildi | Bu aktivite, talep edildikten veya planlandıktan sonra bir sevkiyatın iptalini temsil eder. Yürütmeye geçmeyen süreçler için nihai bir uç nokta olarak hizmet eder. | ||
| 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önetimi veya planlamadaki temel sorunlara işaret edebilir. Nereden alınır Bu, Sevk Emri veya Navlun Emri'nin yaşam döngüsü durumunun 'İptal Edildi' olarak değişmesinden çıkarılır. Bu durum değişikliğinin zaman damgası olayı işaretler. Yakala Belgenin yaşam döngüsü durumunun 'İptal Edildi' olarak ayarlandığı zaman damgasını yakalayın. Event tipi inferred | |||
| Sevkiyat Planlandı | Bu aktivite, ulaşım gereksinimlerinin somut bir sevkiyat planında birleştirildiğini gösterir. Planlanan rota ve kaynakları içeren bir Navlun Emri (kara/demiryolu için) veya Navlun Rezervasyonu (deniz/hava için) oluşturulduğunda ve kaydedildiğinde yakalanır. | ||
| Neden önemli Bu kilometre taşını tamamlamak, lojistik yürütmeyi başlatmak için çok önemlidir. Talepten bu aktiviteye kadar geçen döngü süresi, planlama verimliliğini ölçmek için temel bir KPI'dır. Nereden alınır Bu olay, bir Navlun Emri veya Navlun Rezervasyonu belgesinin oluşturulmasına karşılık gelir. Planlama durumunun 'Planlandı'ya geçmesi gibi belgedeki bir durum değişikliğinden de çıkarılabilir. İlgili tablolar genellikle başlık verileri için /SCMTMS/D_TORROT'tur. Yakala Yük Siparişi veya Yük Rezervasyon belgesinin oluşturulma timestamp'ini kullanın. Event tipi explicit | |||
| Taşıyıcı Atandı | Bu aktivite, belirli bir ulaşım hizmet sağlayıcısının veya taşıyıcının seçilip sevkiyata atandığını gösterir. Bu durum, manuel atama, otomatik planlama veya ihale süreci aracılığıyla gerçekleşebilir. | ||
| Neden önemli Bir taşıyıcı atamak, bir sevkiyatın onaylanıp yürütülmesinden önce kritik bir adımdır. Bunu takip etmek, taşıyıcı seçimi süreçlerini analiz etmeye ve zamanında rezervasyon yapılmasını sağlamaya yardımcı olur. Nereden alınır Bu, Navlun Emri veya Navlun Rezervasyonu'nda taşıyıcı alanı ('Taşıyıcı' rolüne sahip taraf) doldurulduğunda yakalanır. İhale için, bir Navlun Teklif Talebi onaylandığında gerçekleşir. Yakala Taşıyıcı iş ortağı işlevinin Navlun Emri'nde ilk kez doldurulduğu veya onaylandığı zaman damgasını belirler. Event tipi inferred | |||
| Teslimat Kanıtı Alındı | Bu aktivite, imzalı Teslimat Kanıtı (POD) belgesi taşıyıcıdan alınıp sisteme kaydedildiğinde gerçekleşir. Bu, alıcının malları kabul ettiğini teyit eder. | ||
| Neden önemli Teslimat Kanıtı (POD) almak, müşteriye fatura kesmek ve taşıyıcı ile navlun ücretlerini ödemek için kritik bir ön koşuldur. Buradaki gecikmeler, nakit döngüsünü doğrudan etkiler. Nereden alınır Bu genellikle Yük Siparişi'ndeki bir durum değişikliğinden, örneğin POD durumunun 'Teslim Alındı' olarak ayarlanmasından anlaşılır. Bu durum alanındaki değişiklik, aktivite için zaman damgasını sağlar. Yakala Freight Order üzerindeki Teslimat Kanıtı durumunun 'Alındı' olarak güncellendiği zaman damgasını yakalayın. Event tipi inferred | |||
| Ulaşım Talebi Alındı | Bu aktivite, bir ulaşım gereksiniminin oluşturulmasını temsil eden ulaşım sürecinin başlatılmasını işaret eder. SAP TM'de bu, genellikle bir Sevk Emri (FWO) veya Sipariş Bazlı Ulaşım Gereksinimi (OTR) oluşturulmasıyla yakalanır. | ||
| Neden önemli Bu, uçtan uca sevkiyat süreci için birincil başlangıç olayıdır. Bu aktiviteden planlama tamamlanmasına kadar geçen süreyi analiz etmek, planlama verimliliğini ölçmek için kritik öneme sahiptir. Nereden alınır Bu olay, bir Sevk Emri (belge türü FWO) veya diğer ulaşım gereksinim belgelerinin oluşturulması üzerine kaydedilir. /SCMTMS/D_TORROT gibi başlık tablosundaki oluşturma zaman damgası, olay zamanı olarak hizmet eder. Yakala Forwarding Order veya Nakliye Gereksinimi belgesinin oluşturulma tarihini ve saatini yakalayın. Event tipi explicit | |||
| Fatura Doğrulandı | Bu aktivite, taşıyıcının faturasının Navlun Ödeme Belgesi ile başarıyla eşleştirildiğini ve ödeme için onaylandığını gösterir. Ödeme sürecinin ERP sisteminde başlatılmasından önceki son adımdır. | ||
| Neden önemli Bu aktivite, navlun maliyetleri için denetim ve doğrulama sürecini tamamlar. Bu aşamadaki gecikmeler, taşıyıcılara geç ödemelere yol açarak ilişkilere zarar verebilir. Nereden alınır Bu, Navlun Ödeme Belgesi'ndeki 'Tahakkuk İçin Hazır' veya 'Deftere Nakil İçin Aktarıldı' gibi bir durum değişikliğinden çıkarılır ve ödeme için ERP sistemine gönderildiğini gösterir. Yakala FSD'nin yaşam döngüsü durumu ödeme için hazır olduğunu veya muhasebeleştirildiğini gösterecek şekilde değiştiğinde timestamp'i izleyin. Event tipi inferred | |||
| Gümrük Beyannamesi Dosyalandı | Uluslararası sevkiyatlar için bu aktivite, yetkililere gerekli gümrük belgelerinin sunulmasını temsil eder. Malları ihraç veya ithal etmek için gümrük izni almak için bir ön koşuldur. | ||
| Neden önemli Gümrük beyannamelerinin zamanında dosyalanması, sınırlardaki gecikmeleri önlemek için çok önemlidir. Bu aktivite, gümrükleme sürecinin verimliliğini izlemeye yardımcı olur. Nereden alınır Bu olay, bir gümrük komisyoncusu tarafından rapor edilen belirli bir yürütme olayı olarak veya SAP GTS gibi entegre bir gümrük yönetimi sistemindeki bir durum değişikliğinden yakalanabilir. Navlun Emri buna göre güncellenir. Yakala 'Gümrük Beyannamesi Dosyalandı' yürütme olayının veya ilgili bir durum değişikliğinin zaman damgasını yakalayın. Event tipi explicit | |||
| Gümrükten Çekildi | Bu aktivite, sevkiyatın gümrük yetkilileri tarafından onaylandığını ve işleme devam edebileceğini gösterir. Bu olay, önemli bir potansiyel darboğazı ortadan kaldırdığı için uluslararası lojistik için büyük bir kilometre taşıdır. | ||
| Neden önemli Gümrükleme, küresel tedarik zincirlerinde sıklıkla büyük gecikmelerin kaynağıdır. Bu aktivitenin süresini ve başarı oranını takip etmek, uluslararası transit sürelerini iyileştirmek için anahtardır. Nereden alınır Bu, genellikle bir gümrük komisyoncusu veya harici bir görünürlük sağlayıcısı tarafından rapor edilen ve Navlun Emri'nin yürütme takibinde güncellenen bir 'Gümrükleme' yürütme olayı olarak yakalanır. Yakala Yük Siparişi ile ilişkili bildirilen 'Gümrükleme' yürütme event'inin timestamp'ini kullanın. Event tipi explicit | |||
| Navlun İhtilafı Oluşturuldu | Bu olay, taşıyıcının faturası ile Navlun Ödeme Belgesi'ndeki hesaplanan maliyetler arasında bir tutarsızlık bulunduğunu gösterir. Bu, bir anlaşmazlık çözüm iş akışını tetikler. | ||
| Neden önemli İhtilaflar, taşıyıcı ödemelerini geciktirir ve çözmek için idari çaba gerektirir. Bu aktiviteyi takip etmek, yanlış oranlar veya ek ücretler gibi faturalandırma yanlışlıklarının temel nedenlerini belirlemeye yardımcı olur. Nereden alınır Bu, Navlun Ödeme Belgesi'nde bir 'Anlaşmazlık' durumunun ayarlanmış olduğu bir durum değişikliğinden çıkarılabilir. Ayrıca, ayrı bir anlaşmazlık durumu belgesinin oluşturulmasını da içerebilir. Yakala Freight Settlement Document üzerinde ihtilaf durumunun ayarlandığı zaman damgasını yakalayın. Event tipi inferred | |||
| Sevkiyat Güzergahı Değiştirildi | Bu aktivite, onaylandıktan sonra sevkiyatın rotasında veya programında planlanmamış bir değişikliği ifade eder. Bu durum, kesintiler, müşteri talepleri veya lojistik sorunlar nedeniyle olabilir. | ||
| Neden önemli Güzergah değişiklikleri genellikle artan maliyetlere ve gecikmelere yol açar. Güzergah değişikliği sıklığını ve nedenlerini belirlemek, planlama doğruluğunu ve operasyonel istikrarı iyileştirmeye yardımcı olur. Nereden alınır Bu olay, bir Navlun Emri'ndeki aşamalarda, konumlarda veya tarihlerde yürütülmesi başladıktan sonra önemli değişiklikler tespit edilerek çıkarılır. Bu amaçla değişiklik belgeleri (CDHDR ve CDPOS tabloları) analiz edilebilir. Yakala 'Taşıyıcı Tarafından Onaylanan Sevkiyat' olayından sonra Freight Order belgesindeki ana yönlendirme alanlarındaki değişiklikleri tespit edin. Event tipi inferred | |||
| Sevkiyat Taşıyıcı Tarafından Onaylandı | Bu olay, taşıyıcının ulaşımı planlandığı gibi gerçekleştirmek için yaptığı anlaşmayı temsil eder. Onay genellikle bir EDI mesajı, bir taşıyıcı portalı güncellemesi veya manuel giriş yoluyla alınır ve bu da Navlun Emri'nin durumunu günceller. | ||
| Neden önemli Taşıyıcı onayı, sevkiyat planına bağlılık sağlayarak belirsizliği azaltır. Bu onayın alınmasındaki gecikmeler, tüm sevkiyat programını riske atabilir. Nereden alınır Bu, Navlun Emri veya Navlun Rezervasyonu'nun onay durumu alanındaki bir değişiklikten çıkarılır. 'Onaylandı' gibi belirli bir durum değeri, belgenin durum yönetiminde ayarlanacaktır. Yakala Yük Siparişi belgesindeki onay durumu alanlarındaki değişiklikleri izleyin. Event tipi inferred | |||
Veri Çekim Kılavuzları
Adımlar
- CDS Görünümü API'lerini Tanımlayın ve Etkinleştirin: SAP S/4HANA sisteminize giriş yapın. Çekirdek CDS görünümleri için gerekli OData hizmetlerinin etkin olduğunu doğrulamak amacıyla
/IWFND/MAINT_SERVICEişlemini kullanın. Kontrol edilecek temel hizmetler arasında I_TransportationOrder, C_TranspOrdExecutionEvent, I_ForwardingOrder ve I_FreightSettlementDocument ile ilgili olanlar bulunur. Etkin değilse, SAP yöneticinizle birlikte bunları arka uç sisteminden ekleyin ve etkinleştirin. - API Bağlantısını Kurun: SAP yöneticinizden OData hizmetleri için kök URL'yi alın. API'ye bağlanmak için bir Python betiği (requests kütüphanesini kullanarak), ticari bir ETL aracı veya Postman gibi bir araç gibi bir istemci uygulaması kurun. Kimlik doğrulamasını, genellikle Temel Kimlik Doğrulama (kullanıcı adı ve şifre) veya daha güvenli bir bağlantı için OAuth 2.0 kullanarak yapılandırmanız gerekecektir.
- Çekim Kapsamını Tanımlayın: Veri çekiminizin kapsamını belirleyin. Örneğin, son 6 ay gibi belirli bir tarih aralığı tanımlayın. Analiz ettiğiniz süreçle ilgili verilerin uyumlu olduğundan emin olmak için Şirket Kodu gibi ilgili organizasyonel birimleri veya Freight Order Type gibi belirli belge türlerini filtrelemek üzere belirleyin.
- Temel Sevkiyat Sorgusunu Oluşturun: I_TransportationOrder CDS görünümünü sorgulayarak başlayın. Bu görünüm, Freight Orders veya Freight Bookings olarak da bilinen sevkiyatlar için merkezi bir nesne görevi görür. İhtiyacınız olan sütunları seçmek için OData
$selectparametresini kullanın, buna CarrierName, ModeOfTransport ve RequestedDeliveryDate gibi önerilen öznitelikler de dahildir. Verileri tarihe ve diğer kapsam parametrelerine göre sınırlamak için bir$filteruygulayın. - Yürütme ve Nakliye Olaylarını Sorgulayın: Anahtar lojistik olayları çekmek için C_TranspOrdExecutionEvent CDS görünümünü kullanın. Bu görünümü, 'Mallar Teslim Alındı' (DEPARTURE) ve 'Mallar Teslim Edildi' (ARRIVAL_AT_DESTINATION) gibi aktivitelere karşılık gelen belirli
EventCodedeğerleri için filtreleyin. Bu verileri TransportationOrder UUID'sini kullanarak temel sevkiyat verilerinize geri birleştirin. - İlgili İş Nesnelerini Sorgulayın: Sürecin tamamını yakalamak için diğer ilgili CDS görümlerini sorgulamanız gerekir. 'Nakliye Talebi Alındı' aktivitesi için I_ForwardingOrder'ı, 'Navlun Ödemesi Oluşturuldu', 'Navlun İhtilafı Oluşturuldu' ve 'Fatura Doğrulandı' gibi finansal aktiviteler için I_FreightSettlementDocument'i sorgulayın.
- Durum Tabanlı Aktiviteleri Çekme: Birçok aktivite ayrı olaylar değil, birincil belge üzerindeki durum değişiklikleridir. 'Taşıyıcı Atandı', 'Taşıyıcı Tarafından Onaylanan Sevkiyat' ve 'Sevkiyat İptal Edildi' gibi aktiviteler için I_TransportationOrder görünümünü sorgulayacak ve ilgili durum alanıyla ilişkili
LastChangeDateTime'i olay zamanı olarak kullanacaksınız. Bu, durum kodlarının iş aktiviteleriyle dikkatli bir şekilde eşleştirilmesini gerektirir. - Verileri Birleştirin ve Dönüştürün: Tüm kaynaklardan çekilen verileri tek bir olay günlüğü yapısına konsolide edin. Çekilen her aktivite için gerekli sütunları (ShipmentId, ActivityName ve EventTime) içeren bir satır oluşturun. Temel sevkiyat sorgusundan gelen tüm önerilen özniteliklerin o sevkiyat için her satırda bulunduğundan emin olun. Bu adım, kavramsal olarak bir SQL
UNION ALLişlemine eşdeğerdir. - Karmaşık ve Harici Olayları Yönetin: 'Gümrükten Çekildi' veya 'Ödeme İşlendi' gibi aktiviteler için veri belirli alanlarda ve hatta harici sistemlerde bulunabilir. Sağlanan sorgu mantığı, standart alanları bir vekil olarak kullanır. Gümrüğe özgü CDS görünümleriyle birleştirmek veya Freight Settlement Document numarasına dayalı ödeme verileri için ayrı bir ERP çekimiyle ilişkilendirmek üzere sorguyu ayarlamanız gerekebilir.
- ProcessMind İçin Biçimlendirin: Son birleştirilmiş veri kümesini bir CSV dosyası olarak kaydedin. Sütun başlıklarının yükleme gereksinimleriyle eşleştiğinden emin olun; örneğin,
ShipmentIdsütununuzu aracın ayarlarındakiCaseIdalanıyla eşleyin. Zaman damgalarının tutarlı bir formatta, tercihen UTC (YYYY-MM-DDTHH:MM:SSZ) olduğundan emin olun.
Konfigürasyon
- Çekirdek CDS Görünümleri: Veri çekme işlemi öncelikli olarak I_TransportationOrder (navlun siparişleri için), C_TranspOrdExecutionEvent (yürütme olayları için), I_ForwardingOrder (nakliye talepleri için) ve I_FreightSettlementDocument (ödeme için) üzerinde yoğunlaşır.
- Tarih Aralığı Filtrelemesi: Veri hacmini yönetmek için bir tarih filtresi uygulamak kritik öneme sahiptir. I_TransportationOrder'daki
CreationDateTimeveya C_TranspOrdExecutionEvent'tekiActualBusinessDateTimealanını kullanın. İlk analiz için 3 ila 6 aylık bir aralık önerilir. - Belge Türü Filtrelemesi: Analizi belirli belge türlerine odaklamak için
TransportationOrderTypealanını kullanarak filtreleme yapın. Bu, standart giden sevkiyatlar ile stok transferleri gibi farklı lojistik senaryolarını ayırmaya yardımcı olur. - Organizasyonel Filtreler: Uygulanabilirse, verileri belirli bir iş birimi veya bölgeyle sınırlamak için
PurchasingOrganizationveya diğer organizasyon düzeyindeki alanlara göre filtreleyin. - API Sayfalandırma: Büyük veri kümeleri için, verileri daha küçük sayfalarda almak üzere OData parametreleri
$topve$skipkullanın. Bu, API zaman aşımlarını önler ve istemci tarafında bellek tüketimini azaltır. 1000 ila 5000 satırlık bir sayfa boyutu genellikle etkilidir. - Ön Koşullar: Veri çekme işlemini gerçekleştiren kullanıcı veya hizmet hesabı, temel OData hizmetleri (yetkilendirme nesnesi S_SERVICE) ve CDS görünümlerindeki iş verileri için yetkilendirmelere ihtiyaç duyar. İlgili hizmetlerin SAP Gateway'de (
/IWFND/MAINT_SERVICE) etkinleştirilmesi gerekir.
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
- CDS Görünümü API'lerini Tanımlayın ve Etkinleştirin: SAP S/4HANA sisteminize giriş yapın. Çekirdek CDS görünümleri için gerekli OData hizmetlerinin etkin olduğunu doğrulamak amacıyla
/IWFND/MAINT_SERVICEişlemini kullanın. Kontrol edilecek temel hizmetler arasında I_TransportationOrder, C_TranspOrdExecutionEvent, I_ForwardingOrder ve I_FreightSettlementDocument ile ilgili olanlar bulunur. Etkin değilse, SAP yöneticinizle birlikte bunları arka uç sisteminden ekleyin ve etkinleştirin. - API Bağlantısını Kurun: SAP yöneticinizden OData hizmetleri için kök URL'yi alın. API'ye bağlanmak için bir Python betiği (requests kütüphanesini kullanarak), ticari bir ETL aracı veya Postman gibi bir araç gibi bir istemci uygulaması kurun. Kimlik doğrulamasını, genellikle Temel Kimlik Doğrulama (kullanıcı adı ve şifre) veya daha güvenli bir bağlantı için OAuth 2.0 kullanarak yapılandırmanız gerekecektir.
- Çekim Kapsamını Tanımlayın: Veri çekiminizin kapsamını belirleyin. Örneğin, son 6 ay gibi belirli bir tarih aralığı tanımlayın. Analiz ettiğiniz süreçle ilgili verilerin uyumlu olduğundan emin olmak için Şirket Kodu gibi ilgili organizasyonel birimleri veya Freight Order Type gibi belirli belge türlerini filtrelemek üzere belirleyin.
- Temel Sevkiyat Sorgusunu Oluşturun: I_TransportationOrder CDS görünümünü sorgulayarak başlayın. Bu görünüm, Freight Orders veya Freight Bookings olarak da bilinen sevkiyatlar için merkezi bir nesne görevi görür. İhtiyacınız olan sütunları seçmek için OData
$selectparametresini kullanın, buna CarrierName, ModeOfTransport ve RequestedDeliveryDate gibi önerilen öznitelikler de dahildir. Verileri tarihe ve diğer kapsam parametrelerine göre sınırlamak için bir$filteruygulayın. - Yürütme ve Nakliye Olaylarını Sorgulayın: Anahtar lojistik olayları çekmek için C_TranspOrdExecutionEvent CDS görünümünü kullanın. Bu görünümü, 'Mallar Teslim Alındı' (DEPARTURE) ve 'Mallar Teslim Edildi' (ARRIVAL_AT_DESTINATION) gibi aktivitelere karşılık gelen belirli
EventCodedeğerleri için filtreleyin. Bu verileri TransportationOrder UUID'sini kullanarak temel sevkiyat verilerinize geri birleştirin. - İlgili İş Nesnelerini Sorgulayın: Sürecin tamamını yakalamak için diğer ilgili CDS görümlerini sorgulamanız gerekir. 'Nakliye Talebi Alındı' aktivitesi için I_ForwardingOrder'ı, 'Navlun Ödemesi Oluşturuldu', 'Navlun İhtilafı Oluşturuldu' ve 'Fatura Doğrulandı' gibi finansal aktiviteler için I_FreightSettlementDocument'i sorgulayın.
- Durum Tabanlı Aktiviteleri Çekme: Birçok aktivite ayrı olaylar değil, birincil belge üzerindeki durum değişiklikleridir. 'Taşıyıcı Atandı', 'Taşıyıcı Tarafından Onaylanan Sevkiyat' ve 'Sevkiyat İptal Edildi' gibi aktiviteler için I_TransportationOrder görünümünü sorgulayacak ve ilgili durum alanıyla ilişkili
LastChangeDateTime'i olay zamanı olarak kullanacaksınız. Bu, durum kodlarının iş aktiviteleriyle dikkatli bir şekilde eşleştirilmesini gerektirir. - Verileri Birleştirin ve Dönüştürün: Tüm kaynaklardan çekilen verileri tek bir olay günlüğü yapısına konsolide edin. Çekilen her aktivite için gerekli sütunları (ShipmentId, ActivityName ve EventTime) içeren bir satır oluşturun. Temel sevkiyat sorgusundan gelen tüm önerilen özniteliklerin o sevkiyat için her satırda bulunduğundan emin olun. Bu adım, kavramsal olarak bir SQL
UNION ALLişlemine eşdeğerdir. - Karmaşık ve Harici Olayları Yönetin: 'Gümrükten Çekildi' veya 'Ödeme İşlendi' gibi aktiviteler için veri belirli alanlarda ve hatta harici sistemlerde bulunabilir. Sağlanan sorgu mantığı, standart alanları bir vekil olarak kullanır. Gümrüğe özgü CDS görünümleriyle birleştirmek veya Freight Settlement Document numarasına dayalı ödeme verileri için ayrı bir ERP çekimiyle ilişkilendirmek üzere sorguyu ayarlamanız gerekebilir.
- ProcessMind İçin Biçimlendirin: Son birleştirilmiş veri kümesini bir CSV dosyası olarak kaydedin. Sütun başlıklarının yükleme gereksinimleriyle eşleştiğinden emin olun; örneğin,
ShipmentIdsütununuzu aracın ayarlarındakiCaseIdalanıyla eşleyin. Zaman damgalarının tutarlı bir formatta, tercihen UTC (YYYY-MM-DDTHH:MM:SSZ) olduğundan emin olun.
Konfigürasyon
- Çekirdek CDS Görünümleri: Veri çekme işlemi öncelikli olarak I_TransportationOrder (navlun siparişleri için), C_TranspOrdExecutionEvent (yürütme olayları için), I_ForwardingOrder (nakliye talepleri için) ve I_FreightSettlementDocument (ödeme için) üzerinde yoğunlaşır.
- Tarih Aralığı Filtrelemesi: Veri hacmini yönetmek için bir tarih filtresi uygulamak kritik öneme sahiptir. I_TransportationOrder'daki
CreationDateTimeveya C_TranspOrdExecutionEvent'tekiActualBusinessDateTimealanını kullanın. İlk analiz için 3 ila 6 aylık bir aralık önerilir. - Belge Türü Filtrelemesi: Analizi belirli belge türlerine odaklamak için
TransportationOrderTypealanını kullanarak filtreleme yapın. Bu, standart giden sevkiyatlar ile stok transferleri gibi farklı lojistik senaryolarını ayırmaya yardımcı olur. - Organizasyonel Filtreler: Uygulanabilirse, verileri belirli bir iş birimi veya bölgeyle sınırlamak için
PurchasingOrganizationveya diğer organizasyon düzeyindeki alanlara göre filtreleyin. - API Sayfalandırma: Büyük veri kümeleri için, verileri daha küçük sayfalarda almak üzere OData parametreleri
$topve$skipkullanın. Bu, API zaman aşımlarını önler ve istemci tarafında bellek tüketimini azaltır. 1000 ila 5000 satırlık bir sayfa boyutu genellikle etkilidir. - Ön Koşullar: Veri çekme işlemini gerçekleştiren kullanıcı veya hizmet hesabı, temel OData hizmetleri (yetkilendirme nesnesi S_SERVICE) ve CDS görünümlerindeki iş verileri için yetkilendirmelere ihtiyaç duyar. İlgili hizmetlerin SAP Gateway'de (
/IWFND/MAINT_SERVICE) etkinleştirilmesi gerekir.
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
- Veri Gereksinimlerini Tanımlayın: Gerekli 15 aktivitenin ve tüm özniteliklerin her biri için tam mantığı onaylayarak başlayın. Bu, her aktiviteyi SAP TM sisteminizdeki belirli durum değişikliklerine, oluşturma olaylarına veya belge bağlantılarına eşlemeyi içerir. Örneğin, 'Mallar Teslim Alındı' anlamına gelen tam yürütme durumunu belirleyin.
- ABAP Geliştirme Ortamına Erişin: SAP GUI'ye giriş yapın ve
SE38işlem kodunu kullanarak ABAP Düzenleyici'ye gidin. Yeni programınız için bir ad girin, örneğinZTM_PROCESS_EXTRACT, ve 'Oluştur'a tıklayın. Bir başlık sağlayın ve program türünü 'Yürütülebilir Program' olarak ayarlayın. - Seçim Ekranı Oluşturun: Programda, kullanıcıların göreceği seçim ekranını tanımlayın. Bu, navlun siparişi oluşturma tarihi (
SO_CREDT) için bir tarih aralığı ve belge türleri (SO_TYPE) veya taşıyıcılar (SO_CARR) için seçme seçenekleri gibi verileri filtreleme parametrelerini içermelidir. - Çıkış Yapısını Tanımlayın: Gerekli olay günlüğü formatına uygun bir dahili tablo yapısı tanımlayın. Bu yapı,
ShipmentId,ActivityName,EventTime,EndTime,CarrierName,RequestedDeliveryDate,ModeOfTransport,TotalFreightCostveIsOnTimeDeliveryalanlarını içermelidir. - Veri Seçim Mantığını Uygulayın: 15 aktivitenin her biri için veri seçmek üzere ana ABAP mantığını yazın. Bu genellikle birden çok SAP TM tablosunu sorgulamayı içerir. Belirtilen tarih aralığındaki Freight Orders gibi birincil sevkiyat belgelerini seçerek başlayın.
- Planlama ve Yürütme Olaylarını Çekme: Seçilen her sevkiyat belgesi (örn. Freight Order) için, farklı olayların zaman damgalarını bulmak üzere ilgili tabloları ve iş nesnelerini sorgulayın. Freight Order oluşturma ('Sevkiyat Planlandı'), taşıyıcı ataması ('Taşıyıcı Atandı') ve 'Mallar Teslim Alındı' ile 'Mallar Teslim Edildi'ye 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ı 'Nakliye Talebi Alındı' anlamına gelebilir. - Taşıyıcı Onayı ve Yeniden Yönlendirmeyi Çekme:
CONFIRMATIONdurumunun ne zaman ayarlandığını belirlemek için Freight Order ile ilişkili durum tablolarını veya değişiklik belgelerini (CDHDR/CDPOS) sorgulayın, bu da 'Taşıyıcı Tarafından Onaylanan Sevkiyat'ı yakalar. Benzer şekilde, 'Sevkiyat Yeniden Yönlendirildi'yi yakalamak için yönlendirme bilgilerindeki önemli değişikliklere bakın. - Gümrük Olaylarını Çekme: SAP Global Trade Services (GTS) veya benzer bir modül kullanılıyorsa, gümrük olayları ('Gümrük Beyannamesi Dosyalandı', 'Gümrükten Çekildi') genellikle bağlantılı belgeler aracılığıyla izlenir. Mantık, bu ilgili belgeleri ve oluşturulma veya durum değiştirme zamanlarını bulmak için Freight Order'ın belge akışını (
/SCMTMS/D_TORDOC) okumalıdır. - Ödeme ve İhtilaf Olaylarını Çekme: 'Navlun Ödemesi Oluşturuldu', 'Navlun İhtilafı Oluşturuldu' ve 'Fatura Doğrulandı' olaylarını yakalamak için Freight Settlement Document başlık tablosunu (
/SCMTMS/D_SFIRHD) ve ilgili öğelerini ve durumlarını sorgulayın. Bunları orijinalShipmentIdile tekrar bağlayın. - Verileri Birleştirin: Bulunan her olay için, nihai dahili tablonuzda yeni bir kayıt oluşturun.
ActivityNamealanını ilgili aktiviteyle,EventTimealanını olayın zaman damgasıyla veShipmentIdalanını Freight Order veya Freight Booking ID'siyle doldurun. Diğer öznitelikleri kaynak belgelerden doldurun. - Dosyayı Biçimlendirin ve Dışa Aktarın: Nihai dahili tablo tamamen doldurulduktan sonra, verileri düz bir dosyaya biçimlendirin. 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 (AL11 işlemi aracılığıyla erişilebilir). - Zamanlayın ve Alın: ABAP programı, verileri otomatik olarak çekmek için bir arka plan işi (SM36 işlemi) olarak zamanlanabilir. Oluşturulan dosya daha sonra ProcessMind'e yüklemek için
CG3Yişlemi kullanılarak uygulama sunucusundan yerel bir makineye indirilebilir.
Konfigürasyon
- Tarih Aralığı: Seçim ekranı, ana nakliye belgesinin (örn. Freight Order) oluşturulma tarihi için zorunlu bir tarih aralığı içermelidir. İlk analiz için, aşırı çalışma süresine neden olmadan temsili bir veri kümesi sağlamak amacıyla 3 ila 6 aylık bir aralık önerilir.
- Belge Türü Filtresi: Nakliye Belge Türü (örn. Freight Order, Freight Booking) için bir filtre sağlayın. Bu, analizi karayolu navlunu ile denizyolu navlunu gibi belirli süreçlere odaklamak için çok önemlidir.
- Taşıyıcı Filtresi: Kullanıcıların belirli taşıyıcılara göre filtreleme yapmasına izin verin. Bu, bireysel lojistik ortaklarının performansını analiz etmeye yardımcı olur.
- Organizasyonel Filtreler: Veri çekmeyi belirli iş alanlarıyla sınırlamak için Satın Alma Organizasyonu veya Şirket Kodu gibi ilgili organizasyonel birimler için filtreler ekleyin.
- Performans Optimizasyonu: Büyük veri kümeleri için, ABAP kodunun
WHEREcümlelerinde indekslenmiş veritabanı alanları kullandığından, mümkün olduğunca iç içe döngülerden kaçındığından ve bellek tüketimini en aza indirmek 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ütmek için yetkisi olması gerekir. Geliştiricinin
S_DEVELOPyetkisine ihtiyacı vardır. Programın kendisi, uygulama sunucusunda dosya sistemi erişimi (S_DATASETnesnesi) ve ilgili TM veritabanı tablolarına ve BOPF nesnelerine erişim için yetkilendirmeler 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.