Su plantilla de datos de cuentas por cobrar
Su plantilla de datos de cuentas por cobrar
- Conjunto completo de atributos recomendados para el análisis de cuentas por cobrar
- Actividades e hitos esenciales del proceso que debe supervisar
- Guía específica de extracción para Oracle Fusion Financials
Atributos de cuentas por cobrar
| Nombre | Descripción | ||
|---|---|---|---|
| Marca de tiempo del evento EventStartDateTime | La fecha y hora específicas en las que se produjo una actividad. | ||
| Descripción Este atributo registra el momento exacto en que tuvo lugar una actividad dentro del sistema. Se utiliza para ordenar cronológicamente los eventos y constituye la base de todos los cálculos temporales de Process Mining. Al analizar las marcas de tiempo, la empresa puede calcular los tiempos de ciclo entre actividades, como la duración entre la creación y el envío de una factura. Es fundamental para medir KPI como los días de ventas pendientes de cobro y detectar patrones temporales en el comportamiento de pago. Por qué es importante Es fundamental para calcular duraciones, plazos y tiempos de ciclo. Dónde obtenerlo Oracle Fusion Financials: columnas CREATION_DATE o LAST_UPDATE_DATE en varias tablas de transacciones. Ejemplos 2023-10-15T08:30:00Z2023-10-16T14:45:12Z2023-11-01T09:00:00Z | |||
| Nombre de la actividad ActivityName | El evento o la acción específicos realizados en el proceso de cuentas por cobrar. | ||
| Descripción Este atributo describe el paso realizado en el proceso, como crear una factura, registrar un pago o abrir una disputa. Define el flujo del mapa de procesos y permite visualizar la secuencia de eventos. Los analistas utilizan este campo para identificar variantes del proceso, bucles y cuellos de botella. Es esencial para determinar el cumplimiento de los procedimientos operativos estándar y calcular la frecuencia de eventos específicos, como reprocesamientos o intervenciones manuales. Por qué es importante Es necesario para definir el flujo del proceso y visualizar la secuencia de eventos. Dónde obtenerlo Se deriva de tablas del historial de transacciones (por ejemplo, AR_PAYMENT_SCHEDULES_ALL, RA_CUST_TRX_LINE_GL_DIST_ALL). Ejemplos Factura creadaRecordatorio de pago enviadoPago parcial registradoCaso de disputa abierto | |||
| Número de factura InvoiceNumber | El identificador único asignado a la transacción de factura en Oracle Fusion. | ||
| Descripción Este atributo actúa como clave única para identificar las obligaciones financieras en el módulo de cuentas por cobrar. Vincula todas las actividades posteriores, como ajustes, disputas y pagos, con la transacción de venta original. En el análisis de Process Mining, este atributo funciona como Case ID. Permite a los analistas seguir el ciclo de vida completo de una cuenta por cobrar, desde su creación hasta su liquidación total o cancelación contable, y facilita el cálculo de los tiempos de ciclo y las variantes del proceso. Por qué es importante Es la unidad fundamental de análisis para seguir el ciclo de vida de crédito a efectivo. Dónde obtenerlo Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.TRX_NUMBER Ejemplos INV-2023-00110056789AR-99887755002211 | |||
| Sistema de origen SourceSystem | El sistema de registro en el que se originaron los datos. | ||
| Descripción Este atributo identifica el entorno de software del que se extrajeron los datos del proceso. En este contexto, confirma que los datos proceden del entorno Oracle Fusion Financials. Aunque suele ser un valor estático en una extracción de un solo sistema, resulta fundamental al combinar datos de varias instancias de ERP o integrar herramientas de cobro de terceros. Garantiza la trazabilidad y el linaje de los datos en entornos de procesos con varios sistemas. Por qué es importante Garantiza el linaje de los datos y distingue entre distintas instancias de ERP. Dónde obtenerlo Se codifica durante la extracción o se configura en la canalización de datos. Ejemplos Oracle Fusion FinancialsOracle Cloud ERP - EE. UU.Oracle Cloud ERP - EMEA | |||
| Última actualización de datos LastDataUpdate | La marca de tiempo de la última actualización de los datos en la herramienta de Process Mining. | ||
| Descripción Este atributo indica cuándo se sincronizó por última vez el conjunto de datos con el sistema Oracle de origen. Ayuda a comprender la actualidad del análisis y a determinar si las conclusiones reflejan el estado actual de las operaciones. Supervisar este campo es importante para garantizar que los Dashboards muestren información actualizada, especialmente al supervisar operativamente las disputas abiertas o el efectivo no aplicado. Por qué es importante Proporciona contexto sobre la actualidad y fiabilidad de los datos. Dónde obtenerlo Hora del sistema en el momento de la extracción. Ejemplos 2023-11-15T23:59:59Z2023-11-16T00:00:00Z | |||
| Es automatizado IsAutomated | Indicador que señala si la actividad se realizó sin intervención humana. | ||
| Descripción Este atributo booleano determina si una actividad fue ejecutada por un proceso del sistema (por ejemplo, AutoInvoice o AutoLockbox) o por un usuario humano. Es el principal impulsor del KPI «Tasa de automatización de la aplicación de efectivo». Al realizar un seguimiento a lo largo del tiempo de la proporción de actividades automatizadas frente a las manuales, la organización puede validar el éxito de las iniciativas de transformación digital e identificar los pasos del proceso que siguen siendo manuales. Por qué es importante Métrica principal para medir la transformación digital y la eficiencia. Dónde obtenerlo Lógica calculada basada en UserName (por ejemplo, si User == 'BATCH_USER', entonces true). Ejemplos truefalse | |||
| Fecha de vencimiento DueDate | La fecha en la que se espera recibir el pago. | ||
| Descripción Este atributo es la fecha límite de pago calculada a partir de la fecha de factura y las condiciones de pago. Sirve como referencia para determinar si un pago se ha retrasado. Se utiliza en el KPI «Variación del momento de los recordatorios de cobro» para medir con cuánta anticipación actúa el equipo respecto a la fecha límite. También es el umbral para clasificar las cuentas por cobrar como vigentes o vencidas en los informes de antigüedad de saldos. Por qué es importante Es la referencia principal para determinar la morosidad y el rendimiento de los pagos puntuales. Dónde obtenerlo Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DUE_DATE Ejemplos 2023-11-302023-12-152024-01-01 | |||
| Importe de la factura InvoiceAmount | El valor monetario total de la factura. | ||
| Descripción Este atributo representa el importe original pendiente de la factura. Actúa como factor principal de ponderación en muchos análisis y permite priorizar las transacciones de alto valor frente a las de gran volumen y bajo valor. En el contexto de la vista «Créditos no aplicados y fugas», este campo ayuda a cuantificar el impacto financiero de los elementos no resueltos. También se utiliza para calcular el promedio ponderado de los días de ventas pendientes de cobro, lo que proporciona una visión más orientada al impacto financiero de la eficiencia del proceso. Por qué es importante Aporta peso financiero al análisis y permite priorizar en función del valor. Dónde obtenerlo Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.AMOUNT_DUE_ORIGINAL Ejemplos 1500.00250.5010000.00 | |||
| Nombre de usuario UserName | El usuario del sistema que realizó la actividad. | ||
| Descripción Este atributo registra el ID de inicio de sesión o el nombre de la persona que ejecutó la actividad específica (por ejemplo, registrar la factura o conciliar el extracto bancario). Se corresponde con el campo genérico «Usuario». Estos datos son fundamentales para las auditorías de cumplimiento y para el panel «Productividad de los gestores de cobro». Permiten separar las acciones realizadas por máquinas (a menudo por un usuario «System») de las acciones humanas, lo que facilita el análisis de la automatización. Por qué es importante Permite realizar un seguimiento del rendimiento a nivel de usuario y analizar la segregación de funciones. Dónde obtenerlo Oracle Fusion Financials: columnas CREATED_BY o LAST_UPDATED_BY vinculadas a las tablas de usuarios. Ejemplos sysadminjsmithfinance_batch_job | |||
| Nombre del cliente CustomerName | El nombre de la entidad facturada en la transacción. | ||
| Descripción Este atributo identifica al cliente asociado a la factura. Es fundamental para analizar el comportamiento de pago, la frecuencia de las disputas y la eficacia del cobro a nivel de cliente. Los analistas utilizan este campo para detectar clientes específicos que pagan tarde con frecuencia o presentan disputas. Este insight respalda el panel «Análisis del comportamiento de pago del cliente» y ayuda a adaptar las condiciones de crédito y las estrategias de cobro al perfil de cada cliente. Por qué es importante Esencial para el análisis centrado en el cliente y la elaboración de perfiles de riesgo. Dónde obtenerlo Oracle Fusion Financials: HZ_PARTIES.PARTY_NAME vinculado mediante BILL_TO_CUSTOMER_ID. Ejemplos Acme CorpGlobex CorporationSoylent Corp | |||
| Nombre del gestor de cobros CollectorName | El nombre del agente o recurso de cobro asignado a la factura. | ||
| Descripción Este atributo identifica a la persona empleada o integrante del equipo responsable de cobrar el pago de la factura. Es la dimensión clave del panel «Productividad de los gestores de cobro». Los datos de este campo permiten medir la productividad por agente, identificar necesidades de formación y equilibrar las cargas de trabajo. Fomentan la responsabilidad y ayudan a estandarizar los esfuerzos de cobro en todo el equipo financiero. Por qué es importante Es clave para analizar el rendimiento de los recursos y equilibrar la carga de trabajo. Dónde obtenerlo Oracle Fusion Financials: AR_COLLECTORS.NAME asociado al perfil del cliente. Ejemplos John SmithEquipo de cobros AJane Doe | |||
| Segmento de cliente CustomerSegment | La clasificación del cliente según su tamaño, sector o riesgo. | ||
| Descripción Este atributo clasifica a los clientes en grupos como estratégicos, corporativos, pymes o de alto riesgo. A menudo se deriva de la clase o del perfil de cliente en Oracle Fusion. Este atributo permite analizar las variantes del proceso en distintos segmentos de mercado. Por ejemplo, ayuda a comprobar si los clientes estratégicos reciben el servicio personalizado previsto o si los clientes de alto riesgo se supervisan de cerca para garantizar el cumplimiento de los pagos. Por qué es importante Permite analizar de forma segmentada las estrategias de cobro y el riesgo. Dónde obtenerlo Oracle Fusion Financials: HZ_CUSTOMER_PROFILES.PROFILE_CLASS_ID. Ejemplos EmpresasPequeñas empresasGobiernoAlto riesgo | |||
| Tipo de transacción TransactionType | La clasificación del documento de cuenta por cobrar (factura, nota de crédito o nota de débito). | ||
| Descripción Este atributo distingue entre distintos tipos de documentos financieros. Los valores habituales incluyen factura, nota de crédito y nota de débito. Esta distinción es fundamental para el panel «Volumen y reprocesamiento de notas de crédito». Al filtrar por este atributo, los analistas pueden aislar los bucles de reprocesamiento causados por notas de crédito o centrarse específicamente en el flujo principal de facturación. Ayuda a comprender la composición de la carga de trabajo de cuentas por cobrar. Por qué es importante Distingue las facturas estándar de los ajustes y las correcciones. Dónde obtenerlo Oracle Fusion Financials: RA_CUST_TRX_TYPES_ALL.NAME Ejemplos FacturaNota de créditoNota de débitoContracargo | |||
| Unidad de negocio BusinessUnit | La entidad operativa de la organización responsable de la factura. | ||
| Descripción Este atributo se corresponde con el ID de organización en Oracle Fusion y representa la unidad de negocio o división específica propietaria de la cuenta por cobrar. Permite segmentar el rendimiento del proceso entre distintas partes de la empresa. Comparar KPI como el tiempo de resolución de disputas o el DSO entre unidades de negocio ayuda a la dirección a identificar equipos de alto rendimiento y estandarizar las mejores prácticas. También pone de relieve las unidades que pueden necesitar recursos adicionales o una reingeniería del proceso. Por qué es importante Dimensión clave para la comparación del rendimiento y la evaluación comparativa organizativa. Dónde obtenerlo Oracle Fusion Financials: HR_ORGANIZATION_UNITS.NAME vinculado mediante ORG_ID. Ejemplos Ventas del este de EE. UU.Servicios de EMEAManufactura de APAC | |||
| Código de divisa CurrencyCode | La divisa en la que se expresa el importe de la factura. | ||
| Descripción Este atributo especifica la divisa (por ejemplo, USD o EUR) de los importes financieros. Es necesario para interpretar correctamente el importe de la factura y realizar conversiones si se requiere una divisa global de reporting. En organizaciones globales, este atributo ayuda a analizar el rendimiento del cobro en distintas regiones económicas y permite a los equipos financieros separar el impacto de las fluctuaciones cambiarias del rendimiento operativo del proceso. Por qué es importante Proporciona contexto a los valores financieros en entornos multidivisa. Dónde obtenerlo Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.INVOICE_CURRENCY_CODE Ejemplos USDEURGBPJPY | |||
| Condiciones de pago PaymentTerms | Las condiciones acordadas para el plazo de pago (por ejemplo, Net 30). | ||
| Descripción Este atributo define el plazo de pago acordado contractualmente. Se utiliza para calcular la fecha de vencimiento y es esencial para el panel «Eficacia de la estrategia de cobro». Las variaciones en las condiciones de pago entre clientes pueden explicar las diferencias en el DSO. Este atributo permite a los analistas normalizar los datos de rendimiento y evitar que un cliente con condiciones Net 60 se marque injustamente como «pagador lento» frente a otro con condiciones Net 30. Por qué es importante Pone la velocidad de pago en contexto frente a los acuerdos contractuales. Dónde obtenerlo Oracle Fusion Financials: RA_TERMS.NAME Ejemplos Neto 30Inmediato2/10, neto 30Neto 60 | |||
| Es reprocesamiento IsRework | Indicador que señala si la factura pasó por bucles de corrección o disputa. | ||
| Descripción Este atributo booleano identifica si una factura ha experimentado actividades asociadas a la corrección de errores, como «Nota de crédito emitida» o «Factura ajustada». Es compatible con el panel «Volumen y reprocesamiento de notas de crédito». Identificar los casos reprocesados ayuda a separar los procesos que siguen la ruta habitual de los problemáticos. Una tasa elevada de reprocesamiento es un indicador temprano de problemas de calidad de los datos de origen en los datos maestros o en los procesos de introducción de pedidos de venta. Por qué es importante Identifica el desperdicio y la ineficiencia en el flujo del proceso. Dónde obtenerlo Calculado: True si el caso contiene 'Credit Memo Issued' o 'Dispute Case Opened'. Ejemplos truefalse | |||
| Fecha límite para el descuento DiscountEligibilityDate | La última fecha en la que el cliente puede pagar para recibir un descuento por pronto pago. | ||
| Descripción Este atributo marca la fecha límite para que el cliente aproveche condiciones como «2/10 Net 30» (un descuento del 2 % si paga en un plazo de 10 días). Es necesario para el panel «Análisis de descuentos por pronto pago». Analizar los pagos con respecto a esta fecha revela la «tasa de aprovechamiento del descuento por pronto pago». Ayuda a la empresa a comprender si sus estrategias de descuento aceleran eficazmente el flujo de efectivo o si los clientes las ignoran. Por qué es importante Permite analizar la eficacia de los incentivos y la aceleración del flujo de efectivo. Dónde obtenerlo Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DISCOUNT_DATE Ejemplos 2023-11-102023-12-05 | |||
| Motivo de la disputa DisputeReason | La categoría o el código de motivo asignado al abrir una disputa. | ||
| Descripción Este atributo registra la justificación proporcionada cuando se produce la actividad «Disputa abierta». Entre los valores habituales pueden estar «Error de precio», «Diferencia de cantidad» o «Mercancía dañada». Analizar este atributo en el panel «Ciclo de vida y cuellos de botella de las disputas» ayuda a identificar las causas raíz de los retrasos en los pagos. Si «Error de precio» aparece con frecuencia, la empresa sabe que debe investigar el proceso de elaboración de ofertas de ventas anterior, en lugar de centrarse únicamente en el proceso de cobro. Por qué es importante Es fundamental para analizar las causas raíz de los retrasos en los pagos y los reprocesamientos. Dónde obtenerlo Oracle Fusion Financials: RA_CM_REQUESTS.REASON_CODE o AR_DISPUTE_HISTORY. Ejemplos Disputa por el precioError fiscalMercancía no recibidaFacturación duplicada | |||
| Origen de creación CreationSource | El origen de la factura, que indica si se introdujo manualmente o se importó. | ||
| Descripción Este atributo muestra cómo entró la factura en el sistema Oracle, por ejemplo, mediante «Entrada manual», «AutoInvoice» o fuentes externas específicas. Actúa como indicador de la asignación genérica «Canal». Es fundamental para el «Monitor de automatización de la aplicación de efectivo». Ayuda a distinguir entre procesos totalmente digitales y aquellos que requieren configuración manual. Un volumen elevado de «Entrada manual» puede indicar una falta de integración con sistemas anteriores o deficiencias del sistema. Por qué es importante Identifica el nivel de automatización de los procesos anteriores y el origen de los datos. Dónde obtenerlo Oracle Fusion Financials: RA_BATCH_SOURCES_ALL.NAME Ejemplos AutoInvoiceManualImplementación de proyectosGestión de pedidos | |||
| Región Region | La región geográfica asociada a la unidad de negocio o al cliente. | ||
| Descripción Este atributo asigna la transacción a un área geográfica más amplia, como Norteamérica, EMEA o APAC. Es útil para los informes ejecutivos de alto nivel y para el panel «Tendencias del DSO y del ciclo de efectivo». El análisis regional ayuda a tener en cuenta las diferencias culturales en el comportamiento de pago (por ejemplo, condiciones de pago estándar más largas en el sur de Europa que en Estados Unidos) y garantiza que los KPI globales se interpreten en el contexto local adecuado. Por qué es importante Proporciona una segmentación geográfica de alto nivel para los informes globales. Dónde obtenerlo Oracle Fusion Financials: se deriva de la unidad de negocio o de la dirección del cliente. Ejemplos NorteaméricaEMEAAPACLATAM | |||
Actividades de cuentas por cobrar
| Actividad | Descripción | ||
|---|---|---|---|
| Factura completada | Indica que el proceso de creación de la factura ha finalizado y que la factura está lista para procesarse, imprimirse y contabilizarse. Esto ocurre cuando el estado de la transacción cambia de incompleto a completo. | ||
| Por qué es importante Distingue entre el tiempo de preparación y el tiempo de procesamiento. Las demoras en este punto indican cuellos de botella en el proceso interno de generación de facturas. Dónde obtenerlo Se identifica cuando COMPLETE_FLAG en RA_CUSTOMER_TRX_ALL cambia a 'Y'. Recopilar Comparar el campo de estado antes y después Tipo de evento inferred | |||
| Factura creada | Esta actividad marca la creación inicial del registro de la factura en el sistema. Captura la marca de tiempo en la que el encabezado de la transacción se guarda por primera vez en las tablas de Oracle Receivables. | ||
| Por qué es importante Establece el inicio del ciclo de vida del proceso y la base para los cálculos de antigüedad. Es esencial para calcular el tiempo total del ciclo y el plazo hasta el envío. Dónde obtenerlo Se obtiene de la tabla RA_CUSTOMER_TRX_ALL mediante la columna CREATION_DATE o TRX_DATE. Recopilar Se registra cuando se inserta la fila de la transacción Tipo de evento explicit | |||
| Factura enviada | Representa la transmisión de la factura al cliente mediante impresión, correo electrónico o XML. Marca la transferencia de responsabilidad de la organización al cliente. | ||
| Por qué es importante Es fundamental para medir el rendimiento del envío de facturas. La diferencia entre la creación y el envío retrasa directamente el ciclo de cobro. Dónde obtenerlo Se infiere de PRINTING_ORIGINAL_DATE en RA_CUSTOMER_TRX_ALL o de registros específicos del Oracle Collaboration Messaging Framework cuando se utiliza XML. Recopilar Comparar el campo de estado antes y después Tipo de evento inferred | |||
| Factura liquidada | Es el estado final en el que la factura se cierra en el sistema, normalmente porque el saldo es cero debido a un pago, una nota de crédito o un ajuste. | ||
| Por qué es importante La marca de tiempo de este evento se utiliza para calcular los días de ventas pendientes de cobro (DSO). Representa el final de la instancia del proceso. Dónde obtenerlo Se identifica cuando STATUS en AR_PAYMENT_SCHEDULES_ALL cambia a 'CL' (Closed). Recopilar Comparar el campo de estado antes y después Tipo de evento inferred | |||
| Pago completo recibido | Se produce cuando la aplicación de un recibo reduce el saldo de la factura a cero. Es el principal evento de éxito del proceso de cobro. | ||
| Por qué es importante Es fundamental para el análisis de descuentos por pronto pago. El momento de este evento determina si el efectivo se cobró dentro del plazo del descuento. Dónde obtenerlo Se obtiene de AR_RECEIVABLE_APPLICATIONS_ALL, donde STATUS = 'APP' y el AMOUNT_DUE_REMAINING resultante es 0. Recopilar Se deriva de la comparación del campo X con el campo Y Tipo de evento calculated | |||
| Pago parcial registrado | Se produce cuando se aplica un recibo a la factura, pero el importe es inferior al saldo total pendiente. La factura permanece abierta con un saldo reducido. | ||
| Por qué es importante Una frecuencia elevada indica un comportamiento de pago fragmentado (KPI de frecuencia de pagos parciales), lo que aumenta el esfuerzo de conciliación. Dónde obtenerlo Se obtiene de AR_RECEIVABLE_APPLICATIONS_ALL, donde STATUS = 'APP' y AMOUNT_APPLIED < AMOUNT_DUE_REMAINING. Recopilar Se registra cuando se ejecuta la transacción X Tipo de evento explicit | |||
| Caso de disputa abierto | Marca el inicio de una disputa formal relacionada con la factura. Esto detiene las actividades de cobro habituales mientras se investiga el problema. | ||
| Por qué es importante Es un indicador importante de cuellos de botella. Las tasas elevadas de disputas sugieren problemas de calidad en etapas anteriores, relacionados con el cumplimiento de pedidos o la precisión de la facturación. Dónde obtenerlo Se identifica mediante registros de RA_CM_REQUESTS_ALL o Workflow específicos de Credit Memo Request vinculados a la factura. Recopilar Se registra cuando se ejecuta la transacción X Tipo de evento explicit | |||
| Compromiso de pago recibido | Registra el compromiso del cliente de pagar un importe específico en una fecha determinada. Normalmente, un agente de cobro lo introduce manualmente durante la interacción con el cliente. | ||
| Por qué es importante Es clave para analizar el comportamiento de pago de los clientes. El incumplimiento de las promesas indica un alto riesgo crediticio y posibles incobrables futuros. Dónde obtenerlo Se obtiene de la tabla IEX_PROMISE_DETAILS del módulo Collections. Recopilar Se registra cuando se ejecuta la transacción X Tipo de evento explicit | |||
| Disputa resuelta | Indica la conclusión de la investigación de la disputa. El resultado puede ser la aprobación de una nota de crédito (disputa válida) o el rechazo (disputa no válida). | ||
| Por qué es importante Es necesario para calcular el tiempo medio de resolución de disputas. Los tiempos de resolución prolongados afectan negativamente a la satisfacción del cliente y al DSO. Dónde obtenerlo Se obtiene del cambio de estado a 'APPROVED' o 'REJECTED' en RA_CM_REQUESTS_ALL. Recopilar Comparar el campo de estado antes y después Tipo de evento inferred | |||
| Extracto bancario conciliado | Indica que el recibo aplicado a la factura se ha conciliado con una línea del extracto bancario. Esto confirma que el efectivo ha llegado realmente a la cuenta bancaria. | ||
| Por qué es importante Mide la automatización de la aplicación de efectivo. La diferencia entre el registro del pago y la conciliación bancaria representa efectivo no confirmado. Dónde obtenerlo Se combina desde AR_CASH_RECEIPTS_ALL con CE_STATEMENT_LINES (Cash Management) mediante la referencia de conciliación. Recopilar Comparar el campo de estado antes y después Tipo de evento inferred | |||
| Factura ajustada | Registra ajustes manuales al saldo de la factura, como pequeñas cancelaciones contables o ajustes de divisa, diferenciándolos de las notas de crédito. | ||
| Por qué es importante Ayuda a identificar fugas de ingresos y rutas de proceso no estándar en las que los saldos se liquidan sin realizar un pago. Dónde obtenerlo Se obtiene de la tabla AR_ADJUSTMENTS_ALL vinculada a la factura. Recopilar Se registra cuando se ejecuta la transacción X Tipo de evento explicit | |||
| Factura cancelada contablemente | Es un tipo específico de ajuste en el que el saldo restante se considera incobrable y se cancela como deuda incobrable. Es un estado terminal negativo. | ||
| Por qué es importante Es fundamental para supervisar la salud financiera. Permite separar la eficiencia operativa (velocidad de pago) de los problemas de calidad crediticia. Dónde obtenerlo Se obtiene de AR_ADJUSTMENTS_ALL cuando el tipo de ajuste se clasifica como 'Write-off' o está vinculado a una cuenta de deuda incobrable. Recopilar Se registra cuando se ejecuta la transacción X Tipo de evento explicit | |||
| Factura contabilizada en el libro mayor | Registra el evento en el que los asientos contables de la factura se finalizan y se transfieren al General Ledger. Esto garantiza el cumplimiento financiero y la preparación para el cierre del periodo. | ||
| Por qué es importante Aunque no afecta a la visión del cliente, las demoras en este punto afectan al ciclo de cierre financiero y a la puntualidad de los informes. Dónde obtenerlo Se obtiene de GL_DATE en la tabla RA_CUST_TRX_LINE_GL_DIST_ALL. Recopilar Se registra cuando se ejecuta la transacción X Tipo de evento explicit | |||
| Nota de crédito emitida | Registra la creación de una transacción de nota de crédito aplicada contra la factura. Esto reduce el saldo pendiente, normalmente como respuesta a una disputa o devolución. | ||
| Por qué es importante Permite realizar un seguimiento de la tasa de reprocesamiento de notas de crédito y de las fugas de ingresos. La emisión frecuente de notas de crédito indica errores sistémicos de facturación. Dónde obtenerlo Se obtiene de RA_CUSTOMER_TRX_ALL, donde TRX_TYPE es Credit Memo y RELATED_CUSTOMER_TRX_ID coincide con la factura. Recopilar Se registra cuando se ejecuta la transacción X Tipo de evento explicit | |||
| Recordatorio de pago enviado | Captura el envío de una carta de reclamación o un recordatorio de cobro al cliente. Este evento lo genera el módulo Advanced Collections. | ||
| Por qué es importante Es esencial para analizar la eficacia de la estrategia de cobro. Relacionarlo con los pagos ayuda a determinar qué estrategias de recordatorio generan la recuperación de efectivo más rápida. Dónde obtenerlo Se encuentra en las tablas IEX_DUNNING o IEX_STRATEGY_WORK_ITEMS vinculadas a la cuenta del cliente. Recopilar Se registra cuando se ejecuta la transacción X Tipo de evento explicit | |||
Guías de extracción
Pasos
Inicie sesión en la consola de Oracle BI Cloud Connector (BICC). Vaya a la sección Manage Offerings and Data Stores.
Configure la conexión de almacenamiento. Asegúrese de disponer de una conexión válida a Oracle Universal Content Management (UCM) o a un Object Storage externo, como OCI Object Storage, donde se depositarán los archivos CSV/Parquet extraídos.
Seleccione la oferta Financials. Localice la oferta Financials para acceder a los View Objects de cuentas por cobrar.
Seleccione y configure los View Objects (VO). Debe seleccionar los Public View Objects (PVO) específicos necesarios para construir el registro de eventos. Los PVO esenciales incluyen:
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.TransactionHeaderExtractPVO (encabezados de factura)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.TransactionLineExtractPVO (líneas de factura)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.ReceiptApplicationExtractPVO (pagos y aplicaciones de notas de crédito)
- FscmTopModelAM.FinExtractAM.ArBiccExtractAM.AdjustmentExtractPVO (ajustes y bajas contables)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.PromiseDetailExtractPVO (promesas de pago)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.StrategyWorkItemExtractPVO (gestión de cobros y recordatorios)
Defina los criterios de filtrado (poda). En Manage Extract Schedules o dentro de la configuración del PVO, establezca un filtro en CreationDate o LastUpdateDate para extraer los datos correspondientes al período de análisis, por ejemplo, los últimos 12 meses.
Programe la extracción. Cree una programación para ejecutar estas extracciones diariamente. Seleccione Incremental Load para obtener únicamente los datos modificados después de la Full Load inicial.
Descargue e ingiera los datos. Utilice un script automatizado o una herramienta de integración para recoger los archivos de UCM/Object Storage y cargarlos en las tablas de preparación de su almacén de datos, por ejemplo, STG_AR_TRX_HEADER y STG_AR_APPLICATIONS.
Aplique la lógica de transformación. Ejecute el script SQL proporcionado en la sección Query sobre sus tablas de preparación para aplanar los datos relacionales y convertirlos al formato de registro de eventos de ProcessMind.
Valide los tipos de datos. Asegúrese de que los campos de fecha se conviertan en objetos datetime y de que los importes numéricos gestionen correctamente los decimales durante la transformación.
Exporte a CSV/Parquet. Exporte el conjunto de resultados final de su almacén de datos como un único archivo.
Cargue los datos en ProcessMind. Importe el archivo y asigne InvoiceNumber a Case ID, ActivityName a Activity y EventStartDateTime a Timestamp.
Configuración
- Frecuencia de extracción: se recomienda diaria (Incremental) para capturar los cambios de estado más recientes.
- Carga inicial: seleccione 'Full Extract' en la primera ejecución y cambie después a 'Incremental' según Last Update Date.
- PVO clave: TransactionHeaderExtractPVO, ReceiptApplicationExtractPVO, AdjustmentExtractPVO y StrategyWorkItemExtractPVO.
- Filtrado por fecha: aplique filtros en CreationDate >= '202X-01-01' para limitar el volumen.
- Tamaño de extracción: el valor predeterminado suele ser de 50000 filas; ajústelo según el ancho de banda de la red si utiliza una descarga desde UCM.
- Claves principales: asegúrese de que su almacén de datos posterior gestione las operaciones upsert mediante las claves principales de los PVO, normalmente CustomerTrxId, ReceivableApplicationId, etc., para evitar filas duplicadas.
- Historial de auditoría: los PVO estándar de BICC capturan el estado actual. Para registrar con exactitud las marcas de tiempo históricas de los cambios de estado, como Dispute Opened, puede ser necesario activar Audit Policies en Fusion y extraer los Audit View Objects si las tablas transaccionales no conservan el historial.
a Consulta de ejemplo sql
/*
Transformation Script for Oracle BICC Data
Assumes raw BICC PVO CSVs are loaded into a SQL Staging Area with tables named:
- STG_AR_TRX_HEADER (TransactionHeaderExtractPVO)
- STG_AR_APPLICATIONS (ReceiptApplicationExtractPVO)
- STG_AR_ADJUSTMENTS (AdjustmentExtractPVO)
- STG_IEX_PROMISES (PromiseDetailExtractPVO)
- STG_IEX_STRATEGY (StrategyWorkItemExtractPVO)
- STG_CE_STMTS (BankStatementLineExtractPVO - Optional/Advanced)
*/
WITH Base_Log AS (
/* 1. Invoice Created */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Created' AS ActivityName,
CreationDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
(Quantity * UnitSellingPrice) AS InvoiceAmount,
TrxClass AS TransactionType,
CreatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE TrxClass IN ('INV', 'DM')
UNION ALL
/* 2. Invoice Completed */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Completed' AS ActivityName,
TrxDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE CompleteFlag = 'Y'
AND TrxClass IN ('INV', 'DM')
UNION ALL
/* 3. Invoice Dispatched */
/* Using PrintingOriginalDate as proxy for dispatch */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Dispatched' AS ActivityName,
PrintingOriginalDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE PrintingOriginalDate IS NOT NULL
AND TrxClass IN ('INV', 'DM')
UNION ALL
/* 4. Invoice Posted to GL */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Posted to GL' AS ActivityName,
GlDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
'System' AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE GlDate IS NOT NULL
AND TrxClass IN ('INV', 'DM')
UNION ALL
/* 5. Payment Reminder Sent */
/* Links via Customer or Account, mapped back to Trx via Collections Strategy logic */
/* Simplified join assumption based on Trx Id availability in Work Item */
SELECT
H.TrxNumber AS InvoiceNumber,
'Payment Reminder Sent' AS ActivityName,
W.CreationDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
H.TrxClass AS TransactionType,
W.CreatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_IEX_STRATEGY W
JOIN STG_AR_TRX_HEADER H ON W.ObjectPk1 = H.CustomerTrxId
WHERE W.WorkItemTemplateName LIKE '%Reminder%'
UNION ALL
/* 6. Promise to Pay Received */
SELECT
H.TrxNumber AS InvoiceNumber,
'Promise to Pay Received' AS ActivityName,
P.CreationDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
P.PromiseAmount AS InvoiceAmount,
H.TrxClass AS TransactionType,
P.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_IEX_PROMISES P
JOIN STG_AR_TRX_HEADER H ON P.CustTrxId = H.CustomerTrxId
UNION ALL
/* 7. Dispute Case Opened */
/* Triggered when dispute amount is updated/created */
SELECT
TrxNumber AS InvoiceNumber,
'Dispute Case Opened' AS ActivityName,
DisputeDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE DisputeDate IS NOT NULL
UNION ALL
/* 8. Dispute Resolved */
/* Approximated by update date when dispute amount returns to 0 after being positive */
/* Note: Accurate dispute history requires Audit Trail extraction. This is a best-effort proxy based on header state. */
SELECT
TrxNumber AS InvoiceNumber,
'Dispute Resolved' AS ActivityName,
LastUpdateDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE DisputeDate IS NOT NULL AND DisputeAmount = 0
UNION ALL
/* 9. Credit Memo Issued (Applied) */
SELECT
H.TrxNumber AS InvoiceNumber,
'Credit Memo Issued' AS ActivityName,
APP.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
APP.AmountApplied AS InvoiceAmount,
H.TrxClass AS TransactionType,
APP.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_APPLICATIONS APP
JOIN STG_AR_TRX_HEADER H ON APP.AppliedCustomerTrxId = H.CustomerTrxId
WHERE APP.ApplicationType = 'CM' -- Credit Memo application
UNION ALL
/* 10. Partial Payment Posted */
SELECT
H.TrxNumber AS InvoiceNumber,
'Partial Payment Posted' AS ActivityName,
APP.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
APP.AmountApplied AS InvoiceAmount,
H.TrxClass AS TransactionType,
APP.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_APPLICATIONS APP
JOIN STG_AR_TRX_HEADER H ON APP.AppliedCustomerTrxId = H.CustomerTrxId
WHERE APP.ApplicationType = 'CASH'
AND APP.Status = 'APP'
AND (H.AmountDueRemaining > 0) -- Invoice still has balance
UNION ALL
/* 11. Full Payment Received */
SELECT
H.TrxNumber AS InvoiceNumber,
'Full Payment Received' AS ActivityName,
APP.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
APP.AmountApplied AS InvoiceAmount,
H.TrxClass AS TransactionType,
APP.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_APPLICATIONS APP
JOIN STG_AR_TRX_HEADER H ON APP.AppliedCustomerTrxId = H.CustomerTrxId
WHERE APP.ApplicationType = 'CASH'
AND APP.Status = 'APP'
AND H.AmountDueRemaining = 0 -- Invoice fully paid
UNION ALL
/* 12. Bank Statement Matched */
/* Requires joining Receipt Application -> Cash Receipt -> Bank Statement Line */
/* Placeholder logic assuming availability of Bank Statement PVO data */
SELECT
H.TrxNumber AS InvoiceNumber,
'Bank Statement Matched' AS ActivityName,
BSL.StatementDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
BSL.Amount AS InvoiceAmount,
H.TrxClass AS TransactionType,
BSL.CreatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_APPLICATIONS APP
JOIN STG_AR_TRX_HEADER H ON APP.AppliedCustomerTrxId = H.CustomerTrxId
-- Join to Receipt then to Bank Stmt would happen here
JOIN STG_CE_STMTS BSL ON APP.CashReceiptId = BSL.ReferenceId -- Simplified Join
WHERE APP.ApplicationType = 'CASH'
UNION ALL
/* 13. Invoice Adjusted */
SELECT
H.TrxNumber AS InvoiceNumber,
'Invoice Adjusted' AS ActivityName,
ADJ.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
ADJ.Amount AS InvoiceAmount,
H.TrxClass AS TransactionType,
ADJ.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_ADJUSTMENTS ADJ
JOIN STG_AR_TRX_HEADER H ON ADJ.CustomerTrxId = H.CustomerTrxId
WHERE ADJ.AdjustmentType != 'WRITE_OFF'
UNION ALL
/* 14. Invoice Written Off */
SELECT
H.TrxNumber AS InvoiceNumber,
'Invoice Written Off' AS ActivityName,
ADJ.ApplyDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
H.BusinessUnitName AS BusinessUnit,
H.BillToCustomerName AS CustomerName,
H.InvoiceCurrencyCode AS Currency,
ADJ.Amount AS InvoiceAmount,
H.TrxClass AS TransactionType,
ADJ.CreatedBy AS UserName,
'No' AS IsAutomated
FROM STG_AR_ADJUSTMENTS ADJ
JOIN STG_AR_TRX_HEADER H ON ADJ.CustomerTrxId = H.CustomerTrxId
WHERE ADJ.AdjustmentType = 'WRITE_OFF'
UNION ALL
/* 15. Invoice Cleared */
/* The moment the invoice balance hits 0 */
SELECT
TrxNumber AS InvoiceNumber,
'Invoice Cleared' AS ActivityName,
LastUpdateDate AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
BusinessUnitName AS BusinessUnit,
BillToCustomerName AS CustomerName,
InvoiceCurrencyCode AS Currency,
NULL AS InvoiceAmount,
TrxClass AS TransactionType,
LastUpdatedBy AS UserName,
'Yes' AS IsAutomated
FROM STG_AR_TRX_HEADER
WHERE AmountDueRemaining = 0
)
SELECT
InvoiceNumber,
ActivityName,
EventStartDateTime,
SourceSystem,
GETDATE() AS LastDataUpdate,
BusinessUnit,
CustomerName,
Currency,
InvoiceAmount,
TransactionType,
UserName,
IsAutomated
FROM Base_Log
WHERE EventStartDateTime IS NOT NULL
ORDER BY InvoiceNumber, EventStartDateTime Pasos
Inicie sesión en Oracle Fusion Applications: vaya a Tools > Reports and Analytics. Haga clic en Browse Catalog para abrir la interfaz de Oracle BI Publisher.
Cree el modelo de datos: haga clic en New (arriba a la izquierda) y seleccione Data Model. Este será el contenedor de su lógica de extracción SQL.
Defina el conjunto de datos SQL: en el árbol Data Model de la izquierda, haga clic en Data Sets y seleccione New Data Set > SQL Query.
Configure el origen de datos: asigne un nombre al conjunto de datos, por ejemplo,
ProcessMining_AR. SeleccioneApplicationDB_FSCM(Financials Supply Chain Management) como origen de datos. Así tendrá acceso a las tablas necesarias de cuentas por cobrar y RA.Pegue la consulta: copie el script SQL completo proporcionado en la sección Query siguiente y péguelo en el cuadro de texto SQL Query. No modifique la lógica principal, salvo que necesite cambiar el nombre de determinados Flexfields (DFF).
Configure los parámetros: la consulta incluye el marcador
:p_start_datepara filtrar por fecha de creación de la transacción. En la pestaña Parameters del modelo de datos, cree un parámetro nuevo llamadop_start_date, con tipo de datos Date, y establezca un valor predeterminado, por ejemplo,01-01-2023.Consulte los datos: haga clic en la pestaña Data, introduzca una fecha válida para el parámetro y haga clic en View. Compruebe que el resultado incluya filas con columnas como
InvoiceNumber,ActivityNameyEventStartDateTime.Guarde el modelo de datos: guarde el objeto en Shared Folders > Custom, por ejemplo,
/Shared Folders/Custom/ProcessMining/AR_Extract_DM.Programe o exporte: para extraer grandes volúmenes, haga clic en Create Report utilizando este modelo de datos. En el editor del informe, compruebe que el diseño sea una tabla sencilla. Guarde el informe. Después, utilice el Scheduler para ejecutarlo y generar los datos en formato CSV o XML.
Formato final: descargue el archivo de salida. Si es CSV, asegúrese de que el formato de fecha sea coherente, preferiblemente ISO 8601. Cargue el archivo en ProcessMind asignando
InvoiceNumbera Case ID,ActivityNamea Activity yEventStartDateTimea Timestamp.
Configuración
- Origen de datos: utilice
ApplicationDB_FSCMpara acceder a las tablas de Financials. - Filtro de fecha: la consulta utiliza
ra_customer_trx_all.creation_date >= :p_start_date. Configure este filtro para cargar los datos en una ventana móvil, por ejemplo, los últimos 12 meses. - Rendimiento: para conjuntos de datos que superen las 100.000 facturas, considere añadir un límite
ROWNUMdurante las pruebas o dividir la extracción por meses. - Filtrado por unidad de negocio: si su organización tiene varias unidades de negocio y solo necesita una, quite las marcas de comentario de la línea
AND trx.org_id = ...en las cláusulasWhere. - Nombres de usuario: la consulta resuelve los ID de usuario de
CREATED_BYen nombres de usuario medianteFND_USER. Asegúrese de que el usuario de extracción tenga permiso para leerFND_USER. - Advanced Collections: las actividades 'Payment Reminder Sent' y 'Promise to Pay Received' dependen de las tablas del módulo IEX (Advanced Collections). Si no utiliza este módulo, estas secciones simplemente devolverán cero filas.
a Consulta de ejemplo sql
/* 1. Invoice Created */
SELECT
trx.trx_number AS InvoiceNumber,
'Invoice Created' AS ActivityName,
trx.creation_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ra_customer_trx_all trx
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON trx.created_by = u.user_id
WHERE
trx.creation_date >= :p_start_date
UNION ALL
/* 2. Invoice Completed */
SELECT
trx.trx_number AS InvoiceNumber,
'Invoice Completed' AS ActivityName,
trx.trx_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'Y' AS IsAutomated
FROM
ra_customer_trx_all trx
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON trx.last_updated_by = u.user_id
WHERE
trx.complete_flag = 'Y'
AND trx.creation_date >= :p_start_date
UNION ALL
/* 3. Invoice Dispatched */
SELECT
trx.trx_number AS InvoiceNumber,
'Invoice Dispatched' AS ActivityName,
COALESCE(trx.printing_original_date, trx.printing_last_printed, trx.last_update_date) AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'Y' AS IsAutomated
FROM
ra_customer_trx_all trx
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON trx.last_updated_by = u.user_id
WHERE
(trx.printing_original_date IS NOT NULL OR trx.printing_count > 0)
AND trx.creation_date >= :p_start_date
UNION ALL
/* 4. Invoice Posted to GL */
SELECT
trx.trx_number AS InvoiceNumber,
'Invoice Posted to GL' AS ActivityName,
MAX(dist.gl_date) AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
'System' AS UserName,
'Y' AS IsAutomated
FROM
ra_customer_trx_all trx
JOIN ra_cust_trx_line_gl_dist_all dist ON trx.customer_trx_id = dist.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
WHERE
dist.account_class = 'REC'
AND dist.posting_control_id != -3
AND trx.creation_date >= :p_start_date
GROUP BY
trx.trx_number,
hou.name,
party.party_name,
trx.invoice_currency_code,
ps.amount_due_original,
type.name
UNION ALL
/* 5. Payment Reminder Sent (Advanced Collections) */
SELECT
trx.trx_number AS InvoiceNumber,
'Payment Reminder Sent' AS ActivityName,
dun.creation_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'Y' AS IsAutomated
FROM
iex_dunning_transactions dun
JOIN ar_payment_schedules_all ps ON dun.payment_schedule_id = ps.payment_schedule_id
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
LEFT JOIN fnd_user u ON dun.created_by = u.user_id
WHERE
trx.creation_date >= :p_start_date
UNION ALL
/* 6. Promise to Pay Received */
SELECT
trx.trx_number AS InvoiceNumber,
'Promise to Pay Received' AS ActivityName,
pp.creation_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
iex_promise_details pp
JOIN ar_payment_schedules_all ps ON pp.payment_schedule_id = ps.payment_schedule_id
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
LEFT JOIN fnd_user u ON pp.created_by = u.user_id
WHERE
trx.creation_date >= :p_start_date
UNION ALL
/* 7. Dispute Case Opened */
SELECT
trx.trx_number AS InvoiceNumber,
'Dispute Case Opened' AS ActivityName,
req.creation_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ra_cm_requests req
JOIN ra_customer_trx_all trx ON req.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON req.created_by = u.user_id
WHERE
trx.creation_date >= :p_start_date
UNION ALL
/* 8. Dispute Resolved */
SELECT
trx.trx_number AS InvoiceNumber,
'Dispute Resolved' AS ActivityName,
req.last_update_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ra_cm_requests req
JOIN ra_customer_trx_all trx ON req.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON req.last_updated_by = u.user_id
WHERE
req.status_code IN ('APPROVED', 'REJECTED')
AND trx.creation_date >= :p_start_date
UNION ALL
/* 9. Credit Memo Issued */
SELECT
trx.trx_number AS InvoiceNumber,
'Credit Memo Issued' AS ActivityName,
cm.trx_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ra_customer_trx_all cm
JOIN ra_customer_trx_all trx ON cm.previous_customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
LEFT JOIN fnd_user u ON cm.created_by = u.user_id
WHERE
trx.creation_date >= :p_start_date
UNION ALL
/* 10 & 11. Partial and Full Payment */
SELECT
trx.trx_number AS InvoiceNumber,
CASE
WHEN ps.status = 'CL' AND app.amount_applied = app.amount_applied_from THEN 'Full Payment Received'
WHEN ps.status = 'CL' AND ps.amount_due_remaining = 0 AND app.application_rule = '60' THEN 'Full Payment Received'
ELSE 'Partial Payment Posted'
END AS ActivityName,
app.apply_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ar_receivable_applications_all app
JOIN ar_payment_schedules_all ps ON app.applied_payment_schedule_id = ps.payment_schedule_id
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
LEFT JOIN fnd_user u ON app.created_by = u.user_id
WHERE
app.status = 'APP'
AND app.application_type = 'CASH'
AND trx.creation_date >= :p_start_date
UNION ALL
/* 12. Bank Statement Matched */
SELECT
trx.trx_number AS InvoiceNumber,
'Bank Statement Matched' AS ActivityName,
recon.creation_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'Y' AS IsAutomated
FROM
ce_statement_reconcils_all recon
JOIN ar_cash_receipt_history_all crh ON recon.reference_id = crh.cash_receipt_history_id
JOIN ar_cash_receipts_all cr ON crh.cash_receipt_id = cr.cash_receipt_id
JOIN ar_receivable_applications_all app ON cr.cash_receipt_id = app.cash_receipt_id
JOIN ar_payment_schedules_all ps ON app.applied_payment_schedule_id = ps.payment_schedule_id
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
LEFT JOIN fnd_user u ON recon.created_by = u.user_id
WHERE
recon.status_flag = 'M'
AND trx.creation_date >= :p_start_date
UNION ALL
/* 13 & 14. Invoice Adjusted and Written Off */
SELECT
trx.trx_number AS InvoiceNumber,
CASE
WHEN adj.adjustment_type = 'W' THEN 'Invoice Written Off'
ELSE 'Invoice Adjusted'
END AS ActivityName,
adj.apply_date AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
u.user_name AS UserName,
'N' AS IsAutomated
FROM
ar_adjustments_all adj
JOIN ar_payment_schedules_all ps ON adj.payment_schedule_id = ps.payment_schedule_id
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
LEFT JOIN fnd_user u ON adj.created_by = u.user_id
WHERE
adj.status = 'A'
AND trx.creation_date >= :p_start_date
UNION ALL
/* 15. Invoice Cleared (Final Close) */
SELECT
trx.trx_number AS InvoiceNumber,
'Invoice Cleared' AS ActivityName,
ps.gl_date_closed AS EventStartDateTime,
'Oracle Fusion' AS SourceSystem,
SYSDATE AS LastDataUpdate,
hou.name AS BusinessUnit,
party.party_name AS CustomerName,
trx.invoice_currency_code AS Currency,
ps.amount_due_original AS InvoiceAmount,
type.name AS TransactionType,
'System' AS UserName,
'Y' AS IsAutomated
FROM
ar_payment_schedules_all ps
JOIN ra_customer_trx_all trx ON ps.customer_trx_id = trx.customer_trx_id
JOIN ra_cust_trx_types_all type ON trx.cust_trx_type_id = type.cust_trx_type_id
JOIN hr_operating_units hou ON trx.org_id = hou.organization_id
JOIN hz_cust_accounts cust ON trx.bill_to_customer_id = cust.cust_account_id
JOIN hz_parties party ON cust.party_id = party.party_id
WHERE
ps.status = 'CL'
AND ps.gl_date_closed IS NOT NULL
AND trx.creation_date >= :p_start_date ¿Listo para comenzar?
Convierta sus datos financieros en información útil aplicando esta plantilla a su entorno de Oracle Fusion. Nuestro equipo está aquí para ayudarle a adaptar su lógica empresarial específica a estos estándares.
Acelere hoy sus cobros de cuentas por cobrar
Reduzca el DSO entre 15 y 20 días y resuelva ahora las brechas de flujo de caja.
No se requiere tarjeta de crédito. Configuración en 5 minutos.