Szállításirányítási adatsablon
Szállításirányítási adatsablon
- Javasolt attribútumok
- Nyomon követendő tevékenységek
- Útmutató az adatok kinyeréséhez az SAP Transportation Management rendszerből
A szállításirányítás attribútumai
| Név | Leírás | ||
|---|---|---|---|
| Esemény időpontja EventTime | Az időbélyeg, amely megadja, mikor történt egy adott tevékenység vagy esemény. | ||
| Leírás Az esemény időpontja minden szállítási tevékenység pontos dátumát és időpontját tartalmazza. Ezek az időadatok szükségesek az átfutási idők, az időtartamok és a folyamatlépések közötti várakozási idők kiszámításához. Az elemzés során ez az attribútum segít az események helyes sorrendbe rendezésében, az időrendi napló összeállításában és az időalapú teljesítményelemzésben. Elengedhetetlen a késések feltárásához, a folyamat hatékonyságának méréséhez, valamint az ütemtervekhez és szolgáltatási szintű megállapodásokhoz viszonyított teljesítmény értékeléséhez. Miért fontos? Az időbélyeg szükséges az események időrendi sorrendbe rendezéséhez és a teljesítménymutatók, például az átfutási idő vagy a határidőre történő kézbesítés kiszámításához. Hol szerezhető be? Az adat az SAP TM eseménykezelő tábláiból, például a /SAPTRX/EH_EVMSG táblából származik, amely a jelentett események időbélyegeit tárolja. Példák 2023-04-15T10:00:00Z2023-04-16T14:30:00Z2023-04-20T09:15:00Z | |||
| Szállítmány ShipmentId | Az áru egyetlen szállításának egyedi azonosítója, amely az elemzés központi esetazonosítójaként szolgál. | ||
| Leírás A Shipment ID az elsődleges kulcs, amely összekapcsolja az összes kapcsolódó szállítási tevékenységet és eseményt. Egyetlen, teljes szállítási folyamatot jelöl a kezdeti igénytől a kézbesítési igazolásig és a fizetésig. A process miningben ez az attribútum szükséges az esetnézet létrehozásához, így az elemzők végigkövethetik az egyes szállítmányok teljes útját. Segítségével elemezhetők az egyes szállítmányokhoz kapcsolódó folyamatváltozatok, átfutási idők és eredmények, így teljesebb kép kapható a szállítási teljesítményről. Miért fontos? Ez az alapvető esetazonosító kapcsolja az eseményeket és adatpontokat egy adott szállítási rendeléshez, ami elengedhetetlen a teljes folyamat elemzéséhez. Hol szerezhető be? Ez az azonosító az SAP TM-ben szereplő Freight Order vagy Freight Booking száma. A /SCMTMS/D_TORROT és a /SCMTMS/D_TRQROT táblákban található. Példák 610000432161000056786100009876 | |||
| Tevékenység neve ActivityName | A szállítási folyamatban történt konkrét üzleti esemény vagy lépés neve. | ||
| Leírás A tevékenység neve a szállítmány életciklusának egy-egy feladatát vagy mérföldkövét jelöli, például: „Szállítmány megtervezve”, „Az árut felvették” vagy „Az árut kézbesítették”. Ezek a tevékenységek alkotják a feltárt folyamattérkép csomópontjait. A tevékenységek sorrendjének és gyakoriságának elemzése segít azonosítani a szokásos folyamatmenetet, az eltéréseket, a szűk keresztmetszeteket és az ismétlődő munkafázisokat. Ez a szállításmenedzsment folyamatfeltárásának és megfelelőség-ellenőrzésének alapja. Miért fontos? Ez az attribútum határozza meg a szállítási folyamat lépéseit, és lehetővé teszi a teljes szállítási folyamat megjelenítését és elemzését. Hol szerezhető be? Az adat jellemzően az SAP TM végrehajtáskövető eseménykezelőjében rögzített eseménykódokból vagy állapotváltozásokból származik. Forrása lehetnek az üzleti objektumok állapotváltozásait vagy az egyes eseményüzeneteket naplózó táblák. Példák Szállítmány megtervezveFuvarozó hozzárendelveAz árut felvettékAz árut kézbesítettékA kézbesítési igazolás beérkezett | |||
| Befejezés időpontja EndTime | Az időbélyeg, amely megadja, mikor fejeződött be egy adott tevékenység. | ||
| Leírás Míg a StartTime egy esemény kezdetét jelzi, az EndTime annak befejezését. Ez különösen hasznos az időtartammal rendelkező tevékenységeknél, például a „Customs Clearance” vagy a „Goods Loading” esetén. Az EndTime és a StartTime különbsége adja meg a tevékenység feldolgozási idejét. A process mining elemzésben a kezdési és befejezési idő együttesen lehetővé teszi a tevékenységek időtartamának részletesebb vizsgálatát, valamint a feldolgozási idő és a várakozási idő elkülönítését. Így pontosan feltárható, hol jelentkezik hatékonysági probléma: egy feladat végrehajtása közben vagy a feladatok közötti átadásnál. Miért fontos? Lehetővé teszi a tevékenységek feldolgozási idejének pontos kiszámítását, és elkülöníti az aktív munkavégzés idejét az események közötti várakozástól. Hol szerezhető be? A StartTime-hoz hasonlóan ez az adat is az eseménykezelő táblákból származik. Egy adott tevékenység külön „completed” eseményének is megfelelhet. Példák 2023-04-15T11:30:00Z2023-04-16T15:00:00Z2023-04-20T09:45:00Z | |||
| Fuvarozó neve CarrierName | A szállítmányhoz rendelt fuvarozó vagy logisztikai szolgáltató neve. | ||
| Leírás A fuvarozó neve jelöli azt a vállalatot, amely fizikailag mozgatja az árut. Ez fontos szempont a teljesítmény elemzésénél, mivel a fuvarozók szolgáltatási színvonala, költsége és megbízhatósága eltérhet. A process mining során ezzel az attribútummal fuvarozónként bonthatja le és hasonlíthatja össze a teljesítményt. Fuvarozói értékelőlapokat készíthet, nyomon követheti a fuvarozónkénti pontos szállítási arányt, összevetheti a költségeket, és megállapíthatja, mely fuvarozókhoz kapcsolódik leggyakrabban késés vagy reklamáció. Ez az információ segíti a fuvarozók stratégiai kiválasztását és a beszerzést. Miért fontos? Lehetővé teszi a fuvarozók teljesítményének összehasonlítását, ami segít a fuvarozó kiválasztásának, a költségeknek és a szolgáltatási színvonalnak az optimalizálásában. Hol szerezhető be? Az adat a Freight Order vagy Freight Booking dokumentumban szerepel, és a fuvarozó üzleti partnerfunkcióján keresztül kapcsolódik hozzá. Példák DHL ExpressFedEx FreightMaersk LineUnion Pacific Railroad | |||
| Kért kézbesítési dátum RequestedDeliveryDate | Az ügyfél által kért vagy az értékesítési rendelésben meghatározott kézbesítési dátum és időpont. | ||
| Leírás A kért kézbesítési dátum a „Goods Delivered” tevékenység célhatárideje. Ez az alapja a pontos kézbesítés mérésének. Ebből a dátumból számítható ki a pontos kézbesítési arány KPI. A tényleges kézbesítési időbélyeget a kért dátummal összevetve megállapítható, hogy a szervezet teljesítette-e a szolgáltatási szintre vonatkozó vállalását. Az eltérések elemzése feltárhatja a késések rendszeres okait, például a fuvarozói teljesítmény problémáit, a tervezési késedelmeket vagy a vámkezelés elhúzódását. Miért fontos? Ez az alapja a pontos kézbesítés mérésének, amely az ügyfél-elégedettség és a hatékony működés egyik fontos KPI-ja. Hol szerezhető be? Ez a dátum általában az SAP ERP rendszerből érkező előző értékesítési rendelésből vagy készletáthelyezési rendelésből kerül át. A Freight Unit vagy Freight Order dátum- és időmezőiben tárolják. Példák 2023-05-20T17:00:00Z2023-06-01T12:00:00Z2023-06-15T23:59:59Z | |||
| Pontos volt a kézbesítés IsOnTimeDelivery | Logikai jelző, amely megmutatja, hogy az árut a kért kézbesítési dátumon vagy korábban kézbesítették-e. | ||
| Leírás Ez a számított attribútum a „Goods Delivered” tevékenység időbélyegét veti össze a kért kézbesítési dátummal. Igaz értéket ad, ha a kézbesítés időben vagy korábban történt, és hamisat, ha késett. Az attribútum egyértelmű, kétértékű eredményt ad minden szállítmányhoz, így egyszerűbbé teszi a teljesítmény elemzését. Ez az alapja a pontos kézbesítési teljesítményt bemutató dashboardnak és a hozzá tartozó KPI-nak. Az elemzők könnyen kiszűrhetik a késő szállítmányokat, majd feltárhatják a gyenge teljesítmény okait. Miért fontos? Közvetlenül méri a kézbesítési vállalások teljesítését, így egyszerűbb kiszámítani és megjeleníteni a pontos kézbesítés fontos KPI-ját. Hol szerezhető be? Ez az attribútum nem szerepel az SAP TM rendszerben. Az adatátalakítás során kell kiszámítani a tényleges kézbesítési esemény időbélyegének és a kért kézbesítési dátumnak az összevetésével. Példák truefalse | |||
| Szállítási mód ModeOfTransport | A szállítmányhoz használt szállítási mód, például közúti, vasúti, légi vagy tengeri. | ||
| Leírás Ez az attribútum határozza meg a szállítás módját. Az egyes módok költsége, menetideje és folyamata eltérő. Egy nemzetközi légi áruszállítás például olyan tevékenységeket is magában foglal, mint a vámkezelés, míg egy belföldi kamionos szállítás nem feltétlenül. A folyamatok szállítási mód szerinti elemzésével célzott fejlesztéseket tervezhet. Ez a költségelemzéshez is fontos, különösen a sürgős, prémium szállítások, például a gyorsított légi fuvarok és a szokásos, gazdaságosabb módok használatának összevetéséhez. Ez a bontás segít megérteni és kézben tartani a szállítási kiadásokat. Miért fontos? Lehetővé teszi a költségek, az időigény és a folyamateltérések elemzését szállítási mód szerint. Ez segít a költségek optimalizálásában és a prémium szállítások használatának feltárásában. Hol szerezhető be? A Freight Order vagy Freight Booking egyik fontos mezője, amelyet gyakran Transportation Mode vagy MOT néven jelölnek. Példák 01 (közúti)02 (vasúti)04 (légi)05 (tengeri) | |||
| Teljes fuvarköltség TotalFreightCost | A szállítmány teljes, kiszámított vagy számlázott költsége. | ||
| Leírás A teljes fuvarköltség a szállítmány pénzügyi hatását mutatja. Ez lehet a szállításirányítási rendszer által kiszámított költség vagy a fuvarozó elszámolás utáni végszámlájának összege. Ezzel az attribútummal a pénzügyi szempont is bevonható a folyamatelemzésbe. Az elemzők azonosíthatják a legdrágább folyamatváltozatokat, kiszámíthatják a késések vagy útvonal-módosítások költségét, és összehasonlíthatják a fuvarozók, illetve a szállítási módok költséghatékonyságát. Nélkülözhetetlen a szállítási kiadásokat és a kiszolgálási költségeket bemutató dashboardokhoz. Miért fontos? Pénzügyi szemponttal egészíti ki a folyamatelemzést, így vizsgálható a szállítási kiadás, az egy szállítmányra jutó költség és a folyamatbeli hiányosságok pénzügyi hatása. Hol szerezhető be? Az SAP TM Freight Settlement Document dokumentumából származik, miután megtörtént a díjak kiszámítása. Többek között a /SCMTMS/D_SFIRHD táblában található. Példák 250.751200.005430.50 | |||
| A késés oka DelayReason | A szállítmány késésének okát leíró kód vagy szöveg. | ||
| Leírás A késés oka attribútum a tervezett ütemezéstől való eltérés okát rögzíti, például „Rossz időjárás”, „Vámvizsgálat” vagy „Fuvarozói késés”. Az adatot gyakran kézzel adják meg, vagy a fuvarozó eseményüzenetben küldi el. Ez az attribútum segít feltárni a problémák kiváltó okait. Az elemzők így nemcsak azt látják, hogy késett a szállítmány, hanem azt is, hogy miért. A késési okok csoportosításával és számszerűsítésével felismerhetők a visszatérő problémák, és a fejlesztési erőfeszítések a legnagyobb hatású területekre összpontosíthatók, például a fuvarozóval folytatott kommunikáció javítására vagy a torlódások elkerülését célzó útvonal-optimalizálásra. Miért fontos? Megmutatja, miért késnek a szállítmányok, így feltárhatók a kiváltó okok, csökkenthetők a rendkívüli esetek és javítható a pontos kézbesítés. Hol szerezhető be? Az SAP TM eseménykezelési keretrendszerében eseménykódként és indoklásként rögzíthető, amikor „Arrival/Departure Delayed” eseményt jelentenek. Példák WEATHER_DELAYCUSTOMS_INSPECTIONPORT_CONGESTIONMECHANICAL_FAILURE | |||
| A reklamáció oka DisputeReason | A fuvardíjszámlával kapcsolatos reklamáció indoklása. | ||
| Leírás Ha a fuvarozó számlája eltér az SAP TM rendszerben kiszámított várható költségtől, reklamáció indul. Ez az attribútum rögzíti az eltérés okát, például „Hibás díjtétel”, „Duplikált számla” vagy „Jóvá nem hagyott járulékos díj”. A reklamációs okok elemzése fontos a fuvardíjszámlák hibáit és reklamációit bemutató dashboardhoz. Segít feltárni a számlázási pontatlanságok kiváltó okait, legyen szó törzsadatproblémáról, fuvarozói hibáról vagy működési hiányosságról. Az eredmények alapján célzott intézkedésekkel csökkenthetők a reklamációk, gyorsítható a fizetési ciklus és mérsékelhető az adminisztrációs teher. Miért fontos? Feltárja a fuvardíjszámlázási hibák kiváltó okát, így célzott intézkedésekkel csökkenthetők a reklamációk és javítható az elszámolási folyamat. Hol szerezhető be? Az adat a Freight Settlement Document dokumentumhoz kapcsolódó reklamációkezelési ügyben szerepel. Példák Eltérő díjtételHibás súlyJóvá nem hagyott állásidődíjDuplikált számla | |||
| Feladási ország OriginCountry | Az ország, ahonnan a szállítmány indul. | ||
| Leírás Ez az attribútum a szállítás kiindulási országát jelöli, amelyet az első felvételi hely címéből határoznak meg. A folyamat feladási ország szerinti elemzése feltárja a teljesítmény, a költségek és a bonyolultság regionális eltéréseit. Megmutathatja, mely országokban tart tovább a vámkezelés, magasabbak a fuvarozói költségek, vagy gyakoribbak a késések. Ez a földrajzi bontás elengedhetetlen a globális ellátási lánc irányításához és a régiókhoz igazított logisztikai stratégiák kialakításához. Miért fontos? Földrajzi bontásban elemzi a szállítmányok teljesítményét, és segít feltárni a regionális szűk keresztmetszeteket, költségtényezőket és folyamateltéréseket. Hol szerezhető be? A Freight Order első megállójának kiindulási helyére vonatkozó címadatok része. Példák DEUSCNMX | |||
| Felhasználó neve UserName | A tevékenységet végrehajtó személy felhasználói azonosítója vagy neve. | ||
| Leírás Ez az attribútum azonosítja azt a munkavállalót vagy felhasználót, aki egy manuális tevékenységért, például a „Szállítmány megtervezve” vagy a „Számla ellenőrizve” lépésért felelős. A folyamatlépéseket összekapcsolja az azokat végrehajtó személyekkel vagy csapatokkal. A tevékenységek felhasználó szerinti elemzése segít megérteni a munkaterhelés eloszlását, feltárni a képzési igényeket és azonosítani a kiemelkedő teljesítményt nyújtókat. A megfelelés és az audit szempontjából is fontos, mert egyértelműen rögzíti, ki mit és mikor végzett el. Az elemzés megmutathatja, hogy a különböző felhasználók eltérően végzik ugyanazt a feladatot. Miért fontos? Az egyes manuális folyamatlépéseket konkrét felhasználókhoz rendeli, így elemezhető a munkaterhelés, az egyéni teljesítmény és a képzési lehetőségek. Hol szerezhető be? A szállítási dokumentumok változásnaplóiban vagy fejlécadataiban található, például a „Létrehozta” vagy „Módosította” mezőben (pl. ERNAM, AENAM). Példák CB998030SMITHJPLANNER_EU | |||
| Forrásrendszer SourceSystem | Az a rendszer, amelyből az eseményadatok származnak. | ||
| Leírás Ez az attribútum azonosítja az adatot létrehozó forrásrendszert, például az SAP TM-et, az SAP ERP-t vagy egy külső fuvarozói portált. Megmutatja az adatok eredetét, és segít megérteni az adatkapcsolatokat. Összetett rendszerek esetén a forrásrendszer ismerete szükséges az adatok ellenőrzéséhez, az integrációs problémák elhárításához és annak megértéséhez, hogy az egyes rendszerek hogyan járulnak hozzá a teljes folyamathoz. Segítségével például megkülönböztethető a belső rendszerből érkező esemény a külső logisztikai szolgáltató által jelentett eseménytől. Miért fontos? Azonosítja az adatok eredetét, ami szükséges az adatirányításhoz, a hibakereséshez és a több rendszeren átívelő folyamatok megértéséhez. Hol szerezhető be? Ezt az információt gyakran a rendszernapló tárolja, de az adatbevitelt létrehozó interfész vagy felhasználó alapján is meghatározható. Példák SAP_TM_P01SAP_ERP_E01CARRIER_PORTAL_XYZ | |||
| Rendeltetési ország DestinationCountry | Az ország, ahová a szállítmányt kézbesítik. | ||
| Leírás Ez az attribútum a szállítmány végső rendeltetési országát jelöli, amelyet az utolsó kézbesítési hely címéből határoznak meg. A feladási országhoz hasonlóan a rendeltetési ország szerinti elemzés is fontos a regionális logisztikai kihívások megértéséhez. Megmutathatja például, mely célországokban gyakoribbak a kézbesítési késések, vagy magasabbak az utolsó kilométeres kézbesítés költségei. Ez az információ hasznos a hálózat optimalizálásához, a reális kézbesítési elvárások meghatározásához és a nemzetközi kereskedelmi előírásoknak való megfelelés kezeléséhez. Miért fontos? Rendeltetési hely szerint elemzi a folyamat teljesítményét, és rávilágít az egyes kézbesítési régiókhoz, vámhatóságokhoz vagy utolsó kilométeres fuvarozókhoz kapcsolódó problémákra. Hol szerezhető be? A Freight Order utolsó megállójának rendeltetési helyére vonatkozó címadatok része. Példák FRCAGBJP | |||
| Szállítmány állapota ShipmentStatus | A szállítmány aktuális, az adatok kinyerésekor érvényes általános állapota. | ||
| Leírás A szállítmány állapota megmutatja, hol tart a szállítmány az életciklusában, például „Tervezés alatt”, „Végrehajtás alatt”, „Kézbesítve” vagy „Törölve”. Az ügy utolsó ismert állapotát jelzi. Ezzel az attribútummal az eredmény szerint szűrheti és elemezheti a szállítmányokat. Az elemző például csak a lezárt szállítmányokat vizsgálhatja a teljes átfutási idő méréséhez, vagy csak a törölteket elemezheti a törlés okainak feltárásához. Az attribútum fontos hátteret ad a folyamatmenet értelmezéséhez. Miért fontos? Megmutatja az egyes szállítmányok általános kimenetelét, így aszerint szűrhet és elemezhet, hogy a szállítmány teljesült, törölték, vagy még úton van. Hol szerezhető be? Ez az SAP TM rendszerben a Freight Order vagy Freight Booking dokumentum fejlécének általános állapotmezője. Példák Tervezés alattSzállításra készVégrehajtás alattVégrehajtvaTörölve | |||
| Tervezett felvételi dátum ScheduledPickupDate | Az a tervezett dátum és időpont, amikor a fuvarozó felveszi az árut a feladási helyről. | ||
| Leírás A tervezett felvételi dátum a fizikai szállítás megkezdésének egyeztetett időpontja. A szállítmány végrehajtási szakaszának egyik fontos mérföldköve. Ez az attribútum segít nyomon követni az út első szakaszának pontosságát. A tervezett felvételi időpontot a „Goods Picked Up” esemény tényleges időbélyegével összevetve kiszámítható a felvételi késés. Így értékelhető a feladási hely és a fuvarozó teljesítménye, illetve megbízhatósága. Miért fontos? A felvétel pontosságának méréséhez szolgál alapul, és segít feltárni a késéseket már a szállítmány fizikai útjának kezdetén. Hol szerezhető be? Ez az SAP TM rendszerben a Freight Order megállósorrendjén tárolt tervezett dátum és időpont. Példák 2023-05-18T09:00:00Z2023-05-30T14:00:00Z2023-06-12T10:30:00Z | |||
| Történt reklamáció IsDisputed | Logikai jelző, amely megmutatja, hogy a szállítmány fuvardíjszámlája reklamációt eredményezett-e. | ||
| Leírás Ez a számított jelző azonosítja azokat a szállítmányokat, amelyekhez fuvardíj-elszámolási reklamáció kapcsolódik. Igaz értéket ad, ha reklamáció indult, egyébként hamisat. A „Freight Dispute Created” tevékenység vagy a nem üres „Dispute Reason” mező alapján határozható meg. Az attribútum egyszerűbbé teszi a fuvardíj-elszámolási folyamat elemzését. Segítségével könnyen kiszámítható a fuvardíjszámlázási eltérések arányát mérő KPI, és kiszűrhető az összes reklamációval érintett szállítmány. Az elemzők ezután megvizsgálhatják a közös jellemzőket, például a fuvarozót, az útvonalat vagy a díjtípust, hogy feltárják a számlázási hibák kiváltó okait. Miért fontos? Egyszerűbbé teszi a problémás fuvardíj-elszámolások azonosítását, így gyorsan kiszámítható a reklamációk aránya és feltárhatók a számlázási hibák kiváltó okai. Hol szerezhető be? Ez az attribútum nem szerepel az SAP TM rendszerben. A Freight Settlement Document dokumentumhoz kapcsolódó reklamációs ügy megléte alapján kell kiszámítani. Példák truefalse | |||
| Utolsó adatfrissítés LastDataUpdate | A process mining adatkészlet legutóbbi adatkinyerésének vagy frissítésének időbélyege. | ||
| Leírás Ez az attribútum jelzi az elemzett adatok frissességét. Megadja, mikor töltötték be utoljára az adatokat a forrásrendszerekből, például az SAP TM-ből a process mining eszközbe. Ez fontos metaadat minden dashboard és elemzés esetén, mert megmutatja, mennyire aktuálisak az eredmények. Segít eldönteni, hogy valós idejű adatokat vagy egy korábbi időszak pillanatfelvételét látja-e, ami szükséges az időben meghozott, megalapozott döntésekhez. Miért fontos? Megmutatja, mennyire frissek az adatok, így a felhasználók tisztában vannak az elemzés aktualitásával. Hol szerezhető be? Ezt az adatbetöltés során jellemzően az ETL (Extract, Transform, Load) eszköz vagy az adatfolyam hozza létre és tárolja. Példák 2023-10-27T08:00:00Z2023-10-26T08:00:00Z | |||
A szállításirányítás tevékenységei
| Tevékenység | Leírás | ||
|---|---|---|---|
| A kézbesítési igazolás beérkezett | Ez a tevékenység akkor történik, amikor a fuvarozótól beérkezik az aláírt Proof of Delivery (POD) dokumentum, és rögzítik a rendszerben. Ez igazolja, hogy a címzett átvette az árut. | ||
| Miért fontos? A POD beérkezése előfeltétele az ügyfél számlázásának és a fuvarozóval való elszámolásnak. Az itt jelentkező késések közvetlenül meghosszabbítják a pénzforgási ciklust. Hol szerezhető be? Az esemény jellemzően a Freight Order állapotváltozásából állapítható meg, például amikor a POD állapota „Received” értékre vált. A mező módosításának időpontja adja meg a tevékenység időbélyegét. Rögzítés Rögzítse azt az időpontot, amikor a Freight Order POD-állapota „Received” értékre változik. Eseménytípus inferred | |||
| Az árut felvették | Ez a tevékenység jelzi az áru fizikai szállításának kezdetét. Akkor rögzíthető, amikor a fuvarozó jelzi, hogy az árut felrakodták, és elindult a feladó telephelyéről. | ||
| Miért fontos? Ez fontos végrehajtási mérföldkő, amely jelzi a szállítási szakasz kezdetét. Követése elengedhetetlen a határidőre történő teljesítés méréséhez és a szállítmány aktuális helyzetének pontos nyomon követéséhez. Hol szerezhető be? Ezt az eseményt jellemzően a SAP TM-mel integrált SAP Event Management rögzíti „Departure” vagy „Loading End” eseményként. Frissíti a Freight Order végrehajtási állapotát. Közvetlenül a Freight Orderben is rögzíthető. Rögzítés Használja a Freight Order indulási helyszínéhez rögzített „Departure” végrehajtási esemény időbélyegét. Eseménytípus explicit | |||
| Az árut kézbesítették | Ez a tevékenység a szállítmány célállomásra érkezését és a fizikai szállítás befejezését jelzi. Akkor rögzíthető, amikor a fuvarozó jelzi, hogy az árut lerakodták a címzett telephelyén. | ||
| Miért fontos? Ez a legfontosabb mérföldkő a határidőre történő kézbesítés és az ügyfél-elégedettség méréséhez. Jellemzően a számlázási és elszámolási folyamatokat is elindítja. Hol szerezhető be? Az eseményt az SAP TM rendszerben „Arrival at Destination” vagy „Unloading End” végrehajtási eseményként rögzítik, ami frissíti a Freight Order végrehajtási állapotát. Az adat gyakran a fuvarozótól érkezik. Rögzítés Használja a Freight Order utolsó megállójához jelentett „Arrival at Destination” végrehajtási esemény időbélyegét. Eseménytípus explicit | |||
| Fizetés feldolgozva | Ez az utolsó tevékenység igazolja, hogy a fuvarozó megkapta a szállítási szolgáltatás ellenértékét. Az esemény jellemzően a kapcsolódó ERP-rendszerben történik, miután az SAP TM-ből megérkezett az ellenőrzött számla. | ||
| Miért fontos? Ezzel valóban lezárul a teljes szállítási folyamat. Az esemény követése szükséges a teljes folyamatidő és a határidőre történő fizetés KPI-jainak méréséhez. Hol szerezhető be? Ezek az adatok az ERP-rendszerben, például az S/4HANA Finance rendszerben találhatók. A számlaszám segítségével összekapcsolhatók a Freight Settlement Documenttel. Az állapotfrissítés visszaküldhető az SAP TM-be, vagy az adatokat ERP-táblákból, például a BKPF és BSEG táblákból kell kinyerni. Rögzítés Nyerje ki a fizetés kiegyenlítésének dátumát az ERP-rendszerből, és a számlahivatkozás alapján kapcsolja a szállítmányhoz. Eseménytípus explicit | |||
| Fuvarozási elszámolási dokumentum létrehozva | Ez a tevékenység a Freight Settlement Document (FSD) létrehozását jelzi. A dokumentum kiszámítja a fuvarozónak fizetendő szállítási költségeket, és az elhatárolások, valamint a számlaellenőrzés elsődleges alapja. | ||
| Miért fontos? Ezzel kezdődik a szállítási folyamat pénzügyi elszámolási szakasza. A kézbesítés és az elszámolási dokumentum létrehozása között eltelt idő elemzésével feltárhatók a pénzügyi feldolgozás szűk keresztmetszetei. Hol szerezhető be? Ez az esemény a Freight Settlement Document létrehozásakor egyértelműen rögzíthető. A dokumentum létrehozási időbélyege a fejlécet tároló /SCMTMS/D_SFIRHD táblában található. Rögzítés Használja a Freight Settlement Document létrehozásának dátumát és időpontját. Eseménytípus explicit | |||
| Fuvarozó hozzárendelve | Ez a tevékenység azt jelzi, hogy kiválasztották és hozzárendelték a szállítmányhoz a szállítási szolgáltatót, vagyis a fuvarozót. A hozzárendelés történhet manuálisan, automatizált tervezéssel vagy ajánlatkérési folyamatban. | ||
| Miért fontos? A fuvarozó hozzárendelése szükséges ahhoz, hogy a szállítmányt visszaigazolják és elindítsák. Ennek követése segít elemezni a fuvarozó-kiválasztást és biztosítani, hogy a foglalás időben megtörténjen. Hol szerezhető be? Az esemény akkor rögzíthető, amikor a Freight Order vagy a Freight Booking fuvarozói mezője (a „Carrier” szerepkörű partner) kitöltötté válik. Ajánlatkérés esetén az esemény időpontja az, amikor odaítélik a Freight Request for Quotationt. Rögzítés Határozza meg, mikor töltötték ki vagy erősítették meg először a fuvarozói partnerfunkciót a Freight Orderben. Eseménytípus inferred | |||
| Szállítási igény beérkezett | Ez a tevékenység jelzi a szállítási folyamat kezdetét, vagyis a szállítási igény létrejöttét. Az SAP TM rendszerben ezt jellemzően egy Forwarding Order (FWO) vagy egy Order-based Transportation Requirement (OTR) létrehozása rögzíti. | ||
| Miért fontos? Ez a teljes szállítási folyamat elsődleges kezdő eseménye. A tervezés hatékonyságának méréséhez fontos megvizsgálni, mennyi idő telik el ettől a tevékenységtől a tervezés befejezéséig. Hol szerezhető be? Az esemény Forwarding Order (FWO dokumentumtípus) vagy más szállítási igényt rögzítő dokumentum létrehozásakor keletkezik. Az esemény időpontja a fejlécet tároló tábla, például a /SCMTMS/D_TORROT létrehozási időbélyege. Rögzítés Rögzítse a Forwarding Order vagy a Transportation Requirement dokumentum létrehozásának dátumát és időpontját. Eseménytípus explicit | |||
| Szállítmány megtervezve | Ez a tevékenység azt jelzi, hogy a szállítási igényekből konkrét szállítási terv készült. Akkor rögzíthető, amikor létrehozzák és elmentik a tervezett útvonalat és erőforrásokat tartalmazó Freight Ordert (közúti vagy vasúti szállításnál), illetve Freight Bookingot (tengeri vagy légi szállításnál). | ||
| Miért fontos? Ennek a mérföldkőnek az elérése szükséges a logisztikai végrehajtás megkezdéséhez. A kérelem beérkezésétől eddig a tevékenységig eltelt idő fontos KPI a tervezés hatékonyságának mérésére. Hol szerezhető be? Ez az esemény a Freight Order vagy a Freight Booking dokumentum létrehozásának felel meg. A dokumentum állapotváltozásából is következtetni lehet rá, például amikor a tervezési állapot „Planned” értékre vált. A fejlécadatok jellemzően a /SCMTMS/D_TORROT táblában találhatók. Rögzítés Használja a Freight Order vagy a Freight Booking dokumentum létrehozási időbélyegét. Eseménytípus explicit | |||
| Szállítmány törölve | Ez a tevékenység a kért vagy megtervezett szállítmány törlését jelzi. Azoknak a folyamatoknak a végpontja, amelyek nem jutnak el a végrehajtásig. | ||
| Miért fontos? A törlések követése segít feltárni a folyamat meghiúsulásának okait, például az ügyféligény változását vagy a tervezési hibákat. A magas törlési arány a rendeléskezelés vagy a tervezés mögöttes problémáira utalhat. Hol szerezhető be? Az esemény akkor állapítható meg, amikor a Forwarding Order vagy a Freight Order életciklus-állapota „Cancelled” értékre változik. Az állapotváltozás időbélyege jelöli az esemény időpontját. Rögzítés Rögzítse azt az időpontot, amikor a dokumentum életciklus-állapota „Cancelled” értékre változik. Eseménytípus inferred | |||
| A fuvarozó visszaigazolta a szállítmányt | Ez az esemény azt jelzi, hogy a fuvarozó vállalja a szállítás végrehajtását a terv szerint. A visszaigazolás általában EDI-üzenetben, a fuvarozói portál frissítésével vagy manuális rögzítéssel érkezik, és módosítja a Freight Order állapotát. | ||
| Miért fontos? A fuvarozó visszaigazolása megerősíti a szállítási tervet, és csökkenti a bizonytalanságot. Ha késik a visszaigazolás, az a teljes szállítási ütemtervet veszélyeztetheti. Hol szerezhető be? Az esemény a Freight Order vagy a Freight Booking visszaigazolási állapotának változásából állapítható meg. A dokumentum állapotkezelésében például „Confirmed” értéket állítanak be. Rögzítés Kövesse a Freight Order dokumentum visszaigazolási állapotmezőinek változásait. Eseménytípus inferred | |||
| A szállítmány útvonala módosult | Ez a tevékenység a szállítmány útvonalának vagy ütemezésének a visszaigazolás utáni, nem tervezett módosítását jelzi. Okozhatja fennakadás, ügyféligény vagy logisztikai probléma. | ||
| Miért fontos? Az útvonal-módosítások gyakran növelik a költségeket és késéseket okoznak. Gyakoriságuk és okaik feltárása segít pontosabbá tenni a tervezést és stabilabbá tenni a működést. Hol szerezhető be? Az esemény a Freight Order szakaszainak, helyszíneinek vagy dátumainak jelentős változásaiból állapítható meg a végrehajtás megkezdése után. Ehhez a módosítási dokumentumok, például a CDHDR és CDPOS táblák elemezhetők. Rögzítés Észlelje a Freight Order fontos útvonalmezőinek változásait a „Shipment Confirmed by Carrier” esemény után. Eseménytípus inferred | |||
| Fuvarozási vita indult | Ez az esemény azt jelzi, hogy eltérést találtak a fuvarozó számlája és a Freight Settlement Documentben kiszámított költségek között. Ez elindítja a vita rendezésére szolgáló munkafolyamatot. | ||
| Miért fontos? A viták késleltetik a fuvarozók kifizetését, és rendezésük adminisztrációs munkát igényel. A tevékenység követése segít feltárni a számlázási pontatlanságok okait, például a hibás díjtételeket vagy a kiegészítő költségeket. Hol szerezhető be? Az esemény a Freight Settlement Document állapotváltozásából állapítható meg, amikor az állapot „Dispute” értékre vált. Külön vitás ügyet rögzítő dokumentum is létrejöhet. Rögzítés Rögzítse azt az időpontot, amikor a Freight Settlement Document állapota „Dispute” értékre vált. Eseménytípus inferred | |||
| Számla ellenőrizve | Ez a tevékenység azt jelzi, hogy a fuvarozó számláját sikeresen egyeztették a Freight Settlement Documenttel, és jóváhagyták kifizetésre. Ez az utolsó lépés, mielőtt az ERP-rendszerben elindul a fizetési folyamat. | ||
| Miért fontos? Ezzel lezárul a fuvarozási költségek ellenőrzése és auditja. Az ebben a szakaszban jelentkező késések miatt a fuvarozók késve kaphatják meg a pénzüket, ami ronthatja az üzleti kapcsolatot. Hol szerezhető be? Az esemény a Freight Settlement Document állapotváltozásából állapítható meg. Ilyen például a „Ready for Accrual” vagy a „Transferred for Posting” állapot, amely azt jelzi, hogy a dokumentumot kifizetés céljából továbbították az ERP-rendszerbe. Rögzítés Kövesse az FSD életciklus-állapotának időbélyegét, amikor az állapot azt jelzi, hogy a dokumentum kifizetésre kész vagy könyvelték. Eseménytípus inferred | |||
| Vámáru-nyilatkozat benyújtva | Nemzetközi szállításnál ez a tevékenység a szükséges vámokmányok hatóságoknak történő benyújtását jelenti. Ez az áru kiviteléhez vagy behozatalához szükséges vámkezelés előfeltétele. | ||
| Miért fontos? A vámáru-nyilatkozatok időben történő benyújtása elengedhetetlen a határnál jelentkező késések elkerüléséhez. Ennek a tevékenységnek a követése segít felmérni a vámügyintézés hatékonyságát. Hol szerezhető be? Az esemény vámügynök által jelentett végrehajtási eseményként, vagy egy integrált vámkezelő rendszer, például az SAP GTS állapotváltozásából rögzíthető. A Freight Order ennek megfelelően frissül. Rögzítés Rögzítse a „Customs Declaration Filed” végrehajtási esemény vagy a hozzá tartozó állapotváltozás időbélyegét. Eseménytípus explicit | |||
| Vámkezelés befejeződött | Ez a tevékenység azt jelzi, hogy a vámhatóság jóváhagyta a szállítmányt, így az folytathatja útját. Ez fontos mérföldkő a nemzetközi logisztikában, mert megszüntet egy jelentős lehetséges szűk keresztmetszetet. | ||
| Miért fontos? A vámkezelés gyakran jelentős késéseket okoz a globális ellátási láncokban. Időtartamának és sikerességi arányának követése segít lerövidíteni a nemzetközi szállítási időt. Hol szerezhető be? Az eseményt „Customs Clearance” végrehajtási eseményként rögzítik. Ezt jellemzően vámügynök vagy külső nyomonkövetési szolgáltató jelenti, majd az adat frissül a Freight Order végrehajtáskövetésében. Rögzítés Használja a Freight Orderhez kapcsolódó, jelentett „Customs Clearance” végrehajtási esemény időbélyegét. Eseménytípus explicit | |||
Adatkinyerési útmutatók
Lépések
- A CDS View API-k azonosítása és aktiválása: Jelentkezzen be az SAP S/4HANA rendszerbe. Az
/IWFND/MAINT_SERVICEtranzakcióval ellenőrizze, hogy aktívak-e az alapvető CDS view-khoz szükséges OData-szolgáltatások. Ellenőrizze többek között az I_TransportationOrder, C_TranspOrdExecutionEvent, I_ForwardingOrder és I_FreightSettlementDocument szolgáltatásait. Ha valamelyik nem aktív, kérje meg az SAP-rendszergazdát, hogy aktiválja a háttérrendszerben. - API-kapcsolat létrehozása: Kérje el az SAP-rendszergazdától az OData-szolgáltatások alap-URL-jét. Állítson be egy kliensalkalmazást, például a requests könyvtárat használó Python-szkriptet, kereskedelmi ETL-eszközt vagy Postmant az API-kapcsolathoz. Konfigurálja a hitelesítést, amely jellemzően Basic Authentication (felhasználónév és jelszó), vagy biztonságosabb kapcsolat esetén OAuth 2.0.
- A kinyerés hatókörének meghatározása: Határozza meg, milyen adatokat szeretne kinyerni. Adjon meg egy konkrét időszakot, például az elmúlt 6 hónapot. Válassza ki a releváns szervezeti egységeket, például a vállalatkódot, illetve a dokumentumtípusokat, például a Freight Order Type értékét, hogy az adatok az elemzett folyamathoz kapcsolódjanak.
- Az alap szállítási lekérdezés összeállítása: Elsőként kérdezze le az I_TransportationOrder CDS view-t. Ez a view tartalmazza a szállítmányok központi adatait, más néven a Freight Order vagy Freight Booking adatokat. Az OData
$selectparaméterével válassza ki a szükséges oszlopokat, köztük az ajánlott attribútumokat, például a CarrierName, ModeOfTransport és RequestedDeliveryDate mezőket. A$filterparaméterrel szűkítse az adatokat dátum és más hatókörbeállítások szerint. - Végrehajtási és szállítási események lekérdezése: A fontos logisztikai események kinyeréséhez használja a C_TranspOrdExecutionEvent CDS view-t. Szűrjön azokra az
EventCodeértékekre, amelyek olyan tevékenységeknek felelnek meg, mint az „Áru felvétele” (DEPARTURE) és az „Áru kézbesítése” (ARRIVAL_AT_DESTINATION). A TransportationOrder UUID használatával kapcsolja vissza ezeket az adatokat az alap szállítási adatokhoz. - Kapcsolódó üzleti objektumok lekérdezése: A teljes folyamat feltérképezéséhez kérdezzen le további kapcsolódó CDS view-kat is. Az „Szállítási igény beérkezett” tevékenységhez használja az I_ForwardingOrder view-t, a pénzügyi tevékenységekhez, például a „Fuvarelszámolás létrehozva”, „Fuvardíjvita létrehozva” és „Számla ellenőrizve” eseményekhez pedig az I_FreightSettlementDocument view-t.
- Állapotváltozásokhoz kötött tevékenységek kinyerése: Sok tevékenység nem önálló eseményként, hanem az elsődleges dokumentum állapotváltozásaként jelenik meg. A „Fuvarozó hozzárendelve”, „A fuvarozó visszaigazolta a szállítmányt” és „Szállítmány törölve” tevékenységekhez kérdezze le az I_TransportationOrder view-t, és az esemény időpontjaként használja a megfelelő állapotmezőhöz tartozó
LastChangeDateTimeértéket. Ehhez pontosan hozzá kell rendelni az állapotkódokat az üzleti tevékenységekhez. - Adatok egyesítése és átalakítása: Egyesítse az összes forrásból kinyert adatokat egyetlen eseménynaplóba. Minden kinyert tevékenységhez hozzon létre egy sort a szükséges oszlopokkal: ShipmentId, ActivityName és EventTime. Gondoskodjon róla, hogy az alap szállítási lekérdezés összes ajánlott attribútuma szerepeljen az adott szállítmány minden sorában. Ez a lépés lényegében egy SQL
UNION ALLműveletnek felel meg. - Összetett és külső események kezelése: A „Vámkezelés befejezve” vagy „Fizetés feldolgozva” tevékenységek adatai külön mezőkben vagy akár külső rendszerekben is lehetnek. A megadott lekérdezési logika helyettesítőként szabványos mezőket használ. Előfordulhat, hogy a lekérdezést ki kell egészítenie vámkezeléshez kapcsolódó CDS view-kkal, vagy a Freight Settlement Document száma alapján össze kell kapcsolnia a fizetési adatokat egy külön ERP-adatkinyeréssel.
- Formázás a ProcessMind számára: Mentse a véglegesített adatkészletet CSV-fájlként. Az oszlopfejlécek feleljenek meg a feltöltési követelményeknek. Például a beállításokban rendelje hozzá a
ShipmentIdoszlopot az eszközCaseIdmezőjéhez. Ellenőrizze, hogy az időbélyegek egységes formátumúak, lehetőleg UTC szerintiek-e (YYYY-MM-DDTHH:MM:SSZ).
Konfiguráció
- Alapvető CDS view-k: Az adatok kinyerése elsősorban az I_TransportationOrder (fuvarmegrendelésekhez), a C_TranspOrdExecutionEvent (végrehajtási eseményekhez), az I_ForwardingOrder (szállítási igényekhez) és az I_FreightSettlementDocument (elszámoláshoz) view-kra támaszkodik.
- Dátumtartomány szerinti szűrés: Az adatmennyiség kezelése érdekében elengedhetetlen a dátumszűrő használata. Az I_TransportationOrder view-ban a
CreationDateTime, a C_TranspOrdExecutionEvent view-ban pedig azActualBusinessDateTimemezőt használja. Az első elemzéshez 3–6 hónapos időszak ajánlott. - Dokumentumtípus szerinti szűrés: Az elemzés célzottabbá tételéhez szűrjön a
TransportationOrderTypemező alapján. Így elkülönítheti a különböző logisztikai helyzeteket, például a normál kimenő szállítmányokat a készletáthelyezésektől. - Szervezeti szűrők: Ha szükséges, szűrjön a
PurchasingOrganizationvagy más szervezeti mezők alapján, hogy az adatok egy adott üzleti egységre vagy régióra korlátozódjanak. - API-lapozás: Nagy adatkészleteknél használja az OData
$topés$skipparamétereit az adatok kisebb oldalankénti lekéréséhez. Ezzel elkerülheti az API-időtúllépést, és csökkentheti a kliensoldali memóriahasználatot. Gyakran 1 000–5 000 soros oldalméret működik jól. - Előfeltételek: Az adatok kinyerését végző felhasználónak vagy szolgáltatásfióknak hozzáférési jogosultságra van szüksége az alapul szolgáló OData-szolgáltatásokhoz (S_SERVICE jogosultsági objektum), valamint a CDS view-kban szereplő üzleti adatokhoz. A megfelelő szolgáltatásokat aktiválni kell az SAP Gatewayben (
/IWFND/MAINT_SERVICE).
Példa-lekérdezés 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' Lépések
- Ellenőrizze, hogy jóváhagyott SQL-kliensen, adatbázis-nézeten vagy adatkinyerési szolgáltatáson keresztül rendelkezésre áll-e közvetlen, csak olvasási hozzáférés az SAP TM HANA-sémához. Szerezze be a kapcsolati karakterláncot, a hitelesítő adatokat, a séma nevét és a szükséges jogosultságot az érintett SAP TM-táblák olvasásához. Ne kérdezze le közvetlenül az éles rendszert a szükséges biztonsági és változáskezelési jóváhagyások nélkül.
- Ellenőrizze a rendszerben használt fizikai tábla- és oszlopneveket. Az alábbi lekérdezés a /SCMTMS/D_TORROT és a /SCMTMS/D_TOSTOP táblát használja alapforrásként, de az állapot-, partner-, dátum-, költség-, vám-, dokumentum- és fizetési adatok a SAP TM kiadásától és bevezetésétől függően további táblákban vagy bővítésekben is szerepelhetnek. Csak azokat a dokumentált helyőrzőket cserélje le, amelyeket a rendszerkatalógus és az adatmodell alapján ellenőrzött.
- A kinyerési időszakot a [Start timestamp] és az [End timestamp] értékkel határozza meg. A kezdeti elemzéshez általában három-hat hónapos gördülő időszak megfelelő. Csak a lekérdezés teljesítményének és az eseményelőzmények megőrzési idejének ellenőrzése után használjon hosszabb időszakot.
- Határozza meg a szállítmány esetazonosítóját. A lekérdezés a /SCMTMS/D_TORROT táblából származó TOR_ID értéket használja szállítmányazonosítóként. Ha a bevezetés más, stabil azonosítót használ, minden tevékenységi ágban következetesen cserélje le az esetazonosítót, és ha elérhető, őrizze meg az eredeti dokumentumazonosítót további ellenőrzési attribútumként.
- Minden üzleti tevékenységet rendeljen hozzá egy kifejezett forrásfeltételhez. A ProcessMind változtatás nélkül olvassa be az eseménynaplót, ezért a lekérdezés minden kinyert tevékenységhez egy sort hoz létre. Nem következtet mérföldkövekre a dokumentumok sorrendjéből, a hiányzó időbélyegekből vagy az állapotok változásából.
- A szállítástervezőkkel és a folyamatgazdákkal ellenőrizze az állapotok és időbélyegek hozzárendelését. Különösen egyeztesse, hogy mely értékek jelölik a kérelem létrehozását, a tervezést, a fuvarozó kijelölését és visszaigazolását, az átvételt, a vámáru-nyilatkozat benyújtását és a vámkezelést, az útvonal módosítását, a kézbesítést, a POD beérkezését, a fuvardíj elszámolását, a vitát, a számla ellenőrzését, a lemondást és a fizetést.
- Futtassa a lekérdezést a jóváhagyott SQL-kliensben. Ellenőrizze, hogy minden eseményhez egy sor tartozik-e, a ShipmentId és az ActivityName mező nem üres-e, az EventTime pedig érvényes-e. Keresse meg az egy-a-többhöz kapcsolásokból eredő ismétlődő sorokat, és szükség esetén módosítsa a forrás-hozzárendeléseket vagy az összesítési logikát.
- Ha a megfelelő forrásmezők rendelkezésre állnak, egészítse ki az eredményt az ajánlott attribútumokkal. A lekérdezés olyan helyőrzőket tartalmaz azokhoz a mezőkhöz, amelyek neve rendszerspecifikus metaadatok nélkül nem határozható meg biztonságosan. Ezeket csak ellenőrzött oszlopnevekre vagy jóváhagyott nézetekre cserélje le.
- Alkalmazza a végleges adatminőségi szabályokat. Távolítsa el azokat a sorokat, amelyekből hiányzik az esetazonosító vagy az esemény időbélyege, egységesítse az időbélyegek időzónáját, őrizze meg az eredeti időbélyegeket ellenőrzési célra, és gondoskodjon arról, hogy az EndTime ne legyen korábbi az EventTime értékénél. Ne hozzon létre mesterséges eseményeket hiányzó forrásrekordok helyett.
- Exportálja az eredményt UTF-8 kódolású CSV-fájlként vagy más, ProcessMind által támogatott táblázatos formátumban. Használja pontosan a szükséges ShipmentId, ActivityName és EventTime oszlopneveket. Ha van értékük, az EndTime és az ajánlott attribútumok is szerepeljenek a fájlban. Töltse fel a fájlt, vagy csatlakoztassa a jóváhagyott lekérdezés eredményét a ProcessMindhez, majd ellenőrizze, hogy a Shipment esetazonosító és az Activity Name mező hozzárendelése helyes-e.
Konfiguráció
- Alapvető forrástáblák: A szállítási vagy fuvarmegrendelés alapadataihoz használja a /SCMTMS/D_TORROT táblát, a megálló- és mérföldkőadatokhoz pedig a /SCMTMS/D_TOSTOP táblát. Az élesítés előtt ellenőrizze az összes további forrásobjektumot a cél SAP TM-rendszerben.
- Esetazonosító: Használjon stabil szállítmány- vagy fuvarmegrendelés-azonosítót. A példalekérdezés a TOR_ID értéket használja ShipmentId-ként. Ellenőrizze, hogy ez az azonosító a tervezés, végrehajtás, elszámolás és ERP-fizetési rekordok között is változatlan marad-e.
- Tevékenységek hozzárendelése: Állítson be egyértelmű forrásfeltételeket mind a 15 szükséges tevékenységhez. Minden tevékenységhez külön eseménysornak kell létrejönnie az eseménynaplóban. A ProcessMind nem vezet le tevékenységeket más sorokból.
- Dátumtartomány: Kezdje három-hat hónap előzménnyel. Minden forráságban a lehető leghamarabb szűrjön az EventTime mezőre. Növekményes betöltésnél használjon szabályozott vízjelet és rövid átfedési időszakot a késve érkező frissítések rögzítéséhez.
- Üzleti szűrők: A rendszer beállításai szerint szűrjön vállalatkódra, beszerzési szervezetre, értékesítési szervezetre, dokumentumtípusra, szállítási módra, fuvarozóra, üzemre, helyszínre és állapotra. Ha a megfelelő mezőt még nem ellenőrizte, használjon helyőrzőt, például [Company code filter].
- Időbélyegek kezelése: Alakítsa át a forrás időbélyegeit egységes időzónára. Ha a forrás külön dátum- és időmezőt tárol, egyesítse őket az SAP HANA-kiadás által támogatott, rendszerfüggő átalakítással. Ha auditálhatóságra van szükség, őrizze meg az eredeti forrás-időbélyeget.
- Ajánlott attribútumok: A CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost és IsOnTimeDelivery mezőket ellenőrzött forrásmezőkből vagy jóváhagyott számítási nézetekből töltse ki. Hagyja üresen az értékeket, ha a forrás nem tartalmaz megbízható adatot.
- Teljesítmény: Korlátozza az időszakot, csak a szükséges oszlopokat kérdezze le, a kapcsolások előtt szűrjön, kerülje a teljes táblák korlátozás nélküli beolvasását, és ellenőrizze a HANA végrehajtási tervét. Nagy adatkészleteknél használjon partíciókat figyelembe vevő feltételeket, növekményes kinyerést, átmeneti táblákat vagy jóváhagyott számítási nézetet.
- Duplikátumok kezelése: Az egy-a-többhöz kapcsolások egy tevékenységhez több sort is eredményezhetnek. Használjon ellenőrzött eseménykulcsot, forrásdokumentum-kulcsot vagy determinisztikus összesítési szabályt. Ne alkalmazzon önkényes duplikátum-eltávolítást, mert az érvényes, ismétlődő eseményeket is törölhet.
- Előfeltételek: Szükség van adatbázis-hozzáférési jogosultságokra, SAP TM-adatokhoz való hozzáférésre, a kapcsolódó ERP- vagy elszámolási adatok elérésére, jóváhagyott adatkinyerő eszközre, valamint annak ellenőrzésére, hogy a szükséges SAP TM-modulok, integrációk és egyedi bővítések aktívak-e.
- Rendszerfüggő hozzárendelések: Az állapotkódok, partnerfunkciók, vámkezelési mérföldkövek, elszámolási állapotok, számlaállapotok és fizetési állapotok kiadásonként és beállításonként eltérhetnek. A hozzárendeléseket kezelje ellenőrzött konfigurációs dokumentumban, és minden frissítés után tesztelje őket.
Példa-lekérdezés 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; Lépések
- Az adatigény meghatározása: Először egyeztesse mind a 15 szükséges tevékenység pontos logikáját és az összes attribútumot. Rendelje hozzá az egyes tevékenységeket az SAP TM-rendszer megfelelő állapotváltozásaihoz, létrehozási eseményeihez vagy dokumentumkapcsolataihoz. Például határozza meg, pontosan melyik végrehajtási állapot jelenti az „Áru felvétele” eseményt.
- Az ABAP-fejlesztői környezet megnyitása: Jelentkezzen be az SAP GUI-ba, majd az
SE38tranzakcióval nyissa meg az ABAP-szerkesztőt. Adjon nevet az új programnak, példáulZTM_PROCESS_EXTRACT, majd kattintson a „Létrehozás” gombra. Adjon meg címet, és válassza a „Végrehajtható program” típust. - Kiválasztóképernyő létrehozása: Határozza meg a programban megjelenő kiválasztóképernyőt. Adjon meg szűrési paramétereket, például dátumtartományt a fuvarmegrendelés létrehozási dátumához (
SO_CREDT), valamint kiválasztási feltételeket a dokumentumtípusokhoz (SO_TYPE) vagy fuvarozókhoz (SO_CARR). - Kimeneti struktúra meghatározása: Hozzon létre olyan belső táblastruktúrát, amely megfelel az eseménynapló formátumának. Tartalmazza a következő mezőket:
ShipmentId,ActivityName,EventTime,EndTime,CarrierName,RequestedDeliveryDate,ModeOfTransport,TotalFreightCostésIsOnTimeDelivery. - Adatkiválasztási logika megírása: Írja meg az ABAP-logikát mind a 15 tevékenység adatainak kiválasztásához. Ehhez általában több SAP TM-táblát kell lekérdezni. Elsőként válassza ki a megadott dátumtartományba eső elsődleges szállítási dokumentumokat, például a Freight Order rekordokat.
- Tervezési és végrehajtási események kinyerése: Minden kiválasztott szállítási dokumentumhoz, például Freight Order rekordhoz, kérdezze le a kapcsolódó táblákat és üzleti objektumokat az események időbélyegeinek meghatározásához. A Freight Order létrehozásához („Szállítmány megtervezve”), a fuvarozó hozzárendeléséhez („Fuvarozó hozzárendelve”), valamint az „Áru felvétele” és „Áru kézbesítése” eseményeknek megfelelő végrehajtási állapotváltozásokhoz használja a
/SCMTMS/D_TORROTtáblát. A megelőző Forwarding Order (/SCMTMS/D_TRQROT) létrehozása jelezheti a „Szállítási igény beérkezett” eseményt. - Fuvarozói visszaigazolás és útvonal-módosítás kinyerése: A Freight Orderhez kapcsolódó állapottáblákból vagy módosítási dokumentumokból (CDHDR/CDPOS) állapítsa meg, mikor állították be a
CONFIRMATIONállapotot. Ez jelzi „A fuvarozó visszaigazolta a szállítmányt” eseményt. Hasonlóképpen keresse meg az útvonaladatok jelentős módosításait a „Szállítmány útvonala módosítva” esemény rögzítéséhez. - Vámkezelési események kinyerése: SAP Global Trade Services (GTS) vagy hasonló modul használatakor a vámkezelési eseményeket („Vámáru-nyilatkozat benyújtva”, „Vámkezelés befejezve”) gyakran kapcsolódó dokumentumokban tartják nyilván. A logikának a Freight Order dokumentumfolyamát (
/SCMTMS/D_TORDOC) kell beolvasnia, hogy megtalálja a kapcsolódó dokumentumokat és azok létrehozási vagy állapotváltozási időpontját. - Elszámolási és vitás események kinyerése: Kérdezze le a Freight Settlement Document fejlécét tartalmazó táblát (
/SCMTMS/D_SFIRHD), valamint a kapcsolódó tételeket és állapotokat a „Fuvarelszámolás létrehozva”, „Fuvardíjvita létrehozva” és „Számla ellenőrizve” események rögzítéséhez. Kapcsolja ezeket az eredetiShipmentIdértékhez. - Adatok egyesítése: Minden megtalált eseményhez hozzon létre egy rekordot a végleges belső táblában. Az
ActivityNamemezőbe írja be a megfelelő tevékenységet, azEventTimemezőbe az esemény időbélyegét, aShipmentIdmezőbe pedig a Freight Order vagy Freight Booking azonosítóját. A többi attribútumot töltse ki a forrásdokumentumokból. - Fájl formázása és exportálása: Ha a végleges belső tábla elkészült, formázza az adatokat egyszerű fájllá. Az
OPEN DATASET,LOOP AT... TRANSFER...ésCLOSE DATASETparancsokkal írja ki a belső tábla tartalmát CSV- vagy TXT-fájlba az SAP alkalmazáskiszolgálón. A fájl az AL11 tranzakcióval érhető el. - Ütemezés és letöltés: Az ABAP-program háttérfeladatként ütemezhető (SM36 tranzakció), így az adatok kinyerése automatikusan történik. A létrehozott fájlt a
CG3Ytranzakcióval töltheti le az alkalmazáskiszolgálóról a helyi gépre, majd feltöltheti a ProcessMindbe.
Konfiguráció
- Dátumtartomány: A kiválasztóképernyőn kötelezően meg kell adni az alapul szolgáló szállítási dokumentum, például a Freight Order létrehozási dátumának tartományát. Első elemzéshez 3–6 hónap ajánlott, így reprezentatív adatkészletet kap túl hosszú futási idő nélkül.
- Dokumentumtípus-szűrő: Adjon meg szűrőt a szállítási dokumentum típusához, például Freight Order vagy Freight Booking. Ezzel az elemzést meghatározott folyamatokra, például közúti vagy tengeri fuvarozásra korlátozhatja.
- Fuvarozószűrő: Tegye lehetővé az egyes fuvarozók szerinti szűrést. Így külön-külön elemezheti a logisztikai partnerek teljesítményét.
- Szervezeti szűrők: Vegye fel a releváns szervezeti egységek, például a beszerzési szervezet vagy a vállalatkód szűrőit, hogy a kinyerés meghatározott üzleti területekre korlátozódjon.
- Teljesítményoptimalizálás: Nagy adatkészleteknél az ABAP-kódban a
WHEREfeltételekhez használjon indexelt adatbázismezőket, lehetőség szerint kerülje a beágyazott ciklusokat, és csak a szükséges mezőket kérdezze le a memóriahasználat csökkentéséhez. - Előfeltételek: A jelentést futtató felhasználónak jogosultsággal kell rendelkeznie ABAP-programok végrehajtásához. A fejlesztőnek
S_DEVELOPjogosultságra van szüksége. A programnak jogosultság kell az alkalmazáskiszolgáló fájlrendszeréhez (azS_DATASETobjektumon keresztül), valamint a releváns TM-adatbázistáblákhoz és BOPF-objektumokhoz.
Példa-lekérdezés 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. Készen áll a kezdésre?
Ezzel a sablonnal gyorsan elindulhat a szállítási folyamatok fejlesztésében, és gyorsabban, alacsonyabb költséggel kézbesítheti az árut. Kezdje el még ma feltárni a folyamatok működését!
Szüntesse meg a szállításirányítás szűk keresztmetszeteit még ma
Találja meg a hatékonytalanságokat, optimalizálja az útvonalakat, és csökkentse 30%-kal az átfutási időt.
Nincs szükség bankkártyára. A beállítás percek alatt elvégezhető.