Su Template de datos de cuentas por cobrar
Su Template de datos de cuentas por cobrar
- Conjunto completo de atributos recomendados para analizar las cuentas por cobrar
- Actividades e hitos clave del proceso que conviene supervisar
- Instrucciones de extracción específicas para Oracle Fusion Financials
Atributos de cuentas por cobrar
| Nombre | Descripción | ||
|---|---|---|---|
| Marca de tiempo del evento EventStartDateTime | Fecha y hora exactas en que ocurrió una actividad. | ||
| Descripción Este atributo registra el momento exacto en que se produjo una actividad en el sistema. Se utiliza para ordenar cronológicamente los eventos y sirve de base para 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 el tiempo transcurrido entre la creación y el envío de una factura. Es fundamental para medir KPI como los días pendientes de cobro e identificar patrones temporales en el comportamiento de pago. Por qué es importante Es fundamental para calcular duraciones y tiempos de entrega y 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 | Evento o acción específica realizada en el proceso de cuentas por cobrar. | ||
| Descripción Este atributo describe el paso realizado en el proceso, como crear una factura, contabilizar 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, ciclos 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 el retrabajo o las intervenciones manuales. Por qué es importante Es necesario para definir el flujo del proceso y visualizar la secuencia de eventos. Dónde obtenerlo Se obtiene de las 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 contabilizadoDisputa abierta | |||
| Número de factura InvoiceNumber | Identificador único asignado a la transacción de factura en Oracle Fusion. | ||
| Descripción Este atributo es la clave única para identificar las obligaciones financieras en el módulo Accounts Receivable. 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 ID del caso. Permite rastrear el ciclo de vida completo de una cuenta por cobrar, desde su creación hasta su liquidación total o baja, 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 hacer un seguimiento del ciclo desde el crédito hasta el cobro. Dónde obtenerlo Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.TRX_NUMBER Ejemplos INV-2023-00110056789AR-99887755002211 | |||
| Sistema de origen SourceSystem | Sistema de registro del que proceden los datos. | ||
| Descripción Este atributo identifica el entorno de software del que se extrajeron los datos del proceso. En este caso, confirma que los datos proceden del entorno Oracle Fusion Financials. Aunque suele tener un valor estático cuando los datos se extraen 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 panoramas de procesos con varios sistemas. Por qué es importante Garantiza el linaje de los datos y permite distinguir entre distintas instancias de ERP. Dónde obtenerlo Se codifica durante la extracción o se configura en el flujo de datos. Ejemplos Oracle Fusion FinancialsOracle Cloud ERP - EE. UU.Oracle Cloud ERP - EMEA | |||
| Última actualización de los datos LastDataUpdate | Fecha y hora 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 entender la actualidad del análisis y si la información refleja el estado actual de las operaciones. Es importante supervisar este campo para garantizar que los Dashboards muestren información actualizada, especialmente al supervisar disputas abiertas o efectivo sin aplicar. Por qué es importante Aporta contexto sobre la actualidad y la 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 automatizada IsAutomated | Indicador de si la actividad se realizó sin intervención humana. | ||
| Descripción Este atributo booleano determina si una actividad la ejecutó un proceso del sistema (por ejemplo, AutoInvoice o AutoLockbox) o una persona. Es el principal factor del KPI «Tasa de automatización de la aplicación de cobros». Al hacer un seguimiento de la proporción de actividades automatizadas y manuales a lo largo del tiempo, la organización puede comprobar el éxito de sus 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 a partir de UserName (por ejemplo, si User == 'BATCH_USER', entonces true). Ejemplos truefalse | |||
| Fecha de vencimiento DueDate | Fecha límite para recibir el pago. | ||
| Descripción Este atributo indica la fecha límite de pago, calculada a partir de la fecha de factura y las condiciones de pago. Sirve de referencia para determinar si un pago está atrasado. Se utiliza en el KPI «Variación en el 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 marca 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 cumplimiento de los plazos de pago. 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 | Valor monetario total de la factura. | ||
| Descripción Este atributo representa el importe original pendiente de pago de la factura. Es el principal factor de ponderación de muchos análisis y permite priorizar las transacciones de mayor valor frente a las de menor importe. En la vista «Créditos sin aplicar y pérdidas», este campo ayuda a cuantificar el impacto financiero de las partidas sin resolver. También se utiliza para calcular el promedio ponderado de los días pendientes de cobro y ofrecer una perspectiva de la eficiencia del proceso centrada en las finanzas. Por qué es importante Aporta peso financiero al análisis y permite priorizar según el valor. Dónde obtenerlo Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.AMOUNT_DUE_ORIGINAL Ejemplos 1500.00250.5010000.00 | |||
| Nombre de usuario UserName | 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 realizó una actividad concreta (por ejemplo, contabilizar 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 Dashboard «Rendimiento de los agentes de cobro». Permiten distinguir las acciones automatizadas, que suelen realizarse con un usuario «Sistema», de las acciones humanas, y facilitan el análisis de automatización. Por qué es importante Permite hacer un seguimiento del rendimiento por 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 agente de cobro CollectorName | Nombre del agente o recurso asignado al cobro de la factura. | ||
| Descripción Este atributo identifica al empleado o miembro del equipo responsable de cobrar la factura. Es la dimensión clave del Dashboard «Rendimiento de los agentes de cobro». Los datos de este campo permiten medir la productividad de cada agente, detectar necesidades de formación y equilibrar las cargas de trabajo. Fomentan la rendición de cuentas y ayudan a estandarizar las tareas de cobro en todo el equipo financiero. Por qué es importante Es clave para analizar el rendimiento de los recursos y equilibrar las cargas de trabajo. Dónde obtenerlo Oracle Fusion Financials: AR_COLLECTORS.NAME asociado al perfil del cliente. Ejemplos John SmithEquipo de cobros AJane Doe | |||
| Nombre del cliente CustomerName | Nombre de la entidad a la que se factura 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 por cliente. Los analistas utilizan este campo para detectar a los clientes que suelen pagar tarde o presentar disputas. Esta información sirve de apoyo al Dashboard «Análisis del comportamiento de pago de los clientes» y ayuda a adaptar las condiciones de crédito y las estrategias de cobro al perfil de cada cliente. Por qué es importante Es esencial para el análisis centrado en el cliente y la evaluación de riesgos. Dónde obtenerlo Oracle Fusion Financials: HZ_PARTIES.PARTY_NAME vinculado mediante BILL_TO_CUSTOMER_ID. Ejemplos Acme CorpGlobex CorporationSoylent Corp | |||
| Segmento de clientes CustomerSegment | Clasificación del cliente según su tamaño, sector o nivel de riesgo. | ||
| Descripción Este atributo clasifica a los clientes en grupos como estratégicos, empresas, pymes o de alto riesgo. A menudo se obtiene de la clase o el perfil del 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 se supervisa de cerca el cumplimiento de pago de los clientes de alto riesgo. Por qué es importante Permite analizar por segmentos las estrategias de cobro y el riesgo. Dónde obtenerlo Oracle Fusion Financials: HZ_CUSTOMER_PROFILES.PROFILE_CLASS_ID. Ejemplos EmpresasPequeñas empresasAdministración públicaAlto riesgo | |||
| Tipo de transacción TransactionType | Clasificación del documento por cobrar (factura, nota de crédito o nota de débito). | ||
| Descripción Este atributo distingue los distintos tipos de documentos financieros. Entre los valores habituales se incluyen factura, nota de crédito y nota de débito. Esta distinción es fundamental para el Dashboard «Volumen y retrabajo de notas de crédito». Al filtrar por este atributo, los analistas pueden aislar los ciclos de retrabajo causados por notas de crédito o centrarse específicamente en el flujo principal de facturación. Esto ayuda a entender 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ébitoCargo por devolución | |||
| Unidad de negocio BusinessUnit | Entidad operativa de la organización responsable de la factura. | ||
| Descripción Este atributo se corresponde con el ID de organización de Oracle Fusion y representa la unidad de negocio o división específica a la que pertenece la cuenta por cobrar. Permite segmentar el rendimiento del proceso entre distintas áreas de la empresa. Comparar KPI como el tiempo de resolución de disputas o los días pendientes de cobro entre unidades de negocio ayuda a la dirección a identificar equipos con buenos resultados y estandarizar las mejores prácticas. También permite detectar las unidades que podrían necesitar más recursos o un rediseño de procesos. Por qué es importante Dimensión clave para comparar el rendimiento y establecer referencias entre áreas de la organización. 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 moneda CurrencyCode | Moneda en la que se expresa el importe de la factura. | ||
| Descripción Este atributo especifica la moneda (por ejemplo, USD o EUR) de los importes financieros. Es necesario para interpretar correctamente el importe de la factura y realizar conversiones si se necesita una moneda global para los informes. En las 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 divisas del rendimiento operativo del proceso. Por qué es importante Aporta contexto a los valores financieros en entornos con varias monedas. Dónde obtenerlo Oracle Fusion Financials: RA_CUSTOMER_TRX_ALL.INVOICE_CURRENCY_CODE Ejemplos USDEURGBPJPY | |||
| Condiciones de pago PaymentTerms | Condiciones acordadas para el plazo de pago (por ejemplo, neto a 30 días). | ||
| Descripción Este atributo define el plazo de pago acordado en el contrato. Se utiliza para calcular la fecha de vencimiento y es esencial para el Dashboard «Eficacia de la estrategia de cobros». Las diferencias en las condiciones de pago entre clientes pueden explicar las variaciones en los días de ventas pendientes de cobro (DSO). Este atributo permite normalizar los datos de rendimiento y evitar que se considere injustamente un pagador lento a un cliente con condiciones de pago a 60 días frente a otro con condiciones a 30 días. Por qué es importante Permite contextualizar la rapidez del pago según lo acordado en el contrato. Dónde obtenerlo Oracle Fusion Financials: RA_TERMS.NAME Ejemplos Neto a 30 díasInmediato2/10 neto a 30 díasNeto a 60 días | |||
| Es retrabajo IsRework | Indicador de si la factura pasó por ciclos de corrección o disputa. | ||
| Descripción Este atributo booleano identifica si una factura incluye actividades relacionadas con la corrección de errores, como «Nota de crédito emitida» o «Factura ajustada». Sirve de apoyo al Dashboard «Volumen de notas de crédito y retrabajo». Identificar los casos con retrabajo ayuda a separar los procesos de ruta ideal de los problemáticos. Una tasa elevada de retrabajo suele ser un indicador temprano de problemas en la calidad de los datos maestros o en los procesos de entrada de pedidos de venta. Por qué es importante Identifica el desperdicio y la ineficiencia en el flujo del proceso. Dónde obtenerlo Calculado: verdadero si el caso contiene «Nota de crédito emitida» o «Disputa abierta». Ejemplos truefalse | |||
| Fecha límite para obtener el descuento DiscountEligibilityDate | Última fecha en que el cliente puede pagar para obtener un descuento por pronto pago. | ||
| Descripción Este atributo indica la fecha límite para que el cliente aproveche condiciones como «2/10 neto a 30 días» (un descuento del 2 % si paga en un plazo de 10 días). Es necesario para el Dashboard «Análisis de descuentos por pronto pago». El análisis de los pagos respecto a esta fecha permite calcular la «Tasa de obtención de descuentos por pronto pago». Ayuda a la empresa a determinar si sus estrategias de descuento aceleran eficazmente el flujo de caja o si los clientes no las aprovechan. Por qué es importante Permite analizar la eficacia de los incentivos y la aceleración del flujo de caja. Dónde obtenerlo Oracle Fusion Financials: AR_PAYMENT_SCHEDULES_ALL.DISCOUNT_DATE Ejemplos 2023-11-102023-12-05 | |||
| Motivo de la disputa DisputeReason | Categoría o código de motivo asignado al abrir una disputa. | ||
| Descripción Este atributo registra la justificación indicada cuando se produce la actividad «Disputa abierta». Algunos valores habituales son «Error de precio», «Diferencia de cantidad» o «Mercancía dañada». El análisis de este atributo en el Dashboard «Ciclo de vida de las disputas y cuellos de botella» ayuda a identificar las causas de los retrasos en los pagos. Si «Error de precio» aparece con frecuencia, la empresa puede investigar el proceso de cotización de ventas previo, en lugar de centrarse únicamente en el proceso de cobros. Por qué es importante Es fundamental para analizar las causas de los retrasos en los pagos y del retrabajo. Dónde obtenerlo Oracle Fusion Financials: RA_CM_REQUESTS.REASON_CODE o AR_DISPUTE_HISTORY. Ejemplos Disputa por precioError fiscalMercancía no recibidaFacturación duplicada | |||
| Origen de creación CreationSource | Origen de la factura, que indica si se creó manualmente o se importó. | ||
| Descripción Este atributo muestra cómo llegó la factura al sistema Oracle, por ejemplo, mediante «Entrada manual», «AutoInvoice» o fuentes externas específicas. Sirve como equivalente del mapeo genérico «Canal». Es fundamental para el «Monitor de automatización de la aplicación de cobros». Ayuda a distinguir los procesos totalmente digitales de aquellos que requieren configuración manual. Un volumen elevado de «Entrada manual» puede indicar falta de integración con sistemas anteriores o deficiencias del sistema. Por qué es importante Identifica el nivel de automatización de los sistemas 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 | Región geográfica asociada a la unidad de negocio o al cliente. | ||
| Descripción Este atributo asigna la transacción a una zona geográfica más amplia, como Norteamérica, EMEA o APAC. Es útil para los informes ejecutivos de alto nivel y para el Dashboard «Tendencias de DSO y del ciclo de caja». El análisis regional permite tener en cuenta las diferencias culturales en los hábitos 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 Ofrece una segmentación geográfica general para los informes globales. Dónde obtenerlo Oracle Fusion Financials: derivado 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 ha finalizado la creación de la factura y que 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 Permite distinguir el tiempo de preparación del tiempo de procesamiento. Las demoras en esta etapa 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'. Capturar Compare 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. Registra la fecha y hora en que se guarda por primera vez la cabecera de la transacción en las tablas de cuentas por cobrar de Oracle. | ||
| Por qué es importante Marca el inicio del ciclo de vida del proceso y establece la referencia para calcular la antigüedad. Es esencial para calcular el tiempo total del ciclo y el tiempo hasta el envío. Dónde obtenerlo Se obtiene de la tabla RA_CUSTOMER_TRX_ALL mediante la columna CREATION_DATE o TRX_DATE. Capturar Se registra al insertar la fila de la transacción Tipo de evento explicit | |||
| Factura enviada | Representa el envío de la factura al cliente por correo postal, correo electrónico o XML. Marca el traspaso de la organización al cliente. | ||
| Por qué es importante Es fundamental para medir el rendimiento del envío de facturas. El tiempo 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 en Oracle Collaboration Messaging Framework si se utiliza XML. Capturar Compare el campo de estado antes y después Tipo de evento inferred | |||
| Factura liquidada | Estado final en el que la factura se cierra en el sistema, normalmente porque el saldo llega a cero mediante un pago, una nota de crédito o un ajuste. | ||
| Por qué es importante La fecha y hora de este evento se utilizan para calcular los días 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). Capturar Compare el campo de estado antes y después Tipo de evento inferred | |||
| Pago parcial contabilizado | Ocurre cuando se aplica un recibo a la factura, pero el importe es inferior al saldo total pendiente. La factura permanece abierta con un saldo menor. | ||
| Por qué es importante Una frecuencia elevada indica pagos fragmentados (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. Capturar Se registra cuando se ejecuta la transacción X Tipo de evento explicit | |||
| Pago total recibido | Ocurre cuando la aplicación de un recibo reduce a cero el saldo de la factura. Es el principal evento de éxito del proceso de cobro. | ||
| Por qué es importante Es fundamental para analizar los descuentos por pronto pago. La fecha de este evento determina si el efectivo se recibió dentro del período de descuento. Dónde obtenerlo Se obtiene de AR_RECEIVABLE_APPLICATIONS_ALL, donde STATUS = 'APP' y el valor resultante de AMOUNT_DUE_REMAINING es 0. Capturar Se obtiene al comparar el campo X con el campo Y Tipo de evento calculated | |||
| Compromiso de pago recibido | Registra el compromiso del cliente de pagar un importe determinado antes de una fecha específica. Por lo general, un agente de cobro lo introduce manualmente durante una interacción con el cliente. | ||
| Por qué es importante Es clave para analizar el comportamiento de pago de los clientes. Los compromisos incumplidos indican un alto riesgo de crédito y la posibilidad de futuras deudas incobrables. Dónde obtenerlo Se obtiene de la tabla IEX_PROMISE_DETAILS del módulo Collections. Capturar Se registra cuando se ejecuta la transacción X Tipo de evento explicit | |||
| Disputa abierta | Marca el inicio de una disputa formal sobre la factura. Las actividades de cobro habituales se detienen mientras se investiga el problema. | ||
| Por qué es importante Es un indicador importante de cuellos de botella. Una tasa elevada de disputas puede señalar problemas de calidad en etapas anteriores, como el cumplimiento de pedidos o la precisión de la facturación. Dónde obtenerlo Se identifica mediante registros en RA_CM_REQUESTS_ALL o solicitudes de nota de crédito específicas vinculadas a la factura. Capturar Se registra cuando se ejecuta la transacción X Tipo de evento explicit | |||
| Disputa resuelta | Indica que ha concluido la investigación de la disputa. El resultado puede ser la aprobación de una nota de crédito (disputa válida) o su rechazo (disputa no válida). | ||
| Por qué es importante Es necesario para calcular el tiempo promedio de resolución de disputas. Las demoras prolongadas afectan negativamente a la satisfacción del cliente y a los días pendientes de cobro. Dónde obtenerlo Se obtiene del cambio de estado a 'APPROVED' o 'REJECTED' en RA_CM_REQUESTS_ALL. Capturar Compare 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. Confirma que el dinero ya se ha abonado en la cuenta bancaria. | ||
| Por qué es importante Mide la automatización de la aplicación de cobros. El tiempo entre la contabilización del pago y su conciliación bancaria representa efectivo aún sin confirmar. Dónde obtenerlo Se relaciona AR_CASH_RECEIPTS_ALL con CE_STATEMENT_LINES (Cash Management) mediante la referencia de conciliación. Capturar Compare el campo de estado antes y después Tipo de evento inferred | |||
| Factura ajustada | Registra los ajustes manuales al saldo de la factura, como la cancelación de saldos pequeños o los ajustes de moneda, que se distinguen de las notas de crédito. | ||
| Por qué es importante Ayuda a identificar pérdidas de ingresos y rutas de proceso no estándar en las que se liquidan saldos sin recibir un pago. Dónde obtenerlo Se obtiene de la tabla AR_ADJUSTMENTS_ALL vinculada a la factura. Capturar 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 se finalizan los asientos contables de la factura y se transfieren al libro mayor. Esto garantiza el cumplimiento financiero y que todo esté listo para el cierre del período. | ||
| Por qué es importante Aunque no afecta a la experiencia del cliente, las demoras en esta etapa repercuten en el ciclo de cierre financiero y en la puntualidad de los informes. Dónde obtenerlo Se obtiene de GL_DATE en la tabla RA_CUST_TRX_LINE_GL_DIST_ALL. Capturar Se registra cuando se ejecuta la transacción X Tipo de evento explicit | |||
| Factura dada de baja | Es un tipo específico de ajuste en el que el saldo restante se considera incobrable y se da de baja como deuda incobrable. Es un estado final desfavorable. | ||
| Por qué es importante Es fundamental para supervisar la salud financiera. Permite distinguir la eficiencia operativa (la rapidez de los pagos) 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. Capturar 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 a la factura. Reduce el saldo pendiente, a menudo como respuesta a una disputa o devolución. | ||
| Por qué es importante Permite hacer un seguimiento de la tasa de retrabajo de notas de crédito y de las pérdidas de ingresos. La emisión frecuente de notas de crédito puede indicar errores de facturación sistémicos. 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. Capturar Se registra cuando se ejecuta la transacción X Tipo de evento explicit | |||
| Recordatorio de pago enviado | Registra el envío al cliente de una carta de cobro o un recordatorio de pago. Este evento lo genera el módulo Advanced Collections. | ||
| Por qué es importante Es esencial para analizar la eficacia de la estrategia de cobro. Al relacionar este evento con los pagos, se puede determinar qué estrategias de recordatorio permiten recuperar el efectivo con mayor rapidez. Dónde obtenerlo Se encuentra en las tablas IEX_DUNNING o IEX_STRATEGY_WORK_ITEMS, vinculadas a la cuenta del cliente. Capturar Se registra cuando se ejecuta la transacción X Tipo de evento explicit | |||
Guías de extracción
Pasos
Acceda a 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 tener una conexión válida con Oracle Universal Content Management (UCM) o con un almacenamiento de objetos externo, como OCI Object Storage, donde se depositarán los archivos CSV/Parquet extraídos.
Seleccione la oferta Financials. Busque esta oferta 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 crear el Registro de eventos. Entre los PVO esenciales se 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 castigos)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.PromiseDetailExtractPVO (promesas de pago)
- FscmTopModelAM.FinExtractAM.IexBiccExtractAM.StrategyWorkItemExtractPVO (gestión de cobros y recordatorios)
Defina los criterios de filtrado (reducción de datos). En Manage Extract Schedules o en la configuración del PVO, aplique un filtro a CreationDate o LastUpdateDate para extraer los datos del período que desea analizar, por ejemplo, los últimos 12 meses.
Programe la extracción. Cree una programación para ejecutar estas extracciones a diario. Seleccione Incremental Load para obtener únicamente los datos modificados después de la carga inicial completa.
Descargue e ingiera los datos. Utilice un script automatizado o una herramienta de integración para recuperar 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 de la sección Query en las tablas de preparación para convertir los datos relacionales al formato del Registro de eventos de ProcessMind.
Valide los tipos de datos. Asegúrese de convertir los campos de fecha a objetos datetime y de procesar correctamente los decimales de los importes numéricos durante la transformación.
Exporte a CSV/Parquet. Exporte el resultado final del almacén de datos en un solo archivo.
Cargue los datos en ProcessMind. Importe el archivo y asigne InvoiceNumber a ID del caso, ActivityName a Actividad y EventStartDateTime a Marca de tiempo.
Configuración
- Frecuencia de extracción: se recomienda una extracción incremental diaria para capturar los cambios de estado más recientes.
- Carga inicial: seleccione 'Full Extract' en la primera ejecución y luego cambie a 'Incremental' según Last Update Date.
- PVO clave: TransactionHeaderExtractPVO, ReceiptApplicationExtractPVO, AdjustmentExtractPVO y StrategyWorkItemExtractPVO.
- Filtro de fecha: aplique filtros en CreationDate >= '202X-01-01' para limitar el volumen.
- Tamaño de recuperación: el valor predeterminado suele ser 50000 filas; ajústelo según el ancho de banda de la red si descarga mediante UCM.
- Claves principales: asegúrese de que el almacén de datos de destino gestione las inserciones y actualizaciones 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 precisión las marcas de tiempo históricas de los cambios de estado, como la apertura de una disputa, puede ser necesario habilitar las políticas de auditoría en Fusion y extraer los Audit View Objects si las tablas transaccionales no conservan el historial.
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 un modelo de datos: haga clic en New (arriba a la izquierda) y seleccione Datos. Este es el contenedor de la lógica SQL de extracción.
Defina un 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 la fuente de datos: asigne un nombre al conjunto de datos, por ejemplo,
ProcessMining_AR. SeleccioneApplicationDB_FSCM(Financials Supply Chain Management) como fuente de datos. Así podrá acceder a las tablas necesarias de cuentas por cobrar y cuentas por cobrar (RA).Pegue la consulta: copie el script SQL completo de la sección Query que aparece a continuación y péguelo en el cuadro de texto SQL Query. No modifique la lógica principal, salvo que necesite cambiar el nombre de campos flexibles específicos (DFF).
Configure los parámetros: la consulta incluye el marcador de posición
: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 llamadop_start_date, con el tipo de datos Date, y establezca un valor predeterminado, por ejemplo,01-01-2023.Consulte los datos: haga clic en la pestaña Datos, introduzca una fecha válida para el parámetro y haga clic en Ver. Compruebe que el resultado incluya filas con columnas como
InvoiceNumber,ActivityNameyEventStartDateTime.Guarde el modelo de datos: guarde el objeto en Shared Folders > Personalizado, por ejemplo,
/Shared Folders/Custom/ProcessMining/AR_Extract_DM.Programe la exportación: para extraer grandes volúmenes, haga clic en Create Report y utilice este modelo de datos. En el editor de informes, compruebe que la disposición sea una tabla sencilla y guarde el informe. Después, use Scheduler para ejecutarlo y exportar los datos como CSV o XML.
Dé formato al resultado: descargue el archivo. Si es CSV, asegúrese de que el formato de fecha sea coherente; se recomienda ISO 8601. Cargue el archivo en ProcessMind y asigne
InvoiceNumbera ID del caso,ActivityNamea Actividad yEventStartDateTimea Marca de tiempo.
Configuración
- Fuente de datos: use
ApplicationDB_FSCMpara acceder a las tablas de Financials. - Filtro de fecha: la consulta usa
ra_customer_trx_all.creation_date >= :p_start_date. Configure este filtro para cargar datos en una ventana móvil, por ejemplo, los últimos 12 meses. - Rendimiento: para conjuntos de datos de más de 100.000 facturas, considere añadir un límite
ROWNUMdurante las pruebas o dividir la extracción por mes. - Filtro por unidad de negocio: si su organización tiene varias unidades de negocio y solo necesita una, quite los comentarios de la línea
AND trx.org_id = ...en las cláusulasWhere. - Nombres de usuario: la consulta obtiene los nombres de usuario a partir de los ID de usuario
CREATED_BYmedianteFND_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' utilizan las tablas del módulo IEX (Advanced Collections). Si no utiliza este módulo, estas secciones no devolverán filas.
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 ¿Todo listo para comenzar?
Convierta sus datos financieros en información útil para la acción aplicando este Template a su entorno de Oracle Fusion. Nuestro equipo puede ayudarle a adaptar la lógica específica de su negocio a estos estándares.
Agilice hoy el cobro de sus 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.