Votre Modèle de Données pour la Gestion du Crédit et le Recouvrement
Oracle Fusion FinancialsVotre Modèle de Données pour la Gestion du Crédit et le Recouvrement
- Attributs recommandés pour une analyse approfondie
- Activités clés à suivre pour la découverte de processus
- Guide d'extraction des données étape par étape
Attributs de gestion du crédit et de recouvrement
| Nom | Description | ||
|---|---|---|---|
| Heure de l'événement EventTime | La date et l'heure précises auxquelles l'activité s'est produite, servant de timestamp de l'event. | ||
| Description L'Heure de l'Event, ou timestamp, enregistre le moment exact où une activité a eu lieu. Il est essentiel pour ordonner les events chronologiquement afin de construire un flux de processus précis. Sans timestamps précis, la séquence des events ne peut pas être déterminée correctement. En analyse, cet attribut est utilisé pour calculer les durées et les temps de cycle entre les activités, ce qui est critique pour la mesure des performances. Par exemple, il est utilisé pour calculer des KPIs comme le Temps de cycle de résolution des litiges ou le Temps de cycle de paiement des factures. Il permet également l'analyse des tendances de performance des processus sur différentes périodes. Pourquoi c'est important Ce timestamp est essentiel pour ordonner les events, calculer les temps de cycle et les durées, et analyser la performance du processus au fil du temps. Où obtenir Dérivé de divers champs de date des tables Oracle Fusion Financials, tels que TRX_DATE dans RA_CUSTOMER_TRX_ALL pour la création de facture ou la date de création d'une action de recouvrement. Exemples 2023-04-15T10:00:00Z2023-05-01T14:30:00Z2023-05-20T09:15:22Z | |||
| Nom de l'activité ActivityName | Le nom de l'event métier ou de la tâche spécifique qui s'est produit à un moment donné du processus de gestion du crédit. | ||
| Description Cet attribut décrit une seule étape du cycle de vie de la facture, telle que 'Facture Générée', 'Procédure de Relance Initiée', ou 'Paiement Reçu'. Chaque activité représente un event distinct qui fait avancer le dossier. L'analyse de la séquence et de la fréquence des activités est le cœur du Process Mining. Elle aide à découvrir le flux de processus réel, à identifier les goulets d'étranglement où les dossiers sont bloqués, à détecter les boucles de retravail où les activités sont répétées, et à comparer le processus réel au processus conçu ou idéal. Le Nom de l'activité est fondamental pour construire des cartographies de processus et calculer les temps de transition entre les étapes. Pourquoi c'est important Cet attribut définit les étapes de la cartographie des processus, permettant la visualisation et l'analyse du cycle de vie de la facture du début à la fin. Où obtenir C'est un champ conceptuel dérivé de divers events métier au sein d'Oracle Fusion Financials, souvent construit en cartographiant les statuts de transaction, les dates d'event ou des actions spécifiques de modules comme Receivables (AR) et Advanced Collections. Exemples Facture généréeProcédure de relance initiéePaiement ReçuLitige enregistré | |||
| Numéro de facture InvoiceNumber | L'identifiant unique de chaque facture client, servant d'identifiant de dossier principal pour le processus de gestion du crédit. | ||
| Description Le Numéro de facture est la clé centrale qui relie tous les events et activités liés à une seule créance, de sa création à son règlement final ou à sa radiation. Il permet une vue complète, de bout en bout, du cycle de vie de la facture. Dans l'analyse Process Mining, cet attribut est utilisé pour reconstituer le parcours de chaque facture. En regroupant toutes les activités liées sous un seul Numéro de facture, les analystes peuvent visualiser les flux de processus, identifier les chemins communs et déviants, et mesurer les temps de cycle pour l'ensemble du processus ou des étapes spécifiques, telles que la résolution des litiges ou l'enregistrement des paiements. Pourquoi c'est important C'est l'ID de dossier essentiel qui connecte toutes les étapes du processus connexes, permettant la reconstruction et l'analyse du parcours de chaque facture, de l'émission à la clôture. Où obtenir Cet identifiant se trouve généralement dans la table RA_CUSTOMER_TRX_ALL sous le nom TRX_NUMBER dans Oracle Fusion Financials. Exemples INV-1005679884321AR-2023-04-112 | |||
| Dernière mise à jour des données LastDataUpdate | L'`horodatage` indiquant la dernière `actualisation` ou `extraction` des `données` de cet `événement` depuis le `système source`. | ||
| Description Cet attribut marque la date et l'heure de la plus récente extraction de données. C'est un champ de métadonnées qui ne fait pas partie du processus métier lui-même mais est crucial pour comprendre la fraîcheur des données analysées. Les analystes utilisent ce timestamp pour confirmer qu'ils travaillent avec des informations à jour et pour comprendre le point de coupure pour les données. Il est essentiel pour la gouvernance des données et pour gérer les attentes des utilisateurs concernant l'actualité des données dans les dashboards et les rapports. Pourquoi c'est important Indique la fraîcheur des données, garantissant que les analystes et les parties prenantes sont conscients de l'actualité et de la pertinence des données. Où obtenir Cette valeur est générée et estampillée sur chaque enregistrement pendant le processus d'extraction et de chargement des données (ETL). Exemples 2023-10-27T02:00:00Z2023-10-28T02:00:00Z | |||
| Système source SourceSystem | Le système d'où proviennent les données. | ||
| Description Cet attribut identifie l'application source où les données de l'event ont été enregistrées. Dans un paysage informatique complexe, plusieurs systèmes peuvent être impliqués dans un seul processus de bout en bout. Spécifier le système source est important pour la gouvernance des données, le dépannage et la compréhension du contexte des données. Cela aide à différencier les events de divers systèmes s'ils sont combinés dans une vue de processus unique, garantissant une lignée de données claire. Pourquoi c'est important Fournit de la clarté sur l'origine des données, ce qui est crucial pour la validation des données, la gouvernance et la compréhension du contexte technologique du processus. Où obtenir C'est généralement une valeur statique ajoutée lors de l'extraction des données pour identifier l'origine des enregistrements. Exemples `Oracle Fusion Financials`Oracle AROracle Collections | |||
| Agent de recouvrement Collector | Le nom ou l'ID de l'agent de recouvrement assigné à la facture. | ||
| Description L'Agent de recouvrement est l'individu ou l'équipe responsable de la gestion des activités de recouvrement pour une facture en retard. Cette affectation est une étape clé dans le workflow de recouvrement. Cet attribut est crucial pour la gestion des performances et l'allocation des ressources au sein du service de recouvrement. En analysant les résultats par agent, les managers peuvent évaluer l'efficacité des agents, identifier les besoins en formation et équilibrer les charges de travail. Le dashboard d'efficacité de l'affectation des agents de recouvrement s'appuie directement sur cet attribut pour comparer les taux de réussite et les temps de cycle entre les différents agents. Pourquoi c'est important Permet l'analyse des performances des agents de recouvrement individuels ou des équipes, aidant à optimiser l'allocation des ressources et à améliorer l'efficacité globale du recouvrement. Où obtenir Cette information est généralement stockée dans le module Oracle Advanced Collections, souvent dans des tables comme IEX_CASES_ALL_B ou des tables d'affectation connexes. Exemples John SmithJane DoeÉquipe de recouvrement A | |||
| Date d'échéance DueDate | La date à laquelle le paiement de la facture est dû. | ||
| Description La Date d'échéance est un attribut de date critique convenu contractuellement pour le paiement. Elle est la base de référence par rapport à laquelle la ponctualité du paiement est mesurée. Cet attribut est fondamental pour identifier les factures en retard et calculer le nombre de jours de retard d'une facture. C'est le principal intrant pour déterminer quand les procédures de relance doivent être initiées et il est utilisé pour calculer des KPIs comme le Days Sales Outstanding (DSO). Il est également essentiel pour créer des rapports de vieillissement qui classifient la dette impayée. Pourquoi c'est important Sert de référence pour déterminer si une facture est en souffrance, déclenchant les activités de recouvrement et permettant l'analyse de l'ancienneté. Où obtenir Disponible dans la table AR_PAYMENT_SCHEDULES_ALL sous le nom de DUE_DATE. Exemples 2023-05-302023-06-152023-07-01 | |||
| Montant de la facture InvoiceAmount | La valeur monétaire totale de la facture. | ||
| Description Le Montant de la facture représente la valeur totale des biens ou services facturés au client. C'est un attribut financier critique pour comprendre l'impact monétaire du processus. En analyse, le Montant de la facture est utilisé pour prioriser les efforts de recouvrement, en se concentrant sur les factures en retard de grande valeur. Il est également utilisé pour analyser les comportements de paiement basés sur la valeur des transactions et pour calculer l'impact financier des créances irrécouvrables. Des dashboards comme l'Analyse du Taux de Créances Irrécouvrables des Factures s'appuient sur cette valeur pour évaluer l'ampleur des pertes financières. Pourquoi c'est important Fournit un contexte financier au processus, permettant la priorisation des factures de grande valeur et l'analyse de l'impact monétaire des inefficacités de processus. Où obtenir Cette information peut être dérivée de la table AR_PAYMENT_SCHEDULES_ALL, qui stocke le montant dû pour une facture. Exemples 5000.001250.75250000.00 | |||
| Niveau de relance DunningLevel | Le stade ou le niveau de la procédure de relance qui a été appliqué à la facture. | ||
| Description Le niveau de relance indique l'intensité du rappel de recouvrement, qui s'intensifie généralement avec le temps. Par exemple, le niveau 1 pourrait être un simple rappel par e-mail, tandis que le niveau 3 pourrait être une lettre formelle ou un appel téléphonique. L'analyse du processus par niveau de relance aide à évaluer l'efficacité de la stratégie de relance. Le Tableau de bord d'efficacité des relances utilise cet attribut pour visualiser les taux de conversion de chaque étape de relance en paiement. Cela permet à l'entreprise de déterminer quelles actions de relance sont les plus efficaces et d'ajuster le calendrier et le contenu des rappels pour maximiser les recouvrements. Pourquoi c'est important Suit le stade d'escalade des efforts de recouvrement, ce qui est critique pour évaluer l'efficacité de la stratégie de relance. Où obtenir Ces données sont gérées au sein du module Oracle Advanced Collections. Elles peuvent être trouvées dans des tables liées à l'historique de relance, telles que IEX_DUNNINGS. Exemples Niveau 1 : RappelNiveau 2 : AvertissementNiveau 3 : Avis final | |||
| Numéro de client CustomerNumber | Un identifiant unique pour le client associé à la facture. | ||
| Description Le Numéro client relie une facture à un compte client spécifique. Cela permet la segmentation et l'analyse du processus de crédit et de recouvrement basées sur les attributs client. En incluant le Numéro client, les analystes peuvent déterminer si certains clients paient constamment en retard, soulèvent plus de litiges ou nécessitent plus d'efforts de recouvrement. Cette information est vitale pour créer des stratégies de recouvrement spécifiques aux clients, ajuster les conditions de crédit et identifier les segments de clients à haut risque. Elle soutient directement des analyses comme l'Analyse du Taux de Créances Irrécouvrables par Segment Client. Pourquoi c'est important Permet la segmentation du processus par client, aidant à identifier les modèles, les risques et les opportunités pour des stratégies de recouvrement adaptées. Où obtenir Généralement trouvé dans la table RA_CUSTOMER_TRX_ALL comme BILL_TO_CUSTOMER_ID, qui se lie à HZ_CUST_ACCOUNTS. Exemples CUST-0012389455ACME-CORP-US | |||
| Segment de clientèle CustomerSegment | La classification du client en un groupe défini, tel que par taille, secteur d'activité ou importance stratégique. | ||
| Description Le Segment client est un attribut catégoriel qui regroupe les clients en fonction de caractéristiques partagées. Les segments peuvent être définis par des facteurs tels que « Stratégique », « PME », « Grande entreprise », ou par secteur d'activité comme « Fabrication » ou « Distribution ». Cet attribut est puissant pour l'analyse comparative. Il permet aux analystes de comparer les performances des processus entre différents segments pour voir, par exemple, si un segment a un taux de litiges plus élevé ou un cycle de paiement plus long. Cette information aide à adapter les politiques de crédit et les stratégies de recouvrement aux besoins et aux risques spécifiques de chaque segment, en supportant des tableaux de bord comme l'Analyse du taux de radiation des factures. Pourquoi c'est important Permet une analyse comparative puissante, révélant comment les performances des processus et les risques varient selon les différents groupes de clients. Où obtenir Souvent géré dans les données de base client (HZ_CUST_ACCOUNTS ou tables associées) ou dérivé des attributs client comme le chiffre d'affaires ou le secteur d'activité. Exemples Grande EntreprisePetites et Moyennes EntreprisesGouvernementPartenaire Stratégique | |||
| Utilisateur User | L'utilisateur ou l'ID système qui a effectué l'activité. | ||
| Description Cet attribut identifie l'employé spécifique ou l'utilisateur du système automatisé responsable de l'exécution d'une activité, telle que l'approbation d'une limite de crédit, l'enregistrement d'un paiement ou la résolution d'un litige. L'analyse des activités par utilisateur est essentielle pour comprendre la répartition de la charge de travail, la performance individuelle et la conformité. Pour les activités automatisées, elle aide à suivre l'implication des processus système. Elle peut également être utilisée pour identifier les besoins en formation ou les activités frauduleuses potentielles en surveillant le comportement des utilisateurs. Pourquoi c'est important Attribue les activités de processus à des individus ou des systèmes automatisés spécifiques, permettant le suivi des performances, l'analyse de la charge de travail et l'audit. Où obtenir Provient des colonnes 'CREATED_BY' ou 'LAST_UPDATED_BY' dans diverses tables de transactions et d'historique au sein d'Oracle Fusion Financials. Exemples jsmithar_specialist_1SYSTEM_AUTOMATION | |||
| Conditions de paiement PaymentTerms | Les conditions convenues qui spécifient quand le paiement est dû. | ||
| Description Les Conditions de paiement définissent les modalités selon lesquelles un client doit s'acquitter de sa facture, par exemple, 'Net 30' ou 'Net 60'. Ces conditions sont utilisées pour calculer la date d'échéance de la facture. L'analyse de la performance des paiements en fonction des conditions peut révéler des schémas intéressants. Par exemple, les clients bénéficiant de délais de paiement plus courts pourraient être plus enclins à payer en retard. Cette information peut servir à revoir et optimiser les politiques de crédit et à segmenter les clients pour différentes stratégies de recouvrement. Elle fournit un contexte précieux pour comprendre pourquoi certaines factures deviennent en retard. Pourquoi c'est important Fournit un contexte sur le calendrier de paiement convenu, permettant l'analyse du comportement de paiement selon différentes conditions de crédit. Où obtenir Ceci est stocké dans la table RA_TERMS et lié à la transaction de facture. Exemples Net 30Net 60Payable à réception | |||
| Date de promesse de paiement PromiseToPayDate | La date à laquelle un client a promis d'effectuer un paiement. | ||
| Description Au cours des activités de recouvrement, un client peut s'engager à effectuer un paiement à une date future. Cette « Date de promesse de paiement » est enregistrée pour suivre cet engagement. Cet attribut est important pour gérer les workflows de recouvrement et évaluer la fiabilité des engagements clients. En comparant la Date de promesse de paiement avec la date réelle de Paiement Reçu, les agents de recouvrement peuvent évaluer le taux de réussite de ces promesses. Cela aide à prévoir plus précisément les flux de trésorerie et à décider quand intensifier les efforts de recouvrement si une promesse est rompue. Pourquoi c'est important Suit les engagements de paiement des clients, aidant à prévoir les flux de trésorerie entrants et à gérer l'efficacité des négociations de recouvrement. Où obtenir Stocké dans le module Oracle Advanced Collections, probablement dans des tables telles que IEX_PROMISES_T. Exemples 2023-06-102023-06-252023-07-05 | |||
| Devise de la facture InvoiceCurrency | La devise dans laquelle le montant de la facture est libellé. | ||
| Description Cet attribut spécifie la devise de la facture, telle que USD, EUR ou GBP. Dans les organisations multinationales, les factures sont souvent émises dans diverses devises. L'analyse des données avec plusieurs devises nécessite une manipulation minutieuse. Cet attribut permet le filtrage de la vue de processus par devise ou l'application des taux de change corrects pour les rapports financiers consolidés. Il garantit que les valeurs monétaires sont interprétées correctement et que les comparaisons de montants sont faites sur une base comparable. Pourquoi c'est important Essentiel pour interpréter correctement les données financières dans un environnement multidevises et garantir une analyse financière précise. Où obtenir Généralement trouvé dans la table RA_CUSTOMER_TRX_ALL comme INVOICE_CURRENCY_CODE. Exemples USDEURGBPJPY | |||
| Est en souffrance IsOverdue | Un indicateur booléen indiquant si la facture a dépassé sa date d'échéance de paiement. | ||
| Description C'est un attribut dérivé qui fournit une simple indication vrai ou faux du statut de retard d'une facture. Il est généralement calculé en comparant la date actuelle (ou la date de paiement) avec la date d'échéance de la facture. Cet indicateur est extrêmement utile pour le filtrage et la segmentation en analyse. Il permet aux analystes d'isoler rapidement la population de factures en retard pour étudier leurs chemins de processus, l'efficacité des activités de recouvrement et d'autres caractéristiques. Il simplifie la création de dashboards et de KPIs axés sur la gestion des dettes en retard, tels que le dashboard État et Vieillissement des Factures en Retard. Pourquoi c'est important Fournit un indicateur simple et clair pour identifier et analyser toutes les factures en retard, ce qui constitue l'axe principal du processus de recouvrement. Où obtenir C'est un champ calculé. La logique est : SI CurrentDate > DueDate ET Status != 'Paid' ALORS True SINON False. Exemples truefaux | |||
| Est radié IsWrittenOff | Un indicateur booléen indiquant si la facture a été radiée comme créance irrécouvrable. | ||
| Description C'est un indicateur dérivé qui identifie les factures que l'entreprise a jugées irrécouvrables et a retirées de ses créances actives. C'est généralement le résultat final, et indésirable, pour une facture. Cet attribut est essentiel pour calculer le KPI du Taux de Créances Irrécouvrables des Factures et pour le dashboard d'analyse associé. Il permet aux analystes d'isoler la population des recouvrements échoués pour identifier les caractéristiques communes, telles que le segment de clientèle ou la valeur de la facture, qui peuvent être associées à un risque de radiation plus élevé. Cette information est utilisée pour améliorer les politiques de crédit et les stratégies de recouvrement. Pourquoi c'est important Identifie clairement les cas d'échec de recouvrement, ce qui est essentiel pour analyser les causes profondes des créances irrécouvrables et calculer les taux de radiation. Où obtenir C'est un champ calculé, dérivé en vérifiant si une activité 'Facture Radiée' existe pour le dossier ou si le statut de la facture est 'Radiée'. Exemples truefaux | |||
| Heure de fin EndTime | Le timestamp indiquant quand une activité avec une durée a été achevée. | ||
| Description Pour les activités ayant un début et une fin distincts, cet attribut capture le temps d'achèvement. Bien que de nombreux événements en Process Mining soient instantanés, certains, comme l'« Enquête sur un litige », peuvent s'étendre sur une période donnée. Avoir un « Temps de fin » distinct permet le calcul précis des temps de traitement des activités. C'est plus précis que de déduire la durée du temps de début de l'activité suivante, en particulier lorsqu'il y a des périodes d'inactivité. C'est crucial pour analyser l'utilisation des ressources et identifier les étapes spécifiques qui prennent le plus de temps au sein du processus. Pourquoi c'est important Permet le calcul précis de la durée des activités spécifiques, offrant une meilleure compréhension des goulots d'étranglement et de l'utilisation des ressources. Où obtenir C'est souvent un attribut conceptuel. Il peut provenir d'un timestamp de 'dernière mise à jour' ou d'un champ spécifique de 'date de clôture' dans les tables sources correspondant à l'activité. Exemples 2023-04-15T11:30:00Z2023-05-02T09:00:00Z2023-05-21T16:45:00Z | |||
| Jours de retard DaysOverdue | Le nombre de jours où une facture a dépassé sa date d'échéance. | ||
| Description Cette métrique calculée quantifie le retard d'une facture impayée. Elle est calculée comme la différence entre la date actuelle (pour les factures ouvertes) ou la date de paiement (pour les factures clôturées) et la date d'échéance. Les Jours de Retard sont une mesure critique pour l'analyse de vieillissement et la priorisation des efforts de recouvrement. C'est la métrique principale dans le dashboard État et Vieillissement des Factures en Retard, où les factures sont regroupées en tranches d'âge (par exemple, 1-30 jours, 31-60 jours). Cela aide l'équipe de recouvrement à se concentrer sur les dettes les plus anciennes et les plus à risque. Pourquoi c'est important Quantifie l'étendue des retards de paiement, servant de métrique clé pour la priorisation du recouvrement et la réalisation d'analyses de vieillissement. Où obtenir C'est un champ calculé. La logique est : CurrentDate - DueDate pour les factures ouvertes, ou PaymentDate - DueDate pour les factures clôturées. Exemples 1545920 | |||
| Montant de la limite de crédit CreditLimitAmount | Le montant maximum de crédit approuvé pour le client. | ||
| Description Le Montant de la limite de crédit est l'exposition totale au crédit qu'une entreprise est prête à avoir avec un client donné. Ceci est déterminé lors du processus de révision de crédit. Cet attribut est essentiel pour le dashboard d'impact des décisions de limite de crédit. En corrélant la limite de crédit approuvée avec le comportement de paiement ultérieur et les créances irrécouvrables, l'entreprise peut évaluer l'efficacité de ses politiques de risque de crédit. L'analyse peut révéler si des limites de crédit excessivement élevées contribuent à des taux plus élevés de créances irrécouvrables, aidant à affiner le processus d'approbation de crédit. Pourquoi c'est important Crucial pour évaluer l'efficacité des politiques de risque de crédit en corrélant la limite de crédit approuvée avec les résultats de paiement et les radiations. Où obtenir Ceci est géré dans Oracle Credit Management et est généralement stocké dans des tables liées aux profils de crédit client, telles que HZ_CUST_PROFILE_AMTS. Exemples 10000.0050000.00250000.00 | |||
| Motif du litige DisputeReason | La raison fournie par le client pour contester une facture. | ||
| Description Lorsqu'un client conteste une facture, il fournit généralement une raison, telle que 'Prix incorrect', 'Marchandises endommagées' ou 'Facture en double'. Cet attribut capture cette raison. L'analyse des motifs de litige est essentielle pour l'analyse des causes profondes. Elle aide à identifier les problèmes récurrents dans les processus en amont comme la gestion des commandes ou la facturation qui entraînent des retards de paiement. En catégorisant et en suivant la fréquence des différents motifs de litige, une entreprise peut prendre des mesures ciblées pour corriger ces causes profondes, ce qui soutient l'objectif de raccourcir le Temps de cycle de résolution des litiges. Pourquoi c'est important Aide à identifier les causes profondes des litiges de facturation, permettant des améliorations proactives des processus en amont pour prévenir de futurs litiges. Où obtenir Cette information est généralement capturée dans les modules Oracle Advanced Collections ou Oracle Channel Revenue Management si la gestion des litiges est formalisée. Elle peut résider dans des tables comme AR_DISPUTE_HISTORY. Exemples Quantité incorrecteÉcart de prixMarchandises EndommagéesService non rendu | |||
| Statut de la facture InvoiceStatus | Le statut actuel de la facture dans son cycle de vie. | ||
| Description Le statut de la facture donne un aperçu de l'état actuel de la facture dans le processus. Les statuts courants incluent « Ouvert », « Payé », « Contesté », « En souffrance » ou « Radié ». Cet attribut offre une vue d'ensemble de l'état des créances. En Process Mining, cet attribut est utile pour filtrer les cas et se concentrer sur des populations spécifiques, telles que toutes les factures ouvertes en souffrance. C'est une dimension clé du tableau de bord « Vieillissement et statut des factures en souffrance », offrant une visibilité immédiate sur l'état actuel du portefeuille de factures et aidant à prioriser les activités de recouvrement. Pourquoi c'est important Fournit un aperçu rapide de l'état actuel d'une facture, permettant un filtrage et une priorisation faciles des efforts de recouvrement. Où obtenir Généralement disponible dans la table AR_PAYMENT_SCHEDULES_ALL dans un champ nommé STATUS. Exemples OuvertClôturéLitigieuxEn recouvrement | |||
| Temps de traitement ProcessingTime | Le temps passé à travailler activement sur une activité. | ||
| Description Le temps de traitement mesure le temps de travail actif pour une tâche spécifique, à l'exclusion de tout temps d'attente ou d'inactivité. Il est calculé comme la différence entre l'heure de fin et l'heure de début d'une activité. Cette métrique est inestimable pour l'analyse des performances, car elle aide à distinguer le temps passé à travailler activement sur un dossier du temps passé à attendre qu'autre chose se produise. Par exemple, elle peut mettre en évidence les inefficacités dans l'activité de 'Résolution des litiges' elle-même, séparément du temps où le litige était en attente d'affectation. Cela soutient des dashboards comme l'Efficience du Workflow de Recouvrement. Pourquoi c'est important Mesure la durée réelle de travail des activités, aidant à identifier les inefficacités au sein de tâches spécifiques plutôt que le simple temps écoulé entre elles. Où obtenir C'est une métrique calculée, dérivée en soustrayant le StartTime du EndTime (EndTime - StartTime). Exemples 864003600604800 | |||
| Unité commerciale BusinessUnit | L'unité commerciale ou l'entité organisationnelle spécifique qui a émis la facture. | ||
| Description Dans les grandes organisations, les opérations sont souvent divisées en plusieurs unités commerciales. Cet attribut identifie l'unité commerciale associée à la facture. L'analyse du processus par Unité Commerciale permet de comparer les performances entre les différentes parties de l'organisation. Elle peut mettre en évidence les incohérences dans l'application des politiques de crédit et de recouvrement et révéler quelles unités commerciales sont les plus efficaces dans la gestion de leurs créances. Cela aide à partager les meilleures pratiques et à standardiser les processus si nécessaire. Pourquoi c'est important Permet la comparaison des performances entre différentes unités organisationnelles, aidant à identifier les meilleures pratiques et les domaines d'amélioration. Où obtenir Disponible dans la table RA_CUSTOMER_TRX_ALL via le champ ORG_ID, qui est lié à la structure organisationnelle. Exemples BU North AmericaBU EMEADivision des services mondiaux | |||
Activités de gestion du crédit et de recouvrement
| Activité | Description | ||
|---|---|---|---|
| Date d'échéance du paiement dépassée | Un événement calculé qui se produit lorsque la date actuelle dépasse la date d'échéance de la facture sans que celle-ci ne soit intégralement payée. Cet événement marque la transition d'une facture du statut « en cours » au statut « en souffrance ». | ||
| Pourquoi c'est important C'est un jalon clé qui déclenche les processus de recouvrement et de relance. L'analyse du volume et de la valeur des factures dépassant leur date d'échéance est essentielle pour gérer le fonds de roulement et évaluer le risque de crédit. Où obtenir Cet event est calculé en comparant la date actuelle du système à la DUE_DATE dans la table AR_PAYMENT_SCHEDULES_ALL pour les factures avec un STATUS de 'OP' (Ouvert). Capture Événement calculé : se produit lorsque SYSDATE > AR_PAYMENT_SCHEDULES_ALL.DUE_DATE. Type d'événement calculated | |||
| Facture générée | Marque la création de l'enregistrement de la transaction de facture dans Oracle Fusion Financials. C'est le début officiel du cycle de vie de la facture dans le module des comptes clients et sert de point de départ principal pour l'analyse. | ||
| Pourquoi c'est important C'est l'event de départ critique pour le parcours de la facture. Tous les calculs de temps de cycle ultérieurs, tels que le Days Sales Outstanding (DSO) et le temps de cycle de paiement des factures, dépendent de ce timestamp initial. Où obtenir C'est un event explicite capturé à partir de la colonne CREATION_DATE ou TRX_DATE dans la table RA_CUSTOMER_TRX_ALL pour un TRX_NUMBER spécifique (Numéro de facture). Capture L'horodatage de l'événement est la CREATION_DATE de la table RA_CUSTOMER_TRX_ALL. Type d'événement explicit | |||
| Facture passée en perte | Représente la décision formelle de cesser les efforts de recouvrement et d'absorber le montant de la facture comme créance irrécouvrable. Il s'agit d'une transaction financière explicite qui ajuste le solde de la facture à zéro. | ||
| Pourquoi c'est important C'est un point d'échec critique pour le processus de recouvrement. L'analyse des radiations par segment de clientèle, région ou limite de crédit aide à affiner les politiques de crédit et les stratégies de recouvrement pour minimiser les pertes. Où obtenir Capturé explicitement à partir de la création d'un ajustement dans la table AR_ADJUSTMENTS_ALL avec un RECEIVABLES_TRX_ID qui pointe vers une activité de créance irrécouvrable ou de radiation. Capture Date de création d'un enregistrement dans AR_ADJUSTMENTS_ALL avec un type d'activité de radiation. Type d'événement explicit | |||
| Paiement appliqué | Représente l'application d'un paiement reçu à une facture spécifique, réduisant le solde impayé de la facture. C'est l'étape qui lie formellement un paiement à une facture. | ||
| Pourquoi c'est important Cette activité est critique pour reconnaître qu'une facture a été payée. C'est le véritable point final pour le calcul du Days Sales Outstanding (DSO) et le cycle d'enregistrement des paiements. Où obtenir C'est un event explicite capturé à partir de la APPLY_DATE dans la table AR_RECEIVABLE_APPLICATIONS_ALL, qui relie un encaissement à une transaction client (facture). Capture APPLY_DATE de AR_RECEIVABLE_APPLICATIONS_ALL pour la facture pertinente. Type d'événement explicit | |||
| Paiement Reçu | Marque la réception de fonds d'un client, qui peuvent ne pas encore être appliqués à une facture spécifique. Ceci est capturé lorsqu'une transaction de reçu de caisse est créée dans le système. | ||
| Pourquoi c'est important C'est un jalon majeur dans le processus de recouvrement, indiquant que des liquidités ont été reçues. Le temps entre cet event et l'application du paiement est une mesure de l'efficience du traitement interne. Où obtenir Capturé explicitement à partir de la RECEIPT_DATE dans la table AR_CASH_RECEIPTS_ALL. Le reçu peut ensuite être lié à la facture à laquelle il a été appliqué via AR_RECEIVABLE_APPLICATIONS_ALL. Capture RECEIPT_DATE de AR_CASH_RECEIPTS_ALL, lié via les tables d'application. Type d'événement explicit | |||
| Procédure de relance initiée | Représente le début formel du processus de relance pour une facture en retard, impliquant souvent l'envoi de la première lettre de relance officielle. Ceci est généralement enregistré lorsqu'un processus de lot de relance est exécuté et inclut la facture. | ||
| Pourquoi c'est important Le suivi de cette activité est crucial pour mesurer l'efficacité de la relance et le respect des politiques de relance. Il fournit une base pour mesurer le temps nécessaire à la relance pour aboutir à un paiement. Où obtenir Enregistré dans le module Oracle Advanced Collections. La date de création d'un enregistrement de relance dans des tables comme IEX_DUNNINGS, liée à l'ID de transaction, marque cet événement. Capture Date de création de l'enregistrement dans la table IEX_DUNNINGS associée à la facture. Type d'événement explicit | |||
| Action du collecteur terminée | Représente une action manuelle entreprise par un agent de recouvrement, telle qu'un appel téléphonique, l'envoi d'un courriel ou l'enregistrement d'une note d'interaction. Celles-ci sont enregistrées comme 'activités' ou 'interactions' au sein du module de recouvrement. | ||
| Pourquoi c'est important Le suivi des actions des agents de recouvrement permet de mesurer l'efficacité et l'efficience du flux de travail manuel de recouvrement. Il facilite l'analyse de la fréquence des activités et de leur corrélation avec le succès des paiements. Où obtenir Capturé à partir des tables d'historique d'interaction ou d'activité dans Oracle Advanced Collections, telles que JTF_IH_ACTIVITIES, liées au client et potentiellement à la facture spécifique. Capture Horodatage de création des enregistrements dans JTF_IH_ACTIVITIES avec un résultat ou un code de raison pertinent. Type d'événement explicit | |||
| Examen de crédit terminé | Représente l'achèvement d'une évaluation de crédit pour le client associé à la facture. Cet event est généralement inféré en liant la date de création de la facture à la date d'achèvement de la dernière révision de crédit pour ce compte client, fournissant une base pour l'analyse liée au crédit. | ||
| Pourquoi c'est important L'analyse du temps écoulé entre la révision du crédit et la passation de commande aide à identifier les retards dans les étapes initiales du cycle de commande-encaissement. Elle est fondamentale pour mesurer le KPI de temps de cycle d'approbation de crédit et comprendre l'impact des décisions de crédit. Où obtenir Inférencé en interrogeant HZ_CREDIT_PROFILE.LAST_CREDIT_REVIEW_DATE pour le client sur la facture (RA_CUSTOMER_TRX_ALL.BILL_TO_CUSTOMER_ID). L'horodatage de l'événement est la LAST_CREDIT_REVIEW_DATE qui précède la CREATION_DATE de la facture. Capture Lier la facture à la date de la dernière révision de crédit du client avant la création de la facture. Type d'événement inferred | |||
| Facture clôturée | Se produit lorsque le solde impayé de la facture devient nul, soit par paiement, application d'un avoir, ou ajustement. Cela marque l'achèvement réussi du cycle de vie de la facture. | ||
| Pourquoi c'est important Cet event sert de point final principal réussi pour le processus. Le suivi de la clôture des factures est fondamental pour comprendre la santé globale du portefeuille de créances. Où obtenir Inférencé à partir d'un changement de statut dans la table AR_PAYMENT_SCHEDULES_ALL, où STATUS passe à « CL » (Clôturé). L'horodatage est le LAST_UPDATE_DATE de ce changement. Capture Détecter quand AR_PAYMENT_SCHEDULES_ALL.STATUS devient « CL » pour la facture. Type d'événement inferred | |||
| Facture envoyée au client | Indique que la facture a été formellement livrée au client, soit électroniquement, soit par impression. Cet événement peut être explicitement enregistré par un module de livraison ou déduit de la date d'impression de la facture. | ||
| Pourquoi c'est important Cette activité marque le début du décompte des conditions de paiement du client. Son suivi aide à calculer avec précision les jours de retard et à analyser tout délai entre la génération de la facture et la notification au client. Où obtenir Peut être capturé à partir de LAST_PRINTED_DATE dans RA_CUSTOMER_TRX_ALL. Alternativement, il peut être déduit des journaux d'intégration avec des systèmes de livraison d'e-mails ou d'autres plateformes de communication. Capture Utilisez LAST_PRINTED_DATE de RA_CUSTOMER_TRX_ALL ou le statut d'un journal de livraison. Type d'événement inferred | |||
| Litige enregistré | Indique que le client a formellement contesté la facture, en partie ou en totalité. Ceci est généralement capturé par un changement de statut sur l'échéancier de paiement de la facture. | ||
| Pourquoi c'est important Cette activité est le point de départ du processus de résolution des litiges. L'analyse du temps entre l'enregistrement et la résolution est critique pour identifier les goulets d'étranglement qui retardent la collecte de trésorerie. Où obtenir Inférencé à partir d'un changement de statut dans la table AR_PAYMENT_SCHEDULES_ALL, où le champ STATUS passe à « DS » (Contesté). L'horodatage peut provenir des tables d'audit ou de la date de la dernière mise à jour. Capture Détecter quand AR_PAYMENT_SCHEDULES_ALL.STATUS passe à « DS » pour la facture. Type d'événement inferred | |||
| Litige résolu | Indique qu'un litige enregistré a été examiné et qu'une résolution a été trouvée. Ceci est capturé lorsque le statut litigieux de la facture est supprimé. | ||
| Pourquoi c'est important Cet event marque la fin du cycle de résolution des litiges. La durée entre 'Litige Enregistré' et cet event est un KPI clé pour mesurer l'efficience opérationnelle et son impact sur la trésorerie. Où obtenir Inférencé lorsque le statut (STATUS) dans AR_PAYMENT_SCHEDULES_ALL passe de « DS » (Contesté) à « OP » (Ouvert) ou à « CL » (Clôturé) suite à un avoir ou un ajustement. Capture Détecter quand AR_PAYMENT_SCHEDULES_ALL.STATUS passe de « DS » à un autre statut. Type d'événement inferred | |||
| Promesse de paiement créée | Représente un accord formel enregistré dans le système où un client a promis d'effectuer un paiement à une date spécifique. C'est un résultat clé des activités de recouvrement. | ||
| Pourquoi c'est important Le suivi des promesses de paiement et de leurs taux de réalisation est un indicateur clé de performance pour les agents de recouvrement. Il aide à prévoir la trésorerie provenant des créances en retard et à évaluer l'efficacité des agents de recouvrement. Où obtenir Créé explicitement dans Oracle Advanced Collections. La date de création est capturée à partir de la table IEX_PROMISE_DETAILS. Capture Date de création de la table IEX_PROMISE_DETAILS pour la facture correspondante. Type d'événement explicit | |||
| Stratégie de recouvrement attribuée | Se produit lorsqu'une stratégie de recouvrement automatisée est assignée à la facture ou au client en retard. Cela définit la série d'étapes et d'activités que le système ou l'agent de recouvrement suivra. | ||
| Pourquoi c'est important Cet event fournit un aperçu de l'automatisation du processus de recouvrement. L'analyse des stratégies assignées et de leurs résultats aide à optimiser les approches de recouvrement pour différents segments de clientèle. Où obtenir Enregistré dans le module Oracle Advanced Collections. Ceci est généralement trouvé en examinant la date de création d'une affectation de stratégie dans des tables telles que IEX_STRATEGIES ou des objets connexes. Capture Date de création de l'élément de travail de la stratégie dans les tables de recouvrement liées au client ou à la transaction. Type d'événement explicit | |||
Guides d'extraction
Étapes
- Accéder à Oracle BI Publisher : Connectez-vous à votre environnement Oracle Fusion Financials. Accédez à la zone Rapports et analyses en cliquant sur l'icône Navigateur, puis en sélectionnant Outils > Rapports et analyses.
- Créer un nouveau modèle de données : Dans le volet Rapports et analyses, cliquez sur le bouton « Parcourir le catalogue ». Dans le catalogue, cliquez sur le menu déroulant « Nouveau » et sélectionnez « Modèle de données ».
- Définir le jeu de données de requête SQL : Dans l'éditeur de modèle de données, cliquez sur l'icône « + » pour ajouter un nouveau jeu de données et sélectionnez « Requête SQL ».
- Configurer la source de données : Dans la fenêtre du nouveau jeu de données, donnez un nom descriptif à votre jeu de données, par exemple, « CreditCollectionsEventLog ». Sélectionnez « FSCM » ou la base de données d'application Oracle Fusion appropriée comme Source de données. Définissez le Type de SQL sur « SQL standard ».
- Saisir la requête SQL : Copiez la requête SQL complète fournie dans la section « requête » de ce document et collez-la dans la zone de texte Requête SQL.
- Définir les paramètres de requête : La requête utilise des paramètres comme
:P_START_DATEet:P_END_DATEpour filtrer la plage de dates. BI Publisher les détectera automatiquement. Vous pouvez les configurer comme des invites utilisateur, en définissant leur type de données sur « Date ». - Enregistrer et tester le modèle de données : Enregistrez le modèle de données dans un dossier partagé ou personnalisé. Pour vérifier que la requête fonctionne, accédez à l'onglet « Données », saisissez des exemples de valeurs de paramètres (par exemple, une plage de dates récentes) et cliquez sur « Afficher » pour voir un échantillon des données de sortie. Assurez-vous que toutes les colonnes apparaissent correctement.
- Créer un nouveau rapport : Retournez au catalogue, cliquez sur le menu déroulant « Nouveau » et sélectionnez « Rapport ». Dans la boîte de dialogue « Créer un rapport », sélectionnez l'option « Utiliser le modèle de données » et localisez le modèle de données que vous venez d'enregistrer.
- Configurer les propriétés du rapport : Dans l'éditeur de rapport, une mise en page de tableau simple est suffisante pour l'extraction de données. Définissez le format de sortie par défaut. Pour le Process Mining, le CSV est le format recommandé. Pour ce faire, cliquez sur « Afficher une liste », trouvez « CSV » dans la liste « Formats de sortie » et cochez sa case. Vous pouvez décocher d'autres formats pour simplifier l'expérience utilisateur.
- Enregistrer le rapport : Enregistrez le rapport dans le même dossier que votre modèle de données.
- Planifier l'extraction : Pour automatiser l'extraction, vous pouvez planifier le rapport. Ouvrez le rapport, cliquez sur « Actions » et sélectionnez « Planifier ». Configurez la fréquence de la planification (par exemple, quotidienne), spécifiez le format de sortie comme CSV et définissez la destination de livraison, comme un répertoire de serveur de contenu ou un serveur externe via FTP.
Configuration
- Prérequis : L'utilisateur qui crée et exécute le rapport doit disposer des rôles BI appropriés (par exemple, « Administrateur BI » ou « Auteur BI ») et des autorisations de sécurité des données pour accéder aux tables financières sous-jacentes (AR, IEX, HZ, JTF).
- Source de données : La requête doit être exécutée sur la base de données de l'application principale, généralement nommée « FSCM ».
- Paramètres de plage de dates : Il est essentiel d'utiliser les paramètres
:P_START_DATEet:P_END_DATEpour limiter le volume des données. Pour les tests initiaux, utilisez une petite plage, par exemple un mois. Pour les exécutions en production, une période glissante de 3 à 6 mois est typique. - Filtrage : Pour les grandes organisations, envisagez d'ajouter un paramètre pour
BU_NAME(Nom de l'unité commerciale) à la clauseWHEREdans l'expression de table communeinvoices_baseafin de traiter les données pour une seule unité commerciale à la fois. - Considérations relatives aux performances : La requête joint plusieurs grandes tables transactionnelles. L'exécuter pour une large plage de dates sans filtres peut entraîner des temps d'exécution longs ou des délais d'attente dans BI Publisher. Planifiez l'exécution du rapport pendant les heures creuses.
- Format de sortie : Assurez-vous que le format de sortie par défaut ou planifié est CSV. Cela fournit un fichier propre et délimité qui est facilement consommable par les outils de Process Mining. Vérifiez les propriétés de sortie CSV pour vous assurer que le délimiteur et l'encodage des caractères sont correctement définis.
a Exemple de requête sql
WITH invoices_base AS (
SELECT
trx.customer_trx_id,
trx.trx_number AS InvoiceNumber,
hca.account_number AS CustomerNumber,
hcp.class_category || ':' || hcp.class_code AS CustomerSegment, -- Example of segment, may need adjustment
ps.amount_due_original AS InvoiceAmount,
coll.name AS Collector,
ps.due_date AS DueDate,
trx.creation_date AS InvoiceCreationDate,
trx.created_by AS InvoiceCreatedBy,
ps.payment_schedule_id
FROM
ra_customer_trx_all trx
JOIN ar_payment_schedules_all ps ON trx.customer_trx_id = ps.customer_trx_id
JOIN hz_cust_accounts hca ON trx.bill_to_customer_id = hca.cust_account_id
JOIN hz_customer_profiles hcp ON hca.cust_account_id = hcp.cust_account_id AND hcp.site_use_id IS NULL
LEFT JOIN iex_delinquencies_all del ON ps.payment_schedule_id = del.payment_schedule_id
LEFT JOIN JTF_RS_RESOURCE_EXTNS_VL coll ON del.collector_id = coll.resource_id
WHERE
trx.creation_date BETWEEN TO_DATE(:P_START_DATE, 'YYYY-MM-DD') AND TO_DATE(:P_END_DATE, 'YYYY-MM-DD')
AND trx.complete_flag = 'Y'
AND ps.class = 'INV'
)
-- 1. Credit Review Completed
SELECT
ib.InvoiceNumber AS "InvoiceNumber",
'Credit Review Completed' AS "ActivityName",
cr.review_date AS "EventTime",
'Oracle Fusion Financials' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
ib.CustomerNumber AS "CustomerNumber",
ib.CustomerSegment AS "CustomerSegment",
ib.InvoiceAmount AS "InvoiceAmount",
ib.Collector AS "Collector",
NULL AS "DunningLevel",
ib.DueDate AS "DueDate",
cr.created_by AS "User"
FROM
invoices_base ib
JOIN
hz_credit_reviews cr ON ib.CustomerNumber = (SELECT hca.account_number FROM hz_cust_accounts hca WHERE hca.cust_account_id = cr.cust_account_id)
WHERE cr.review_date = (SELECT MAX(cr_inner.review_date) FROM hz_credit_reviews cr_inner WHERE cr_inner.cust_account_id = cr.cust_account_id AND cr_inner.review_date < ib.InvoiceCreationDate)
UNION ALL
-- 2. Invoice Generated
SELECT
ib.InvoiceNumber,
'Invoice Generated' AS "ActivityName",
trx.creation_date AS "EventTime",
'Oracle Fusion Financials' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
ib.CustomerNumber,
ib.CustomerSegment,
ib.InvoiceAmount,
ib.Collector,
NULL AS "DunningLevel",
ib.DueDate,
trx.created_by AS "User"
FROM
invoices_base ib
JOIN ra_customer_trx_all trx ON ib.customer_trx_id = trx.customer_trx_id
UNION ALL
-- 3. Invoice Sent To Customer
SELECT
ib.InvoiceNumber,
'Invoice Sent To Customer' AS "ActivityName",
trx.last_printed_date AS "EventTime",
'Oracle Fusion Financials' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
ib.CustomerNumber,
ib.CustomerSegment,
ib.InvoiceAmount,
ib.Collector,
NULL AS "DunningLevel",
ib.DueDate,
trx.last_updated_by AS "User"
FROM
invoices_base ib
JOIN ra_customer_trx_all trx ON ib.customer_trx_id = trx.customer_trx_id
WHERE trx.last_printed_date IS NOT NULL
UNION ALL
-- 4. Payment Due Date Passed
SELECT
ib.InvoiceNumber,
'Payment Due Date Passed' AS "ActivityName",
ps.due_date AS "EventTime",
'Oracle Fusion Financials' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
ib.CustomerNumber,
ib.CustomerSegment,
ib.InvoiceAmount,
ib.Collector,
NULL AS "DunningLevel",
ib.DueDate,
'SYSTEM' AS "User"
FROM
invoices_base ib
JOIN ar_payment_schedules_all ps ON ib.payment_schedule_id = ps.payment_schedule_id
WHERE ps.due_date < SYSDATE AND ps.status = 'OP'
UNION ALL
-- 5. Dunning Procedure Initiated
SELECT
ib.InvoiceNumber,
'Dunning Procedure Initiated' AS "ActivityName",
dunn.dunning_date AS "EventTime",
'Oracle Fusion Financials' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
ib.CustomerNumber,
ib.CustomerSegment,
ib.InvoiceAmount,
ib.Collector,
TO_CHAR(dunn.dunning_level) AS "DunningLevel",
ib.DueDate,
dunn.created_by AS "User"
FROM
invoices_base ib
JOIN iex_dunning_transactions dunt ON ib.customer_trx_id = dunt.transaction_id
JOIN iex_dunnings dunn ON dunt.dunning_id = dunn.dunning_id
UNION ALL
-- 6. Collection Strategy Assigned
SELECT
ib.InvoiceNumber,
'Collection Strategy Assigned' AS "ActivityName",
strat.creation_date AS "EventTime",
'Oracle Fusion Financials' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
ib.CustomerNumber,
ib.CustomerSegment,
ib.InvoiceAmount,
ib.Collector,
NULL AS "DunningLevel",
ib.DueDate,
strat.created_by AS "User"
FROM
invoices_base ib
JOIN iex_strategy_work_items swi ON ib.payment_schedule_id = swi.payment_schedule_id
JOIN iex_strategies_vl strat ON swi.strategy_id = strat.strategy_id
UNION ALL
-- 7. Collector Action Completed
SELECT
ib.InvoiceNumber,
task_type.name AS "ActivityName",
task.actual_end_date AS "EventTime",
'Oracle Fusion Financials' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
ib.CustomerNumber,
ib.CustomerSegment,
ib.InvoiceAmount,
ib.Collector,
NULL AS "DunningLevel",
ib.DueDate,
res.source_name AS "User"
FROM
invoices_base ib
JOIN jtf_task_references_b ref ON ib.customer_trx_id = ref.object_id AND ref.object_type_code = 'OKC_K_HEADER'
JOIN jtf_tasks_b task ON ref.task_id = task.task_id
JOIN jtf_task_types_vl task_type ON task.task_type_id = task_type.task_type_id
JOIN jtf_rs_resource_extns_vl res ON task.owner_id = res.resource_id
WHERE task.actual_end_date IS NOT NULL
UNION ALL
-- 8. Promise To Pay Created
SELECT
ib.InvoiceNumber,
'Promise To Pay Created' AS "ActivityName",
prom.creation_date AS "EventTime",
'Oracle Fusion Financials' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
ib.CustomerNumber,
ib.CustomerSegment,
ib.InvoiceAmount,
ib.Collector,
NULL AS "DunningLevel",
ib.DueDate,
prom.created_by AS "User"
FROM
invoices_base ib
JOIN iex_promise_details prom ON ib.payment_schedule_id = prom.payment_schedule_id
UNION ALL
-- 9. Dispute Registered
SELECT
ib.InvoiceNumber,
'Dispute Registered' AS "ActivityName",
ps.dispute_date AS "EventTime",
'Oracle Fusion Financials' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
ib.CustomerNumber,
ib.CustomerSegment,
ib.InvoiceAmount,
ib.Collector,
NULL AS "DunningLevel",
ib.DueDate,
ps.last_updated_by AS "User"
FROM
invoices_base ib
JOIN ar_payment_schedules_all ps ON ib.payment_schedule_id = ps.payment_schedule_id
WHERE ps.amount_in_dispute IS NOT NULL AND ps.dispute_date IS NOT NULL
UNION ALL
-- 10. Dispute Resolved
SELECT
ib.InvoiceNumber,
'Dispute Resolved' AS "ActivityName",
disp.resolution_date AS "EventTime",
'Oracle Fusion Financials' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
ib.CustomerNumber,
ib.CustomerSegment,
ib.InvoiceAmount,
ib.Collector,
NULL AS "DunningLevel",
ib.DueDate,
disp.last_updated_by AS "User"
FROM
invoices_base ib
JOIN ar_disputes_all disp ON ib.payment_schedule_id = disp.payment_schedule_id
WHERE disp.status = 'CLOSED' AND disp.resolution_date IS NOT NULL
UNION ALL
-- 11. Payment Received
SELECT
ib.InvoiceNumber,
'Payment Received' AS "ActivityName",
cr.receipt_date AS "EventTime",
'Oracle Fusion Financials' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
ib.CustomerNumber,
ib.CustomerSegment,
ib.InvoiceAmount,
ib.Collector,
NULL AS "DunningLevel",
ib.DueDate,
cr.created_by AS "User"
FROM
invoices_base ib
JOIN ar_receivable_applications_all app ON ib.payment_schedule_id = app.applied_payment_schedule_id
JOIN ar_cash_receipts_all cr ON app.cash_receipt_id = cr.cash_receipt_id
WHERE app.status = 'APP'
UNION ALL
-- 12. Payment Applied
SELECT
ib.InvoiceNumber,
'Payment Applied' AS "ActivityName",
app.apply_date AS "EventTime",
'Oracle Fusion Financials' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
ib.CustomerNumber,
ib.CustomerSegment,
ib.InvoiceAmount,
ib.Collector,
NULL AS "DunningLevel",
ib.DueDate,
app.created_by AS "User"
FROM
invoices_base ib
JOIN ar_receivable_applications_all app ON ib.payment_schedule_id = app.applied_payment_schedule_id
WHERE app.status = 'APP'
UNION ALL
-- 13. Invoice Closed
SELECT
ib.InvoiceNumber,
'Invoice Closed' AS "ActivityName",
ps.gl_date_closed AS "EventTime",
'Oracle Fusion Financials' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
ib.CustomerNumber,
ib.CustomerSegment,
ib.InvoiceAmount,
ib.Collector,
NULL AS "DunningLevel",
ib.DueDate,
ps.last_updated_by AS "User"
FROM
invoices_base ib
JOIN ar_payment_schedules_all ps ON ib.payment_schedule_id = ps.payment_schedule_id
WHERE ps.status = 'CL' AND ps.gl_date_closed IS NOT NULL
UNION ALL
-- 14. Invoice Written Off
SELECT
ib.InvoiceNumber,
'Invoice Written Off' AS "ActivityName",
adj.apply_date AS "EventTime",
'Oracle Fusion Financials' AS "SourceSystem",
SYSDATE AS "LastDataUpdate",
ib.CustomerNumber,
ib.CustomerSegment,
ib.InvoiceAmount,
ib.Collector,
NULL AS "DunningLevel",
ib.DueDate,
adj.created_by AS "User"
FROM
invoices_base ib
JOIN ar_adjustments_all adj ON ib.customer_trx_id = adj.customer_trx_id
JOIN ar_receivables_trx_all rt ON adj.receivables_trx_id = rt.receivables_trx_id
WHERE rt.name = '[Your Write-Off Activity Name]' -- Example: 'Bad Debt Write-off'