Solution for Long-Running Transactional Dataverse Operations

Process workloads by using Microsoft Azure Functions Design solution components

A company plans to create an order processing app. When orders are created, the app will perform complex business logic and integrate with several external systems. Orders that have a large number of line items may take up to six minutes to complete. Processing for each order must be completed in one operation to avoid leaving records in an incomplete state. You need to recommend a solution for the company. What should you recommend?

  1. an asynchronous workflow that uses a custom workflow activity
  2. a real-time workflow that uses a custom action
  3. a webhook that connects to an Azure Function Correct Answer
  4. an asynchronous plug-in
Answer Correct answer: C — a webhook that connects to an Azure Function overcomes the 2-minute timeout and supports transactions via Web API batch operations.

Community Votes

C
60%
B
16%
D
24%

60% of anonymous learners picked answer C. Votes are pick records left by other test-takers — they are not the verified answer.

Community Insight

The question tests overcoming the Dataverse 2-minute execution timeout while maintaining transactional integrity, where the common trap is choosing a plug-in or workflow which will time out.

When a Dataverse operation exceeds the 2-minute plug-in and workflow timeout and requires transactional integrity, an Azure Function triggered by a webhook is the recommended solution. This page establishes that using a webhook with an Azure Function allows long-running processes while maintaining atomicity via Web API batch operations.

Choosing an asynchronous plug-in (D) or real-time workflow (B) because they seem transactional, ignoring their strict 2-minute execution timeout limit.

Community Discussion (42 comments)

JoaoRyff 👍 1 Selected: D
✅ D. Asynchronous plug-in This is the best and standard solution because: Asynchronous plug-ins can run up to 2 hours They are designed exactly for long-running, complex operations They run outside the main transaction, preventing user timeouts They guarantee the logic is executed reliably as a single pipeline operation They provide retries, monitoring, and consistency within Dataverse ✔ Recommendation: D. an asynchronous plug-in pq nao webhook C. Webhook → Azure Function A webhook is asynchronous, but: Webhooks are fire-and-forget → no transactional guarantee Azure Functions have default execution limits depending on plan Harder to ensure the entire operation is completed as one atomic block
nello557 👍 1
Plugins can run for a maximum of 2 minutes, not 2 hours.
0d5ad17 👍 1 Selected: D
Designed for long-running operations (minutes, not seconds), Executes outside the real-time transaction, avoiding timeout issues, Still represents one logical operation in Dataverse, Well-suited for complex business logic and external system integration, Standard, recommended approach for this exact scenario
Tiguer99 👍 1 Selected: C
Credit by ChatGPT, Gemini, etc.
14afe51 👍 2 Selected: D
The correct answer is: D. an asynchronous plug-in Here's why: The order processing involves complex business logic, integration with external systems, and can take up to six minutes. Asynchronous plug-ins are designed for long-running operations and allow for background processing without blocking the user interface. They also ensure that the operation is completed in one go, which aligns with the requirement to avoid leaving records in an incomplete state.
Kovval 👍 1 Selected: D
its d - chat gpt
5f14337 👍 1 Selected: D
Long-running operations: Since processing an order can take up to six minutes, a synchronous (real-time) process would time out. Asynchronous plug-ins are designed for background processing and can handle longer execution times. Complex business logic and external integrations: Asynchronous plug-ins are ideal for executing complex logic and calling external systems without blocking the user interface. Atomicity: Although asynchronous plug-ins are not inherently transactional across systems, you can design them to handle rollback logic or use compensating transactions to ensure consistency.
AKA2 👍 1 Selected: D
Asynchronous plug-ins: Are designed to handle long-running logic (not constrained by 2-minute timeout). Run outside the main transaction, so they don’t block user actions. Provide retry logic and better error handling. Can handle integration with external systems securely and consistently. Allow bundling all operations in one unit, minimizing partial updates.
5f14337 👍 1 Selected: D
synchronous plug-ins run in the background and support long-running operations (up to 2 minutes per execution cycle, but can chain/queue for more). Ideal for: Heavy business logic External system integration (e.g., via web services) Error handling and retries Since they execute outside the main transaction, they avoid blocking the UI and won’t timeout like synchronous plug-ins (which have a strict 2-minute timeout limit). You can use batching or queues to handle more complex or multi-stage orders safely.
itmaxuser 👍 1 Selected: D
Asynchronous plug-ins can still be designed to ensure complete processing — just not within the same transaction context as the user action. Asynchronous plug-ins: Run outside the main transaction, so the create operation completes first. Still execute the full logic in one operation and can be designed to ensure no partial writes (e.g., via scoped logic or retry mechanisms). Can handle long-running operations (like 6 mins), and are much better for external system integrations. So, what does "completed in one operation" really mean here? It means the business logic must be completed as a cohesive unit — it doesn’t necessarily mean it must be transactional or synchronous. The key is ensuring no partial data, not that the process must finish before the create completes.
pey 👍 1 Selected: A
B and C are less suitable because they both imply real-time processing, which might not be ideal for long-running operations and could potentially impact system performance and user experience. While D, an asynchronous plug-in, could be an alternative but might not provide the same level of flexibility and control over the processing flow as a custom workflow activity.
4e8b388 👍 1 Selected: D
With plug-ins you can handle complex business logic, integrate with external systems, do synch processing, avoid delays and records are not left in incomplete state. They are native features of the Dynamics 365 and Dataverse, providing seamless integration and execution. Why would you introduce additional layer of complexity and potential points of failure by using webhooks?
4e8b388 👍 2
After reconsidering, due to the 2min timeout with plug-ins perhaps webhooks in conjunction with Azure Functions is a better approach.
NyarukouSAMA 👍 1 Selected: C
Sandbox limitation is 2 minutes, and here said that execution could take up to 6 minutes. So it should be C.
omar1988 👍 5
what answer is the right answer ? most of websites saying its a realtime and you guys saying here webhook its really confusing and i dont know how i can pass if this website answering wrong or right
ziggy1117 👍 1
it can never be asynchronous because the requirement said it needs to be done in one operation. asynch means it can be done in many operations running at different times
MissWangBeHappy 👍 2
ChatGPD said D. C is a possible solution, but not best
MissWangBeHappy 👍 2
ChatGPD changed mind, should C since D may cause delays in processing if there are a large number of line items to process, which could result in incomplete records.
jkaur 👍 1
C should be correct
gmanunta81 👍 5
I checked also in measure up website teh solution is C webhook and azure functions
DenisRossi 👍 3 Selected: B
"Processing for each order must be completed in one operation to avoid leaving records in an incomplete state" Real-time workflow action is the only option that will roll back if it fails and avoid leaving record in an incomplete state.
ZBG 👍 2
Check out this doc : https://learn.microsoft.com/en-us/dynamics365/customerengagement/on-premises/developer/create-own-actions?view=op-9-1 Have a look on "Watch Out" section. It says no limit for Custom Action in real time workflow. But below that statement there is a tip "long running operations should be run outside of Crm 365". I would go for B but in real life I would push C as much as I can
Ameen 👍 1 Selected: C
C is the correct answer
Fyrus 👍 1 Selected: C
2 min timeout for plugins, CWA etc... You can go with C by just excluding the other 3 options
No_Doubt 👍 2 Selected: C
Due to the 2 min timeout, answer is C
myisafe 👍 1 Selected: B
C looks overkill with azure function. this is power platform exam. not azure.
gmanunta81 👍 1
it is not correct in my opinion
No_Doubt 👍 1
A webhook is registered using the plugin registration tool, what's the problem?
Muzera 👍 1 Selected: C
My guess: C
Anks123 👍 1
Answer should be: A. an asynchronous workflow that uses a custom workflow activity Async workflow has no timeout and custom workflow activity runs in a transaction.
zarooch 👍 2
everyone forgot on-prem? timeouts? what timeouts.. I know I know given the certification and exam context these days, so yeah could be that the given answer is indeed correct.
Tester888888 👍 1 Selected: C
C due to the 2min timeout.
vinesantanna 👍 1
My guess is C too.
MKap 👍 2
I too thought the answer was C. But... Yes, I agree workflows and Plugins have a 2 minute time out but real time workflow makes the user wait. Maybe the answer is really B because real time workflow is the only place where the operation will be rolled back. With Azure function, if something fails no roll back will take place.
AyushOberoi 👍 1 Selected: C
Answer is C
PL900_Kopi 👍 2
What will be the right answer? B or C
Mooskito 👍 1
Answers will be a webhook that connects to an Azure Function.
ViipiinTyagi 👍 7 Selected: C
C seems correct
abbasit 👍 1
B will be correct as real-time workflow will rollback all changes in case of failures.
BunkMoreland 👍 36
Definitely C. Custom actions have a 2 min timeout. This can be implemented using webhook and Azure function where the Azure function uses batch operations Web API which enables transactional operations and can run more than 2 mins https://docs.microsoft.com/en-us/powerapps/developer/data-platform/webapi/execute-batch-operations-using-web-api
Hugolini 👍 4
C is the right answer. Both plugins and workflows have a 2 minute execution limit.
asnsdvjksdvsdvnklnkldfnkl 👍 3
I agree - C is a better option - the plugin and the custom action will have a 2 minute limit. That said the webhook and azure function won't provide transactional rollback - unless it is coded to do so. This is a typical MS BS question.... overly elaborate question set up and then none of the answers are very good.

Comments & Corrections

No comments yet — spotted an error or have a note? Share it below.

Log in to comment, report an error, or add a note about this question.

Submitted for moderation before publishing. Keep it helpful and respectful.

Expert Analysis

Why the Answer Is Correct

Option C is correct because Dataverse plug-ins and workflows are strictly limited to a two-minute execution timeout, making them incapable of handling a process that takes up to six minutes. By using a webhook to trigger an Azure Function, the process can run for the required duration externally. To satisfy the requirement of avoiding incomplete records, the Azure Function can use the Dataverse Web API to execute batch operations within a changeset, which acts as a single atomic transaction.

Why the Other Options Are Wrong

Options A, B, and D are all incorrect because they rely on the Dataverse execution pipeline, which enforces a hard two-minute timeout limit for both synchronous and asynchronous executions. A real-time workflow (B) and an asynchronous plug-in (D) will fail and roll back or terminate if they exceed 120 seconds. An asynchronous workflow (A) also shares this timeout constraint and cannot run for six minutes.

Community Comment Notes

Community members correctly pointed out that plug-ins and workflows have a 2-minute timeout, making an Azure Function the only viable choice for long-running operations. As BunkMoreland noted, "Custom actions have a 2 min timeout. This can be implemented using webhook and Azure function where the Azure function uses batch operations". Another user highlighted the transactional aspect, acknowledging that while webhooks don't inherently provide rollback, "it is coded to do so" using batch operations.

Official Reference

Exam Strategy

For long-running Dataverse operations exceeding two minutes, immediately eliminate any plug-in or workflow option due to their hard timeout limits. Look for external compute options like Azure Functions combined with Web API batch requests to achieve transactional integrity.

Related Analysis

Practice All PL-400 Questions

Access 85 questions with complete answers and detailed explanations.

View Full PL-400 Practice Test →

← Back to PL-400 Study Guide