Šablona dat pro řízení přepravy
Šablona dat pro řízení přepravy
- Doporučené atributy ke sběru
- Aktivity, které je vhodné sledovat
- Pokyny k extrakci dat ze SAP Transportation Management
Atributy řízení přepravy
| Název | Popis | ||
|---|---|---|---|
| Čas události EventTime | Časové razítko určující, kdy došlo ke konkrétní aktivitě nebo události. | ||
| Popis Čas události udává přesné datum a čas každé aktivity v přepravním procesu. Tyto časové údaje jsou základem pro výpočet doby průchodu, trvání a čekání mezi jednotlivými kroky procesu. Při analýze se tento atribut používá ke správnému seřazení událostí, sestavení chronologického záznamu a veškerým časovým analýzám výkonnosti. Je nezbytný pro odhalování zpoždění, měření efektivity procesu a porovnání výsledků s harmonogramy nebo dohodnutými úrovněmi služeb. Proč je to důležité Časové razítko je nezbytné pro chronologické seřazení událostí a výpočet všech ukazatelů výkonnosti, například doby průchodu a včasnosti dodávek. Kde data získat Údaje se získávají z tabulek obslužné komponenty událostí v SAP TM, například /SAPTRX/EH_EVMSG, které ukládají časová razítka nahlášených událostí. Příklady 2023-04-15T10:00:00Z2023-04-16T14:30:00Z2023-04-20T09:15:00Z | |||
| Název aktivity ActivityName | Název konkrétní obchodní události nebo kroku, který proběhl v přepravním procesu. | ||
| Popis Název aktivity popisuje jednotlivý úkol nebo milník v životním cyklu zásilky, například „Shipment Planned“, „Goods Picked Up“ nebo „Goods Delivered“. Tyto aktivity tvoří uzly v objevené mapě procesu. Analýza pořadí a četnosti aktivit pomáhá určit standardní průběh procesu, odchylky, úzká místa a opakované zpracování. Jde o základ pro zjišťování procesů a kontrolu shody v řízení přepravy. Proč je to důležité Tento atribut určuje jednotlivé kroky přepravního procesu a umožňuje zobrazit a analyzovat průběh zásilky od začátku do konce. Kde data získat Obvykle se odvozuje z kódů událostí nebo změn stavů zaznamenaných v obslužné komponentě sledování realizace SAP TM. Zdrojem mohou být tabulky zaznamenávající změny stavů obchodních objektů nebo konkrétní zprávy o událostech. Příklady Zásilka naplánovánaPřiřazen dopravceZboží vyzvednutoZboží doručenoPřijato potvrzení o doručení | |||
| Zásilka ShipmentId | Jedinečný identifikátor jedné přepravy zboží, který slouží jako hlavní případ pro analýzu. | ||
| Popis Shipment ID je hlavní identifikátor, který sdružuje všechny související přepravní aktivity a události. Představuje jeden přepravní proces od začátku do konce, od prvního požadavku až po potvrzení o doručení a platbu. V process miningu je tento atribut nezbytný pro sestavení pohledu na případ. Analytici díky němu mohou sledovat celou cestu každé zásilky. Umožňuje analyzovat varianty procesu, dobu průchodu a výsledky jednotlivých zásilek a poskytuje ucelený přehled o výkonnosti přepravy. Proč je to důležité Jde o základní identifikátor případu, který propojuje všechny události a datové body s konkrétní přepravní zakázkou. Je nezbytný pro analýzu procesu od začátku do konce. Kde data získat Tímto identifikátorem je číslo Freight Order nebo Freight Booking v SAP TM. Najdete ho například v tabulkách /SCMTMS/D_TORROT a /SCMTMS/D_TRQROT. Příklady 610000432161000056786100009876 | |||
| Čas ukončení EndTime | Časové razítko určující, kdy byla konkrétní aktivita dokončena. | ||
| Popis Zatímco StartTime označuje začátek události, EndTime určuje její konec. To se hodí zejména u aktivit, které nějakou dobu trvají, například „Customs Clearance“ nebo „Goods Loading“. Rozdíl mezi EndTime a StartTime udává dobu zpracování dané aktivity. Pokud jsou při analýze process miningu k dispozici časy začátku i konce, lze podrobněji zkoumat délku aktivit a oddělit dobu zpracování od čekání. Snáze tak určíte, kde přesně vzniká neefektivita, zda při provádění úkolu, nebo při předávání mezi úkoly. Proč je to důležité Umožňuje přesně vypočítat dobu zpracování aktivit a odlišit aktivní práci od čekání mezi událostmi. Kde data získat Stejně jako StartTime se tento údaj získává z tabulek obslužné komponenty událostí. Může odpovídat samostatné události „completed“ pro danou aktivitu. Příklady 2023-04-15T11:30:00Z2023-04-16T15:00:00Z2023-04-20T09:45:00Z | |||
| Celkové náklady na přepravu TotalFreightCost | Celkové vypočtené nebo fakturované náklady na zásilku. | ||
| Popis Celkové náklady na přepravu vyjadřují finanční dopad zásilky. Může jít o náklady vypočtené systémem pro řízení přepravy nebo o konečnou částku z faktury dopravce po vyúčtování. Tento atribut umožňuje zahrnout finanční hledisko do analýzy procesu. Analytici mohou zjistit, které varianty procesu jsou nejdražší, vypočítat náklady na zpoždění nebo změnu trasy a porovnat nákladovou efektivitu dopravců či způsobů přepravy. Je základem dashboardů zaměřených na výdaje za přepravu a náklady na obsluhu zákazníků. Proč je to důležité Doplňuje proces o finanční hledisko a umožňuje analyzovat výdaje na přepravu, náklady na zásilku i finanční dopad neefektivního průběhu procesu. Kde data získat Údaj pochází z dokladu Freight Settlement Document v SAP TM po výpočtu poplatků. Najdete ho například v tabulkách, jako je /SCMTMS/D_SFIRHD. Příklady 250.751200.005430.50 | |||
| Doručeno včas IsOnTimeDelivery | Logická hodnota určující, zda bylo zboží doručeno v požadovaném termínu nebo dříve. | ||
| Popis Jde o vypočítaný atribut, který porovnává čas události „Doručení zboží“ s požadovaným datem doručení. Pokud bylo zboží doručeno včas nebo před termínem, má hodnotu true, jinak false. Tento atribut zjednodušuje analýzu výkonnosti, protože pro každou zásilku poskytuje jednoznačný výsledek. Slouží jako základ dashboardu Výkonnost včasného doručení a souvisejícího KPI. Analytici mohou snadno filtrovat opožděné zásilky a hledat příčiny nízké výkonnosti. Proč je to důležité Přímo měří dodržení termínů doručení a zjednodušuje výpočet i zobrazení KPI včasného doručení. Kde data získat Tento atribut se v SAP TM neukládá. Je třeba ho vypočítat při transformaci dat porovnáním skutečného času události doručení s požadovaným datem doručení. Příklady truefalse | |||
| Název dopravce CarrierName | Název dopravce nebo poskytovatele logistických služeb přiřazeného k zásilce. | ||
| Popis Název dopravce označuje společnost odpovědnou za fyzickou přepravu zboží. Jde o důležitý údaj pro analýzu výkonnosti, protože se dopravci mohou lišit úrovní služeb, cenou i spolehlivostí. V process mining se tento atribut používá k rozdělení a porovnání výkonnosti jednotlivých dopravců. Umožňuje vytvářet přehledy jejich výsledků, sledovat včasnost doručení, porovnávat náklady a zjišťovat, kteří dopravci se nejčastěji pojí se zpožděním nebo spory. Tyto poznatky pomáhají při strategickém řízení dopravců a výběru dodavatelů. Proč je to důležité Umožňuje porovnat výkonnost různých dopravců, což pomáhá při výběru dopravce a řízení nákladů i úrovně služeb. Kde data získat Tento údaj je uložen v dokladu Freight Order nebo Freight Booking. Je propojený prostřednictvím funkce obchodního partnera pro dopravce. Příklady DHL ExpressFedEx FreightMaersk LineUnion Pacific Railroad | |||
| Požadované datum doručení RequestedDeliveryDate | Datum a čas doručení požadované zákazníkem nebo uvedené v zákaznické objednávce. | ||
| Popis Požadované datum doručení je cílovým termínem aktivity „Doručení zboží“. Slouží jako hlavní měřítko včasnosti doručení. Tento údaj je nezbytný pro výpočet KPI „Míra včasného doručení“. Porovnáním skutečného času doručení s požadovaným termínem organizace zjistí, zda splnila dohodnutou úroveň služeb. Analýza odchylek pomáhá odhalit opakující se příčiny zpoždění, například problémy s výkonností dopravců, prodlevy v plánování nebo zdržení na celnici. Proč je to důležité Slouží jako základ pro měření včasnosti doručení, což je důležité KPI pro spokojenost zákazníků a efektivní provoz. Kde data získat Toto datum se obvykle přebírá z předchozí zákaznické objednávky nebo objednávky na přepravu zásob v SAP ERP. Ukládá se do polí data a času v dokladu Freight Unit nebo Freight Order. Příklady 2023-05-20T17:00:00Z2023-06-01T12:00:00Z2023-06-15T23:59:59Z | |||
| Způsob přepravy ModeOfTransport | Způsob přepravy zásilky, například silniční, železniční, letecká nebo námořní. | ||
| Popis Tento atribut určuje způsob přepravy. Jednotlivé způsoby se liší náklady, dobou přepravy i průběhem procesu. Mezinárodní letecká přeprava například zahrnuje činnosti, jako je celní odbavení, které se u vnitrostátní kamionové přepravy nevyskytují. Analýza procesů podle způsobu přepravy umožňuje připravit cílená zlepšení. Je důležitá také pro analýzu nákladů, zejména při rozlišování expresní přepravy, například letecké, od standardních a úspornějších způsobů. Toto členění pomáhá porozumět výdajům na přepravu a lépe je řídit. Proč je to důležité Umožňuje analyzovat náklady, dobu přepravy a odchylky v procesu podle způsobu přepravy. Pomáhá optimalizovat náklady a zjistit, kdy se využívá dražší přeprava. Kde data získat Jde o důležité pole v dokladu Freight Order nebo Freight Booking, často označené jako Transportation Mode nebo MOT. Příklady 01 (silniční)02 (železniční)04 (letecká)05 (námořní) | |||
| Důvod sporu DisputeReason | Důvod uvedený při reklamaci faktury za přepravu. | ||
| Popis Pokud se faktura dopravce neshoduje s očekávanými náklady vypočtenými v SAP TM, založí se spor. Tento atribut zaznamenává důvod nesrovnalosti, například „Nesprávná sazba“, „Duplicitní faktura“ nebo „Neschválený příplatek za doplňkovou službu“. Analýza důvodů sporů je důležitá pro dashboard Míra chyb a sporů ve fakturaci přepravy. Pomáhá odhalit příčiny nesprávné fakturace, ať už jde o problémy s kmenovými daty, chyby dopravce nebo selhání v provozu. Organizace pak může přijmout cílená opatření ke snížení počtu sporů, urychlit platební cyklus a omezit administrativní zátěž. Proč je to důležité Odhaluje příčiny chyb ve fakturaci přepravy a umožňuje cíleně omezit spory o faktury a zlepšit proces vyúčtování. Kde data získat Tento údaj se zaznamenává v případu správy sporů propojeném s dokladem Freight Settlement Document. Příklady Nesprávná sazbaNesprávná hmotnostNeschválený poplatek za zdrženíDuplicitní faktura | |||
| Důvod zpoždění DelayReason | Kód nebo text vysvětlující příčinu zpoždění zásilky. | ||
| Popis Atribut Důvod zpoždění zaznamenává příčinu odchylky od plánovaného harmonogramu, například „Nepříznivé počasí“, „Zdržení na celnici“ nebo „Zpoždění dopravce“. Informace se často zadává ručně nebo se přebírá ze zprávy o události od dopravce. Tento atribut pomáhá hledat příčiny problémů. Analytici díky němu zjistí nejen to, že zásilka dorazila pozdě, ale také proč. Kategorizace a vyčíslení důvodů zpoždění pomáhá odhalit opakující se problémy a zaměřit zlepšování na oblasti s největším dopadem, například na komunikaci s dopravci nebo plánování tras, které se vyhýbají dopravním zácpám. Proč je to důležité Vysvětluje příčiny zpoždění zásilek a umožňuje je podrobně analyzovat, omezit výjimky a zlepšit včasnost doručení. Kde data získat Při nahlášení události „Zpožděný příjezd/odjezd“ lze důvod zaznamenat jako kód události a příčinu v rámci správy událostí SAP TM. Příklady WEATHER_DELAYCUSTOMS_INSPECTIONPORT_CONGESTIONMECHANICAL_FAILURE | |||
| Je předmětem sporu IsDisputed | Logická hodnota určující, zda faktura za přepravu zásilky vedla ke sporu. | ||
| Popis Tento vypočítaný příznak označuje zásilky, u kterých vznikl spor při vyúčtování přepravy. Má hodnotu true, pokud byl spor založen, jinak false. Lze ho odvodit z přítomnosti aktivity „Založen spor o přepravu“ nebo z vyplněného důvodu sporu. Tento atribut zjednodušuje analýzu procesu vyúčtování přepravy. Usnadňuje výpočet KPI Míra nesrovnalostí ve fakturaci přepravy a filtrování všech zásilek, kterých se spor týká. Analytici pak mohou zkoumat jejich společné znaky, například dopravce, trasy nebo typy poplatků, a hledat příčiny chyb ve fakturaci. Proč je to důležité Usnadňuje vyhledání problematických vyúčtování přepravy, rychlý výpočet míry sporů i analýzu příčin chyb ve fakturaci. Kde data získat Tento atribut se v SAP TM neukládá. Je třeba ho vypočítat podle toho, zda je k dokladu Freight Settlement Document přiřazen případ sporu. Příklady truefalse | |||
| Jméno uživatele UserName | ID nebo jméno uživatele, který provedl danou aktivitu. | ||
| Popis Tento atribut určuje zaměstnance nebo uživatele odpovědného za ruční aktivitu, například „Shipment Planned“ nebo „Invoice Verified“. Propojuje kroky procesu s lidmi nebo týmy, které je provedly. Analýza aktivit podle uživatelů pomáhá porozumět rozložení pracovní zátěže, určit potřebu školení a rozpoznat nejvýkonnější pracovníky. Je důležitá také pro shodu a audit, protože poskytuje jasný záznam o tom, kdo co a kdy provedl. Může odhalit rozdíly v tom, jak jednotliví uživatelé vykonávají stejný úkol. Proč je to důležité Přiřazuje ruční kroky procesu konkrétním uživatelům a umožňuje analyzovat pracovní zátěž, individuální výkonnost i možnosti školení. Kde data získat Obvykle se nachází v tabulkách protokolu změn nebo hlaviček přepravních dokladů, například v polích „Vytvořil“ nebo „Změnil“ (např. ERNAM, AENAM). Příklady CB998030SMITHJPLANNER_EU | |||
| Plánované datum vyzvednutí ScheduledPickupDate | Plánované datum a čas, kdy má dopravce vyzvednout zboží v místě expedice. | ||
| Popis Plánované datum vyzvednutí označuje dohodnutý začátek fyzické přepravy. Jde o důležitý milník ve fázi realizace zásilky. Tento atribut je nezbytný pro sledování včasnosti první části přepravy. Porovnáním plánovaného času vyzvednutí se skutečným časem události „Zboží vyzvednuto“ mohou firmy vypočítat zpoždění při vyzvednutí. To pomáhá vyhodnotit výkonnost a spolehlivost místa expedice i dopravce. Proč je to důležité Slouží jako základ pro měření včasnosti vyzvednutí a pomáhá odhalit zpoždění hned na začátku fyzické přepravy zásilky. Kde data získat Jde o plánované datum a čas uložené v posloupnosti zastávek dokladu Freight Order v SAP TM. Příklady 2023-05-18T09:00:00Z2023-05-30T14:00:00Z2023-06-12T10:30:00Z | |||
| Poslední aktualizace dat LastDataUpdate | Časové razítko posledního získání nebo obnovení dat pro datovou sadu process miningu. | ||
| Popis Tento atribut udává aktuálnost analyzovaných dat. Zaznamenává datum a čas, kdy byla data naposledy načtena ze zdrojových systémů, například SAP TM, do nástroje pro process mining. Jde o důležitý metadatový údaj pro každý dashboard nebo analýzu, protože ukazuje, jak aktuální jsou získané poznatky. Uživatelé díky němu poznají, zda pracují s aktuálními informacemi, nebo se snímkem z předchozího období. To je důležité pro včasná a informovaná rozhodnutí. Proč je to důležité Poskytuje důležitý kontext o aktuálnosti dat, takže uživatelé vědí, jak současný je výsledek analýzy. Kde data získat Tento údaj obvykle vytváří a ukládá nástroj ETL (Extract, Transform, Load) nebo datová pipeline při načítání dat. Příklady 2023-10-27T08:00:00Z2023-10-26T08:00:00Z | |||
| Stav zásilky ShipmentStatus | Aktuální celkový stav zásilky v době extrakce dat. | ||
| Popis Stav zásilky ukazuje, v jaké fázi životního cyklu se zásilka nachází, například „V plánování“, „V realizaci“, „Doručeno“ nebo „Zrušeno“. Vyjadřuje poslední známý stav případu. Tento atribut usnadňuje filtrování a analýzu zásilek podle výsledku. Analytik se může zaměřit například jen na dokončené zásilky a měřit dobu průchodu procesem od začátku do konce, nebo analyzovat pouze zrušené zásilky a hledat příčiny zrušení. Údaj poskytuje důležitý kontext pro interpretaci průběhu procesu. Proč je to důležité Ukazuje celkový výsledek každé zásilky a umožňuje filtrovat a analyzovat dokončené, zrušené i stále přepravované zásilky. Kde data získat Jde o pole celkového stavu v hlavičce dokladu Freight Order nebo Freight Booking v SAP TM. Příklady V plánováníPřipraveno k přepravěV realizaciRealizovánoZrušeno | |||
| Zdrojový systém SourceSystem | Systém, ze kterého pocházejí data o události. | ||
| Popis Tento atribut určuje zdrojový systém, který vytvořil data, například SAP TM, SAP ERP nebo externí portál dopravce. Poskytuje kontext o původu dat a pomáhá porozumět místům jejich integrace. V prostředí s více systémy je znalost zdrojového systému důležitá pro ověřování dat, řešení problémů s integrací a pochopení toho, jak jednotlivé systémy přispívají k celkovému procesu. Lze například rozlišit událost nahlášenou interním systémem od události zadané externím poskytovatelem logistických služeb. Proč je to důležité Určuje původ dat, což je důležité pro správu dat, řešení problémů a pochopení koordinace procesů napříč více systémy. Kde data získat Tyto informace se často ukládají do systémového protokolu nebo je lze odvodit podle rozhraní či uživatele, který záznam vytvořil. Příklady SAP_TM_P01SAP_ERP_E01CARRIER_PORTAL_XYZ | |||
| Země odeslání OriginCountry | Země, ze které zásilka vyjíždí. | ||
| Popis Tento atribut určuje výchozí zemi přepravy podle adresy prvního místa vyzvednutí. Analýza procesu podle země odeslání pomáhá odhalit regionální rozdíly ve výkonnosti, nákladech a složitosti. Může upozornit na země s delším celním odbavením, vyššími náklady na dopravce nebo častějšími zpožděními. Toto geografické členění je důležité pro řízení globálního dodavatelského řetězce a přizpůsobení logistických strategií jednotlivým regionům. Proč je to důležité Umožňuje geograficky analyzovat výkonnost zásilek a odhalit regionální úzká místa, příčiny nákladů nebo odchylky v procesu. Kde data získat Jde o součást adresních údajů výchozího místa první zastávky v dokladu Freight Order. Příklady DEUSCNMX | |||
| Země určení DestinationCountry | Země, do které se zásilka doručuje. | ||
| Popis Tento atribut určuje cílovou zemi zásilky podle adresy posledního místa doručení. Stejně jako u země odeslání pomáhá analýza podle země určení porozumět regionálním logistickým problémům. Může odhalit například destinace, kde se zásilky častěji zpožďují nebo kde jsou vyšší náklady na doručení na posledním úseku. Tyto poznatky pomáhají optimalizovat síť, nastavit realistické termíny doručení a řídit dodržování předpisů v mezinárodním obchodě. Proč je to důležité Umožňuje analyzovat výkonnost procesu podle cílové země a odhalit problémy v konkrétních regionech, u celních orgánů nebo dopravců zajišťujících poslední úsek přepravy. Kde data získat Jde o součást adresních údajů cílového místa poslední zastávky v dokladu Freight Order. Příklady FRCAGBJP | |||
Aktivity v řízení přepravy
| Aktivita | Popis | ||
|---|---|---|---|
| Platba zpracována | Tato závěrečná aktivita potvrzuje, že dopravce dostal zaplaceno za přepravní služby. Obvykle k ní dojde v propojeném systému ERP poté, co SAP TM obdrží ověřenou fakturu. | ||
| Proč je to důležité Tím se skutečně uzavírá celý životní cyklus přepravy. Aktivita je nezbytná pro měření celkové doby procesu a KPI včasnosti plateb. Kde data získat Tyto údaje jsou v systému ERP, například v S/4HANA Finance. K dokumentu Freight Settlement Document je lze přiřadit podle čísla faktury. Aktualizace stavu se může vrátit do SAP TM, případně je nutné získat data z tabulek ERP, jako jsou BKPF a BSEG. Zachycení Získejte z ERP datum zúčtování platby a propojte ho se zásilkou pomocí odkazu na fakturu. Typ události explicit | |||
| Přijata žádost o přepravu | Tato aktivita označuje zahájení přepravního procesu, tedy vznik požadavku na přepravu. V SAP TM se obvykle zaznamená vytvořením Forwarding Order (FWO) nebo Order-based Transportation Requirement (OTR). | ||
| Proč je to důležité Jde o hlavní počáteční událost procesu přepravy od začátku do konce. Doba od této aktivity do dokončení plánování je důležitým KPI pro měření efektivity plánování. Kde data získat Tato událost se zaznamená při vytvoření Forwarding Order (typ dokumentu FWO) nebo jiného dokumentu požadavku na přepravu. Čas události určuje časové razítko vytvoření v tabulce záhlaví, například /SCMTMS/D_TORROT. Zachycení Zaznamenejte datum a čas vytvoření dokumentu Forwarding Order nebo Transportation Requirement. Typ události explicit | |||
| Přijato potvrzení o doručení | Tato aktivita nastane, když je od dopravce přijato podepsané potvrzení o doručení (POD) a zaznamenáno v systému. Potvrzuje, že příjemce zboží převzal. | ||
| Proč je to důležité Přijetí POD je nezbytnou podmínkou pro fakturaci zákazníkovi a vypořádání přepravních nákladů s dopravcem. Zpoždění v této fázi přímo prodlužuje cyklus od výdaje k inkasu. Kde data získat Událost se obvykle odvozuje ze změny stavu dokumentu Freight Order, například když se stav POD změní na „Received“. Časové razítko aktivity určuje okamžik této změny. Zachycení Zaznamenejte časové razítko, kdy se stav Proof of Delivery v dokumentu Freight Order změní na „Received“. Typ události inferred | |||
| Přiřazen dopravce | Tato aktivita označuje výběr a přiřazení konkrétního poskytovatele přepravních služeb, tedy dopravce, k zásilce. K přiřazení může dojít ručně, automatickým plánováním nebo výběrovým řízením. | ||
| Proč je to důležité Přiřazení dopravce je důležitým krokem před potvrzením a realizací zásilky. Sledování této aktivity pomáhá analyzovat výběr dopravců a zajistit včasnou rezervaci přepravy. Kde data získat Aktivita se zaznamená po vyplnění pole dopravce (partner s rolí „Carrier“) v dokumentu Freight Order nebo Freight Booking. Při výběrovém řízení jde o okamžik přidělení Freight Request for Quotation. Zachycení Určete časové razítko, kdy byla v dokumentu Freight Order poprvé vyplněna nebo potvrzena funkce partnera dopravce. Typ události inferred | |||
| Vytvořeno vypořádání přepravy | Tato aktivita označuje vytvoření dokumentu Freight Settlement Document (FSD), který vypočítává částku k úhradě dopravci za přepravu. Jde o hlavní dokument pro zaúčtování nákladů a kontrolu faktur. | ||
| Proč je to důležité Tím začíná finanční vypořádání přepravního procesu. Analýza doby od doručení po vytvoření vypořádání pomáhá odhalit úzká místa ve finančním zpracování. Kde data získat Jde o výslovně zaznamenanou událost při vytvoření dokumentu Freight Settlement Document. Čas vytvoření je dostupný v tabulce záhlaví tohoto dokumentu, /SCMTMS/D_SFIRHD. Zachycení Použijte datum a čas vytvoření dokumentu Freight Settlement Document. Typ události explicit | |||
| Zásilka naplánována | Tato aktivita znamená, že požadavky na přepravu byly sloučeny do konkrétního plánu zásilky. Zaznamená se při vytvoření a uložení Freight Order (pro silniční nebo železniční přepravu) nebo Freight Booking (pro námořní či leteckou přepravu), který obsahuje plánovanou trasu a zdroje. | ||
| Proč je to důležité Dokončení tohoto milníku je nezbytné pro zahájení realizace přepravy. Doba od přijetí požadavku do této aktivity je důležitým KPI pro měření efektivity plánování. Kde data získat Tato událost odpovídá vytvoření dokumentu Freight Order nebo Freight Booking. Lze ji také odvodit ze změny stavu dokumentu, například když se stav plánování změní na „Planned“. Příslušné údaje v záhlaví se obvykle nacházejí v tabulce /SCMTMS/D_TORROT. Zachycení Použijte časové razítko vytvoření dokumentu Freight Order nebo Freight Booking. Typ události explicit | |||
| Zásilka zrušena | Tato aktivita označuje zrušení zásilky po zadání požadavku nebo dokončení plánování. Jde o koncový bod procesu, který nepokračuje k realizaci. | ||
| Proč je to důležité Sledování zrušených zásilek pomáhá odhalit příčiny nedokončených procesů, například změny poptávky zákazníků nebo chyby v plánování. Vysoký podíl zrušení může ukazovat na hlubší problémy ve správě objednávek nebo plánování. Kde data získat Událost se odvozuje ze změny stavu životního cyklu dokumentu Forwarding Order nebo Freight Order na „Cancelled“. Časové razítko této změny určuje čas události. Zachycení Zaznamenejte časové razítko, kdy se stav životního cyklu dokumentu změní na „Cancelled“. Typ události inferred | |||
| Zboží doručeno | Tato aktivita označuje příjezd zásilky do cílového místa a dokončení fyzické přepravy. Zaznamená se, když dopravce oznámí vyložení zboží v místě příjemce. | ||
| Proč je to důležité Jde o nejdůležitější milník pro měření včasnosti dodávek a spokojenosti zákazníků. Obvykle také spouští fakturaci a finanční vypořádání. Kde data získat V SAP TM se tato událost zaznamenává jako událost realizace „Arrival at Destination“ nebo „Unloading End“ a aktualizuje stav realizace dokumentu Freight Order. Údaje často poskytuje dopravce. Zachycení Použijte časové razítko nahlášené události realizace „Arrival at Destination“ pro poslední zastávku dokumentu Freight Order. Typ události explicit | |||
| Zboží vyzvednuto | Tato aktivita označuje začátek fyzické přepravy zboží. Zaznamená se, když dopravce oznámí naložení zboží a odjezd z místa odesílatele. | ||
| Proč je to důležité Jde o důležitý milník realizace, který označuje začátek přepravy. Je nezbytný pro sledování včasnosti a poskytování přesných informací o zásilce. Kde data získat Tato událost se obvykle zaznamenává v SAP Event Management, který je integrován se SAP TM, jako událost „Departure“ nebo „Loading End“. Aktualizuje stav provedení Freight Order. Zaznamenat ji lze také přímo ve Freight Order. Zachycení Použijte časové razítko nahlášené události realizace „Departure“ pro výchozí místo dokumentu Freight Order. Typ události explicit | |||
| Celní odbavení dokončeno | Tato aktivita znamená, že celní úřady zásilku schválily a může pokračovat v přepravě. Jde o důležitý milník mezinárodní logistiky, protože odstraňuje možné úzké místo. | ||
| Proč je to důležité Celní odbavení bývá častou příčinou výrazných zpoždění v globálních dodavatelských řetězcích. Sledování jeho délky a úspěšnosti je důležité pro zkrácení doby mezinárodní přepravy. Kde data získat Událost se zaznamená jako událost realizace „Customs Clearance“, kterou obvykle nahlásí celní zástupce nebo externí poskytovatel informací o zásilce. Poté se aktualizuje sledování realizace v dokumentu Freight Order. Zachycení Použijte časové razítko nahlášené události realizace „Customs Clearance“ přiřazené k dokumentu Freight Order. Typ události explicit | |||
| Dopravce potvrdil zásilku | Tato událost znamená, že dopravce souhlasí s realizací přepravy podle plánu. Potvrzení obvykle přijde prostřednictvím zprávy EDI, aktualizace na portálu dopravce nebo ručního zadání, které změní stav dokumentu Freight Order. | ||
| Proč je to důležité Potvrzení dopravce stvrzuje plán zásilky a snižuje nejistotu. Pokud se opozdí, může být ohrožen celý harmonogram přepravy. Kde data získat Událost se odvozuje ze změny pole stavu potvrzení v dokumentu Freight Order nebo Freight Booking. Ve správě stavů dokumentu se nastaví konkrétní hodnota, například „Confirmed“. Zachycení Sledujte změny polí stavu potvrzení v dokumentu Freight Order. Typ události inferred | |||
| Faktura ověřena | Tato aktivita znamená, že faktura dopravce byla úspěšně porovnána s dokumentem Freight Settlement Document a schválena k úhradě. Jde o poslední krok před zahájením platby v systému ERP. | ||
| Proč je to důležité Tato aktivita dokončuje kontrolu a ověření přepravních nákladů. Zpoždění v této fázi může vést k pozdním platbám dopravcům a poškodit vzájemné vztahy. Kde data získat Událost se odvozuje ze změny stavu dokumentu Freight Settlement Document, například na „Ready for Accrual“ nebo „Transferred for Posting“. Tyto stavy znamenají, že dokument byl odeslán do systému ERP k úhradě. Zachycení Sledujte časové razítko změny stavu životního cyklu FSD, která označuje připravenost k úhradě nebo zaúčtování. Typ události inferred | |||
| Podáno celní prohlášení | U mezinárodních zásilek tato aktivita označuje předání požadovaných celních dokumentů úřadům. Jde o podmínku pro získání povolení k vývozu nebo dovozu zboží. | ||
| Proč je to důležité Včasné podání celního prohlášení je důležité pro předcházení zpožděním na hranicích. Tato aktivita pomáhá sledovat efektivitu celního zastoupení. Kde data získat Událost lze zaznamenat jako konkrétní událost realizace nahlášenou celním zástupcem nebo jako změnu stavu v integrovaném systému pro správu celních procesů, například SAP GTS. Následně se aktualizuje dokument Freight Order. Zachycení Zaznamenejte časové razítko události realizace „Customs Declaration Filed“ nebo odpovídající změny stavu. Typ události explicit | |||
| Založen spor o přepravní náklady | Tato událost označuje zjištění nesrovnalosti mezi fakturou dopravce a náklady vypočítanými v dokumentu Freight Settlement Document. Spouští workflow pro řešení sporu. | ||
| Proč je to důležité Spory zpožďují platby dopravcům a jejich řešení vyžaduje administrativní práci. Sledování této aktivity pomáhá odhalit příčiny nepřesností ve fakturaci, například nesprávné sazby nebo příplatky. Kde data získat Událost lze odvodit ze změny stavu dokumentu Freight Settlement Document, kdy se nastaví stav „Dispute“. Může také dojít k vytvoření samostatného dokumentu případu sporu. Zachycení Zaznamenejte časové razítko, kdy se v dokumentu Freight Settlement Document nastaví stav sporu. Typ události inferred | |||
| Změněna trasa zásilky | Tato aktivita označuje neplánovanou změnu trasy nebo harmonogramu zásilky po jejím potvrzení. Příčinou mohou být výpadky, požadavky zákazníka nebo logistické problémy. | ||
| Proč je to důležité Změny trasy často zvyšují náklady a prodlužují přepravu. Sledování jejich četnosti a příčin pomáhá zpřesnit plánování a stabilizovat provoz. Kde data získat Událost se odvozuje zjištěním významných změn etap, míst nebo dat v dokumentu Freight Order po zahájení realizace. K tomu lze analyzovat změnové dokumenty v tabulkách CDHDR a CDPOS. Zachycení Po události „Shipment Confirmed by Carrier“ zjistěte změny důležitých polí trasy v dokumentu Freight Order. Typ události inferred | |||
Průvodci extrakcí dat
Kroky
- Najděte a aktivujte API CDS View: Přihlaste se do systému SAP S/4HANA. Pomocí transakce
/IWFND/MAINT_SERVICEověřte, že jsou aktivní potřebné služby OData pro hlavní CDS View. Zkontrolujte zejména služby související s I_TransportationOrder, C_TranspOrdExecutionEvent, I_ForwardingOrder a I_FreightSettlementDocument. Pokud aktivní nejsou, požádejte správce SAP, aby je přidal a aktivoval v backendovém systému. - Nastavte připojení k API: Od správce SAP si vyžádejte základní URL služeb OData. Nastavte klientskou aplikaci, například skript v Pythonu využívající knihovnu requests, komerční nástroj ETL nebo Postman, aby se připojila k API. Nakonfigurujte ověřování, obvykle pomocí Basic Authentication (uživatelské jméno a heslo) nebo bezpečnějšího připojení přes OAuth 2.0.
- Vymezte rozsah extrakce: Určete, jaká data chcete extrahovat. Nastavte konkrétní období, například posledních 6 měsíců. Vyberte organizační jednotky, podle kterých chcete data filtrovat, například kód společnosti, nebo konkrétní typy dokladů, například typ přepravní zakázky. Zajistíte tak, že data budou odpovídat analyzovanému procesu.
- Sestavte základní dotaz na zásilky: Začněte dotazem nad CDS View I_TransportationOrder. Toto zobrazení slouží jako hlavní zdroj údajů o zásilkách, označovaných také jako Freight Orders nebo Freight Bookings. Pomocí parametru OData
$selectvyberte potřebné sloupce, včetně doporučených atributů CarrierName, ModeOfTransport a RequestedDeliveryDate. Parametrem$filteromezte data podle data a dalších zvolených kritérií. - Načtěte události realizace a přepravy: Pomocí CDS View C_TranspOrdExecutionEvent extrahujte důležité logistické události. Filtrujte toto zobrazení podle konkrétních hodnot
EventCode, které odpovídají činnostem, jako jsou „Zboží vyzvednuto“ (DEPARTURE) a „Zboží doručeno“ (ARRIVAL_AT_DESTINATION). Tato data propojte se základními údaji o zásilkách pomocí UUID TransportationOrder. - Načtěte související obchodní objekty: Chcete-li zachytit celý proces, načtěte také další související CDS View. V I_ForwardingOrder vyhledejte činnost „Přijata žádost o přepravu“ a v I_FreightSettlementDocument finanční činnosti, například „Vytvořeno vyúčtování přepravy“, „Vytvořen spor o přepravné“ a „Ověřena faktura“.
- Extrahujte činnosti podle změn stavu: Mnohé činnosti nejsou samostatnými událostmi, ale změnami stavu hlavního dokladu. U činností, jako jsou „Přiřazen dopravce“, „Dopravce potvrdil zásilku“ a „Zásilka zrušena“, načtěte data z I_TransportationOrder a jako čas události použijte
LastChangeDateTimepříslušného pole stavu. Je třeba správně přiřadit kódy stavů k obchodním činnostem. - Spojte a transformujte data: Sloučte data ze všech zdrojů do jedné struktury záznamu událostí. Pro každou extrahovanou činnost vytvořte řádek s požadovanými sloupci: ShipmentId, ActivityName a EventTime. U každého řádku dané zásilky uveďte všechny doporučené atributy ze základního dotazu. Tento krok odpovídá operaci SQL
UNION ALL. - Zpracujte složité a externí události: U činností, jako jsou „Procleno“ nebo „Zpracována platba“, mohou být data uložena ve specifických polích nebo v externích systémech. Uvedená logika dotazu používá jako náhradní řešení standardní pole. Podle potřeby upravte dotaz tak, aby zahrnoval CDS View pro celní řízení, nebo propojte samostatnou extrakci z ERP s údaji o platbách podle čísla dokladu vyúčtování přepravy.
- Připravte data pro ProcessMind: Uložte výslednou sloučenou datovou sadu jako soubor CSV. Zkontrolujte, že názvy sloupců odpovídají požadavkům na nahrání. Například v nastavení nástroje namapujte sloupec
ShipmentIdna poleCaseId. Ověřte, že časová razítka mají jednotný formát, nejlépe UTC (YYYY-MM-DDTHH:MM:SSZ).
Konfigurace
- Základní pohledy CDS: Extrakce vychází především z pohledů I_TransportationOrder (pro přepravní objednávky), C_TranspOrdExecutionEvent (pro události provedení), I_ForwardingOrder (pro požadavky na přepravu) a I_FreightSettlementDocument (pro vyúčtování).
- Filtrování podle období: Pro omezení objemu dat je nutné nastavit filtr podle data. Použijte
CreationDateTimev I_TransportationOrder neboActualBusinessDateTimev C_TranspOrdExecutionEvent. Pro první analýzu doporučujeme období 3 až 6 měsíců. - Filtrování podle typu dokumentu: Chcete-li analýzu zaměřit, filtrujte podle konkrétních typů dokumentů pomocí pole
TransportationOrderType. Oddělíte tak různé logistické scénáře, například standardní odchozí zásilky a přesuny zásob. - Organizační filtry: Pokud je to relevantní, omezte data na konkrétní obchodní jednotku nebo region pomocí pole
PurchasingOrganizationči jiných polí na úrovni organizace. - Stránkování API: U rozsáhlých datových sad načítejte data po menších stránkách pomocí parametrů OData
$topa$skip. Předejdete tak vypršení časového limitu API a snížíte spotřebu paměti na straně klienta. Obvykle se osvědčí velikost stránky 1 000 až 5 000 řádků. - Předpoklady: Uživatel nebo servisní účet provádějící extrakci musí mít oprávnění k příslušným službám OData (autorizační objekt S_SERVICE) a k obchodním datům v pohledech CDS. Příslušné služby musí být aktivované v SAP Gateway (
/IWFND/MAINT_SERVICE).
Ukázkový dotaz 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' Kroky
- Ověřte, že máte schválený přímý přístup pro čtení ke schématu SAP TM HANA prostřednictvím schváleného SQL klienta, databázového pohledu nebo služby pro extrakci dat. Získejte připojovací řetězec, přihlašovací údaje, název schématu a oprávnění potřebná ke čtení příslušných tabulek SAP TM. Bez příslušného bezpečnostního schválení a schválení změny se nepřipojujte přímo k produkčnímu prostředí.
- Ověřte fyzické názvy tabulek a sloupců ve svém systému. Níže uvedený dotaz používá jako hlavní tabulky /SCMTMS/D_TORROT a /SCMTMS/D_TOSTOP. Údaje o stavu, partnerech, datech, nákladech, celním řízení, dokumentech a platbách však mohou být podle verze a implementace SAP TM uloženy v dalších tabulkách nebo rozšířeních. Zástupné názvy nahraďte až poté, co je ověříte v katalogu systému a datovém modelu.
- Vymezte období extrakce pomocí [Start timestamp] a [End timestamp]. Pro úvodní analýzu obvykle stačí období tří až šesti měsíců. Delší období použijte až po ověření výkonu dotazu a doby uchovávání historie událostí.
- Určete identifikátor případu zásilky. Dotaz používá jako identifikátor zásilky TOR_ID z tabulky /SCMTMS/D_TORROT. Pokud vaše implementace používá jiný stabilní identifikátor, nahraďte jím identifikátor případu ve všech větvích aktivit. Pokud je k dispozici, ponechte původní identifikátor dokladu jako další auditní atribut.
- Každou obchodní aktivitu přiřaďte k jednoznačné podmínce ve zdrojových datech. ProcessMind načítá záznam událostí v původní podobě, proto dotaz vytvoří jeden řádek pro každou extrahovanou aktivitu. Neodvozuje milníky z pořadí dokladů, chybějících časových údajů ani změn stavu.
- Mapování stavů a časových údajů ověřte s plánovači přepravy a vlastníky procesů. Zvlášť potvrďte hodnoty odpovídající vytvoření požadavku, plánování, přiřazení dopravce, potvrzení dopravcem, vyzvednutí, podání celního prohlášení, celnímu odbavení, změně trasy, doručení, přijetí POD, vyúčtování přepravy, reklamaci, ověření faktury, zrušení a platbě.
- Spusťte dotaz ve schváleném SQL klientovi. Zkontrolujte, že každý řádek odpovídá jedné události, ShipmentId ani ActivityName nejsou prázdné a EventTime obsahuje platný čas. Ověřte, zda vícenásobná spojení nevytvářejí duplicitní řádky. V případě potřeby upravte mapování zdrojových dat nebo logiku agregace.
- Pokud jsou příslušná zdrojová pole k dispozici, doplňte doporučené atributy. Dotaz obsahuje zástupné názvy polí, která nelze bezpečně určit bez metadat konkrétního systému. Nahraďte je pouze ověřenými sloupci nebo schválenými pohledy.
- Použijte závěrečná pravidla kvality dat. Odstraňte řádky bez identifikátoru případu nebo časového údaje události, sjednoťte časová pásma, ponechte původní časové údaje pro audit a ověřte, že EndTime není dřívější než EventTime. Chybějící zdrojové záznamy nenahrazujte uměle vytvořenými událostmi.
- Výsledek exportujte jako CSV v kódování UTF-8 nebo v jiném tabulkovém formátu podporovaném ProcessMind. Použijte přesné názvy povinných sloupců ShipmentId, ActivityName a EventTime. Pokud jsou vyplněné, zahrňte také EndTime a doporučené atributy. Nahrajte soubor nebo připojte schválený výsledek dotazu k ProcessMind a ověřte správné namapování identifikátoru případu zásilky a pole názvu aktivity.
Konfigurace
- Hlavní zdrojové tabulky: Pro hlavní data přepravních zakázek použijte /SCMTMS/D_TORROT a pro zastávky a milníky /SCMTMS/D_TOSTOP. Před nasazením ověřte všechny další zdrojové objekty v cílovém systému SAP TM.
- Identifikátor případu: Použijte stabilní identifikátor zásilky nebo přepravní zakázky. Ukázkový dotaz používá jako ShipmentId hodnotu TOR_ID. Ověřte, že tento identifikátor zůstává stejný při plánování, realizaci, vyúčtování i v záznamech o platbách ERP.
- Mapování činností: Nastavte konkrétní podmínky ve zdrojích pro všech 15 požadovaných činností. Každá činnost musí být zaznamenána jako samostatný řádek v záznamu událostí. ProcessMind činnosti z jiných řádků neodvozuje.
- Období: Začněte s historií za tři až šest měsíců. Podmínky EventTime použijte v každé větvi zdroje co nejdříve. Při přírůstkovém načítání používejte řízený časový bod a krátké překrývající se období, abyste zachytili i pozdější aktualizace.
- Obchodní filtry: Podle implementace nastavte filtry pro kód společnosti, nákupní organizaci, prodejní organizaci, typ dokladu, způsob přepravy, dopravce, závod, místo a stav. Pokud příslušné pole není ověřené, použijte zástupnou hodnotu, například [Company code filter].
- Práce s časovými razítky: Převeďte zdrojová časová razítka do jednotného časového pásma. Pokud zdroj ukládá datum a čas odděleně, spojte je pomocí převodu podporovaného konkrétní verzí HANA. Pokud je to nutné pro audit, uchovejte původní časové razítko.
- Doporučené atributy: Naplňte CarrierName, RequestedDeliveryDate, ModeOfTransport, TotalFreightCost a IsOnTimeDelivery z ověřených zdrojových polí nebo schválených výpočtových zobrazení. Pokud zdroj neobsahuje spolehlivou hodnotu, ponechte pole prázdné.
- Výkon: Omezte období, vybírejte pouze potřebné sloupce, filtrujte před spojováním, vyhněte se neomezenému čtení celých tabulek a zkontrolujte plán provádění HANA. U rozsáhlých datových sad použijte podmínky zohledňující oddíly, přírůstkovou extrakci, přípravné tabulky nebo schválené výpočtové zobrazení.
- Kontrola duplicit: Spojení typu one-to-many může vytvořit více řádků pro jednu činnost. Použijte ověřený klíč události, klíč zdrojového dokladu nebo jednoznačné pravidlo agregace. Neodstraňujte duplicity nahodile, mohli byste tím přijít o oprávněně opakované události.
- Předpoklady: Potřebujete příslušná databázová oprávnění, přístup k datům SAP TM a případným propojeným datům ERP nebo vyúčtování, schválené nástroje pro extrakci a potvrzení, že jsou aktivní příslušné moduly SAP TM, integrace a vlastní rozšíření.
- Mapování specifické pro systém: Kódy stavů, role partnerů, celní milníky, stavy vyúčtování, faktur a plateb se liší podle verze a konfigurace. Udržujte mapování v řízeném konfiguračním dokumentu a po aktualizacích ho otestujte.
Ukázkový dotaz 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; Kroky
- Určete požadavky na data: Nejprve potvrďte přesnou logiku všech 15 požadovaných činností a atributů. Každou činnost namapujte na konkrétní změny stavu, události vytvoření nebo vazby mezi doklady v systému SAP TM. Určete například přesný stav realizace, který označuje „Zboží vyzvednuto“.
- Otevřete vývojové prostředí ABAP: Přihlaste se do SAP GUI a pomocí transakčního kódu
SE38otevřete editor ABAP. Zadejte název nového programu, napříkladZTM_PROCESS_EXTRACT, a klikněte na „Vytvořit“. Zadejte název a nastavte typ programu na „Spustitelný program“. - Vytvořte výběrovou obrazovku: V programu definujte výběrovou obrazovku, kterou uvidí uživatelé. Měla by obsahovat parametry pro filtrování dat, například období podle data vytvoření přepravní zakázky (
SO_CREDT), a volby pro typy dokladů (SO_TYPE) nebo dopravce (SO_CARR). - Definujte výstupní strukturu: Vytvořte strukturu interní tabulky odpovídající požadovanému formátu záznamu událostí. Zahrňte pole
ShipmentId,ActivityName,EventTime,EndTime,CarrierName,RequestedDeliveryDate,ModeOfTransport,TotalFreightCostaIsOnTimeDelivery. - Naprogramujte výběr dat: Napište hlavní logiku ABAP pro výběr dat ke všem 15 činnostem. Obvykle bude potřeba načítat data z několika tabulek SAP TM. Začněte výběrem hlavních dokladů zásilek, například Freight Orders, v zadaném období.
- Extrahujte události plánování a realizace: U každého vybraného dokladu zásilky, například Freight Order, načtěte z příslušných tabulek a obchodních objektů časová razítka jednotlivých událostí. Tabulku
/SCMTMS/D_TORROTpoužijte pro vytvoření Freight Order („Naplánována zásilka“), přiřazení dopravce („Přiřazen dopravce“) a změny stavu realizace odpovídající činnostem „Zboží vyzvednuto“ a „Zboží doručeno“. Vytvoření předcházejícího Forwarding Order (/SCMTMS/D_TRQROT) může označovat činnost „Přijata žádost o přepravu“. - Extrahujte potvrzení dopravce a změnu trasy: V tabulkách stavů nebo změnových dokladech (CDHDR/CDPOS) souvisejících s Freight Order zjistěte, kdy byl nastaven stav
CONFIRMATION. Ten zachycuje činnost „Dopravce potvrdil zásilku“. Podobně vyhledejte významné změny údajů o trase a zachyťte činnost „Změněna trasa zásilky“. - Extrahujte celní události: Pokud používáte SAP Global Trade Services (GTS) nebo podobný modul, celní události („Podáno celní prohlášení“, „Procleno“) se často sledují prostřednictvím propojených dokladů. V logice načtěte tok dokladů (
/SCMTMS/D_TORDOC) Freight Order a vyhledejte související doklady a časy jejich vytvoření nebo změny stavu. - Extrahujte události vyúčtování a sporů: Načtěte hlavičku dokladu vyúčtování přepravy z tabulky (
/SCMTMS/D_SFIRHD) a související položky a stavy. Zachytíte tak události „Vytvořeno vyúčtování přepravy“, „Vytvořen spor o přepravné“ a „Ověřena faktura“. Propojte je s původnímShipmentId. - Sloučte data: Pro každou nalezenou událost vytvořte záznam ve výsledné interní tabulce. Do
ActivityNameuveďte odpovídající činnost, doEventTimečasové razítko události a doShipmentIdID Freight Order nebo Freight Booking. Ostatní atributy doplňte z příslušných zdrojových dokladů. - Připravte a exportujte soubor: Po naplnění výsledné interní tabulky zformátujte data do plochého souboru. Pomocí příkazů
OPEN DATASET,LOOP AT... TRANSFER...aCLOSE DATASETzapište obsah interní tabulky do souboru CSV nebo TXT na aplikačním serveru SAP. Soubor je dostupný přes transakci AL11. - Naplánujte spuštění a stáhněte soubor: Program ABAP lze naplánovat jako úlohu na pozadí pomocí transakce SM36 a extrahovat tak data automaticky. Vygenerovaný soubor pak stáhněte z aplikačního serveru do místního počítače pomocí transakce
CG3Ya nahrajte ho do ProcessMind.
Konfigurace
- Období: Výběrová obrazovka musí obsahovat povinné období podle data vytvoření hlavního přepravního dokladu, například Freight Order. Pro první analýzu doporučujeme období 3 až 6 měsíců. Získáte reprezentativní data, aniž by se běh zbytečně prodloužil.
- Filtr typu dokladu: Přidejte filtr typu přepravního dokladu, například Freight Order nebo Freight Booking. Díky němu se zaměříte na konkrétní procesy, například silniční nebo námořní přepravu.
- Filtr dopravce: Umožněte filtrování podle konkrétních dopravců. Snáze tak vyhodnotíte výkonnost jednotlivých logistických partnerů.
- Organizační filtry: Zahrňte filtry pro příslušné organizační jednotky, například nákupní organizaci nebo kód společnosti. Extrakci tak omezíte na konkrétní obchodní oblasti.
- Optimalizace výkonu: U rozsáhlých datových sad používejte v klauzulích
WHEREindexovaná databázová pole, pokud možno se vyhněte vnořeným smyčkám a z databáze vybírejte jen potřebná pole. Omezíte tak spotřebu paměti. - Předpoklady: Uživatel spouštějící report potřebuje oprávnění ke spouštění programů ABAP. Vývojář potřebuje oprávnění
S_DEVELOP. Samotný program potřebuje oprávnění k přístupu k souborovému systému aplikačního serveru (objektS_DATASET) a k příslušným databázovým tabulkám a objektům BOPF v TM.
Ukázkový dotaz 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. Chcete začít?
Využijte tuto šablonu jako výchozí bod pro zlepšení přepravních procesů a rychlejší a levnější doručování. Začněte odhalovat souvislosti ještě dnes.
Odstraňte úzká místa v řízení přepravy
Odhalte neefektivitu, optimalizujte trasy a zkraťte dobu průchodu procesem o 30 %.
Platební kartu nepotřebujete. Nastavení zabere jen několik minut.