Su Plantilla de Datos de Gestión del Transporte
Su Plantilla de Datos de Gestión del Transporte
- Atributos recomendados para recopilar
- Actividades clave para el seguimiento
- Guía de Extracción
Atributos de Gestión de Transporte
| Nombre | Descripción | ||
|---|---|---|---|
| Envío ShipmentId | El identificador único para un solo envío, que sirve como ID de caso principal para el seguimiento de todas las actividades de transporte relacionadas. | ||
| Descripción El ID de envío identifica de manera única un solo movimiento de mercancías de un remitente a un consignatario. Este atributo es la piedra angular del análisis de procesos, agrupando todos los eventos relacionados, como planificación, reserva, recogida, tránsito, entrega y facturación, en un solo caso. En Por qué es importante Este es el ID de Caso esencial que conecta todos los pasos del proceso, permitiendo un análisis completo de todo el recorrido de transporte para cada envío individual. Dónde obtener Esta es una clave primaria en Oracle Transportation Management, típicamente encontrada en tablas de gestión de envíos o pedidos. Consulte la documentación de OTM para nombres específicos de tablas y campos. Ejemplos SH-0012345SH-0012346SH-0012347 | |||
| Hora del Evento EventTime | La fecha y hora precisas en que ocurrió una actividad o evento de transporte específico. | ||
| Descripción Esta marca de tiempo marca el momento exacto en que una actividad, como 'Transportista Asignado' o 'Comprobante de Entrega Recibido', se registró en el sistema. Las marcas de tiempo son fundamentales para el La precisión de estas marcas de tiempo es crítica para todo análisis basado en el tiempo. Se utilizan para calcular los tiempos de ciclo entre actividades, medir las duraciones de los procesos, identificar retrasos y evaluar el rendimiento frente a los acuerdos de nivel de servicio. Analizar el Tiempo del Evento ayuda a identificar dónde se está perdiendo tiempo en el proceso. Por qué es importante Esta marca de tiempo es esencial para ordenar los eventos cronológicamente y calcular todas las métricas de rendimiento, como los tiempos de ciclo y los retrasos. Dónde obtener Obtenido de los campos de marca de tiempo asociados con eventos en las tablas de historial de eventos de seguimiento o estado de OTM. Ejemplos 2023-10-26T08:00:00Z2023-10-27T14:30:00Z2023-10-28T09:15:00Z | |||
| Nombre de la Actividad ActivityName | El nombre de un evento o hito específico que ocurrió dentro del proceso de transporte para un envío. | ||
| Descripción Este atributo describe un solo paso en el ciclo de vida del transporte, como 'Envío Planificado', 'Mercancía Recogida' o 'Mercancía Entregada'. Cada actividad representa un evento de negocio distinto que acerca el envío a su finalización. Analizar la secuencia y duración de estas actividades es el núcleo del Por qué es importante Define los pasos en el Dónde obtener Esta información se deriva de tablas de eventos de seguimiento o registros de cambios de estado dentro de Oracle Transportation Management. El nombre específico de la actividad puede concatenarse a partir de códigos y descripciones de eventos. Ejemplos Envío PlanificadoMercancías RecogidasAduana DespachadaMercancía Entregada | |||
| Costo del Envío ShipmentCost | El costo total del flete o el monto financiero cobrado por transportar el envío. | ||
| Descripción Este atributo representa el costo financiero total asociado con un envío, incluyendo cargos del transportista, recargos por combustible y otras tarifas accesorias. Es una medida clave del rendimiento financiero del proceso de transporte. Analizar el Costo del Envío permite el cálculo del KPI de Costo Promedio del Transportista por Envío. Se puede segmentar por transportista, ruta, modo de transporte o tipo de envío para identificar oportunidades de ahorro de costos. También se utiliza en el Análisis de Discrepancias de Facturas de Flete para comparar los costos planificados con los reales. Por qué es importante Proporciona los datos financieros necesarios para analizar el gasto en transporte, identificar oportunidades de ahorro de costos y medir el impacto financiero de las ineficiencias del proceso. Dónde obtener Esta información se encuentra típicamente en las secciones financieras o de costos de un envío en OTM, a menudo poblada después de la tarificación y liquidación del flete. Ejemplos 250.751200.00545.50 | |||
| Fecha de Entrega Solicitada RequestedDeliveryDate | La fecha y hora de entrega solicitada por el cliente o acordada como objetivo del acuerdo de nivel de servicio (SLA). | ||
| Descripción Este atributo captura la marca de tiempo de entrega objetivo para un envío. Representa el compromiso asumido con el cliente y sirve como punto de referencia principal para medir el rendimiento de entrega a tiempo. En Por qué es importante Este es el principal punto de referencia para medir el rendimiento de entrega a tiempo, un KPI crítico para la satisfacción del cliente y la excelencia operativa. Dónde obtener Esta información se almacena típicamente a nivel de pedido o envío dentro de OTM, a menudo en campos relacionados con fechas de entrega o citas. Ejemplos 2023-11-15T17:00:00Z2023-11-20T12:00:00Z2023-11-22T09:00:00Z | |||
| Modo de Transporte TransportationMode | El método de transporte utilizado para el envío, como camión, ferrocarril, mar o aire. | ||
| Descripción Este atributo clasifica el envío por el modo de transporte. Los modos comunes incluyen Carga de Camión Completa (FTL), Carga Parcial de Camión (LTL), Océano, Aire y Ferrocarril. Esta es una característica fundamental de un envío que influye en el costo, el tiempo de tránsito y la complejidad. En el análisis, el Modo de Transporte es una dimensión crítica para la segmentación. Permite comparar el rendimiento y los costos del proceso en diferentes modos. Por ejemplo, puede ayudar a identificar qué modos son más propensos a retrasos en tránsito o tienen costos más altos por milla, apoyando decisiones estratégicas sobre redes logísticas. Por qué es importante Permite que el análisis de rendimiento y costos se segmente por modo de transporte, revelando Dónde obtener Este es un atributo estándar a nivel de envío en OTM, a menudo encontrado en un campo dedicado de 'modo' o 'tipo de transporte'. Ejemplos FTLLTLMARÍTIMOAÉREO | |||
| Motivo del Retraso DelayReason | Un código o descripción que explica la causa de un retraso en el progreso del envío. | ||
| Descripción Cuando un envío se retrasa, este atributo proporciona el motivo, como 'Clima', 'Retención Aduanera', 'Congestión Portuaria' o 'Fallo Mecánico'. Esta información se captura a partir de las actualizaciones del transportista o las entradas manuales en OTM. Este atributo es esencial para el análisis de la causa raíz de las entregas tardías. Al categorizar y contar los motivos de los retrasos, las empresas pueden identificar los problemas más frecuentes en su cadena de suministro. Esto permite iniciativas de mejora específicas, como seleccionar transportistas más fiables para ciertas rutas o mejorar la documentación para acelerar las aduanas. Por qué es importante Proporciona una visión crítica de las causas raíz de los envíos tardíos, lo que permite tomar acciones específicas para mitigar problemas comunes y mejorar el rendimiento de entrega a tiempo. Dónde obtener Típicamente capturado en los detalles de eventos de seguimiento dentro de OTM. Puede estar asociado con códigos de eventos de excepción o retraso específicos. Ejemplos RETRASO_POR_CLIMACUSTOMS_INSPECTIONCONGESTIÓN_PORTUARIATRÁFICO | |||
| Nombre del Transportista CarrierName | El nombre del transportista o proveedor de servicios de transporte responsable de mover el envío. | ||
| Descripción Este atributo identifica al socio logístico asignado para ejecutar el transporte de la mercancía. Los ejemplos incluyen grandes empresas de fletes, mensajeros locales o líneas navieras. Analizar el rendimiento por transportista es un objetivo principal del Por qué es importante Permite la evaluación comparativa del rendimiento entre diferentes transportistas, lo cual es fundamental para optimizar la selección de transportistas, la negociación y la reducción de costos. Dónde obtener Se encuentra en los detalles del envío dentro de OTM, vinculado desde los registros del transportista asignado o del proveedor de servicios. Puede almacenarse en tablas relacionadas con envíos y proveedores de servicios. Ejemplos FedEx FreightUPS Supply Chain SolutionsMaersk LineKnight-Swift Transportation | |||
| Agente de Aduanas CustomsAgent | El agente o corredor de aduanas responsable de gestionar el proceso de despacho de aduanas para el envío. | ||
| Descripción Para envíos internacionales, este Analizar el tiempo de ciclo del despacho de aduanas por Agente de Aduanas ayuda a comparar su rendimiento. Puede identificar qué agentes son más eficientes en países específicos o para tipos de mercancías particulares. Este Por qué es importante Permite la medición del rendimiento de los agentes de aduanas, ayudando a identificar los socios más eficientes y a reducir los retrasos relacionados con las aduanas. Dónde obtener Esta información puede almacenarse como un proveedor de servicios o rol de parte en los detalles de envío internacional en OTM. Ejemplos Servicios Aduaneros GlobalesLivingston InternationalFlexport | |||
| Discrepancia en Factura de Flete FreightBillDiscrepancy | Una bandera que indica si se encontró una discrepancia durante la auditoría de la factura de flete. | ||
| Descripción Este atributo booleano se establece en 'verdadero' si la factura de flete recibida del transportista no coincide con el costo esperado calculado en OTM. Las discrepancias pueden surgir de tarifas incorrectas, cargos accesorios u otros errores de facturación. Este atributo es la base para el KPI de Tasa de Discrepancia de Facturas de Flete. Analizar la frecuencia de estos indicadores por transportista, carril o tipo de envío ayuda a identificar las causas raíz de los errores de facturación. Esto apoya iniciativas para mejorar la precisión de los datos, agilizar el proceso de auditoría y prevenir pagos en exceso. Por qué es importante Apoya directamente el Análisis de Discrepancias en Facturas de Flete al marcar los envíos con errores de facturación, lo que ayuda a reducir los pagos excesivos y mejorar los controles financieros. Dónde obtener Este es típicamente un estado o indicador establecido durante el proceso de liquidación de flete y coincidencia de facturas dentro de OTM. Ejemplos truefalse | |||
| Es Entrega a Tiempo IsOnTimeDelivery | Una bandera calculada que indica si el envío fue entregado en o antes de la fecha de entrega solicitada. | ||
| Descripción Este atributo booleano se deriva comparando la marca de tiempo de la actividad 'Mercancía Entregada' con la 'Fecha de Entrega Solicitada'. Es 'verdadero' si la entrega fue a tiempo o antes de tiempo, y 'falso' si fue tarde. Este atributo impulsa directamente el KPI de Tasa de Entrega a Tiempo y es un componente clave del dashboard de Descripción General del Rendimiento de Entrega. Simplifica el análisis del rendimiento de entrega al proporcionar un resultado claro y binario para cada envío, facilitando el filtrado, la agregación y la visualización de envíos a tiempo frente a envíos tardíos. Por qué es importante Este indicador calculado simplifica la medición del KPI de Entrega a Tiempo y permite un fácil filtrado y análisis de los envíos a tiempo frente a los tardíos. Dónde obtener Este atributo no se encuentra en el sistema de origen. Se calcula durante la transformación de datos comparando la marca de tiempo de la actividad 'Mercancía Entregada' con el atributo 'RequestedDeliveryDate'. Ejemplos truefalse | |||
| Es Re-enrutado IsRerouted | Una bandera que indica si la ruta del envío fue cambiada después de la reserva inicial. | ||
| Descripción Este atributo es un indicador booleano que se establece en 'verdadero' si un envío sufre un evento de re-enrutamiento significativo después de haber sido ya planificado y reservado. Esto podría deberse a una solicitud del cliente, interrupciones inesperadas u oportunidades de optimización. Este atributo respalda directamente el KPI de Tasa de Re-enrutamiento de Envíos y el dashboard de Insights de Re-enrutamiento y Aceleración. El seguimiento de la frecuencia de los re-enrutamientos ayuda a identificar problemas subyacentes en la planificación o ejecución. Destaca inestabilidades operativas y costos asociados, lo que permite a los gerentes encontrar formas de minimizar cambios costosos y disruptivos. Por qué es importante Ayuda a cuantificar la frecuencia e impacto de excepciones operativas como los re-enrutamientos, destacando ineficiencias en el proceso de planificación y ejecución. Dónde obtener Este indicador se deriva detectando eventos de re-enrutamiento específicos en el registro de eventos o comparando la ruta final con la ruta inicialmente planificada. Ejemplos truefalse | |||
| Estado del Envío ShipmentStatus | El estado general actual del envío en su ciclo de vida, como 'Planificado', 'En Tránsito' o 'Entregado'. | ||
| Descripción Este atributo proporciona un resumen de alto nivel de dónde se encuentra el envío en el proceso general. A diferencia de una actividad, que es un evento puntual, el estado representa el estado del caso del envío. Aunque el Por qué es importante Proporciona un resumen de alto nivel del progreso de un envío, útil para filtrar y segmentar casos en el análisis. Dónde obtener Disponible en el registro principal del envío en OTM, representando su estado actual en el Ejemplos PLANIFICADOREGISTRADOIN_TRANSITDELIVERED | |||
| Nombre de Usuario UserName | El nombre o ID del usuario que realizó o es responsable de una actividad particular. | ||
| Descripción Este atributo identifica al usuario individual o agente del sistema que ejecutó un evento específico, como 'Envío Planificado' o 'Transportista Asignado'. Esta información proporciona responsabilidad y una visión de la participación de los recursos en el proceso. En Por qué es importante Proporciona responsabilidad y permite el análisis de la carga de trabajo y el rendimiento por usuario individual o equipo. Dónde obtener Obtenido de campos de ID de usuario (p. ej., INSERT_USER) asociados con cambios de estado o eventos en las tablas de historial o registro de OTM. Ejemplos JSMITHLOGISTICS_PLANNER_ASYSTEM_AUTO | |||
| País de Destino DestinationCountry | El país donde se programará la entrega del envío. | ||
| Descripción Este atributo especifica el país de destino final del envío, basado en la ubicación del consignatario. Complementa el País de Origen para el análisis geográfico del proceso. Similar al origen, analizar por País de Destino es vital para comprender las diferencias de rendimiento entre diversas rutas comerciales. Es particularmente importante para analizar los tiempos de despacho de aduanas, el rendimiento de entrega de última milla y la efectividad del transportista específica de la región. Esto ayuda a adaptar las estrategias logísticas a los requisitos de diferentes mercados de destino. Por qué es importante Crucial para analizar el rendimiento en rutas comerciales específicas y comprender los desafíos relacionados con aduanas, transportistas y regulaciones en los mercados de destino. Dónde obtener Derivado de los detalles de la dirección de la ubicación de destino o del consignatario del envío, almacenado en los Ejemplos CANFRAJPNBRA | |||
| País de Origen OriginCountry | El país donde comienza el viaje del envío. | ||
| Descripción Este atributo especifica el país de inicio del envío, basado en la ubicación del remitente. Es una pieza clave de información geográfica utilizada para el análisis logístico. Analizar los procesos por País de Origen ayuda a comprender las variaciones regionales en el rendimiento. Por ejemplo, los tiempos de despacho de aduanas, los costos de los transportistas y las duraciones del tránsito pueden variar significativamente según el país de origen. Esta segmentación es crucial para gestionar la logística internacional e identificar cuellos de botella específicos de cada región. Por qué es importante Permite el análisis geográfico del proceso de transporte, ayudando a identificar cuellos de botella, costos y variaciones de rendimiento específicos de la región. Dónde obtener Derivado de los detalles de la dirección de la ubicación de origen o del remitente del envío, que se almacena en los Ejemplos EE. UU.DEUCHNMEX | |||
| Source System SourceSystem | Identifica el sistema del que se originaron los `datos` del `evento`, por ejemplo, Oracle Transportation Management. | ||
| Descripción Este atributo especifica la aplicación de origen donde se generaron los datos. En un entorno logístico complejo, los datos pueden provenir de OTM, un sistema de gestión de almacenes (WMS), el sistema de un transportista a través de EDI u otras plataformas integradas. Comprender el sistema de origen es importante para la gobernanza de datos, la evaluación de la calidad y la resolución de problemas. Ayuda a comprender el contexto de los datos y puede explicar variaciones en la granularidad o la puntualidad de los datos. Para el análisis, se puede utilizar para filtrar eventos que se originan solo de un sistema específico y confiable. Por qué es importante Proporciona un contexto crucial sobre el origen de los Dónde obtener Este es típicamente un valor estático agregado durante el proceso de extracción de datos para etiquetar el origen de los registros. Ejemplos Oracle OTMOTM CloudSAP TM | |||
| Tiempo de Ciclo de Principio a Fin EndToEndCycleTime | La duración total del envío desde la solicitud de transporte inicial hasta la entrega final de la mercancía. | ||
| Descripción Esta métrica calculada mide el tiempo total transcurrido para un caso de envío. Típicamente se calcula como la diferencia de tiempo entre la actividad 'Solicitud de Transporte Recibida' y la actividad 'Mercancía Entregada'. Este atributo es la base para el KPI de Tiempo Promedio de Ciclo de Extremo a Extremo. Proporciona una medida holística de la eficiencia de todo el proceso de transporte. Analizar esta duración ayuda a identificar envíos de larga duración y proporciona una línea de base para medir el impacto de las iniciativas de mejora de procesos. Por qué es importante Proporciona una medida única y crítica de la velocidad general del proceso, ayudando a identificar envíos de larga duración y a seguir las mejoras a lo largo del tiempo. Dónde obtener Este atributo no se encuentra en el sistema de origen. Se calcula a nivel de caso durante el análisis de Ejemplos 5 días 4 horas12 días 8 horas 30 minutos2 días 1 hora | |||
| Tipo de Envío ShipmentType | Una clasificación del envío, como por nivel de servicio, tipo de mercancía o unidad de negocio. | ||
| Descripción Este atributo proporciona una categorización específica del negocio para el envío, por ejemplo, 'Estándar', 'Urgente', 'Materiales Peligrosos' o 'Inter-empresa'. Esta clasificación ayuda a aplicar diferentes reglas de negocio, prioridades o vistas analíticas. Utilizar el Tipo de Envío como dimensión en Por qué es importante Permite la segmentación del análisis basada en el contexto de negocio, ayudando a entender si diferentes tipos de envíos siguen procesos distintos o tienen diferentes niveles de rendimiento. Dónde obtener Este es típicamente un campo o atributo configurable en el registro de envío o pedido en OTM. Ejemplos EstándarAceleradoInternacionalNacional | |||
| Última actualización de datos LastDataUpdate | La marca de tiempo que indica la última vez que los datos de este evento se actualizaron o se extrajeron del sistema de origen. | ||
| Descripción Este atributo registra cuándo se extrajeron los datos más recientemente de Oracle Transportation Management. Refleja la actualidad de los datos que se analizan, no el momento en que ocurrió el evento de negocio. Esta marca de tiempo es crucial para comprender la puntualidad del análisis de Por qué es importante Indica la frescura de los Dónde obtener Esta es típicamente una marca de tiempo generada por el sistema y añadida durante la ingesta de datos o el proceso ETL. Ejemplos 2023-11-01T02:00:00Z2023-11-02T02:00:00Z | |||
Actividades de Gestión de Transporte
| Actividad | Descripción | ||
|---|---|---|---|
| Comprobante de Entrega Recibido | Esto representa la recepción y el registro de la confirmación formal de que la entrega se completó, como un documento firmado. Esto a menudo se registra como un tipo de documento específico adjunto al envío. | ||
| Por qué es importante La POD es fundamental para la facturación y la resolución de disputas. Rastrear su recepción ayuda a garantizar el cumplimiento del proceso y acelera el ciclo de liquidación financiera. Dónde obtener Este puede ser un evento explícito o inferido de la fecha de creación de un documento POD vinculado al envío. Busque en la tabla DOCUMENT documentos con un tipo de documento POD. Capturar Use la marca de tiempo de creación de un tipo de documento 'POD' asociado con el envío. Tipo de evento explicit | |||
| Envío Planificado | Esta actividad representa la planificación exitosa de una o más solicitudes de pedido en un envío viable por el motor de planificación de OTM. Se captura cuando el sistema cambia el estado de un envío para indicar que ha sido planificado, por ejemplo, 'PLANNING_PLANNED FINAL'. | ||
| Por qué es importante Este es un hito clave que separa la fase de demanda de la fase de ejecución. Analizar el tiempo previo a esta actividad ayuda a identificar la eficiencia de la planificación y los cuellos de botella en el rendimiento del motor. Dónde obtener Inferido del historial de estado del objeto Capturar Identifique la Tipo de evento inferred | |||
| Mercancía Entregada | Esta actividad representa la entrega exitosa del envío al consignatario de destino final. Esto se captura cuando la última parada del envío se marca con una hora de llegada real. | ||
| Por qué es importante Este es el hito principal para medir el rendimiento de entrega a tiempo y el tiempo de ciclo de extremo a extremo. Es la culminación del proceso de ejecución del transporte. Dónde obtener Inferido de la población del campo Capturar Use la marca de tiempo ACTUAL_ARRIVAL del último registro en la tabla SHIPMENT_STOP para el envío. Tipo de evento inferred | |||
| Mercancías Recogidas | Esta actividad significa el inicio del transporte físico, cuando el transportista ha recogido la mercancía del origen. Este evento se captura cuando la primera parada del envío se marca como 'DEPARTED'. | ||
| Por qué es importante Este es un hito crítico que marca el comienzo de la fase en tránsito. Es esencial para rastrear el rendimiento de recogida del transportista y los tiempos de tránsito reales. Dónde obtener Inferido del cambio de estado de la primera parada en la tabla Capturar Use la marca de tiempo ACTUAL_DEPARTURE del primer registro en la tabla SHIPMENT_STOP para el envío. Tipo de evento inferred | |||
| Pago Procesado | Esta es la actividad final, que representa el procesamiento exitoso del pago al transportista por sus servicios. Este evento marca el cierre financiero del envío. | ||
| Por qué es importante Esta actividad concluye el ciclo de vida del transporte. Es esencial para medir los tiempos de procesamiento de pagos del transportista y gestionar eficazmente las relaciones con los transportistas. Dónde obtener Inferido del cambio de estado en el comprobante o factura asociado que pasa a un estado 'PAGADO'. Estos Capturar Identifique la Tipo de evento inferred | |||
| Solicitud de Transporte Recibida | Esta actividad marca la creación de una necesidad de transporte dentro del sistema, típicamente como una Solicitud de Pedido (Order Release). Este evento se captura cuando se crea un nuevo registro de Solicitud de Pedido en Oracle Transportation Management, representando la demanda inicial de envío. | ||
| Por qué es importante Como punto de partida del proceso, esta actividad es crucial para medir el tiempo total del ciclo de principio a fin y comprender los patrones de demanda. Ayuda a analizar el tiempo transcurrido desde la solicitud hasta la planificación. Dónde obtener Este es un evento explícito capturado de la marca de tiempo de creación del registro de Order Release en la tabla ORDER_RELEASE. Se pueden usar los campos INSERT_DATE o de fecha de creación específicos. Capturar Use la marca de tiempo de creación de la Order Release en la tabla ORDER_RELEASE. Tipo de evento explicit | |||
| Aduana Despachada | Para envíos internacionales, esta actividad representa el punto en el que las mercancías han pasado con éxito por la aduana en una frontera o puerto. Esto a menudo se captura a través de un `evento` de envío específico o una actualización de estado. | ||
| Por qué es importante El despacho de aduanas es una fuente común de retrasos significativos en la logística internacional. El seguimiento de esta actividad ayuda a medir y optimizar los tiempos de ciclo del despacho de aduanas. Dónde obtener Este evento se captura típicamente a través de un evento de envío 'Aduanas' ingresado manualmente o integrado. Busque códigos de evento específicos en la tabla SHIPMENT_STATUS relacionados con aduanas. Capturar Identifique la Tipo de evento explicit | |||
| Cita de Entrega Programada | Esta actividad marca cuando se ha programado una fecha y hora específicas de entrega con el consignatario. Este evento se captura a partir de los datos de citas en la última parada del envío. | ||
| Por qué es importante Este es un paso clave en la coordinación de la entrega final. Analizar el tiempo entre la llegada y la entrega programada puede revelar cuellos de botella en las operaciones de última milla. Dónde obtener Inferido de la población de campos de fecha y hora de la cita para la parada final (ubicación de entrega) del envío, encontrado en la tabla Capturar Use la marca de tiempo cuando los campos de cita se rellenan por primera vez para la parada de entrega. Tipo de evento inferred | |||
| Cita de Recogida Programada | Esta actividad indica que se ha programado y registrado una fecha y hora específicas para la recogida. Esto a menudo se captura a partir de datos relacionados con citas a nivel de parada del envío. | ||
| Por qué es importante La programación de citas es un paso clave de coordinación. Analizarla ayuda a comprender la eficiencia de la programación y su impacto en la puntualidad de la recogida. Dónde obtener Inferido de la población de campos de fecha y hora de la cita para la primera parada (ubicación de recogida) del envío, encontrado en la tabla Capturar Use la marca de tiempo cuando los campos de cita se rellenan por primera vez para la parada de recogida. Tipo de evento inferred | |||
| Envío Cancelado | Representa la cancelación de un envío después de haber sido planificado, terminando prematuramente su ciclo de vida. Esto se registra mediante un cambio de estado en el objeto `Shipment` a un estado 'cancelado'. | ||
| Por qué es importante El seguimiento de las cancelaciones es importante para comprender las excepciones y fallos del proceso. Ayuda a identificar las razones de la cancelación, como cambios en la demanda o errores de planificación. Dónde obtener Inferido del historial de estado del objeto Capturar Identifique la Tipo de evento inferred | |||
| Envío en Tránsito | Indica que las mercancías han sido recogidas y ahora se están moviendo activamente hacia el destino. Este no es un punto único en el tiempo, sino que el inicio de este estado se captura inmediatamente después de la actividad 'Mercancías Recogidas'. | ||
| Por qué es importante Esta actividad marca el comienzo de la fase de tránsito, que es crítica para monitorear el progreso de la entrega e identificar retrasos en tránsito. Es fundamental para el dashboard de Puntos Calientes de Retrasos en Tránsito. Dónde obtener Este es el mismo evento que 'Mercancía Recogida', pero a menudo se representa como una actividad distinta en los modelos de proceso para significar el inicio de una nueva fase. Se deriva de la salida de la primera parada. Capturar Igual que 'Mercancía Recogida': Use la marca de tiempo ACTUAL_DEPARTURE del primer SHIPMENT_STOP. Tipo de evento inferred | |||
| Envío Reservado | Representa la confirmación formal de la reserva con el transportista después de una oferta exitosa. Esto se captura típicamente cuando el estado del envío se actualiza a 'SECURE RESOURCES_BOOKED' o un estado equivalente. | ||
| Por qué es importante Esto confirma el compromiso del transportista y mueve oficialmente el envío a la fase de ejecución. Es un paso crítico para medir el KPI de Tiempo de Ciclo de Planificación de Envíos. Dónde obtener Inferido de un cambio de estado en el objeto Capturar Identifique la Tipo de evento inferred | |||
| Factura de Flete Auditada | Esta actividad marca la finalización del proceso de auditoría de la factura de flete, donde la factura del transportista se coteja y verifica con los detalles del envío. Se registra cuando el estado de la factura de un envío cambia a 'VOUCHER_AUDITED' o un estado similar. | ||
| Por qué es importante La auditoría es crucial para el control financiero y la identificación de discrepancias en la facturación. Analizar esta actividad ayuda a agilizar el proceso de auditoría a pago y respalda el KPI de Tasa de Discrepancia de Factura de Flete. Dónde obtener Inferido del cambio de estado en el objeto Capturar Identifique la Tipo de evento inferred | |||
| Transportista Asignado | Esto marca el punto en el que un envío ha sido ofrecido con éxito y aceptado por un transportista específico. Esto se captura observando el cambio en el estado de oferta del envío a 'TENDER_ACCEPTED' o un estado similar. | ||
| Por qué es importante El seguimiento de esto ayuda a analizar la eficiencia del proceso de selección y oferta del transportista. Los retrasos aquí pueden impactar significativamente el cronograma general antes de que el envío incluso se haya movido. Dónde obtener Inferido del historial de estado en la tabla Capturar Use la marca de tiempo del cambio de estado a 'TENDER_ACCEPTED' en el historial de ofertas del envío. Tipo de evento inferred | |||
Guías de Extracción
Pasos
- Acceder a BI Publisher: Inicie sesión en su aplicación Oracle Transportation Management (OTM). Navegue a Business Process Automation, luego a Informes, y seleccione Gestor de Informes. Esto abrirá la interfaz de Oracle Business Intelligence Publisher.
- Crear un Modelo de Datos: En BI Publisher, haga clic en el botón Nuevo y seleccione Modelo de
Datos. Esto abrirá el editor de modelos dedatosdonde definirá la fuente dedatospara su informe. - Definir la Consulta SQL: Dentro del editor de modelos de
datos, haga clic en el icono de más en el diagrama de Conjuntos deDatosy seleccione Consulta SQL. Asigne un nombre al conjunto dedatos, por ejemplo, 'OTM_Process_Mining_DS'. Seleccione subase de datosOTM como Fuente deDatos. Copie la consulta SQL completa proporcionada en la sección 'query' de este documento y péguela en el cuadro de texto de Consulta SQL. - Añadir Parámetros: La consulta utiliza parámetros para el rango de fechas y el nombre del dominio (
:P_START_DATE,:P_END_DATE,:P_DOMAIN_NAME). BI Publisher los detectará automáticamente. Puede configurar sus propiedades, como establecer el tipo dedatosen Fecha para los parámetros de fecha. - Guardar el Modelo de Datos: Haga clic en el icono Guardar. Elija una ubicación en el catálogo de BI Publisher, proporcione un nombre descriptivo como 'Extracción del Proceso de Envío de OTM' y guarde el modelo de
datos. - Crear el Informe: Vuelva al catálogo, haga clic en el botón Nuevo y seleccione Informe. En el asistente de creación de informes, seleccione la opción 'Usar Modelo de
Datos' y encuentre el modelo dedatosque acaba de guardar. - Configurar el Diseño del Informe: El asistente le guiará a través de la creación de un diseño. Un diseño de 'Tabla' simple es suficiente. Arrastre y suelte todas las columnas de su conjunto de
datosen la tabla. No realice ninguna agrupación ni agregación. - Guardar el Informe: Una vez configurado el diseño, proceda al paso final y guarde el informe. Asígnele un nombre similar al del modelo de
datos. - Ejecutar el Informe: Abra el informe recién creado. Se le pedirá que introduzca valores para los parámetros (Fecha de Inicio, Fecha de Fin, Nombre de Dominio). Introduzca el rango deseado.
- Exportar los Datos: Después de que el informe se ejecute y muestre los
datos, haga clic en el menú Acciones y seleccione Exportar. Elija el formato CSV. Esto descargará un archivo CSV que contiene elregistro de eventos. - Preparar para la Carga: Abra el archivo CSV descargado. Verifique que los encabezados de columna coincidan con los
atributosrequeridos:ShipmentId,ActivityName,EventTime, y losatributosrecomendados. Asegúrese de que la columnaEventTimetenga un formato de fecha/hora consistente. El archivo ya está listo para ser subido aProcessMind.
Configuración
- Fuente de Datos: La consulta debe ejecutarse contra el esquema de
base de datosoperativo principal de OTM, típicamente llamadoGLOGOWNER. - Parámetros del Informe:
P_START_DATE: El inicio del período del informe. El formato debe ser 'YYYY-MM-DD'.P_END_DATE: El final del período del informe. El formato debe ser 'YYYY-MM-DD'.P_DOMAIN_NAME: El dominio OTM específico del que extraerdatos. Utilice '[Your Domain Name]'.
- Rango de Fechas: Para el análisis inicial, se recomienda extraer
datospara un período de 3 a 6 meses a fin de equilibrar el volumen dedatoscon el rendimiento. Para ejecuciones de producción, considere extraerdatosen lotes mensuales o trimestrales. - Permisos: El usuario de OTM que ejecuta el informe necesita roles específicos, como BI PUBLISHER DATA MODEL DEVELOPER y BI PUBLISHER REPORT DEVELOPER, para crear y modificar modelos de
datose informes. También se requiere acceso de solo lectura a las tablas de labase de datossubyacente. - Rendimiento: La consulta une varias tablas grandes. Para entornos con un alto volumen de
datos, se recomienda encarecidamente ejecutar este informe durante horas de menor actividad para evitar afectar el rendimiento del sistema. El rango de fechas debe mantenerse lo más estrecho posible para asegurar que el informe se complete de manera oportuna.
a Consulta de ejemplo config
WITH SHIPMENTS_BASE AS (
SELECT
S.SHIPMENT_GID AS ShipmentId,
SP.SERVPROV_NAME AS CarrierName,
S.TOTAL_ACTUAL_COST AS ShipmentCost,
TM.TRANSPORT_MODE_NAME AS TransportationMode,
(
SELECT MAX(ORL.LATE_DELIVERY_DATE)
FROM SHIPMENT_S_SHIP_UNIT SSU
JOIN S_SHIP_UNIT SU ON SSU.S_SHIP_UNIT_GID = SU.S_SHIP_UNIT_GID
JOIN ORDER_RELEASE ORL ON SU.ORDER_RELEASE_GID = ORL.ORDER_RELEASE_GID
WHERE SSU.SHIPMENT_GID = S.SHIPMENT_GID
) AS RequestedDeliveryDate,
S.DOMAIN_NAME
FROM SHIPMENT S
LEFT JOIN SERVPROV SP ON S.SERVPROV_GID = SP.SERVPROV_GID
LEFT JOIN TRANSPORT_MODE TM ON S.TRANSPORT_MODE_GID = TM.TRANSPORT_MODE_GID
WHERE S.INSERT_DATE BETWEEN TO_DATE(:P_START_DATE, 'YYYY-MM-DD') AND TO_DATE(:P_END_DATE, 'YYYY-MM-DD') + 1
AND S.DOMAIN_NAME = :P_DOMAIN_NAME
)
-- 1. Transportation Request Received
SELECT
SB.ShipmentId,
'Transportation Request Received' AS ActivityName,
MIN(ORL.INSERT_DATE) AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_S_SHIP_UNIT SSU ON SB.ShipmentId = SSU.SHIPMENT_GID
JOIN S_SHIP_UNIT SU ON SSU.S_SHIP_UNIT_GID = SU.S_SHIP_UNIT_GID
JOIN ORDER_RELEASE ORL ON SU.ORDER_RELEASE_GID = ORL.ORDER_RELEASE_GID
WHERE SB.DOMAIN_NAME = ORL.DOMAIN_NAME
GROUP BY SB.ShipmentId, SB.CarrierName, SB.RequestedDeliveryDate, SB.ShipmentCost, SB.TransportationMode
UNION ALL
-- 2. Shipment Planned
SELECT
SB.ShipmentId,
'Shipment Planned' AS ActivityName,
SS.STATUS_CHANGE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STATUS SS ON SB.ShipmentId = SS.SHIPMENT_GID
WHERE SS.STATUS_CODE_GID = 'PLANNING_PLANNED FINAL'
UNION ALL
-- 3. Carrier Assigned
SELECT
SB.ShipmentId,
'Carrier Assigned' AS ActivityName,
ST.UPDATE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_TENDER ST ON SB.ShipmentId = ST.SHIPMENT_GID
WHERE ST.TENDER_STATUS_GID = 'TENDER_ACCEPTED'
UNION ALL
-- 4. Shipment Booked
SELECT
SB.ShipmentId,
'Shipment Booked' AS ActivityName,
SS.STATUS_CHANGE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STATUS SS ON SB.ShipmentId = SS.SHIPMENT_GID
WHERE SS.STATUS_CODE_GID = 'SECURE RESOURCES_BOOKED'
UNION ALL
-- 5. Pickup Appointment Scheduled
SELECT
SB.ShipmentId,
'Pickup Appointment Scheduled' AS ActivityName,
SST.APPOINTMENT_START_TIME AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = 1 AND SST.APPOINTMENT_START_TIME IS NOT NULL
UNION ALL
-- 6. Goods Picked Up
SELECT
SB.ShipmentId,
'Goods Picked Up' AS ActivityName,
SST.ACTUAL_DEPARTURE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = 1 AND SST.ACTUAL_DEPARTURE_DATE IS NOT NULL
UNION ALL
-- 7. Shipment In Transit
SELECT
SB.ShipmentId,
'Shipment In Transit' AS ActivityName,
SST.ACTUAL_DEPARTURE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = 1 AND SST.ACTUAL_DEPARTURE_DATE IS NOT NULL
UNION ALL
-- 8. Customs Cleared
SELECT
SB.ShipmentId,
'Customs Cleared' AS ActivityName,
SE.EVENT_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
SE.EVENT_REMARK_TEXT AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_EVENT SE ON SB.ShipmentId = SE.SHIPMENT_GID
WHERE SE.EVENT_CODE = '[Your Customs Cleared Event Code]'
UNION ALL
-- 9. Delivery Appointment Scheduled
SELECT
SB.ShipmentId,
'Delivery Appointment Scheduled' AS ActivityName,
SST.APPOINTMENT_START_TIME AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = (SELECT MAX(SST2.STOP_NUM) FROM SHIPMENT_STOP SST2 WHERE SST2.SHIPMENT_GID = SB.ShipmentId)
AND SST.APPOINTMENT_START_TIME IS NOT NULL
UNION ALL
-- 10. Goods Delivered
SELECT
SB.ShipmentId,
'Goods Delivered' AS ActivityName,
SST.ACTUAL_ARRIVAL_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_STOP SST ON SB.ShipmentId = SST.SHIPMENT_GID
WHERE SST.STOP_NUM = (SELECT MAX(SST2.STOP_NUM) FROM SHIPMENT_STOP SST2 WHERE SST2.SHIPMENT_GID = SB.ShipmentId)
AND SST.ACTUAL_ARRIVAL_DATE IS NOT NULL
UNION ALL
-- 11. Proof of Delivery Received
SELECT
SB.ShipmentId,
'Proof of Delivery Received' AS ActivityName,
SE.EVENT_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
SE.EVENT_REMARK_TEXT AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT_EVENT SE ON SB.ShipmentId = SE.SHIPMENT_GID
WHERE SE.EVENT_CODE = '[Your POD Received Event Code]'
UNION ALL
-- 12. Freight Bill Audited
SELECT
SB.ShipmentId,
'Freight Bill Audited' AS ActivityName,
B.UPDATE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN BILL B ON SB.ShipmentId = B.SHIPMENT_GID
WHERE B.BILL_STATUS_GID = 'VOUCHER_AUDITED'
UNION ALL
-- 13. Payment Processed
SELECT
SB.ShipmentId,
'Payment Processed' AS ActivityName,
B.UPDATE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN BILL B ON SB.ShipmentId = B.SHIPMENT_GID
WHERE B.BILL_STATUS_GID = '[Your Payment Processed Bill Status]'
UNION ALL
-- 14. Shipment Cancelled
SELECT
SB.ShipmentId,
'Shipment Cancelled' AS ActivityName,
S.UPDATE_DATE AS EventTime,
SB.CarrierName,
SB.RequestedDeliveryDate,
SB.ShipmentCost,
SB.TransportationMode,
NULL AS DelayReason
FROM SHIPMENTS_BASE SB
JOIN SHIPMENT S ON SB.ShipmentId = S.SHIPMENT_GID
WHERE S.SHIPMENT_STATUS_GID = 'SHIPMENT_CANCELLED' Pasos
- Establecer Conexión con la Base de Datos: Obtenga credenciales de solo lectura y detalles de conexión (host, puerto, ID de servicio) para la
base de datosde Oracle Transportation Management. Necesitará acceso al esquemaGLOGOWNER. - Configurar Cliente SQL: Configure una herramienta cliente SQL, como Oracle SQL Developer, DBeaver o Toad, con los detalles de conexión de la
base de datosdel paso anterior. - Preparar la Consulta: Copie la consulta SQL completa proporcionada en este documento en el editor de consultas de su cliente SQL.
- Establecer Parámetros de Consulta: Localice los valores de marcador de posición dentro de las cláusulas
WHEREde la consulta. Debe reemplazar[START_DATE],[END_DATE]y[YOUR_DOMAIN_NAME]con los valores apropiados para su extracción. Por ejemplo, establezca las fechas para cubrir un período de 3 a 6 meses y especifique el dominio operativo que desea analizar. - Ejecutar la Consulta: Ejecute la consulta SQL modificada. Dependiendo del rango de fechas y el tamaño del sistema, esto puede tardar varios minutos en completarse.
- Revisar los Resultados: Una vez finalizada la consulta, realice una revisión rápida de la salida en su cliente para asegurarse de que se devuelven filas y que las columnas clave como
ShipmentId,ActivityNameyEventTimeestán rellenadas. - Exportar a CSV: Exporte el conjunto completo de resultados a un archivo CSV. Utilice la configuración estándar de CSV: delimitador de coma, comillas dobles para texto y codificación UTF-8.
- Finalizar Encabezados de Columna: Antes de subir, verifique que los encabezados de columna en el archivo CSV coincidan exactamente con los nombres de
atributosrequeridos:ShipmentId,ActivityName,EventTime,CarrierName,RequestedDeliveryDate,ShipmentCost,TransportationModeyDelayReason. - Subir a ProcessMind: El archivo CSV preparado ya está listo para ser subido y analizado en
ProcessMind.
Configuración
- Esquema de Base de Datos: La consulta está diseñada para ejecutarse contra el esquema de
base de datosestándar de Oracle Transportation Management, que típicamente se llamaGLOGOWNER. - Autorizaciones Requeridas: Se requiere un usuario de
base de datoscon acceso de solo lectura a las tablas referenciadas en la consulta. Estas tablas incluyenSHIPMENT,SHIPMENT_STOP,ORDER_RELEASE,SHIPMENT_STATUS,SERVPROV,SHIPMENT_COST,DOCUMENT,BILLyVOUCHER. - Filtrado de Dominio: Es fundamental filtrar por
DOMAIN_NAMEen un entorno OTM multi-inquilino. La consulta incluye un marcador de posición[YOUR_DOMAIN_NAME]que debe configurarse para extraerdatospara la entidad de negocio correcta. - Rango de Fechas: Para gestionar el rendimiento y el volumen de
datos, debe especificar una fecha de inicio y una fecha de finalización. Se recomienda filtrar por una columna indexada comoSHIPMENT.INSERT_DATE. Un período de 3 a 6 meses es típico para un análisis inicial. - Personalización de Códigos de Estado: La consulta utiliza códigos de estado comunes y predeterminados (p. ej.,
PLANNING_PLANNED FINAL,TENDER_ACCEPTED). Su implementación de OTM puede usar códigos de estado personalizados. Es posible que deba ajustar los valores en las cláusulasWHEREpara que coincidan con la configuración de su sistema.
a Consulta de ejemplo sql
WITH ShipmentBase AS (
SELECT s.SHIPMENT_GID, s.SERVPROV_GID, s.LATE_DELIVERY_DATE, s.TRANSPORT_MODE_GID, sc.TotalShipmentCost
FROM GLOGOWNER.SHIPMENT s
LEFT JOIN (
SELECT sc.SHIPMENT_GID, SUM(sc.COST) as TotalShipmentCost
FROM GLOGOWNER.SHIPMENT_COST sc
GROUP BY sc.SHIPMENT_GID
) sc ON s.SHIPMENT_GID = sc.SHIPMENT_GID
WHERE s.INSERT_DATE BETWEEN TO_DATE('[START_DATE]', 'YYYY-MM-DD') AND TO_DATE('[END_DATE]', 'YYYY-MM-DD')
AND s.DOMAIN_NAME = '[YOUR_DOMAIN_NAME]'
),
OrderReleaseInfo AS (
SELECT ssu.SHIPMENT_GID, MIN(orl.INSERT_DATE) as Earliest_OR_Date
FROM GLOGOWNER.S_SHIP_UNIT ssu
JOIN GLOGOWNER.S_SHIP_UNIT_LINE ssul ON ssu.S_SHIP_UNIT_GID = ssul.S_SHIP_UNIT_GID
JOIN GLOGOWNER.ORDER_RELEASE_LINE orl ON ssul.ORDER_RELEASE_LINE_GID = orl.ORDER_RELEASE_LINE_GID
GROUP BY ssu.SHIPMENT_GID
)
-- 1. Transportation Request Received
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Transportation Request Received' AS "ActivityName",
ori.Earliest_OR_Date AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN OrderReleaseInfo ori ON sb.SHIPMENT_GID = ori.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE ori.Earliest_OR_Date IS NOT NULL
UNION ALL
-- 2. Shipment Planned
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Shipment Planned' AS "ActivityName",
ss.INSERT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STATUS ss ON sb.SHIPMENT_GID = ss.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE ss.STATUS_CODE_GID = 'PLANNING_PLANNED FINAL'
UNION ALL
-- 3. Carrier Assigned
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Carrier Assigned' AS "ActivityName",
ss.INSERT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STATUS ss ON sb.SHIPMENT_GID = ss.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE ss.STATUS_CODE_GID = 'TENDER_ACCEPTED'
UNION ALL
-- 4. Shipment Booked
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Shipment Booked' AS "ActivityName",
ss.INSERT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STATUS ss ON sb.SHIPMENT_GID = ss.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE ss.STATUS_CODE_GID = 'SECURE RESOURCES_BOOKED'
UNION ALL
-- 5. Pickup Appointment Scheduled
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Pickup Appointment Scheduled' AS "ActivityName",
stp.APPT_START_TIME AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STOP stp ON sb.SHIPMENT_GID = stp.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE stp.STOP_NUM = 1 AND stp.APPT_START_TIME IS NOT NULL
UNION ALL
-- 6. Goods Picked Up
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Goods Picked Up' AS "ActivityName",
stp.ACTUAL_DEPARTURE_TIME AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STOP stp ON sb.SHIPMENT_GID = stp.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE stp.STOP_NUM = 1 AND stp.ACTUAL_DEPARTURE_TIME IS NOT NULL
UNION ALL
-- 7. Shipment In Transit
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Shipment In Transit' AS "ActivityName",
stp.ACTUAL_DEPARTURE_TIME AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STOP stp ON sb.SHIPMENT_GID = stp.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE stp.STOP_NUM = 1 AND stp.ACTUAL_DEPARTURE_TIME IS NOT NULL
UNION ALL
-- 8. Customs Cleared
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Customs Cleared' AS "ActivityName",
se.EVENT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
se.REMARK_TEXT AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_EVENT se ON sb.SHIPMENT_GID = se.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE se.EVENT_CODE_GID = '[Your Customs Cleared Event Code]'
UNION ALL
-- 9. Delivery Appointment Scheduled
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Delivery Appointment Scheduled' AS "ActivityName",
stp.APPT_START_TIME AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STOP stp ON sb.SHIPMENT_GID = stp.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE stp.STOP_NUM = (SELECT MAX(s2.STOP_NUM) FROM GLOGOWNER.SHIPMENT_STOP s2 WHERE s2.SHIPMENT_GID = stp.SHIPMENT_GID)
AND stp.APPT_START_TIME IS NOT NULL
UNION ALL
-- 10. Goods Delivered
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Goods Delivered' AS "ActivityName",
stp.ACTUAL_ARRIVAL_TIME AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STOP stp ON sb.SHIPMENT_GID = stp.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE stp.STOP_NUM = (SELECT MAX(s2.STOP_NUM) FROM GLOGOWNER.SHIPMENT_STOP s2 WHERE s2.SHIPMENT_GID = stp.SHIPMENT_GID)
AND stp.ACTUAL_ARRIVAL_TIME IS NOT NULL
UNION ALL
-- 11. Proof of Delivery Received
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Proof of Delivery Received' AS "ActivityName",
d.INSERT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.DOCUMENT d ON sb.SHIPMENT_GID = d.OBJECT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE d.OBJECT_TYPE_GID = 'SHIPMENT' AND d.DOCUMENT_TYPE_GID = 'POD'
UNION ALL
-- 12. Freight Bill Audited
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Freight Bill Audited' AS "ActivityName",
b.UPDATE_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.BILL b ON sb.SHIPMENT_GID = b.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE b.APPROVAL_STATUS_GID = 'VOUCHER_AUDITED'
UNION ALL
-- 13. Payment Processed
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Payment Processed' AS "ActivityName",
v.UPDATE_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.BILL b ON sb.SHIPMENT_GID = b.SHIPMENT_GID
JOIN GLOGOWNER.VOUCHER v ON b.BILL_GID = v.BILL_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE v.VOUCHER_STATUS_GID = 'VOUCHER_PAID' -- This status may vary based on configuration
UNION ALL
-- 14. Shipment Cancelled
SELECT
sb.SHIPMENT_GID AS "ShipmentId",
'Shipment Cancelled' AS "ActivityName",
ss.INSERT_DATE AS "EventTime",
sp.SERVPROV_NAME AS "CarrierName",
sb.LATE_DELIVERY_DATE AS "RequestedDeliveryDate",
sb.TotalShipmentCost AS "ShipmentCost",
sb.TRANSPORT_MODE_GID AS "TransportationMode",
CAST(NULL AS VARCHAR(255)) AS "DelayReason"
FROM ShipmentBase sb
JOIN GLOGOWNER.SHIPMENT_STATUS ss ON sb.SHIPMENT_GID = ss.SHIPMENT_GID
LEFT JOIN GLOGOWNER.SERVPROV sp ON sb.SERVPROV_GID = sp.SERVPROV_GID
WHERE ss.STATUS_CODE_GID LIKE '%CANCELLED%';