Skip to main content

BulkOperationOptions

  • Namespace: PPDS.Dataverse.BulkOperations
  • Assembly: PPDS.Dataverse
  • Kind: Class

Summary

Configuration options for bulk operations.

Members

Properties

BatchSize

int BatchSize { get; set; }

Gets or sets the number of records per batch. Must be between PPDS.Dataverse.BulkOperations.BulkOperationOptions.MinBatchSize and PPDS.Dataverse.BulkOperations.BulkOperationOptions.MaxBatchSize inclusive. Benchmarks show 100 is optimal for both standard and elastic tables. Default: 100

BypassCustomLogic

CustomLogicBypass BypassCustomLogic { get; set; }

Gets or sets which custom business logic to bypass during execution.

BypassPowerAutomateFlows

bool BypassPowerAutomateFlows { get; set; }

Gets or sets a value indicating whether to bypass Power Automate flows. When true, flows using "When a row is added, modified or deleted" triggers will not execute. No special privilege is required. Default: false

ContinueOnError

bool ContinueOnError { get; set; }

Gets or sets a value indicating whether to continue after individual record failures. Only applies to Delete operations on standard tables (ElasticTable = false). Elastic tables always support partial success automatically. Default: true

ElasticTable

bool ElasticTable { get; set; }

Gets or sets a value indicating whether the target is an elastic table (Cosmos DB-backed).

When false (default, for standard SQL-backed tables): Create/Update/Upsert: Uses all-or-nothing batch semantics (any error fails entire batch)Delete: Uses ExecuteMultiple with individual DeleteRequests When true (for elastic tables): All operations support partial success with per-record error detailsDelete uses native DeleteMultiple APIConsider reducing BatchSize to 100 for optimal performance Default: false

MaxParallelBatches

Nullable<int> MaxParallelBatches { get; set; }

Gets or sets the maximum number of batches to process in parallel.

When null (default), uses the ServiceClient's RecommendedDegreesOfParallelism which comes from the x-ms-dop-hint response header from Dataverse.

Set to 1 for sequential processing, or a specific value to override Microsoft's recommendation.

Default: null (use RecommendedDegreesOfParallelism)

SuppressDuplicateDetection

bool SuppressDuplicateDetection { get; set; }

Gets or sets a value indicating whether to suppress duplicate detection. Default: false

Tag

string Tag { get; set; }

Gets or sets a tag value passed to plugin execution context.

Fields

MaxBatchSize

int MaxBatchSize

Maximum allowed batch size (inclusive). Dataverse rejects values greater than 1000 with an opaque error that can make the whole batch fail silently, so we validate up-front.

MinBatchSize

int MinBatchSize

Minimum allowed batch size (inclusive).