Su plantilla de datos para solicitudes de Compra a Pago.
Su plantilla de datos para solicitudes de Compra a Pago.
- Atributos recomendados para recopilar para un análisis detallado
- `Actividades` clave para rastrear en el descubrimiento de procesos
- Guía para la extracción de datos de SAP S/4HANA
De la Compra al Pago - Atributos de Requisición
| Nombre | Descripción | ||
|---|---|---|---|
| Hora del Evento EventTime | La fecha y hora precisas en que ocurrió una actividad específica. | ||
| Descripción Event Time es el timestamp que registra cuándo tuvo lugar una actividad. Estos datos son críticos para la ordenación cronológica de los eventos dentro de un caso y son la base de todos los cálculos de duración y rendimiento en process mining. Por ejemplo, la diferencia de tiempo entre los eventos 'Requisición Enviada' y 'Requisición Aprobada' determina el tiempo de ciclo de aprobación. Los timestamps precisos son esenciales para analizar el rendimiento del proceso, identificar retrasos y monitorear la adhesión a los acuerdos de nivel de servicio. Este atributo permite que los dashboards visualicen los tiempos de ciclo, rastreen las requisiciones estancadas y comparen el rendimiento en diferentes períodos de tiempo. Por qué es importante Esta marca de tiempo es esencial para ordenar eventos, calcular tiempos de ciclo y analizar el rendimiento del proceso y los cuellos de botella. Dónde obtener Las marcas de tiempo suelen obtenerse de las cabeceras de los documentos de cambio (CDHDR-UDATE, CDHDR-UTIME) o de los registros de eventos de flujo de trabajo. Ejemplos 2023-04-15T10:05:30Z2023-04-15T14:22:01Z2023-04-16T09:00:15Z | |||
| ID de Requisición de Compra PurchaseRequisitionId | El identificador único para un documento de solicitud de pedido. | ||
| Descripción El ID de Solicitud de Pedido es la clave principal que identifica de forma única cada solicitud de bienes o servicios dentro de SAP S/4HANA. Sirve como identificador central de caso, vinculando todas las actividades y cambios relacionados con una solicitud específica desde su creación hasta su estado final, como aprobación, rechazo o conversión en una orden de compra. En Process Mining, este atributo es fundamental para reconstruir el ciclo de vida de extremo a extremo de cada solicitud. Al agrupar todos los eventos relacionados bajo un único ID de Solicitud de Pedido, los analistas pueden medir con precisión los tiempos de ciclo, rastrear los cambios de estado y analizar las diferentes rutas que una solicitud puede tomar a través del proceso de aprobación. Por qué es importante Este es el identificador de caso esencial que conecta todos los pasos del proceso relacionados, permitiendo una vista completa y coherente del ciclo de vida de la solicitud de pedido. Dónde obtener Este atributo es el Número de Solicitud de Pedido, que se encuentra en la tabla EBAN, campo BANFN. Ejemplos 100178901001789110017892 | |||
| Nombre de la Actividad ActivityName | El nombre de la actividad de negocio que ocurrió en un punto específico del proceso de solicitud de pedido. | ||
| Descripción El Nombre de la Actividad describe un evento o tarea específica que tuvo lugar dentro del ciclo de vida de una solicitud de pedido. Estas actividades se derivan de los registros del sistema, como documentos de cambio e historiales de flujo de trabajo, y representan hitos clave del proceso como 'Solicitud de Pedido Creada', 'Paso de Aprobación Iniciado' o 'Orden de Compra Creada'. El análisis de estas actividades permite la visualización del flujo del proceso, la identificación de cuellos de botella y la medición del tiempo invertido en las diferentes etapas. Comprender la secuencia y frecuencia de actividades como 'Solicitud de Pedido Modificada' o 'Solicitud de Pedido Rechazada' es crucial para identificar ineficiencias del proceso y áreas de mejora. Por qué es importante Define los pasos del proceso, formando la columna vertebral del mapa de procesos y permitiendo el análisis del flujo del proceso, sus variaciones y los cuellos de botella. Dónde obtener Este es un atributo derivado, típicamente construido interpretando datos de tablas de documentos de cambio (CDHDR, CDPOS) y registros de flujo de trabajo (p. ej., SWWLOGHIST). Ejemplos Requisición CreadaPaso de Aprobación CompletadoRequisición AprobadaPedido de Compra Creado | |||
| Departamento Department | El departamento o centro de coste al que se imputan los costes de la solicitud de pedido. | ||
| Descripción El atributo de Departamento, a menudo representado por el Centro de Costo en SAP, identifica la unidad de negocio responsable de la compra solicitada. Es una pieza crítica de información financiera y organizacional asignada a nivel de línea de una solicitud de pedido. En Process Mining, este atributo es esencial para el análisis del rendimiento departamental. Permite dashboards que comparan métricas clave como el tiempo de ciclo, las tasas de modificación y las tasas de rechazo entre diferentes departamentos. Esto ayuda a identificar departamentos de alto rendimiento cuyas prácticas podrían adoptarse en otros lugares, así como departamentos que puedan requerir formación adicional o soporte de proceso. Por qué es importante Permite la comparación del rendimiento entre unidades de negocio, destacando variaciones en los tiempos de ciclo o las tasas de rechazo para identificar las mejores prácticas y áreas de mejora. Dónde obtener Este es el Centro de Costo, típicamente encontrado en la tabla de imputación EBKN, campo KOSTL. Ejemplos FIN-1001IT-2005MKT-3010 | |||
| Estado de la Solicitud de Pedido RequisitionStatus | El estado actual de procesamiento o aprobación de la solicitud de pedido. | ||
| Descripción El Estado de la Solicitud de Pedido indica el estado actual de la solicitud dentro de su ciclo de vida. En SAP, esto a menudo se representa por el Indicador de Liberación, que muestra si una solicitud de pedido está bloqueada, en aprobación, parcialmente aprobada o completamente aprobada. Este estado cambia a medida que la solicitud avanza por el flujo de trabajo. El seguimiento del estado a lo largo del tiempo es fundamental para comprender el flujo del proceso. Ayuda a identificar dónde se atascan las solicitudes y durante cuánto tiempo. El análisis de las transiciones entre estados permite una vista detallada del proceso de aprobación y sus variantes. Por qué es importante Indica el estado actual de una requisición, lo cual es crítico para rastrear el progreso, identificar cuellos de botella y analizar el flujo del proceso. Dónde obtener El estado de liberación a menudo se determina por el Indicador de Liberación, que se encuentra en la tabla EBAN, campo FRGZU. Ejemplos B1S | |||
| ID de Usuario UserId | El identificador del usuario que creó la solicitud de pedido o realizó una actividad específica. | ||
| Descripción El ID de Usuario identifica al empleado o usuario del sistema responsable de un evento particular en el ciclo de vida de la solicitud de pedido. Puede ser la persona que creó la solicitud, el gerente que la aprobó o el agente que la modificó. En casos de pasos automatizados, este podría ser un ID de usuario de sistema o batch. El análisis por ID de Usuario ayuda a comprender el comportamiento específico del usuario, la distribución de la carga de trabajo y el rendimiento. Es clave para identificar necesidades de capacitación, reconocer individuos de alto rendimiento y asegurar la rendición de cuentas dentro del proceso. También apoya el análisis de rendimiento departamental cuando se combina con datos maestros de usuario. Por qué es importante Permite el análisis del rendimiento del usuario, la distribución de la carga de trabajo y el cumplimiento del proceso. Es crucial para identificar oportunidades de capacitación y cuellos de botella de recursos. Dónde obtener Se encuentra en EBAN-ERNAM para el creador. Para cambios posteriores, está en CDHDR-USERNAME. Para aprobaciones, está en los registros del flujo de trabajo. Ejemplos JSMITHRROEWF-BATCH | |||
| ID del Aprobador ApproverId | El identificador del usuario que realizó un paso de aprobación o rechazo. | ||
| Descripción El ID del Aprobador identifica específicamente al usuario que completó una actividad de aprobación o rechazo. Esto es distinto del ID de Usuario general, ya que se centra exclusivamente en los responsables de la toma de decisiones dentro del flujo de trabajo de aprobación. Capturar esta información es vital para analizar el proceso de aprobación en detalle. Este atributo permite el análisis del comportamiento de aprobación, como identificar gerentes con largos tiempos de aprobación o aquellos que rechazan solicitudes con frecuencia. Es fundamental para los dashboards centrados en los tiempos de ciclo de los pasos de aprobación y el análisis de cuellos de botella del flujo de trabajo, ayudando a precisar individuos o roles específicos que puedan estar causando retrasos. Por qué es importante Identifica al responsable de la toma de decisiones específico en un paso de aprobación, permitiendo un análisis detallado de los tiempos de ciclo de aprobación y los cuellos de botella por individuo o rol. Dónde obtener Esta información se extrae típicamente de tablas de SAP Business Workflow como SWW_WI2OBJ y SWWLOGHIST, que vinculan los elementos de trabajo con el usuario que los completa. Ejemplos MJOHNSONCWILLIAMSLBLACK | |||
| Importe de la Solicitud de Pedido RequisitionAmount | El valor monetario total de la solicitud de compra. | ||
| Descripción El Importe de la Solicitud de Pedido representa el coste total estimado de los bienes o servicios que se solicitan. Este valor es a menudo un factor clave para determinar la complejidad y duración del flujo de trabajo de aprobación, con solicitudes de mayor valor que suelen requerir más niveles de aprobación. El análisis de este atributo permite la segmentación del proceso en función del valor. Puede ayudar a responder preguntas como: '¿Las solicitudes de alto valor tardan más en aprobarse?' o '¿Cuál es el valor de las solicitudes que se rechazan con frecuencia?'. Es una dimensión crítica para comprender el impacto financiero de las ineficiencias del proceso. Por qué es importante Ayuda a segmentar el proceso por impacto financiero, a menudo correlacionado con la complejidad de la aprobación y el tiempo de ciclo. Es vital para el análisis de procesos basado en el valor. Dónde obtener El valor total se puede encontrar en la tabla EBAN, campo GFWERT. El valor a nivel de artículo está en EBAN-PREIS. Ejemplos 1500.0075000.50250.75 | |||
| Tipo de Solicitud RequisitionType | Un código que clasifica la requisición de compra, por ejemplo, para artículos estándar, servicios o gastos de capital. | ||
| Descripción El Tipo de Solicitud de Pedido, también conocido como Tipo de Documento en SAP, es un campo de configuración clave que categoriza las solicitudes de pedido. Diferentes tipos pueden activar distintos flujos de trabajo de aprobación, tener diferentes configuraciones de campos y se utilizan para distintos propósitos comerciales, como artículos de stock estándar, servicios externos o compras de activos. Al analizar el proceso según el Tipo de Solicitud de Pedido, las organizaciones pueden comprender cómo se gestionan los diferentes tipos de solicitudes. Permite comparar el rendimiento, los tiempos de ciclo y las rutas de aprobación entre categorías, lo que puede revelar si ciertos tipos de solicitud son más o menos eficientes y ayudar a adaptar las mejoras del proceso. Por qué es importante Categoriza las requisiciones para permitir un análisis comparativo, ayudando a comprender si diferentes tipos de solicitudes tienen distintos flujos de proceso, cuellos de botella o tiempos de ciclo. Dónde obtener Este es el campo Tipo de Documento, que se encuentra en la tabla EBAN, campo BSART. Ejemplos NBFORV | |||
| ¿Es Retrabajo? IsRework | Un indicador que señala si una actividad constituye retrabajo, como una modificación después de la presentación. | ||
| Descripción Is Rework es un indicador booleano calculado que identifica actividades que representan trabajo repetitivo o sin valor añadido. Un ejemplo común en este proceso es la actividad 'Requisición Modificada' que ocurre después de que la requisición ya ha sido enviada para aprobación, forzando el reinicio del proceso de aprobación. Este atributo es crucial para cuantificar la cantidad de retrabajo en el proceso y su impacto en los tiempos de ciclo generales. El dashboard de Tasa de Modificación y Retrabajo de Requisiciones se basa en este indicador para resaltar las ineficiencias del proceso. Reducir el retrabajo es a menudo un objetivo principal de las iniciativas de mejora de procesos, ya que se traduce directamente en ahorro de tiempo y esfuerzo. Por qué es importante Marca las actividades que representan esfuerzo desperdiciado o repetición, permitiendo la medición directa del retrabajo y su impacto en la eficiencia del proceso. Dónde obtener Este es un atributo calculado. La lógica típicamente marcaría como retrabajo cualquier actividad de 'Solicitud de Pedido Modificada' que ocurra después de la primera actividad de 'Solicitud de Pedido Enviada para Aprobación'. Ejemplos truefalse | |||
| Automatizado IsAutomated | Un indicador que señala si una actividad fue realizada por un usuario del sistema en lugar de un humano. | ||
| Descripción El atributo 'Es Automatizado' es un indicador booleano que es verdadero si una actividad fue ejecutada por un sistema o un usuario de batch, como 'WF-BATCH' para acciones de flujo de trabajo. Esto ayuda a distinguir entre pasos manuales y automatizados en el proceso. Este atributo es esencial para medir el nivel de automatización en el proceso de solicitud de pedido y para calcular el KPI de 'Tasa de Aprobación Automatizada'. Al filtrar por pasos automatizados o manuales, los analistas pueden comparar su eficiencia e identificar oportunidades para una mayor automatización que reduzca los tiempos de procesamiento y el esfuerzo manual. Por qué es importante Distingue entre actividades humanas y las impulsadas por el sistema, lo cual es clave para medir las tasas de automatización e identificar oportunidades para automatizar tareas manuales. Dónde obtener Este es un atributo derivado, típicamente basado en una regla que verifica si el ID de Usuario para un evento pertenece a una lista de usuarios de sistema o batch conocidos. Ejemplos truefalse | |||
| Fecha de Entrega Requerida RequiredByDate | La fecha en la que el solicitante necesita los bienes o servicios requeridos. | ||
| Descripción La Fecha Requerida, o Fecha de Entrega en SAP, especifica cuándo se necesitan los bienes o servicios en la línea de la solicitud de pedido. Esta fecha la establece el solicitante y sirve como objetivo para todo el proceso de adquisición. Este atributo es esencial para calcular el KPI de 'Tasa de Completitud de Solicitudes a Tiempo'. Al comparar la Fecha Requerida con la fecha de aprobación final o de creación de la OC, la organización puede medir su capacidad para cumplir los niveles de servicio internos y las necesidades del negocio. Analizar las solicitudes que no cumplen esta fecha puede resaltar retrasos sistémicos en el proceso de adquisición. Por qué es importante Define la fecha de finalización objetivo para una solicitud, permitiendo la medición de la entrega a tiempo y la adhesión a los niveles de servicio internos. Dónde obtener Esta es la Fecha de Entrega, encontrada a nivel de artículo en la tabla EBAN, campo LFDAT. Ejemplos 2023-11-152023-12-012024-01-20 | |||
| Hora de Finalización EndTime | La fecha y hora precisas en que se completó una actividad específica. | ||
| Descripción EndTime es el timestamp que registra cuándo finalizó una actividad. Si bien muchos eventos generados por el sistema son instantáneos (lo que significa que StartTime es igual a EndTime), las tareas humanas como las aprobaciones pueden tener un inicio y un final distintos. Este timestamp marca la finalización de ese trabajo. Tener un EndTime separado permite una medición más precisa del tiempo de procesamiento activo frente al tiempo de espera inactivo. Se utiliza junto con StartTime para calcular la métrica ProcessingTime. Este nivel de detalle mejora el análisis de la utilización de recursos y la eficiencia para las tareas manuales. Por qué es importante Marca la finalización de una actividad, permitiendo el cálculo del tiempo de procesamiento activo y proporcionando una vista más detallada de la duración de la tarea. Dónde obtener Esto se deriva de los registros de flujo de trabajo que pueden capturar tanto cuándo se creó un elemento de trabajo (StartTime) como cuándo se completó (EndTime). Ejemplos 2023-04-15T10:20:30Z2023-04-15T14:25:01Z2023-04-16T11:00:45Z | |||
| Moneda Currency | El código de moneda para el importe de la solicitud de pedido. | ||
| Descripción Este atributo especifica la moneda en la que se denomina el importe de la solicitud de pedido, por ejemplo, USD, EUR o JPY. Proporciona el contexto necesario para el atributo 'Importe de la Solicitud de Pedido', especialmente en organizaciones multinacionales que operan con múltiples monedas. Para un análisis financiero y una elaboración de informes precisos, es esencial considerar la moneda. Al agregar o comparar valores de solicitud, todos los importes deben convertirse a una moneda común para asegurar resultados significativos. Este atributo es un requisito previo para tales conversiones. Por qué es importante Proporciona contexto esencial para el Monto de la Requisición, permitiendo un análisis financiero preciso y comparaciones en entornos multi-moneda. Dónde obtener Esto se encuentra en la tabla EBAN, campo WAERS. Ejemplos USDEURGBP | |||
| Motivo de rechazo RejectionReason | La razón proporcionada cuando se rechaza una solicitud de pedido. | ||
| Descripción El Motivo de Rechazo explica por qué un aprobador decidió rechazar una solicitud de pedido. Los motivos pueden incluir excedencia de presupuesto, información incorrecta, incumplimiento de la política o duplicación de otra solicitud. Esta información proporciona un contexto crucial para comprender los fallos del proceso. El análisis de los motivos de rechazo ayuda a identificar las causas raíz de las ineficiencias del proceso y el retrabajo. Por ejemplo, si 'Centro de Costo Incorrecto' es un motivo común, señala la necesidad de una mejor capacitación de los usuarios o validación del sistema. Este atributo es la clave para el dashboard de Análisis de Rechazo de Solicitudes de Pedido y es vital para una mejora de proceso dirigida. Por qué es importante Proporciona la causa raíz de los fallos del proceso, permitiendo mejoras específicas para reducir el retrabajo y aumentar la tasa de "correcto a la primera" de las requisiciones. Dónde obtener Este a menudo no es un campo estándar. Puede capturarse en elementos de contenedor de flujo de trabajo, texto largo asociado a la solicitud o campos personalizados. Ejemplos Excede el presupuestoProveedor incorrectoSolicitud duplicada | |||
| Nivel de Urgencia UrgencyLevel | Una clasificación de la urgencia de la requisición, que puede influir en su prioridad de procesamiento. | ||
| Descripción El Nivel de Urgencia indica la prioridad de la solicitud de compra. Si bien no es un campo estándar dedicado, algunas organizaciones utilizan campos como el Número de Seguimiento de Requisitos para capturar esta información. Esto permite a los solicitantes señalar necesidades críticas que pueden requerir un procesamiento acelerado. Analizar el impacto de la urgencia es importante para evaluar si el proceso prioriza eficazmente las solicitudes críticas. El dashboard de Análisis de Impacto del Nivel de Urgencia utiliza este atributo para comparar los tiempos de ciclo y las tasas de aprobación para solicitudes urgentes frente a las estándar, ayudando a determinar si el manejo prioritario está funcionando según lo previsto. Por qué es importante Permite analizar cómo el rendimiento del proceso difiere para las solicitudes de alta prioridad, ayudando a validar si los elementos urgentes realmente se aceleran. Dónde obtener No existe un campo de urgencia estándar. Algunas empresas utilizan el Número de Seguimiento de Requisitos (EBAN-BEDAR) para este propósito. También puede ser un campo personalizado. Ejemplos AltoMedioBajo | |||
| Nombre del Paso de Aprobación ApprovalStepName | El nombre o la descripción específica de un paso de aprobación en el flujo de trabajo. | ||
| Descripción El Nombre del Paso de Aprobación proporciona una descripción legible por humanos de una etapa particular en el flujo de trabajo de aprobación, como 'Aprobación del Gerente' o 'Aprobación del Vicepresidente de Finanzas'. Esto es más descriptivo que una actividad genérica 'Paso de Aprobación Completado'. Este atributo es crítico para los dashboards de Tiempo de Ciclo del Paso de Aprobación y Análisis de Cuellos de Botella del Workflow. Permite una visión granular del proceso de aprobación, posibilitando precisar exactamente qué etapas de aprobación están causando los retrasos más significativos y dónde se acumula el trabajo. Este nivel de detalle es necesario para intervenciones específicas que agilicen la cadena de aprobación. Por qué es importante Proporciona detalles granulares sobre las etapas de aprobación, permitiendo la identificación precisa de cuellos de botella dentro del flujo de trabajo de aprobación multinivel. Dónde obtener Esta información se deriva de la descripción de la tarea del flujo de trabajo, que se puede encontrar vinculando el registro del flujo de trabajo con tablas de definición de tareas como T528T. Ejemplos Aprobación del GerenteAprobación del DirectorAprobación del VP de Finanzas | |||
| Purchase Order Number PurchaseOrderNumber | El número de la orden de compra que se creó a partir de la solicitud de pedido. | ||
| Descripción El Número de Orden de Compra es el identificador del documento de compra oficial creado a partir de una solicitud de pedido aprobada. La creación de una orden de compra es a menudo el resultado final y exitoso para una solicitud de pedido, lo que significa que la solicitud se ha convertido en un pedido formal con un proveedor. Este atributo es crucial para medir el KPI de Tiempo de Entrega de Solicitud a Orden de Compra y la tasa de conversión general. Vincula el proceso de solicitud con el proceso de adquisición posterior, permitiendo una visión más amplia y de extremo a extremo de todo el ciclo Purchase-to-Pay. Por qué es importante Vincula la requisición con el documento de adquisición posterior, permitiendo la medición de la tasa de conversión de requisición a PO y el plazo de entrega. Dónde obtener Se encuentra en la tabla EBAN, campo EBELN, una vez que se ha creado un PO a partir del elemento de requisición. Ejemplos 450001789045000178914500017892 | |||
| Source System SourceSystem | Identifica la instancia específica de SAP S/4HANA de la que se extrajeron los datos. | ||
| Descripción El atributo Sistema de Origen indica el sistema donde se generaron los datos del proceso. En organizaciones con múltiples instancias de SAP, como sistemas diferentes para desarrollo, aseguramiento de calidad y producción, o sistemas separados para diferentes regiones, este campo es crucial para la gobernanza y el contexto de los datos. Asegura que los datos de diferentes fuentes puedan distinguirse, evitando una agregación incorrecta y permitiendo un análisis específico del sistema. Es un atributo obligatorio para mantener la trazabilidad de los datos y garantizar la trazabilidad de los datos del proceso. Por qué es importante Proporciona contexto esencial para el origen y la gobernanza de los datos, especialmente en entornos con múltiples sistemas, asegurando la trazabilidad de los datos. Dónde obtener Este es típicamente el ID del Sistema SAP (SID), que se puede recuperar de variables del sistema o tablas de configuración. Ejemplos S4PECCS4H_PROD_01 | |||
| Tiempo de Procesamiento ProcessingTime | La duración del tiempo dedicado a una actividad específica. | ||
| Descripción Processing Time mide el tiempo que tomó completar una sola actividad. Se calcula como la diferencia entre la hora de finalización y la hora de inicio de un evento. Para muchos eventos en SAP, las horas de inicio y finalización son las mismas, lo que resulta en un tiempo de procesamiento de cero. Sin embargo, para los pasos de aprobación, puede representar el tiempo que un aprobador dedicó a trabajar en la tarea. Esta métrica calculada es útil para comprender el esfuerzo involucrado en los diferentes pasos del proceso. Puede ayudar a distinguir entre el tiempo que un caso está esperando (tiempo de espera) y el tiempo en que se está trabajando activamente (tiempo de procesamiento), proporcionando una visión más matizada del rendimiento del proceso. Por qué es importante Mide el tiempo de trabajo activo para una actividad, ayudando a distinguir entre el tiempo dedicado a trabajar y el tiempo dedicado a esperar, lo cual es clave para el análisis de recursos. Dónde obtener Este es un atributo calculado, típicamente derivado como EndTime menos StartTime para cada evento en el registro de eventos. Ejemplos PT15MPT2H30MP1D | |||
| Última actualización de datos LastDataUpdate | El timestamp que indica cuándo se actualizaron por última vez los datos de este registro desde el sistema de origen. | ||
| Descripción Este atributo registra la fecha y hora de la extracción o actualización de datos más reciente del sistema de origen. Es una pieza crítica de metadatos para comprender la actualidad de los datos que se analizan. Los analistas y usuarios de negocio confían en esta marca de tiempo para saber si los datos del proceso reflejan el estado más actual de las operaciones. En cualquier análisis de proceso, conocer la actualidad de los datos es fundamental para tomar decisiones informadas. Este atributo ayuda a gestionar las expectativas del usuario y asegura que las conclusiones se deriven de datos tan actualizados como sea necesario para el análisis específico. Por qué es importante Indica la frescura de los datos, lo cual es crucial para confiar en el análisis y tomar decisiones comerciales oportunas. Dónde obtener Este Ejemplos 2023-10-27T02:00:00Z2023-10-28T02:00:00Z | |||
De la Compra al Pago - Actividades de Requisición
| Actividad | Descripción | ||
|---|---|---|---|
| Paso de Aprobación Completado | Ocurre cuando un aprobador realiza una acción positiva sobre una requisición, completando un paso en el flujo de trabajo de aprobación multinivel. Esto se infiere de un cambio en el estado de liberación de la requisición. | ||
| Por qué es importante Esta actividad permite un análisis detallado del flujo de trabajo de aprobación, midiendo el tiempo que se tarda en cada paso individual. Ayuda a identificar aprobadores eficientes frente a cuellos de botella en el proceso. Dónde obtener Inferido de los documentos de cambio (CDHDR/CDPOS) para la tabla EBAN. Un cambio en el estado del código de liberación (por ejemplo, en el campo FRGZU) de no liberado a liberado para un código específico significa este evento. Capturar Rastree los cambios en los campos de estado de liberación en EBAN para cada código de liberación definido en la estrategia. Tipo de evento inferred | |||
| Pedido de Compra Creado | Indica que se ha generado un pedido de compra referenciando el elemento de requisición. Este es un evento explícito del sistema que vincula la requisición a un documento de adquisición posterior. | ||
| Por qué es importante Este es un hito importante y un resultado exitoso para el proceso de solicitud de pedido. El tiempo entre la aprobación de la solicitud de pedido y la creación de la OC es un KPI crítico para medir la eficiencia de las adquisiciones. Dónde obtener Registrado explícitamente cuando se crea un elemento de pedido de compra. El enlace se almacena en la tabla EKPO (Elemento de Pedido de Compra), que contiene el número de requisición de origen (BANFN) y el número de elemento (BNFPO). Capturar Una la tabla EKPO con EBAN utilizando el número y elemento de requisición. La fecha de creación del elemento de PO marca el evento. Tipo de evento explicit | |||
| Requisición Aprobada | Marca la aprobación final y completa de la requisición de compra, haciéndola elegible para su conversión en un pedido de compra. Este hito se infiere cuando el estado de liberación general alcanza su estado final aprobado. | ||
| Por qué es importante Este es un hito crítico de éxito y un punto final común para el análisis del tiempo de ciclo. Significa que la solicitud de pedido ha superado todas las verificaciones y está lista para que el departamento de adquisiciones actúe. Dónde obtener Inferido de un cambio de estado en la tabla EBAN, específicamente cuando el indicador de liberación general (FRGZU) o el estado de procesamiento (PROCSTAT) se actualiza a un valor final de 'Aprobado'. Capturar Identifique el timestamp cuando se aplica el código de liberación final o el estado general de la requisición cambia a 'Aprobada'. Tipo de evento inferred | |||
| Requisición Creada | Marca la creación inicial del documento de requisición de compra en el sistema. Este evento se captura explícitamente cuando un usuario guarda una nueva requisición por primera vez, registrando el timestamp de creación. | ||
| Por qué es importante Esta actividad sirve como el punto de partida principal para el análisis del ciclo de vida de la solicitud de pedido. Es esencial para medir el tiempo de ciclo de extremo a extremo, desde la identificación de la necesidad inicial hasta la aprobación final o la conversión en una orden de compra. Dónde obtener Este es un evento explícito capturado de la tabla EBAN, utilizando los campos de fecha de creación (ERDAT) y hora de creación (ERZEIT) para el número de solicitud de pedido específico (BANFN). Capturar Utilice los campos de marca de tiempo de creación (ERDAT, ERZEIT) de la tabla EBAN para cada solicitud de pedido (BANFN). Tipo de evento explicit | |||
| Solicitud de Pedido Cerrada | Indica que el elemento de requisición se considera completamente procesado y no se pueden crear más pedidos de compra a partir de él. Este estado se establece típicamente de forma automática una vez que la cantidad total ha sido pedida. | ||
| Por qué es importante Esta actividad representa la finalización exitosa y definitiva del ciclo de vida del artículo de la solicitud de pedido. Confirma que la necesidad comercial se ha traducido completamente en una orden de adquisición. Dónde obtener Inferido de la tabla EBAN. Esto ocurre cuando se establece el indicador 'Cerrado' (EBAKZ), lo que típicamente sucede cuando la cantidad pedida en los POs es igual a la cantidad de la requisición. Capturar Identifique el evento donde el indicador 'Cerrado' (EBAKZ) se establece en la tabla EBAN a través de documentos de cambio. Tipo de evento inferred | |||
| Solicitud de Pedido Rechazada | Representa el rechazo final de la requisición de compra por un aprobador, deteniendo el proceso. Esto se captura mediante una actualización de estado específica que indica el rechazo. | ||
| Por qué es importante Esta actividad es un punto final crítico de fallo. Analizar la frecuencia de rechazo, los motivos y los puntos en el proceso ayuda a identificar problemas con el cumplimiento de políticas, el presupuesto o la calidad de la solicitud. Dónde obtener Inferido de un cambio de estado en la tabla EBAN. El estado de procesamiento (PROCSTAT) o un indicador de liberación se establece a un valor que explícitamente significa 'Rechazado'. Capturar Identifique el timestamp cuando el estado general en EBAN se actualiza a un estado 'Rechazado' a través de documentos de cambio. Tipo de evento inferred | |||
| Aprobación Reiniciada | Representa un evento en el que se reinicia todo el flujo de trabajo de aprobación, a menudo debido a una modificación significativa de la requisición. Esto obliga a que el proceso de aprobación comience de nuevo desde el primer nivel. | ||
| Por qué es importante Esta actividad destaca un retrabajo significativo que impacta severamente el tiempo de ciclo. Identificar las causas de los reinicios de aprobación es clave para agilizar el proceso y reducir los retrasos. Dónde obtener Inferido de los documentos de cambio (CDHDR/CDPOS) en la tabla EBAN. Este evento se detecta cuando los campos de estado de liberación (como FRGKZ o FRGZU) se borran después de haber sido parcial o totalmente establecidos. Capturar Busque un cambio en el estado de liberación de un estado liberado a un estado no liberado dentro de los registros de cambio. Tipo de evento inferred | |||
| Fuente de Suministro Asignada | Representa la acción de un comprador de asignar un proveedor específico, contrato o registro de información a un elemento de requisición aprobado. Este es un paso clave en la preparación de la requisición para la creación del pedido de compra. | ||
| Por qué es importante Esta actividad cierra la brecha entre la aprobación y la realización del pedido. Medir el tiempo para asignar una fuente ayuda a identificar retrasos en la carga de trabajo del comprador y en la eficiencia de la adquisición. Dónde obtener Inferido de un valor que se introduce en los campos relacionados con la fuente de suministro en la tabla EBAN, como proveedor fijo (LIFNR), registro info (INFNR) o contrato (KONNR). Capturar Rastree el llenado de campos como LIFNR, INFNR o KONNR en la tabla EBAN a través de documentos de cambio. Tipo de evento inferred | |||
| Paso de Aprobación Iniciado | Indica que una requisición está esperando una acción de un aprobador o grupo de aprobación específico. Esto se infiere cuando el estado de la requisición indica que está pendiente de un código de liberación específico. | ||
| Por qué es importante Esta actividad es esencial para identificar cuellos de botella en la cadena de aprobación. Analizar la duración de este estado ayuda a identificar solicitudes de pedido estancadas y aprobadores sobrecargados. Dónde obtener Inferido de los campos de estado de liberación de la tabla EBAN (por ejemplo, FRGZU) y la configuración de la estrategia de liberación subyacente. El evento comienza cuando un código de liberación específico se convierte en el siguiente a procesar. Capturar Determine cuándo una requisición entra en un estado donde un código de liberación específico está pendiente de aprobación basado en los registros del flujo de trabajo o campos de estado. Tipo de evento inferred | |||
| Solicitud de Pedido Enviada para Aprobación | Representa el momento en que el solicitante presenta formalmente la requisición, activando el flujo de trabajo de aprobación. Esto se infiere típicamente cuando se determina la estrategia de liberación de la requisición y el estado cambia a 'En Aprobación'. | ||
| Por qué es importante Este es un hito crítico que inicia la cuenta atrás para los KPIs del tiempo de ciclo de aprobación. Analizar el tiempo entre la creación y el envío puede revelar retrasos en la fase de preparación de la solicitud de pedido. Dónde obtener Inferido de los documentos de cambio (CDHDR/CDPOS) para la tabla EBAN, específicamente cuando los campos de la estrategia de liberación (por ejemplo, FRGST) se rellenan o el estado general (PROCSTAT) cambia para reflejar un estado 'En Aprobación'. Capturar Identifique la primera entrada de documento de cambio que indica el inicio del flujo de trabajo de aprobación o un cambio de estado a 'En Aprobación'. Tipo de evento inferred | |||
| Solicitud de Pedido Modificada | Ocurre cuando un usuario modifica un campo clave en la requisición después de su creación inicial, como la cantidad, el precio o el material. Esta acción se registra explícitamente en el sistema de documentos de cambio de SAP. | ||
| Por qué es importante El seguimiento de las modificaciones es crucial para identificar los bucles de retrabajo y su impacto en los tiempos de ciclo. Una alta frecuencia de modificaciones sugiere problemas con la calidad de los datos o requisitos cambiantes, que son áreas clave para la mejora del proceso. Dónde obtener Registrado explícitamente en las tablas de documentos de cambio de SAP (CDHDR y CDPOS) para los cambios realizados en la tabla EBAN. Cada cambio en un campo rastreado crea una entrada. Capturar Extraiga eventos de cambio de CDHDR/CDPOS donde la clase de objeto sea BANF para requisiciones de compra. Tipo de evento explicit | |||
| Solicitud de Pedido Retirada | Ocurre cuando el solicitante original cancela o elimina la requisición antes de que sea procesada por completo. Esta es típicamente una acción explícita que establece un indicador de eliminación en el elemento de requisición. | ||
| Por qué es importante El seguimiento de las retiradas ayuda a comprender la volatilidad de la demanda y los motivos de cancelación. Representa un estado terminal para la solicitud de pedido, impidiendo un procesamiento posterior. Dónde obtener Capturado explícitamente cuando el campo del indicador de eliminación (LOEKZ) en la tabla EBAN se establece para un elemento de requisición. El cambio se registra en CDHDR/CDPOS. Capturar Identifique el evento donde el indicador de eliminación (LOEKZ) en la tabla EBAN se establece en 'L'. Tipo de evento explicit | |||
Guías de Extracción
Pasos
- Requisitos Previos: Asegúrese de tener un usuario con las autorizaciones adecuadas en SAP S/4HANA para acceder a las vistas CDS requeridas. Esto típicamente implica permisos para objetos como S_TABU_NAM y acceso a herramientas de visualización de datos.
- Identifique el Método de Acceso al Sistema: Determine cómo se conectará a la base de datos de SAP S/4HANA para ejecutar consultas SQL. Las herramientas comunes incluyen SAP HANA Studio, el IDE Eclipse con ADT (ABAP Development Tools), o clientes SQL de terceros como DBeaver que pueden conectarse a través del cliente de base de datos SAP HANA.
- Revise la Consulta SQL: Familiarícese con el script SQL proporcionado. Utiliza Expresiones de Tabla Comunes (CTEs) para recopilar datos de diferentes actividades y las une para crear un registro de eventos unificado.
- Personalice los Marcadores de Posición: Localice y reemplace los marcadores de posición en la consulta. Deberá establecer el rango de fechas (formato
[YYYY-MM-DD]) para el período de extracción y especificar las sociedades relevantes ([Your Company Code]) para su organización. - Ejecute la Consulta: Ejecute la consulta SQL completa y personalizada contra la base de datos de SAP S/4HANA. Dependiendo del volumen de datos y el rango de fechas seleccionado, esta consulta puede tardar algún tiempo en ejecutarse.
- Revisión Inicial de Datos: Una vez que la consulta finalice, revise las primeras filas de la salida. Verifique que todas las columnas, como PurchaseRequisitionId, ActivityName y EventTime, estén pobladas como se espera y que los formatos de datos sean correctos.
- Aborde la Transformación de Datos: La consulta proporcionada está diseñada para generar datos en un formato listo para process mining. Las funciones
CASTyCONCATse utilizan para asegurar la consistencia de los tipos de datos. No debería ser necesaria una transformación importante posterior a la ejecución. - Exporte el Registro de Eventos: Exporte todo el conjunto de resultados de su cliente SQL a un archivo CSV. Asegúrese de que la codificación del archivo esté configurada como UTF-8 para evitar problemas de caracteres.
- Prepare para la Carga: Antes de subir a una herramienta de process mining, verifique que el archivo CSV tenga los encabezados correctos (
PurchaseRequisitionId,ActivityName,EventTime, etc.) y que el formato de fecha y hora paraEventTimesea consistente y compatible con la plataforma de destino. - Cargue a ProcessMind: Cargue el archivo CSV final en su proyecto de ProcessMind. Configure el proyecto mapeando
PurchaseRequisitionIdcomo ID de Caso,ActivityNamecomo Actividad yEventTimecomo Timestamp.
Configuración
- Vistas CDS Centrales: La extracción utiliza principalmente
I_PurchaseRequisitionAPI01para los datos centrales de la requisición,I_ChangeDocumenteI_ChangeDocumentItempara el seguimiento de cambios y actualizaciones de estado, yI_PurchaseOrderItemAPI01para la vinculación con pedidos de compra. - Autorización: El usuario ejecutor necesita acceso de lectura a las vistas CDS mencionadas. Consulte a su equipo de seguridad de SAP para obtener los roles y autorizaciones necesarios.
- Filtrado por Rango de Fechas: Es fundamental aplicar un filtro de rango de fechas en la fecha de creación de la requisición (
CreationDate) para limitar el volumen de datos. Se recomienda un rango de 3 a 6 meses de datos para un análisis inicial. - Filtrado Organizacional: Filtre los datos por
CompanyCodepara asegurarse de que está analizando el proceso para la entidad comercial correcta. También puede considerar filtrar porPurchaseRequisitionTypepara enfocarse en procesos de adquisición específicos, por ejemplo, bienes estándar frente a servicios. - Configuración de Documentos de Cambio: La captura de actividades como 'Requisición Modificada' y varios pasos de aprobación depende de que el registro de documentos de cambio esté activo para los campos relevantes en su sistema SAP. Si faltan estos eventos, verifique la configuración del sistema para la tabla EBAN.
- Rendimiento: Para sistemas muy grandes con millones de requisiciones, ejecutar esta consulta durante un período prolongado puede afectar el rendimiento del sistema. Considere ejecutarla durante las horas de menor actividad o en un entorno de no producción con datos recién actualizados.
a Consulta de ejemplo sql
WITH REQUISITIONS AS (
SELECT
PurchaseRequisition,
PurchaseRequisitionType,
PurReqnDescription,
CreatedByUser,
CreationDate,
CAST(CONCAT(CreationDate, 'T', LPAD(CreationTime, 6, '0')) AS TIMESTAMP) AS CreationTimestamp,
SourceOfSupplyIsAssigned
FROM I_PurchaseRequisitionAPI01
WHERE CreationDate BETWEEN '[YYYY-MM-DD]' AND '[YYYY-MM-DD]'
AND CompanyCode IN ('[Your Company Code]')
),
CHANGE_DOCS AS (
SELECT
ObjectValue AS PurchaseRequisition,
UserName,
CAST(CONCAT(CreationDate, 'T', LPAD(CreationTime, 6, '0')) AS TIMESTAMP) AS ChangeTimestamp,
FieldName,
ValueNew,
ValueOld
FROM I_ChangeDocument AS H
JOIN I_ChangeDocumentItem AS I
ON H.ChangeDocument = I.ChangeDocument
WHERE H.Objectclass = 'EINKBELEG'
AND H.CreationDate BETWEEN '[YYYY-MM-DD]' AND '[YYYY-MM-DD]'
)
-- 1. Requisition Created
SELECT
R.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Created' AS "ActivityName",
R.CreationTimestamp AS "EventTime",
R.CreatedByUser AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM REQUISITIONS AS R
JOIN I_PurchaseRequisitionItemAPI01 AS I
ON R.PurchaseRequisition = I.PurchaseRequisition
UNION ALL
-- 2. Requisition Submitted For Approval & 5. Approval Step Started
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
CASE
WHEN C.ValueOld = ''
THEN 'Requisition Submitted For Approval'
ELSE 'Approval Step Started'
END AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
R.CreatedByUser AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R
ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I
ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGZU' AND C.ValueNew != ''
UNION ALL
-- 3. Requisition Amended
SELECT DISTINCT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Amended' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName IN ('MENGE', 'PREIS', 'MATNR', 'LIFNR', 'INFNR')
AND C.ChangeTimestamp > R.CreationTimestamp
UNION ALL
-- 4. Approval Reset
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Approval Reset' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGZU' AND C.ValueOld != '' AND C.ValueNew = ''
UNION ALL
-- 6. Approval Step Completed
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Approval Step Completed' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
NULL AS "UserId",
C.UserName AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGZU' AND C.ValueNew IN ('1', '2', '3', '4', '5', '6', '7') -- Adjust release codes as per your config
UNION ALL
-- 7. Requisition Approved
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Approved' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
NULL AS "UserId",
C.UserName AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGKE' AND C.ValueNew = '2' -- Final release indicator '2' is common for approved
UNION ALL
-- 8. Requisition Rejected
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Rejected' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
NULL AS "UserId",
C.UserName AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGZU' AND C.ValueNew = 'B' -- 'B' for Blocked/Rejected is a common setting
UNION ALL
-- 9. Requisition Withdrawn
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Withdrawn' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'LOEKZ' AND C.ValueNew = 'X'
UNION ALL
-- 10. Source of Supply Assigned
SELECT DISTINCT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Source of Supply Assigned' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName IN ('LIFNR', 'INFNR') AND C.ValueNew != ''
AND C.ChangeTimestamp > R.CreationTimestamp
UNION ALL
-- 11. Purchase Order Created
SELECT DISTINCT
I.PurchaseRequisition AS "PurchaseRequisitionId",
'Purchase Order Created' AS "ActivityName",
CAST(CONCAT(H.PurchaseOrderDate, 'T', LPAD(H.CreationTime, 6, '0')) AS TIMESTAMP) AS "EventTime",
H.CreatedByUser AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.OrderPriceUnit * I.OrderQuantity AS "RequisitionAmount",
'PO Created' AS "RequisitionStatus"
FROM I_PurchaseOrderItemAPI01 AS I
JOIN I_PurchaseOrderAPI01 AS H
ON I.PurchaseOrder = H.PurchaseOrder
JOIN REQUISITIONS AS R
ON I.PurchaseRequisition = R.PurchaseRequisition
WHERE I.PurchaseRequisition IS NOT NULL AND I.PurchaseRequisition != ''
UNION ALL
-- 12. Requisition Closed
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Closed' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'EBAKZ' AND C.ValueNew = 'X' Pasos
- Requisitos Previos: Asegúrese de tener un usuario con las autorizaciones adecuadas en SAP S/4HANA para acceder a las vistas CDS requeridas. Esto típicamente implica permisos para objetos como S_TABU_NAM y acceso a herramientas de visualización de datos.
- Identifique el Método de Acceso al Sistema: Determine cómo se conectará a la base de datos de SAP S/4HANA para ejecutar consultas SQL. Las herramientas comunes incluyen SAP HANA Studio, el IDE Eclipse con ADT (ABAP Development Tools), o clientes SQL de terceros como DBeaver que pueden conectarse a través del cliente de base de datos SAP HANA.
- Revise la Consulta SQL: Familiarícese con el script SQL proporcionado. Utiliza Expresiones de Tabla Comunes (CTEs) para recopilar datos de diferentes actividades y las une para crear un registro de eventos unificado.
- Personalice los Marcadores de Posición: Localice y reemplace los marcadores de posición en la consulta. Deberá establecer el rango de fechas (formato
[YYYY-MM-DD]) para el período de extracción y especificar las sociedades relevantes ([Your Company Code]) para su organización. - Ejecute la Consulta: Ejecute la consulta SQL completa y personalizada contra la base de datos de SAP S/4HANA. Dependiendo del volumen de datos y el rango de fechas seleccionado, esta consulta puede tardar algún tiempo en ejecutarse.
- Revisión Inicial de Datos: Una vez que la consulta finalice, revise las primeras filas de la salida. Verifique que todas las columnas, como PurchaseRequisitionId, ActivityName y EventTime, estén pobladas como se espera y que los formatos de datos sean correctos.
- Aborde la Transformación de Datos: La consulta proporcionada está diseñada para generar datos en un formato listo para process mining. Las funciones
CASTyCONCATse utilizan para asegurar la consistencia de los tipos de datos. No debería ser necesaria una transformación importante posterior a la ejecución. - Exporte el Registro de Eventos: Exporte todo el conjunto de resultados de su cliente SQL a un archivo CSV. Asegúrese de que la codificación del archivo esté configurada como UTF-8 para evitar problemas de caracteres.
- Prepare para la Carga: Antes de subir a una herramienta de process mining, verifique que el archivo CSV tenga los encabezados correctos (
PurchaseRequisitionId,ActivityName,EventTime, etc.) y que el formato de fecha y hora paraEventTimesea consistente y compatible con la plataforma de destino. - Cargue a ProcessMind: Cargue el archivo CSV final en su proyecto de ProcessMind. Configure el proyecto mapeando
PurchaseRequisitionIdcomo ID de Caso,ActivityNamecomo Actividad yEventTimecomo Timestamp.
Configuración
- Vistas CDS Centrales: La extracción utiliza principalmente
I_PurchaseRequisitionAPI01para los datos centrales de la requisición,I_ChangeDocumenteI_ChangeDocumentItempara el seguimiento de cambios y actualizaciones de estado, yI_PurchaseOrderItemAPI01para la vinculación con pedidos de compra. - Autorización: El usuario ejecutor necesita acceso de lectura a las vistas CDS mencionadas. Consulte a su equipo de seguridad de SAP para obtener los roles y autorizaciones necesarios.
- Filtrado por Rango de Fechas: Es fundamental aplicar un filtro de rango de fechas en la fecha de creación de la requisición (
CreationDate) para limitar el volumen de datos. Se recomienda un rango de 3 a 6 meses de datos para un análisis inicial. - Filtrado Organizacional: Filtre los datos por
CompanyCodepara asegurarse de que está analizando el proceso para la entidad comercial correcta. También puede considerar filtrar porPurchaseRequisitionTypepara enfocarse en procesos de adquisición específicos, por ejemplo, bienes estándar frente a servicios. - Configuración de Documentos de Cambio: La captura de actividades como 'Requisición Modificada' y varios pasos de aprobación depende de que el registro de documentos de cambio esté activo para los campos relevantes en su sistema SAP. Si faltan estos eventos, verifique la configuración del sistema para la tabla EBAN.
- Rendimiento: Para sistemas muy grandes con millones de requisiciones, ejecutar esta consulta durante un período prolongado puede afectar el rendimiento del sistema. Considere ejecutarla durante las horas de menor actividad o en un entorno de no producción con datos recién actualizados.
a Consulta de ejemplo sql
WITH REQUISITIONS AS (
SELECT
PurchaseRequisition,
PurchaseRequisitionType,
PurReqnDescription,
CreatedByUser,
CreationDate,
CAST(CONCAT(CreationDate, 'T', LPAD(CreationTime, 6, '0')) AS TIMESTAMP) AS CreationTimestamp,
SourceOfSupplyIsAssigned
FROM I_PurchaseRequisitionAPI01
WHERE CreationDate BETWEEN '[YYYY-MM-DD]' AND '[YYYY-MM-DD]'
AND CompanyCode IN ('[Your Company Code]')
),
CHANGE_DOCS AS (
SELECT
ObjectValue AS PurchaseRequisition,
UserName,
CAST(CONCAT(CreationDate, 'T', LPAD(CreationTime, 6, '0')) AS TIMESTAMP) AS ChangeTimestamp,
FieldName,
ValueNew,
ValueOld
FROM I_ChangeDocument AS H
JOIN I_ChangeDocumentItem AS I
ON H.ChangeDocument = I.ChangeDocument
WHERE H.Objectclass = 'EINKBELEG'
AND H.CreationDate BETWEEN '[YYYY-MM-DD]' AND '[YYYY-MM-DD]'
)
-- 1. Requisition Created
SELECT
R.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Created' AS "ActivityName",
R.CreationTimestamp AS "EventTime",
R.CreatedByUser AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM REQUISITIONS AS R
JOIN I_PurchaseRequisitionItemAPI01 AS I
ON R.PurchaseRequisition = I.PurchaseRequisition
UNION ALL
-- 2. Requisition Submitted For Approval & 5. Approval Step Started
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
CASE
WHEN C.ValueOld = ''
THEN 'Requisition Submitted For Approval'
ELSE 'Approval Step Started'
END AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
R.CreatedByUser AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R
ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I
ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGZU' AND C.ValueNew != ''
UNION ALL
-- 3. Requisition Amended
SELECT DISTINCT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Amended' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName IN ('MENGE', 'PREIS', 'MATNR', 'LIFNR', 'INFNR')
AND C.ChangeTimestamp > R.CreationTimestamp
UNION ALL
-- 4. Approval Reset
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Approval Reset' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGZU' AND C.ValueOld != '' AND C.ValueNew = ''
UNION ALL
-- 6. Approval Step Completed
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Approval Step Completed' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
NULL AS "UserId",
C.UserName AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGZU' AND C.ValueNew IN ('1', '2', '3', '4', '5', '6', '7') -- Adjust release codes as per your config
UNION ALL
-- 7. Requisition Approved
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Approved' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
NULL AS "UserId",
C.UserName AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGKE' AND C.ValueNew = '2' -- Final release indicator '2' is common for approved
UNION ALL
-- 8. Requisition Rejected
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Rejected' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
NULL AS "UserId",
C.UserName AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'FRGZU' AND C.ValueNew = 'B' -- 'B' for Blocked/Rejected is a common setting
UNION ALL
-- 9. Requisition Withdrawn
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Withdrawn' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'LOEKZ' AND C.ValueNew = 'X'
UNION ALL
-- 10. Source of Supply Assigned
SELECT DISTINCT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Source of Supply Assigned' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName IN ('LIFNR', 'INFNR') AND C.ValueNew != ''
AND C.ChangeTimestamp > R.CreationTimestamp
UNION ALL
-- 11. Purchase Order Created
SELECT DISTINCT
I.PurchaseRequisition AS "PurchaseRequisitionId",
'Purchase Order Created' AS "ActivityName",
CAST(CONCAT(H.PurchaseOrderDate, 'T', LPAD(H.CreationTime, 6, '0')) AS TIMESTAMP) AS "EventTime",
H.CreatedByUser AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.OrderPriceUnit * I.OrderQuantity AS "RequisitionAmount",
'PO Created' AS "RequisitionStatus"
FROM I_PurchaseOrderItemAPI01 AS I
JOIN I_PurchaseOrderAPI01 AS H
ON I.PurchaseOrder = H.PurchaseOrder
JOIN REQUISITIONS AS R
ON I.PurchaseRequisition = R.PurchaseRequisition
WHERE I.PurchaseRequisition IS NOT NULL AND I.PurchaseRequisition != ''
UNION ALL
-- 12. Requisition Closed
SELECT
C.PurchaseRequisition AS "PurchaseRequisitionId",
'Requisition Closed' AS "ActivityName",
C.ChangeTimestamp AS "EventTime",
C.UserName AS "UserId",
NULL AS "ApproverId",
R.PurchaseRequisitionType AS "RequisitionType",
I.CostCenter AS "Department",
I.RequisitionPrice * I.RequestedQuantity AS "RequisitionAmount",
I.PurReqnProcessingStatus AS "RequisitionStatus"
FROM CHANGE_DOCS AS C
JOIN REQUISITIONS AS R ON C.PurchaseRequisition = R.PurchaseRequisition
JOIN I_PurchaseRequisitionItemAPI01 AS I ON C.PurchaseRequisition = I.PurchaseRequisition
WHERE C.FieldName = 'EBAKZ' AND C.ValueNew = 'X'