Uw template voor Transportation Management-data.
Uw template voor Transportation Management-data.
- Aanbevolen attributen om vast te leggen
- Belangrijkste activiteiten om te volgen
- Extractiehandleiding voor SAP Transportation Management
Transportation Management Attributes
| Naam | Omschrijving | ||
|---|---|---|---|
| Activiteitsnaam ActivityName | De name of a specific business event or step that occurred within the transportation process. | ||
| Omschrijving De Activity Name describes a single task or milestone in the shipment's lifecycle, such as 'Shipment Planned', 'Goods Picked Up', or 'Goods Delivered'. These activities form the nodes in the discovered process map. Analyzing the sequence and frequency of activities helps identify the standard process flow, deviations, bottlenecks, and rework loops. It is the backbone of process discovery and conformance checking in transportation management. Het belang Dit attribute defines the steps in the transportation process, allowing for the visualization and analysis of the end-to-end shipment flow. Vindplaats Dit is typically derived from event codes or status changes recorded in the SAP TM execution tracking event handler. It may be sourced from tables that log business object status changes or specific event messages. Voorbeelden Zending GeplandVervoerder ToegewezenGoederen OpgehaaldGoederen geleverdBewijs van Levering ontvangen | |||
| Tijdstip Gebeurtenis EventTime | De tijdstempel die aangeeft wanneer een specifieke activiteit of gebeurtenis heeft plaatsgevonden. | ||
| Omschrijving Event Time biedt de precieze datum en tijd voor elke activiteit in het transportproces. Deze temporele data is fundamenteel voor het berekenen van cyclustijden, doorlooptijden en wachttijden tussen verschillende processtappen. In analyse wordt dit attribuut gebruikt om events correct te sequencen, een chronologisch log te bouwen en alle tijdsgebaseerde prestatieanalyse uit te voeren. Het is cruciaal voor het identificeren van vertragingen, het meten van procesefficiëntie en het evalueren van prestaties tegen schema's of service level agreements. Het belang De timestamp is essential for ordering events chronologically and calculating all performance metrics, such as cycle times and on-time delivery. Vindplaats Afkomstig uit de event handler-tabellen in SAP TM, zoals /SAPTRX/EH_EVMSG, waarin de timestamps voor gerapporteerde events worden opgeslagen. Voorbeelden 2023-04-15T10:00:00Z2023-04-16T14:30:00Z2023-04-20T09:15:00Z | |||
| Zending ShipmentId | De unique identifier for a single movement of goods, which serves as the central case for analysis. | ||
| Omschrijving De Shipment ID is de primary key that groups all related transportation activities and events. It represents a single, end-to-end transportation process, from the initial request to the final proof of delivery and payment. In process mining, this attribute is essential for constructing the case view, allowing analysts to trace the complete journey of each shipment. It enables the analysis of process variants, cycle times, and outcomes associated with individual shipments, providing a comprehensive view of transportation performance. Het belang Dit is the fundamental case identifier, linking all events and data points to a specific transportation order, which is crucial for end-to-end process analysis. Vindplaats Deze identifier is het Freight Order number or Freight Booking number in SAP TM. It can be found in tables like /SCMTMS/D_TORROT and /SCMTMS/D_TRQROT. Voorbeelden 610000432161000056786100009876 | |||
| Eindtijd EndTime | De timestamp die aangeeft wanneer een specifieke activiteit is voltooid. | ||
| Omschrijving Terwijl StartTime het begin van een event aangeeft, markeert EndTime de voltooiing ervan. Dit is bijzonder nuttig voor activiteiten die een duur hebben, zoals 'Douaneafhandeling' of 'Goederen Lading'. Het verschil tussen EndTime en StartTime vertegenwoordigt de verwerkingstijd van die activiteit. In process mining analyse maakt het hebben van zowel een start- als een eindtijd een meer granulaire analyse van activiteitsduren mogelijk, waardoor verwerkingstijd van wachttijd kan worden gescheiden. Dit helpt precies aan te wijzen waar inefficiënties liggen, of dit nu binnen de uitvoering van een taak is of in de overdrachten tussen taken. Het belang Maakt de precieze berekening van verwerkingstijden voor activiteiten mogelijk, waarbij actieve werktijd wordt onderscheiden van wachttijd tussen events. Vindplaats Net als StartTime is dit afkomstig uit event handler tabellen. Het kan overeenkomen met een afzonderlijke 'completed' event voor een gegeven activity. Voorbeelden 2023-04-15T11:30:00Z2023-04-16T15:00:00Z2023-04-20T09:45:00Z | |||
| Gewenste leverdatum RequestedDeliveryDate | De delivery date and time requested by the customer or stipulated in the sales order. | ||
| Omschrijving De Requested Delivery Date is de target deadline voor de 'Goods Delivered' activity. Het serves as the primary benchmark for measuring on-time delivery performance. This date is crucial for calculating the 'On-Time Delivery Rate' KPI. Door comparing the actual delivery timestamp with this requested date, organizations can determine if they met their service level agreement. Analyzing deviations helps identify systemic causes of delays, such as carrier performance issues, planning delays, or customs hold-ups. Het belang Dit is de Vindplaats Deze date is typically transferred from the preceding sales order or stock transport order from SAP ERP. It is stored in the date/time fields of the Freight Unit or Freight Order. Voorbeelden 2023-05-20T17:00:00Z2023-06-01T12:00:00Z2023-06-15T23:59:59Z | |||
| Is `Tijdige Levering` IsOnTimeDelivery | Een Booleaanse vlag die aangeeft of de goederen op of vóór de aangevraagde leverdatum zijn geleverd. | ||
| Omschrijving Dit is a calculated attribute that compares the timestamp of the 'Goods Delivered' activity with the 'Requested Delivery Date'. It evaluates to true if the delivery was on time or early, and false if it was late. This attribute simplifies performance analysis by creating a clear binary outcome for each shipment. It is the basis for the On-Time Delivery Performance Dashboard and the corresponding KPI. It allows analysts to easily filter for late shipments and perform root cause analysis to understand the drivers of poor performance. Het belang Meet direct de naleving van leveringsverbintenissen, wat de berekening en visualisatie van de kritieke 'on-time delivery'-KPI vereenvoudigt. Vindplaats Dit attribute is not stored in SAP TM. It must be calculated during data transformation by comparing the actual delivery event timestamp to the Requested Delivery Date. Voorbeelden truefalse | |||
| Naam Vervoerder CarrierName | De name of the transportation carrier or logistics service provider assigned to the shipment. | ||
| Omschrijving De Carrier Name identifies the company responsible for physically moving the goods. This is a critical dimension for performance analysis, as different carriers may have varying levels of service, cost, and reliability. In process mining, this attribute is used to segment and compare performance across various carriers. It allows for the creation of carrier scorecards, monitoring on-time delivery rates per carrier, comparing costs, and identifying which carriers are most frequently associated with delays or disputes. This insight is vital for strategic carrier management and procurement. Het belang Maakt prestatievergelijking tussen verschillende vervoerders mogelijk, wat essentieel is voor het optimaliseren van vervoerderselectie, kosten en serviceniveaus. Vindplaats Deze information is stored on the Freight Order or Freight Booking document. It is linked via the business partner function for the carrier. Voorbeelden DHL ExpressFedEx VrachtMaersk LineUnion Pacific Railroad | |||
| Totale Vrachtkosten TotalFreightCost | De total calculated or invoiced cost for the shipment. | ||
| Omschrijving Totale Vrachtkosten vertegenwoordigen de financiële impact van een zending. Dit kan de kosten zijn berekend door het transportmanagementsysteem of het uiteindelijke bedrag van de factuur van de vervoerder na afwikkeling. Dit attribute maakt het mogelijk de financiële dimensie te integreren in de procesanalyse. Analisten kunnen de duurste procesvarianten identificeren, de kosten van vertragingen of omleidingen berekenen en de kosteneffectiviteit van verschillende vervoerders of transportmodi vergelijken. Het is fundamenteel voor dashboards die gericht zijn op transportuitgaven en cost-to-serve analyse. Het belang Voegt een financiële dimensie toe aan het proces, waardoor analyse van transportuitgaven, kosten per zending en de financiële impact van procesinefficiënties mogelijk wordt. Vindplaats Afkomstig uit het Freight Settlement Document in SAP TM nadat de kostenberekening is uitgevoerd. Deze informatie is te vinden in tabellen zoals /SCMTMS/D_SFIRHD. Voorbeelden 250.751200.005430.50 | |||
| Transportwijze ModeOfTransport | De method of transportation used for the shipment, such as road, rail, air, or sea. | ||
| Omschrijving Dit attribute specifies the transportation mode. Different modes have distinct cost structures, transit times, and process complexities. For example, an international air freight shipment will have different activities, like customs clearance, compared to a domestic truckload shipment. Analyzing processes by transport mode allows for tailored improvement initiatives. It is also critical for cost analysis, especially for identifying the usage of premium freight (e.g., expedited air) versus standard, more economical modes. This segmentation is key to understanding and controlling transportation spending. Het belang Maakt analyse van kosten, tijd en procesvariaties mogelijk op basis van de transportmodaliteit, wat cruciaal is voor kostenoptimalisatie en het identificeren van premium vrachtgebruik. Vindplaats Dit is a key field on the Freight Order or Freight Booking, often labeled as Transportation Mode or MOT. Voorbeelden 01 (Weg)02 (Spoor)04 (Lucht)05 (Zee) | |||
| Bronsysteem SourceSystem | Het system from which the event data originated. | ||
| Omschrijving Dit attribute identifies the source system that generated the data, for example, SAP TM, SAP ERP, or an external carrier portal. It provides context about the data's origin and helps in understanding data integration points. In a complex landscape, knowing the source system is crucial for data validation, troubleshooting integration issues, and understanding how different systems contribute to the overall process. For instance, it can differentiate between an event reported by an internal system versus one reported by a third-party logistics provider. Het belang Identificeert de herkomst van de data, wat essentieel is voor datagovernance, het oplossen van problemen en het begrijpen van procesorkestratie over meerdere systemen heen. Vindplaats Deze information is often stored as part of the system log or can be derived based on the interface or user who created the data entry. Voorbeelden SAP_TM_P01SAP_ERP_E01CARRIER_PORTAL_XYZ | |||
| Gebruikersnaam UserName | De user ID or name of the person who executed an activity. | ||
| Omschrijving Dit attribute identifies the employee or user responsible for performing a manual activity, such as 'Shipment Planned' or 'Invoice Verified'. It links process steps to the individuals or teams who performed them. Analyzing activities by user helps in understanding workload distribution, identifying training needs, and recognizing top performers. It is also crucial for compliance and audit purposes, providing a clear record of who did what and when. This can reveal variations in how different users perform the same task. Het belang Koppelt handmatige processtappen aan specifieke gebruikers, waardoor analyse van werkdruk, individuele prestaties en trainingsmogelijkheden mogelijk wordt. Vindplaats Doorgaans te vinden in de changelog of documentheader-tabellen voor transportdocumenten, zoals de velden 'Created By' of 'Changed By' (bijv. ERNAM, AENAM). Voorbeelden CB998030SMITHJPLANNER_EU | |||
| Geplande ophaaldatum ScheduledPickupDate | De planned date and time for the carrier to pick up the goods from the shipping point. | ||
| Omschrijving De Scheduled Pickup Date is de agreed-upon time for the start of the physical transportation. It is a key milestone in the execution phase of the shipment. This attribute is essential for monitoring the timeliness of the first leg of the journey. By comparing the scheduled pickup time with the actual 'Goods Picked Up' event timestamp, companies can calculate pickup delays. This helps in evaluating the performance and reliability of both the shipping location and the carrier. Het belang Dient als de basislijn voor het meten van de tijdigheid van pickups, wat helpt bij het identificeren van vertragingen aan het begin van de fysieke reis van de shipment. Vindplaats Dit is a planned date/time stored on the stop sequence of the Freight Order in SAP TM. Voorbeelden 2023-05-18T09:00:00Z2023-05-30T14:00:00Z2023-06-12T10:30:00Z | |||
| Is in geschil IsDisputed | Een Booleaanse vlag die aangeeft of de vrachtfactuur voor de zending heeft geleid tot een geschil. | ||
| Omschrijving Deze calculated flag identifies shipments that have an associated freight settlement dispute. It evaluates to true if a dispute was created, and false otherwise. It can be derived from the presence of a 'Freight Dispute Created' activity or a non-empty 'Dispute Reason'. This attribute simplifies the analysis of the freight settlement process. It allows for easy calculation of the Freight Billing Discrepancy Rate KPI and helps in filtering for all disputed shipments. Analysts can then investigate the common characteristics of these shipments, such as carriers, lanes, or charge types, to find the root cause of billing errors. Het belang Vereenvoudigt de identificatie van problematische vrachtsettlements, maakt snelle berekening van de dispute rate en root cause analysis van billing errors mogelijk. Vindplaats Dit attribute is not stored in SAP TM. It must be calculated based on the existence of a dispute case linked to the Freight Settlement Document. Voorbeelden truefalse | |||
| Laatste data-update LastDataUpdate | De timestamp of the most recent data extraction or refresh for the process mining dataset. | ||
| Omschrijving Dit attribute indicates the freshness of the data being analyzed. It reflects the date and time when the data was last pulled from the source systems, like SAP TM, into the process mining tool. This is a critical metadata element for any dashboard or analysis, as it provides context on how current the insights are. It helps users understand if they are looking at real-time information or a snapshot from a previous period, which is essential for making timely and informed decisions. Het belang Biedt cruciale context over de actualiteit van de data, zodat users weten hoe recent de analyse is. Vindplaats Dit is typically generated and stored by the ETL (Extract, Transform, Load) tool or data pipeline during the data ingestion process. Voorbeelden 2023-10-27T08:00:00Z2023-10-26T08:00:00Z | |||
| Land van Bestemming DestinationCountry | Het country where the shipment is being delivered. | ||
| Omschrijving Dit attribute identifies the final destination country for the shipment, derived from the address of the last delivery location. Similar to the origin country, analyzing by destination country is crucial for understanding regional logistics challenges. It can reveal patterns such as which destinations are most prone to delivery delays or have higher last-mile delivery costs. This insight is valuable for network optimization, setting realistic delivery expectations, and managing international trade compliance. Het belang Maakt analyse van procesprestaties per bestemming mogelijk, waarbij problemen met specifieke leveringsregio's, douaneautoriteiten of 'last-mile'-vervoerders worden benadrukt. Vindplaats Dit is part of the address information for the destination location of the final stop in the Freight Order. Voorbeelden FRCAGBJP | |||
| Land van Herkomst OriginCountry | Het country from which the shipment originates. | ||
| Omschrijving Dit attribute identifies the starting country for the transportation journey. It is derived from the address of the initial pickup location. Analyzing the process by origin country helps to identify regional differences in performance, cost, and complexity. It can highlight countries with longer customs clearance times, higher carrier costs, or more frequent delays. This geographical segmentation is essential for managing a global supply chain and tailoring logistics strategies to specific regions. Het belang Maakt geografische analyse van zendingsprestaties mogelijk, wat helpt bij het identificeren van regionale knelpunten, kostendrijvers of procesvariaties. Vindplaats Dit is part of the address information for the source location of the first stop in the Freight Order. Voorbeelden DEVSCNMX | |||
| Reden Geschil DisputeReason | De reason provided when a freight invoice is disputed. | ||
| Omschrijving Wanneer de factuur van een vervoerder niet overeenkomt met de verwachte kosten berekend in SAP TM, wordt er een geschil aangemaakt. Dit attribute legt de reden voor die discrepantie vast, zoals 'Onjuist Tarief', 'Dubbele Factuur' of 'Niet-goedgekeurde Aanvullende Kosten'. Het analyseren van geschilredenen is cruciaal voor het dashboard 'Vrachtfactuurfout en Geschilpercentage'. Het helpt de hoofdoorzaken van factureringsonnauwkeurigheden te identificeren, of deze nu voortkomen uit stamdataproblemen, vervoerderfouten of operationele storingen. Dit inzicht stelt de organisatie in staat gerichte acties te ondernemen om geschillen te verminderen, wat op zijn beurt de betalingscyclus versnelt en de administratieve overhead vermindert. Het belang Biedt de hoofdoorzaak voor vrachtfacturatiefouten, waardoor gerichte acties mogelijk zijn om factuurgeschillen te verminderen en het settlement process te verbeteren. Vindplaats Deze information is captured in the dispute management case associated with a Freight Settlement Document. Voorbeelden TariefverschilOnjuist gewichtOngeautoriseerde OverliggeldkostenDubbele factuur | |||
| Reden Vertraging DelayReason | Een code of tekst die de reden voor een vertraging in de zending verklaart. | ||
| Omschrijving De Delay Reason attribute captures the cause of a deviation from the planned schedule, such as 'Bad Weather', 'Customs Hold', or 'Carrier Delay'. This information is often reported manually or via an event message from the carrier. This is a powerful attribute for root cause analysis. It allows analysts to move beyond simply knowing a shipment was late to understanding why. By categorizing and quantifying delay reasons, organizations can identify recurring problems and focus their improvement efforts on the most impactful areas, like improving carrier communication or optimizing routes to avoid congestion. Het belang Verklaart het 'waarom' achter zendingsvertragingen, wat krachtige hoofdoorzaakanalyse mogelijk maakt om uitzonderingen te verminderen en de 'on-time'-prestaties te verbeteren. Vindplaats Dit can be captured as an event code and reason in SAP TM's event management framework when an 'Arrival/Departure Delayed' event is reported. Voorbeelden WEATHER_DELAYDOUANE_INSPECTIEHAVEN_CONGESTIEMECHANISCHE_STORING | |||
| Zending Cycle Time ShipmentCycleTime | De total duration of the shipment from the initial request to the final proof of delivery. | ||
| Omschrijving Dit is a calculated metric representing the end-to-end cycle time for a shipment. It is typically calculated as the difference between the timestamp of 'Proof of Delivery Received' and 'Transportation Request Received'. Shipment Cycle Time is a primary KPI for measuring the overall efficiency of the transportation process. It provides a high-level view of performance, and when analyzed over time or across different dimensions like carrier or route, it can reveal trends and major bottlenecks. It is essential for the End-to-End Shipment Cycle Time dashboard. Het belang Meet de totale end-to-end duur van het transportproces, wat een belangrijke indicator is voor de algehele procesnelheid en efficiëntie. Vindplaats Dit is a calculated metric, derived by subtracting the start time of the first event from the end time of the last event for each case. Voorbeelden 5 dagen 4 uur12 dagen 8 uur22 uur 30 minuten | |||
| Zendingstatus ShipmentStatus | De current overall status of the shipment at the time of data extraction. | ||
| Omschrijving Zendingstatus geeft een momentopname van waar de zending zich in haar lifecycle bevindt, zoals 'In Planning', 'In Uitvoering', 'Geleverd' of 'Geannuleerd'. Het representeert de laatst bekende state van de case. Dit attribuut is nuttig voor het filteren en analyseren van zendingen op basis van hun outcome. Zo kan een analyst zich richten op enkel completed shipments om de end-to-end cycle time te meten of enkel cancelled shipments analyseren om de root causes van cancellations te begrijpen. Het biedt belangrijke context voor het interpreteren van de process flow. Het belang Biedt een high-level resultaat voor elke zending, waardoor filtering en analyse mogelijk is op basis van of een zending is voltooid, geannuleerd of nog onderweg is. Vindplaats Dit is the overall status field on the header of the Freight Order or Freight Booking document in SAP TM. Voorbeelden In planningKlaar voor transportIn uitvoeringUitgevoerdGeannuleerd | |||
Transportation Management Activiteiten
| Activiteit | Omschrijving | ||
|---|---|---|---|
| Betaling Verwerkt | Deze final activity confirms that the carrier has been paid for the transportation services. This event typically occurs in the connected ERP system after the verified invoice is received from SAP TM. | ||
| Het belang Dit markeert het werkelijke einde van de end-to-end transportlevenscyclus. Het is essentieel voor het meten van de totale procesduur en KPI's voor tijdige betaling. Vindplaats Deze information resides in the ERP system (e.g., S/4HANA Finance). It can be linked back to the Freight Settlement Document via the invoice number. A status update may be sent back to SAP TM, or the data must be sourced from ERP tables like BKPF and BSEG. Vastleggen Haal de payment clearing date uit het ERP systeem, linking it to the shipment via the invoice reference. Gebeurtenistype explicit | |||
| Bewijs van Levering ontvangen | Deze activity occurs when the signed Proof of Delivery (POD) document is received from the carrier and recorded in the system. This confirms the recipient's acceptance of the goods. | ||
| Het belang Het ontvangen van de POD is een cruciale voorwaarde voor het factureren van de klant en het afwikkelen van vrachtkosten met de carrier. Vertragingen hierin hebben directe impact op de cash-to-cash cycle. Vindplaats Dit wordt doorgaans afgeleid uit een statuswijziging op de Vrachtorder, zoals de POD-status die wordt ingesteld op 'Ontvangen'. De wijziging in dit statusveld levert de timestamp voor de activiteit. Vastleggen Leg de tijdstempel vast wanneer de Leveringsbewijs-status op de Vrachtorder is bijgewerkt naar 'Ontvangen'. Gebeurtenistype inferred | |||
| Goederen geleverd | Deze activity represents the arrival of the shipment at the final destination and the completion of the physical transportation. It is captured when the carrier reports that the goods have been unloaded at the consignee's location. | ||
| Het belang Dit is the most important milestone for measuring on-time delivery performance and customer satisfaction. It also typically serves as the trigger for invoicing and settlement processes. Vindplaats Dit is recorded as an 'Arrival at Destination' or 'Unloading End' execution event in SAP TM, updating the execution status of the Freight Order. The data is often received from the carrier. Vastleggen Gebruik de timestamp van de gerapporteerde 'Aankomst op Bestemming' uitvoerings-event voor de laatste stop van de Vrachtorder. Gebeurtenistype explicit | |||
| Goederen Opgehaald | Deze activity marks the start of the physical transportation of the goods. It is captured when the carrier reports that the goods have been loaded and have departed from the shipper's location. | ||
| Het belang Dit is a key execution milestone that signifies the beginning of the in-transit phase. It is critical for tracking on-time performance and providing accurate shipment visibility. Vindplaats Deze event is typically recorded in SAP Event Management, which is integrated with SAP TM, as a 'Departure' or 'Loading End' event. It updates the execution status of the Freight Order. It can also be recorded directly in the Freight Order. Vastleggen Gebruik de timestamp van de gerapporteerde 'Vertrek' uitvoerings-event voor de herkomstlocatie van de Vrachtorder. Gebeurtenistype explicit | |||
| Transportaanvraag Ontvangen | Deze activity marks the initiation of the transportation process, representing the creation of a transportation requirement. In SAP TM, this is typically captured by the creation of a Forwarding Order (FWO) or an Order-based Transportation Requirement (OTR). | ||
| Het belang Dit is the primary start event for the end-to-end shipment process. Analyzing the time from this activity to planning completion is crucial for measuring planning efficiency. Vindplaats Deze event is recorded upon the creation of a Forwarding Order (document type FWO) or other transportation requirement documents. The creation timestamp in the header table, such as /SCMTMS/D_TORROT, serves as the event time. Vastleggen Leg de aanmaakdatum en -tijd van het Forwarding Order- of Transportvereiste-document vast. Gebeurtenistype explicit | |||
| Vervoerder Toegewezen | Deze activity indicates that a specific transportation service provider, or carrier, has been selected and assigned to the shipment. This can occur through manual assignment, automated planning, or a tendering process. | ||
| Het belang Het toewijzen van een vervoerder is een cruciale stap voordat een zending kan worden bevestigd en uitgevoerd. Het volgen hiervan helpt bij het analyseren van processen voor vervoerderselectie en het waarborgen van tijdige boeking. Vindplaats Dit is captured when the carrier field (party with role 'Carrier') is populated in the Freight Order or Freight Booking. For tendering, it is when a Freight Request for Quotation is awarded. Vastleggen Identificeer de timestamp waarop de vervoerderpartnerfunctie voor het eerst is ingevuld of bevestigd in de Freight Order. Gebeurtenistype inferred | |||
| Vrachtafrekening Aangemaakt | Deze activity marks the creation of the Freight Settlement Document (FSD), which calculates the transportation costs to be paid to the carrier. This is the primary document used for accruals and invoice verification. | ||
| Het belang Dit begins the financial settlement phase of the transportation process. Analyzing the time from delivery to settlement creation helps identify bottlenecks in financial processing. Vindplaats Dit is an explicit event captured by the creation of a Freight Settlement Document. The creation timestamp is available in the header table for this document, /SCMTMS/D_SFIRHD. Vastleggen Gebruik de aanmaakdatum en -tijd van het Vrachtafwikkelingsdocument. Gebeurtenistype explicit | |||
| Zending geannuleerd | Deze activity represents the cancellation of a shipment after it has been requested or planned. It serves as a terminal endpoint for processes that do not proceed to execution. | ||
| Het belang Het volgen van annuleringen helpt redenen voor procesfalen te identificeren, zoals wijzigingen in de klantvraag of planningsfouten. Hoge annuleringspercentages kunnen duiden op onderliggende problemen in ordermanagement of planning. Vindplaats Dit is inferred from a change in the lifecycle status of the Forwarding Order or Freight Order to 'Cancelled'. The timestamp of this status change marks the event. Vastleggen Leg de tijdstempel vast wanneer de lifecycle-status van het document is ingesteld op 'Geannuleerd'. Gebeurtenistype inferred | |||
| Zending Gepland | Deze activity signifies that the transportation requirements have been consolidated into a concrete shipment plan. It is captured when a Freight Order (for road/rail) or Freight Booking (for sea/air) is created and saved, containing the planned route and resources. | ||
| Het belang Het voltooien van deze mijlpaal is essentieel voor het initiëren van de logistieke uitvoering. De doorlooptijd naar deze activiteit vanaf de aanvraag is een belangrijke KPI voor het meten van de planningsefficiëntie. Vindplaats Deze event corresponds to the creation of a Freight Order or Freight Booking document. It can also be inferred from a status change on the document, such as the planning status moving to 'Planned'. The relevant tables are typically /SCMTMS/D_TORROT for header data. Vastleggen Gebruik de aanmaak-timestamp van de Vrachtorder of het Vrachtboekingdocument. Gebeurtenistype explicit | |||
| Douane Afgehandeld | Deze activity indicates that the shipment has been approved by customs authorities and is clear to proceed. This event is a major milestone for international logistics, as it removes a significant potential bottleneck. | ||
| Het belang Douaneafhandeling is vaak een bron van grote vertragingen in wereldwijde toeleveringsketens. Het volgen van de duur en het succespercentage van deze activiteit is essentieel voor het verbeteren van internationale transittijden. Vindplaats Dit is captured as a 'Customs Clearance' execution event, typically reported by a customs broker or an external visibility provider and updated in the Freight Order's execution tracking. Vastleggen Gebruik de timestamp van de gerapporteerde 'Douaneafhandeling' uitvoerings-event die is gekoppeld aan de Vrachtorder. Gebeurtenistype explicit | |||
| Douaneaangifte Ingediend | Voor internationale zendingen vertegenwoordigt deze activiteit het indienen van de vereiste douanedocumentatie bij de autoriteiten. Het is een vereiste voor het verkrijgen van vrijgave om goederen te exporteren of importeren. | ||
| Het belang Tijdige indiening van douaneaangiften is cruciaal om vertragingen aan de grenzen te voorkomen. Deze activiteit helpt de efficiëntie van het douane-expeditieproces te monitoren. Vindplaats Deze event can be captured as a specific execution event reported by a customs broker or from a status change in an integrated customs management system, like SAP GTS. The Freight Order is updated accordingly. Vastleggen Leg de tijdstempel vast van de 'Douaneaangifte Ingediend'-uitvoerevent of een corresponderende statuswijziging. Gebeurtenistype explicit | |||
| Factuur geverifieerd | Deze activity signifies that the carrier's invoice has been successfully matched against the Freight Settlement Document and is approved for payment. It is the final step before the payment process is initiated in the ERP system. | ||
| Het belang Deze activity completes the audit and verification process for freight costs. Delays at this stage can lead to late payments to carriers, potentially harming relationships. Vindplaats Dit is inferred from a status change on the Freight Settlement Document, such as 'Ready for Accrual' or 'Transferred for Posting', indicating it has been sent to the ERP system for payment. Vastleggen Volg de timestamp wanneer de levenscyclusstatus van de FSD verandert om aan te geven dat deze klaar is voor betaling of is geboekt. Gebeurtenistype inferred | |||
| Vrachtgeschil Aangemaakt | Deze event indicates that a discrepancy has been found between the carrier's invoice and the calculated costs in the Freight Settlement Document. This triggers a dispute resolution workflow. | ||
| Het belang Geschillen vertragen de betalingen aan vervoerders en vereisen administratieve inspanning om op te lossen. Het volgen van deze activiteit helpt bij het identificeren van de hoofdoorzaken van factureringsonvolkomenheden, zoals onjuiste tarieven of aanvullende kosten. Vindplaats Dit can be inferred from a status change on the Freight Settlement Document, where a 'Dispute' status is set. It may also involve the creation of a separate dispute case document. Vastleggen Leg de tijdstempel vast wanneer de geschilstatus is ingesteld op het Vrachtafrekeningsdocument. Gebeurtenistype inferred | |||
| Zending bevestigd door carrier | Deze event represents the carrier's agreement to execute the transportation as planned. The confirmation is typically received via an EDI message, a carrier portal update, or manual entry, which updates the status of the Freight Order. | ||
| Het belang De vervoerderbevestiging biedt een commitment aan het zendingsplan, wat de onzekerheid vermindert. Vertragingen bij het ontvangen van deze bevestiging kunnen het gehele zendingsschema in gevaar brengen. Vindplaats Dit is inferred from a change in the confirmation status field of the Freight Order or Freight Booking. A specific status value, like 'Confirmed', will be set in the document's status management. Vastleggen Volg wijzigingen in de bevestigingsstatusvelden binnen het Vrachtorderdocument. Gebeurtenistype inferred | |||
| Zending omgeleid | Deze activity signifies an unplanned change to the shipment's route or schedule after it has been confirmed. This could be due to disruptions, customer requests, or logistical issues. | ||
| Het belang Omleidingen leiden vaak tot hogere kosten en vertragingen. Het identificeren van de frequentie en redenen voor omleidingen helpt de planningsnauwkeurigheid en operationele stabiliteit te verbeteren. Vindplaats Deze event is inferred by detecting significant changes to the stages, locations, or dates in a Freight Order after its execution has begun. Change documents (tables CDHDR and CDPOS) can be analyzed for this purpose. Vastleggen Detecteer wijzigingen in belangrijke routeringsvelden in het Vrachtorderdocument na de 'Zending Bevestigd door Vervoerder'-event. Gebeurtenistype inferred | |||
Extractie Guides
Stappen
- Identificeer en Activeer CDS View API's: Log in op uw SAP S/4HANA-systeem. Gebruik transactie
/IWFND/MAINT_SERVICEom te controleren of de benodigde OData services voor de kern CDS views actief zijn. Belangrijke services om te controleren zijn die gerelateerd aan I_TransportationOrder, C_TranspOrdExecutionEvent, I_ForwardingOrder en I_FreightSettlementDocument. Indien niet actief, werk dan samen met uw SAP-beheerder om ze toe te voegen en te activeren vanuit het backend-systeem. - Leg API-connectiviteit vast: Verkrijg de root-URL voor de OData services van uw SAP-beheerder. Zet een clientapplicatie op, zoals een Python-script dat de requests-bibliotheek gebruikt, een commerciële ETL-tool of een tool zoals Postman, om verbinding te maken met de API. U moet authenticatie configureren, meestal met Basic Authentication (gebruikersnaam en wachtwoord) of OAuth 2.0 voor een veiligere verbinding.
- Definieer Extractiebereik: Bepaal de reikwijdte van uw data-extractie. Definieer een specifiek datumbereik, bijvoorbeeld de laatste 6 maanden. Identificeer de relevante organisatie-eenheden om op te filteren, zoals Bedrijfscode, of specifieke documenttypes zoals Vrachtordertype, om ervoor te zorgen dat de data relevant is voor het proces dat u analyseert.
- Construeer Basis Zending Query: Begin met het bevragen van de I_TransportationOrder CDS view. Deze view dient als het centrale object voor zendingen, ook bekend als Vrachtorders of Vrachtboekingen. Gebruik de OData
$select-parameter om de kolommen te kiezen die u nodig heeft, inclusief de aanbevolen attributen zoals CarrierName, ModeOfTransport, en RequestedDeliveryDate. Pas een$filtertoe om de data te beperken op datum en andere reikwijdteparameters. - Bevraag Uitvoer- en Transportevents: Gebruik de C_TranspOrdExecutionEvent CDS view om belangrijke logistieke events te extraheren. Filter deze view op specifieke
EventCode-waarden die overeenkomen met activiteiten zoals 'Goederen Opgehaald' (DEPARTURE) en 'Goederen Geleverd' (ARRIVAL_AT_DESTINATION). Koppel deze data terug aan uw basiszendingdata met behulp van de TransportationOrder UUID. - Bevraag Gerelateerde Business Objecten: Om het volledige proces vast te leggen, moet u andere gerelateerde CDS views bevragen. Bevraag I_ForwardingOrder voor de activiteit 'Transportaanvraag Ontvangen' en I_FreightSettlementDocument voor financiële activiteiten zoals 'Vrachtafrekening Aangemaakt', 'Vrachtgeschil Aangemaakt' en 'Factuur Gecontroleerd'.
- Extraheer Statusgebaseerde Activiteiten: Veel activiteiten zijn geen discrete events, maar eerder statuswijzigingen op het primaire document. Voor activiteiten zoals 'Vervoerder Toegewezen', 'Zending Bevestigd door Vervoerder' en 'Zending Geannuleerd', bevraagt u de I_TransportationOrder view en gebruikt u de
LastChangeDateTimedie gekoppeld is aan het relevante statusveld als de eventtijd. Dit vereist een zorgvuldige mapping van statuscodes naar bedrijfsactiviteiten. - Union en Transformeer Data: Consolideer de data die uit alle bronnen is geëxtraheerd tot één event log-structuur. Maak voor elke geëxtraheerde activiteit een rij aan met de vereiste kolommen: ShipmentId, ActivityName en EventTime. Zorg ervoor dat alle aanbevolen attributen van de basiszendingquery aanwezig zijn op elke rij voor die zending. Deze stap is conceptueel equivalent aan een SQL
UNION ALL-bewerking. - Behandel Complexe en Externe Events: Voor activiteiten zoals 'Douane Afgehandeld' of 'Betaling Verwerkt', kan de data zich bevinden in specifieke velden of zelfs externe systemen. De geboden querylogica gebruikt standaardvelden als proxy. U moet mogelijk de query aanpassen om te koppelen met douane-specifieke CDS views of te correleren met een afzonderlijke ERP-extractie voor betalingsdata op basis van het nummer van het Vrachtafrekeningsdocument.
- Formatteer voor ProcessMind: Sla de uiteindelijke geconsolideerde dataset op als een CSV-bestand. Zorg ervoor dat de kolomkoppen overeenkomen met de vereisten voor upload, bijvoorbeeld door uw
ShipmentId-kolom te koppelen aan hetCaseId-veld in de instellingen van de tool. Controleer of tijdstempels in een consistent formaat zijn, bij voorkeur UTC (JJJJ-MM-DDTHH:MM:SSZ).
Configuratie
- Core CDS Views: De extractie is voornamelijk gebaseerd op I_TransportationOrder (voor vrachtorders), C_TranspOrdExecutionEvent (voor uitvoerevents), I_ForwardingOrder (voor transportaanvragen) en I_FreightSettlementDocument (voor afrekening).
- Datumfilter: Het is cruciaal om een datumfilter toe te passen om het datavolume te beheren. Gebruik de
CreationDateTimeop de I_TransportationOrder of deActualBusinessDateTimeop C_TranspOrdExecutionEvent. Een bereik van 3 tot 6 maanden wordt aanbevolen voor een initiële analyse. - Documenttypefilter: Om de analyse te richten, filtert u op specifieke documenttypes met behulp van het veld
TransportationOrderType. Dit helpt bij het scheiden van verschillende logistieke scenario's, zoals standaard uitgaande zendingen versus voorraadoverdrachten. - Organisatorische filters: Indien van toepassing, filtert u op
PurchasingOrganizationof andere velden op organisatieniveau om de data te beperken tot een specifieke bedrijfseenheid of regio. - API Paginering: Voor grote datasets, gebruik de OData parameters
$topen$skipom data in kleinere pagina's op te halen. Dit voorkomt API-timeouts en vermindert het geheugengebruik aan de clientzijde. Een paginagrootte van 1000 tot 5000 rijen is vaak effectief. - Voorwaarden: De gebruiker of het serviceaccount dat de extractie uitvoert, vereist autorisaties voor de onderliggende OData services (autorisatieobject S_SERVICE) en de bedrijfsdata binnen de CDS views. De overeenkomstige services moeten worden geactiveerd in de SAP Gateway (
/IWFND/MAINT_SERVICE).
a Voorbeeldquery 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' Stappen
- Identificeer en Activeer CDS View API's: Log in op uw SAP S/4HANA-systeem. Gebruik transactie
/IWFND/MAINT_SERVICEom te controleren of de benodigde OData services voor de kern CDS views actief zijn. Belangrijke services om te controleren zijn die gerelateerd aan I_TransportationOrder, C_TranspOrdExecutionEvent, I_ForwardingOrder en I_FreightSettlementDocument. Indien niet actief, werk dan samen met uw SAP-beheerder om ze toe te voegen en te activeren vanuit het backend-systeem. - Leg API-connectiviteit vast: Verkrijg de root-URL voor de OData services van uw SAP-beheerder. Zet een clientapplicatie op, zoals een Python-script dat de requests-bibliotheek gebruikt, een commerciële ETL-tool of een tool zoals Postman, om verbinding te maken met de API. U moet authenticatie configureren, meestal met Basic Authentication (gebruikersnaam en wachtwoord) of OAuth 2.0 voor een veiligere verbinding.
- Definieer Extractiebereik: Bepaal de reikwijdte van uw data-extractie. Definieer een specifiek datumbereik, bijvoorbeeld de laatste 6 maanden. Identificeer de relevante organisatie-eenheden om op te filteren, zoals Bedrijfscode, of specifieke documenttypes zoals Vrachtordertype, om ervoor te zorgen dat de data relevant is voor het proces dat u analyseert.
- Construeer Basis Zending Query: Begin met het bevragen van de I_TransportationOrder CDS view. Deze view dient als het centrale object voor zendingen, ook bekend als Vrachtorders of Vrachtboekingen. Gebruik de OData
$select-parameter om de kolommen te kiezen die u nodig heeft, inclusief de aanbevolen attributen zoals CarrierName, ModeOfTransport, en RequestedDeliveryDate. Pas een$filtertoe om de data te beperken op datum en andere reikwijdteparameters. - Bevraag Uitvoer- en Transportevents: Gebruik de C_TranspOrdExecutionEvent CDS view om belangrijke logistieke events te extraheren. Filter deze view op specifieke
EventCode-waarden die overeenkomen met activiteiten zoals 'Goederen Opgehaald' (DEPARTURE) en 'Goederen Geleverd' (ARRIVAL_AT_DESTINATION). Koppel deze data terug aan uw basiszendingdata met behulp van de TransportationOrder UUID. - Bevraag Gerelateerde Business Objecten: Om het volledige proces vast te leggen, moet u andere gerelateerde CDS views bevragen. Bevraag I_ForwardingOrder voor de activiteit 'Transportaanvraag Ontvangen' en I_FreightSettlementDocument voor financiële activiteiten zoals 'Vrachtafrekening Aangemaakt', 'Vrachtgeschil Aangemaakt' en 'Factuur Gecontroleerd'.
- Extraheer Statusgebaseerde Activiteiten: Veel activiteiten zijn geen discrete events, maar eerder statuswijzigingen op het primaire document. Voor activiteiten zoals 'Vervoerder Toegewezen', 'Zending Bevestigd door Vervoerder' en 'Zending Geannuleerd', bevraagt u de I_TransportationOrder view en gebruikt u de
LastChangeDateTimedie gekoppeld is aan het relevante statusveld als de eventtijd. Dit vereist een zorgvuldige mapping van statuscodes naar bedrijfsactiviteiten. - Union en Transformeer Data: Consolideer de data die uit alle bronnen is geëxtraheerd tot één event log-structuur. Maak voor elke geëxtraheerde activiteit een rij aan met de vereiste kolommen: ShipmentId, ActivityName en EventTime. Zorg ervoor dat alle aanbevolen attributen van de basiszendingquery aanwezig zijn op elke rij voor die zending. Deze stap is conceptueel equivalent aan een SQL
UNION ALL-bewerking. - Behandel Complexe en Externe Events: Voor activiteiten zoals 'Douane Afgehandeld' of 'Betaling Verwerkt', kan de data zich bevinden in specifieke velden of zelfs externe systemen. De geboden querylogica gebruikt standaardvelden als proxy. U moet mogelijk de query aanpassen om te koppelen met douane-specifieke CDS views of te correleren met een afzonderlijke ERP-extractie voor betalingsdata op basis van het nummer van het Vrachtafrekeningsdocument.
- Formatteer voor ProcessMind: Sla de uiteindelijke geconsolideerde dataset op als een CSV-bestand. Zorg ervoor dat de kolomkoppen overeenkomen met de vereisten voor upload, bijvoorbeeld door uw
ShipmentId-kolom te koppelen aan hetCaseId-veld in de instellingen van de tool. Controleer of tijdstempels in een consistent formaat zijn, bij voorkeur UTC (JJJJ-MM-DDTHH:MM:SSZ).
Configuratie
- Core CDS Views: De extractie is voornamelijk gebaseerd op I_TransportationOrder (voor vrachtorders), C_TranspOrdExecutionEvent (voor uitvoerevents), I_ForwardingOrder (voor transportaanvragen) en I_FreightSettlementDocument (voor afrekening).
- Datumfilter: Het is cruciaal om een datumfilter toe te passen om het datavolume te beheren. Gebruik de
CreationDateTimeop de I_TransportationOrder of deActualBusinessDateTimeop C_TranspOrdExecutionEvent. Een bereik van 3 tot 6 maanden wordt aanbevolen voor een initiële analyse. - Documenttypefilter: Om de analyse te richten, filtert u op specifieke documenttypes met behulp van het veld
TransportationOrderType. Dit helpt bij het scheiden van verschillende logistieke scenario's, zoals standaard uitgaande zendingen versus voorraadoverdrachten. - Organisatorische filters: Indien van toepassing, filtert u op
PurchasingOrganizationof andere velden op organisatieniveau om de data te beperken tot een specifieke bedrijfseenheid of regio. - API Paginering: Voor grote datasets, gebruik de OData parameters
$topen$skipom data in kleinere pagina's op te halen. Dit voorkomt API-timeouts en vermindert het geheugengebruik aan de clientzijde. Een paginagrootte van 1000 tot 5000 rijen is vaak effectief. - Voorwaarden: De gebruiker of het serviceaccount dat de extractie uitvoert, vereist autorisaties voor de onderliggende OData services (autorisatieobject S_SERVICE) en de bedrijfsdata binnen de CDS views. De overeenkomstige services moeten worden geactiveerd in de SAP Gateway (
/IWFND/MAINT_SERVICE).
a Voorbeeldquery 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' Stappen
- Definieer Datavereisten: Begin met het bevestigen van de exacte logica voor elk van de 15 vereiste activiteiten en alle attributen. Dit omvat het koppelen van elke activiteit aan specifieke statuswijzigingen, aanmaakevents of documentkoppelingen binnen uw SAP TM-systeem. Bepaal bijvoorbeeld de exacte uitvoerstatus die 'Goederen Opgehaald' betekent.
- Toegang ABAP Ontwikkelomgeving: Log in op de SAP GUI en ga naar de ABAP Editor met transactiecode
SE38. Voer een naam in voor uw nieuwe programma, bijvoorbeeldZTM_PROCESS_EXTRACT, en klik op 'Creëren'. Geef een titel op en stel het programmatype in op 'Executable Program'. - Creëer Selectiescherm: Definieer in het programma het selectiescherm dat gebruikers zullen zien. Dit moet parameters bevatten voor het filteren van de data, zoals een datumbereik voor de aanmaakdatum van de vrachtorder (
SO_CREDT), en selectie-opties voor documenttypes (SO_TYPE) of vervoerders (SO_CARR). - Definieer Uitvoerstructuur: Definieer een interne tabelstructuur die overeenkomt met het vereiste event log-formaat. Deze structuur moet velden bevatten voor
ShipmentId,ActivityName,EventTime,EndTime,CarrierName,RequestedDeliveryDate,ModeOfTransport,TotalFreightCost, enIsOnTimeDelivery. - Implementeer Dataselectielogica: Schrijf de hoofd ABAP-logica om data te selecteren voor elk van de 15 activiteiten. Dit omvat doorgaans het bevragen van meerdere SAP TM-tabellen. Begin met het selecteren van de primaire zendingsdocumenten, zoals Vrachtorders, binnen het opgegeven datumbereik.
- Extraheer Planning- en Uitvoerevents: Voor elk geselecteerd zendingsdocument (bijv. Vrachtorder), bevraag gerelateerde tabellen en business-objecten om tijdstempels voor verschillende events te vinden. Gebruik tabel
/SCMTMS/D_TORROTvoor het aanmaken van Vrachtorders ('Zending Gepland'), toewijzing van vervoerder ('Vervoerder Toegewezen'), en statuswijzigingen van uitvoering die overeenkomen met 'Goederen Opgehaald' en 'Goederen Geleverd'. De aanmaak van de voorgaande Forwarding Order (/SCMTMS/D_TRQROT) kan 'Transportaanvraag Ontvangen' betekenen. - Extraheer Vervoerderbevestiging & Herroutering: Bevraag statustabellen of wijzigingsdocumenten (CDHDR/CDPOS) die gekoppeld zijn aan de Vrachtorder om te identificeren wanneer de status
CONFIRMATIONis ingesteld, wat 'Zending Bevestigd door Vervoerder' vastlegt. Zoek op vergelijkbare wijze naar significante wijzigingen in routeringsinformatie om 'Zending Herrouteerd' vast te leggen. - Extraheer Douane-events: Indien SAP Global Trade Services (GTS) of een vergelijkbare module wordt gebruikt, worden de douane-events ('Douaneaangifte Ingediend', 'Douane Afgehandeld') vaak gevolgd via gekoppelde documenten. De logica moet de documentenstroom (
/SCMTMS/D_TORDOC) van de Vrachtorder lezen om deze gerelateerde documenten en hun aanmaak- of statuswijzigingstijden te vinden. - Extraheer Afrekening- en Geschil-events: Bevraag de header-tabel van het Vrachtafrekeningsdocument (
/SCMTMS/D_SFIRHD) en de bijbehorende items en statussen om 'Vrachtafrekening Aangemaakt', 'Vrachtgeschil Aangemaakt' en 'Factuur Gecontroleerd' events vast te leggen. Koppel deze terug naar de origineleShipmentId. - Consolideer Data: Maak voor elk gevonden event een nieuw record aan in uw uiteindelijke interne tabel. Vul de
ActivityNamein met de corresponderende activiteit, deEventTimemet de tijdstempel van het event en deShipmentIdmet de ID van de Vrachtorder of Vrachtboeking. Vul de andere attributen in vanuit de brondocumenten. - Formatteer en Exporteer Bestand: Zodra de uiteindelijke interne tabel volledig is gevuld, formatteer de data in een plat bestand. Gebruik de
OPEN DATASET,LOOP AT... TRANSFER..., enCLOSE DATASET-commando's om de inhoud van de interne tabel naar een CSV- of TXT-bestand op de SAP applicatieserver te schrijven (toegankelijk via transactie AL11). - Plan en Haal Op: Het ABAP-programma kan worden gepland om als een achtergrondtaak (transactie SM36) te draaien om data automatisch te extraheren. Het gegenereerde bestand kan vervolgens vanaf de applicatieserver naar een lokale machine worden gedownload met behulp van transactie
CG3Yvoor upload naar ProcessMind.
Configuratie
- Datumbereik: Het selectiescherm moet een verplicht datumbereik bevatten voor de aanmaakdatum van het kerntransportdocument (bijv. Vrachtorder). Voor een initiële analyse wordt een bereik van 3 tot 6 maanden aanbevolen om een representatieve dataset te garanderen zonder overmatige runtime te veroorzaken.
- Documenttypefilter: Bied een filter aan voor het Transportdocumenttype (bijv. Vrachtorder, Vrachtboeking). Dit is cruciaal om de analyse te richten op specifieke processen zoals wegtransport versus zeetransport.
- Vrachtvervoerderfilter: Sta gebruikers toe om te filteren op specifieke vrachtvervoerders. Dit helpt bij het analyseren van de prestaties van individuele logistieke partners.
- Organisatorische filters: Voeg filters toe voor relevante organisatie-eenheden, zoals Inkooporganisatie of Bedrijfscode, om de extractie te beperken tot specifieke bedrijfsonderdelen.
- Prestatieoptimalisatie: Zorg er voor grote datasets voor dat de ABAP-code geïndexeerde databasevelden in
WHERE-clausules gebruikt, geneste loops waar mogelijk vermijdt, en alleen de noodzakelijke velden uit de database selecteert om het geheugengebruik te minimaliseren. - Voorwaarden: De gebruiker die het rapport uitvoert, heeft autorisatie nodig om ABAP-programma's uit te voeren. De ontwikkelaar heeft
S_DEVELOP-autorisatie nodig. Het programma zelf vereist autorisaties voor bestandssysteemtoegang op de applicatieserver (objectS_DATASET) en toegang tot de relevante TM-databasetabellen en BOPF-objecten.
a Voorbeeldquery 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.