Summary
When BypassCustomPlugins = true is set on Sql4CdsConnection, the engine adds BypassCustomPluginExecution = true to each OrganizationRequest (see BaseDmlNode.cs line ~576). This only suppresses synchronous custom plugins.
The newer BypassBusinessLogicExecution optional parameter (with value "CustomSync,CustomAsync") also suppresses asynchronous custom plugins and workflows. For bulk DML operations this matters a lot — without it, every UPDATE/DELETE/INSERT generates async plugin jobs that pile up in the asyncoperation table.
In our case, a 93K-row UPDATE with BypassCustomPlugins = true still generated ~280K async system jobs (3 async plugins per record), growing our asyncoperation table to 1.6M rows and significantly degrading environment performance.
Request
Add support for BypassBusinessLogicExecution on Sql4CdsConnection, either:
- New property like
BypassBusinessLogicExecution (string: "CustomSync", "CustomAsync", or "CustomSync,CustomAsync") alongside the existing BypassCustomPlugins
- Upgrade the existing behavior so that when
BypassCustomPlugins = true, the engine sets BypassBusinessLogicExecution = "CustomSync,CustomAsync" instead of (or in addition to) the older BypassCustomPluginExecution
Optionally, also support SuppressCallbackRegistrationExpanderJob to suppress Power Automate cloud flow callbacks during DML.
References
Summary
When
BypassCustomPlugins = trueis set onSql4CdsConnection, the engine addsBypassCustomPluginExecution = trueto eachOrganizationRequest(seeBaseDmlNode.csline ~576). This only suppresses synchronous custom plugins.The newer
BypassBusinessLogicExecutionoptional parameter (with value"CustomSync,CustomAsync") also suppresses asynchronous custom plugins and workflows. For bulk DML operations this matters a lot — without it, every UPDATE/DELETE/INSERT generates async plugin jobs that pile up in theasyncoperationtable.In our case, a 93K-row UPDATE with
BypassCustomPlugins = truestill generated ~280K async system jobs (3 async plugins per record), growing ourasyncoperationtable to 1.6M rows and significantly degrading environment performance.Request
Add support for
BypassBusinessLogicExecutiononSql4CdsConnection, either:BypassBusinessLogicExecution(string:"CustomSync","CustomAsync", or"CustomSync,CustomAsync") alongside the existingBypassCustomPluginsBypassCustomPlugins = true, the engine setsBypassBusinessLogicExecution = "CustomSync,CustomAsync"instead of (or in addition to) the olderBypassCustomPluginExecutionOptionally, also support
SuppressCallbackRegistrationExpanderJobto suppress Power Automate cloud flow callbacks during DML.References
BypassCustomPluginExecution= sync onlyBypassBusinessLogicExecution= granular sync + async controlprvBypassCustomBusinessLogicprivilege