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

Announcements

No record found.

News and Announcements icon
Community site session details

Community site session details

Session Id :
Finance | Project Operations, Human Resources, ...
Answered

Skip stagging in Import or export in DMF

(0) ShareShare
ReportReport
Posted on by

Hi team,

 

If we enabled “Skip stagging” while doing import or export in DMF. 

 

 

What stagging table does in DMF?

 

 

Can is it make performance better?

 

Pls advise thanks 

Categories:
  • Verified answer
    Syed Haris Shah Profile Picture
    2,015 Super User 2026 Season 2 on at

    HI @CU10121822-0 ,

    Export: Microsoft explicitly recommends skipping staging when the entity supports direct export, because staging causes the data to be processed/copied twice. This can improve performance, especially for high-volume exports. Reference: https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/data-export-perform?utm_source=chatgpt.com 

    Import: Microsoft does not recommend Skip Staging as a general import-performance optimization. For imports, Microsoft recommends set-based processing, batch/parallel processing, and keeping staging tables clean. Reference: https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/sysadmin/optimize-data-migration?utm_source=chatgpt.com 
     

    Final Recommandation:


    Skip Staging = performance improvement for supported EXPORT scenarios. 

    For IMPORT, don't enable it solely for performance, optimize the entity and import processing instead.
     

    Reagrds,

    Syed Haris Shah

  • CU10121822-0 Profile Picture
    on at

    Thanks Syed for your prompt response.

    As mentioned “Microsoft explicitly recommends skipping staging when the entity supports direct export.”

     

    Pls let me know , how will I know which entity support direct export and which entity not.

     

    Pls advise thanks 

  • CU10121822-0 Profile Picture
    on at

    Hi all,

     

    Pls response on my query. thanks

  • Anton Venter Profile Picture
    21,292 Super User 2026 Season 2 on at

    @CU10121822-0 

    Your questions have been answered by Syed but now you have changed the topic of this thread. Stay on topic or create a new post.

  • CU10121822-0 Profile Picture
    on at

    Okay Anton, i will create a new thread no problem.

    Anyway the question which I asked related to that only. I picked up from the above reply only. Unnecessary wasting time.

  • Verified answer
    Layan Jwei Profile Picture
    8,353 Super User 2026 Season 2 on at

    Hi,


    As far as I know, Skip staging is only used for export.


    When you export and set Skip staging = Yes, this can improve performance because you avoid writing the data to the staging table first and then exporting it from staging to the destination. Instead, the data is exported directly to the destination. It also prevents the staging table from growing unnecessarily.


    However, there are some cases where you can't skip staging for export. For example, when you have a postLoad() method used in your entity, a virtual field that requires X++ logic, or a composite entity, etc.
    In these cases, the entity doesn't support direct export. Direct export simply means exporting with Skip staging = Yes (so skip staging is bypassed here)


    One of the advantages of using the staging table is that you can troubleshoot data errors, especially during data migration.

     

    Thanks,
    Layan Jweihan
    Please mark this answer as "Verified" if it solved your issue. In order to help others who will face a similar issue in the future.

  • Suggested answer
    CA Neeraj Kumar Profile Picture
    5,324 Super User 2026 Season 1 on at

    Hi @CU10121822-0 ,

    Please have a look into the article shared by Syed, it is given in detail when to use skip staging when not, from front-end directly it will be difficult to identify the entities that supports export without staging.

    Sharing the extract from the article for your easy reference:
    "

    Avoid implementing postLoad when possible

    Don't implement postLoad, because it forces the export to go through staging.

    Entity authors can implement many methods on data entities to customize what happens when those entities are used. One method that you should avoid using is postLoad. This method requires that your export data is copied into your staging table, so that the method can be called once for each row. Afterward, you must copy the data from the staging table to your destination database or file. It's inefficient to copy all the data a second time. In addition, for full exports, the size of the staging table quickly grows over time. As a result, insert, update, and select operations on the staging table become slower.

    If there are values that you want to change before export, consider using a computed column formula to return the modified value. If values must be set just before import into the entity, consider using postStaging. In addition, the entity's insert and update methods can be customized to modify values for specific columns. Any of these alternative approaches let you skip staging for your export.

    When you create an export project in the user interface (UI), don't set up your export to use staging unless the entity has a postLoad method or a virtual field (that is, a value that's computed by an X++ method), or unless it must export bitmaps. Export through staging requires that the data is exported two times: once to the staging table and once to your destination. Therefore, use this approach only if you must export something that can only run in the staging process.

    If any columns in your entity are linked to configuration keys that are disabled, and you select any of the disabled columns, export fails unless you use staging for it. If your entity only works if you export through staging, check for fields that have configuration keys. In addition, because the configuration key settings are often on the enumeration (enum) object or extended data type (EDT) instead of the table or data entity view field, check for configuration keys on enums and EDTs too. If any fields, enums, and EDTs have configuration keys, don't export through staging. Instead, remove the mappings for all the disabled columns, so that you can skip staging. This approach is faster than going through staging."
     

    Regards,

    Neeraj Kumar

  • CU10121822-0 Profile Picture
    on at

    Hi Layan , as mentioned 

    "However, there are some cases where you can't skip staging for export. For example, when you have a postLoad() method used in your entity, a virtual field that requires X++ logic, or a composite entity, etc.
    In these cases, the entity doesn't support direct export. Direct export simply means exporting with Skip staging = Yes (so skip staging is bypassed here)"

     

     

    What I understood like 

    Suppose in Customer entity

    Field
    Source
    CustomerAccount.     CustTable
    CustomerName.         CustTable
    CreditLimit.                 CustTable
    CustomerStatus.         Virtual field

     

    Now in Post load method , i wrote the logic to populate the value Customer status.

     

    For example -

    Postload() -

    if (this.CreditLimit > 100000)
       this.CustomerStatus = "VIP";
    else
       this.CustomerStatus = "Normal";

     

    So, in database

     

    CustomerAccount = CUST001
    CustomerName    = ABC Ltd
    CreditLimit     = 150000

     

    But CustomerStatus doesn't physically exist in the database.

     

    So, what will happen during export.

    It will read the data and calculate the postload method and placed the data in STAGGING table.

     

    CustomerAccount    CustomerName   CreditLimit    CustomerStatus

    CUST001            ABC Ltd         150000         VIP

     

    So staging now contains including the value generated by the entity logic. And finally exported to the mentioned format like .CSV or Excel.

     

    So, this is the importance of stagging table.

    Am I correct?

     

    Pls advise thanks 

     

     


     

  • CU10121822-0 Profile Picture
    on at

    Hi all, pls validate . 

     

    Ami correct?

    Pls advise thanks 

  • Verified answer
    Layan Jwei Profile Picture
    8,353 Super User 2026 Season 2 on at

    Hi,


    Yes, your understanding is correct.


    In your example, CustomerStatus is a virtual field and its value is populated in the postLoad() method. Since postLoad() is required to calculate this value, the export needs to go through staging.


    So, the staging table can contain the calculated CustomerStatus value even though it doesn't physically exist in CustTable, and then the data is exported from the staging table to the destination file, such as Excel or CSV.


    This is one of the cases where the staging table is required and Skip staging should not be used.

     

    Thanks,
    Layan Jweihan
    Please mark this answer as "Verified" if it solved your issue. In order to help others who will face a similar issue in the future.

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

Quick Links

Season of Sharing Community Challenge Winners!

Congratulations to our community stars!

Women in Power Builds Momentum

Expanding mentorship, skilling, and AI innovation

Congratulations to the August Top 10 Community Leaders

These are the community rock stars!

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

#1
Martin Dráb Profile Picture

Martin Dráb 511 Most Valuable Professional

#2
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 426 Super User 2026 Season 2

#3
CU-1234529-002 Profile Picture

CU-1234529-002 159

Last 30 days Overall leaderboard

Product updates

Dynamics 365 release plans