Hi Hayan,
Your scenario—integrating CRM with ERP using Dual Write to populate the Usage Current Amount in the Subscription Billing module—is a nuanced one, especially when it comes to triggering the correct behavior for unbilled revenue entries.
Here’s a breakdown of what’s happening and how you might address it:
Understanding the Issue
In Subscription Billing, when a new usage reading is entered manually, the system:
- Reverses the previous unbilled revenue transaction.
- Creates a new transaction with the updated amount.
However, when this is done via Dual Write, only the current reading is updated—without triggering the reversal and recreation of unbilled revenue entries.
Why This Happens
Dual Write is designed for data synchronization, not for triggering business logic or workflows. It synchronizes data between Dataverse and Finance & Operations, but it doesn’t automatically invoke the same internal processes that a manual entry would [1] [2].
Recommended Solutions
1. Use Dual Write + Business Events or Power Automate
- After syncing the usage amount via Dual Write, trigger a Power Automate flow or custom plugin that calls the necessary logic in F&O to process the unbilled revenue.
- You can use Business Events in F&O to listen for changes and initiate the correct journal creation.
2. Custom Integration Logic
- Extend the Dual Write map to include a custom field or flag that indicates a new usage entry.
- In F&O, create a custom handler that watches for this flag and triggers the reversal and recreation logic.
3. Use Asynchronous Dual Write (Preview)
- Microsoft is introducing asynchronous Dual Write for scenarios like high-volume invoicing [3]. While this is focused on Project Operations, the same pattern could be adapted for Subscription Billing to handle complex logic post-sync.
4. Manual Trigger via API
- If automation is not feasible, consider exposing an API endpoint in F&O that can be called after the Dual Write sync to manually trigger the journal update logic.
Best Practices
- Ensure your Dual Write maps are up to date and include all necessary fields.
- Avoid relying solely on data sync for business logic—use workflows or custom triggers.
- Test in a sandbox environment to validate that the reversal and recreation logic behaves as expected when triggered externally.
Please verify if this helps clarify the integration behavior and guide your next steps.
Thanks and best regards,
Daniele
Note: This response was prepared with support from Copilot to ensure clarity and completeness.
[1]: Dual-write overview – Microsoft Learn
[2]: Dual Write Integration – Imperium Dynamics
[3]: Dual-write async configuration – Microsoft Learn