web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

Community site session details

Community site session details

Session Id :
Finance | Project Operations, Human Resources, ...
Suggested Answer

Generic maker/checker workflow for New & Edit actions across multiple forms in D365FO

(2) ShareShare
ReportReport
Posted on by 291

Hello all,
I hope you are doing well.


We have a customer requesting that more than 50 forms in Dynamics 365 Finance & Operations should support a maker/checker (approval) process for both New and Edit actions.

 

The proposed idea from the technical manager (who does not have a dedicated ERP development background) is to build a generic solution that can be reused across all forms, with no or minimal form-specific customization.

The suggested design is as follows:

 

  • Override New and Edit actions on any form.


  • Instead of opening the original form, open a generic runtime form.


  • This generic form dynamically:

     

    • Reads the Data Entity schema related to the form.

    • Creates UI controls at runtime based on entity fields.


    • In case of Edit, populates the fields from the currently selected record.


    •  

  • Submitted data is stored in generic tables representing “pending requests”.


  • A separate generic approval form displays all pending requests (employees, vendors, customers, etc.) for approvers.


  • Once approved, the data is committed to the original business tables.

The same pattern would apply for New actions:

users enter data in the runtime-generated form, it is stored as a pending request, and only after approval is the real record created.

I have several concerns about this approach, including but not limited to:

 

  • Field-level validations (mandatory logic, cross-field validation, business rules)


  • Dynamic lookups and conditional logic


  • Security & role-based access control


  • Defaulting logic, computed fields, and events


  • Performance and maintainability


  • Bypassing existing form, table, and business logic


  • Handling special cases (composite entities, related tables, extensions, etc.)

 

From my experience, Microsoft typically implements maker/checker scenarios using staging tables and staging forms, specific to the business process.

A good example is Personnel actions in HR, where:

 

  • Actions (like creating a new position) are first stored in dedicated action tables.


  • Approvers review them in a separate form.


  • Only after approval are changes committed to the actual business tables.

 

This approach preserves business logic, validation, and security, but it is process-specific, not generic.

 
 

My question to the community:

 

  • Is a fully generic maker/checker solution (based on runtime-generated forms and Data Entity metadata) practically feasible in D365FO?


  • Are there known Microsoft-recommended patterns or guidance for implementing approvals on New/Edit actions across many forms?


  • What are the risks or limitations of such a generic approach in real-world ERP implementations?


  • Would a process-specific staging pattern be the correct architectural approach even if it requires more customization?

Any insights, experiences, or official guidance would be greatly appreciated.

I have the same question (0)
  • Suggested answer
    André Arnaud de Calavon Profile Picture
    301,415 Super User 2025 Season 2 on at
    Hi,
     
    I will start with the answer: "Yes, it is possible to create a generic solution for this requirement". 
     
    However, it will take a lot of time, effort, testing, correcting specific details to achieve this. As product manager at my previous employer, I created a vision for Master Data Management, including data entry workflows and data quality.
    Besides, the vision, we executed on this with a team and it took 14-18 months to have the solution supporting almost all scenarios. After that, the solution got extended with more features.
    The solution is fully configurable with the option for multiple steps, so multiple people can contribute to a record before having it ready for approval. All data entry is tracked in a common staging table before data is copied to the target table(s).
     
    My recommendation is to look at the Data Entry Workflow solution offered by Staedean instead of building something yourself. Link: Data Entry Workflow
      
  • Anton Venter Profile Picture
    20,352 Super User 2025 Season 2 on at
    The proposal is not really feasible due to the vast amount of time it will cost to do this. Most standard forms contains a lot of business logic to support the related business process flow. You will have to reimplement a lot of all that to ensure the data created is correctly.
  • Martin Dráb Profile Picture
    238,090 Most Valuable Professional on at
    The idea of editing data in a runtime-generated form instead of the existing forms doesn't sound wise to me. This would create parallel UI to existing forms, but one that ignores all the things that were done in the existing forms. For example:
    1. Forms have UI designed for a particular purpose; they're not just a list fields (potentially a few hundreds). They have tabs, groups, grid/details views, actions (for example, Copy from on orders), fields that aren't exposed to users and so on.
    2. A form often have more than one data source. For example, orders have lines, customers have addresses and so on. In my environment, CustTable has 16 data sources (12 in the standard forms and 4 added by extensions).
    3. It would ignore all the logic in forms, such as business logic deciding which fields can be edited. This would lead to data inconsistency sooner or later.
    I could bring more points, but these should be more than enough to reject such a design.
     
    I think you should let users edit the data in the existing forms; anything else means a lot of effort to make things worse.
     
    Regarding the existing pattern, one more to mention is the standard workflow framework. It maintains a status of records; a record is created the usual way, but it's created as a draft and its status changes when approved. Of course, business logics needs to take the status into account. This could be a solution for new records, but not for editing, where you require maintaining multiple versions of the same record at once. But it's supported in some cases. You mentioned customers, so you maybe interested how the standard approval workflow for customers does that. Look at CustTableProposal* tables and how they're used, e.g. modifiedControlledField() method of CustTable form.
     
    Note that if you want to maintain multiple versions of the same record, don't forget to think about the update conflicts. If you allow editing of a record that has a pending change, applying the approved change may overwrite other changes.
     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

News and Announcements

Season of Giving Solutions is Here!

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > Finance | Project Operations, Human Resources, AX, GP, SL

#1
Abhilash Warrier Profile Picture

Abhilash Warrier 679 Super User 2025 Season 2

#2
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 429 Super User 2025 Season 2

#3
Martin Dráb Profile Picture

Martin Dráb 264 Most Valuable Professional

Last 30 days Overall leaderboard

Product updates

Dynamics 365 release plans