ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Data Namespace / PostOptions Class / PartialPostSelections Property
Example Version

PartialPostSelections Property
Gets or sets a list of Selection objects based on SelectionType.ObjectID to be posted to the default version.
Syntax
public List<Selection> PartialPostSelections {get; set;}
Remarks
If the underlying data store supports branch versioning and partial posting, Version.Post will post the data specified by the list of Selection objects to the default version.

  • Partial posting requires ArcGIS Enterprise 10.9 or higher.
  • The Utility Network supports partial posting since ArcGIS Enterprise 11.3 and Pro SDK 3.3.
  • Partial posting is not supported for Topology and Parcel Fabric.
  • PartialPostSelections property is not valid for traditional versioning.

Example
Partial Posting
// Partial posting allows developers to post a subset of changes made in a version.
// One sample use case is an electric utility that uses a version to design the facilities in
// a new housing subdivision. At some point in the process, one block of new houses have been
// completed, while the rest of the subdivision remains unbuilt.  Partial posting allows the user
// to post the completed work, while leaving not yet constructed features in the version to be
// posted later. Partial posting requires a branch-versioned feature service using ArcGIS
// Enterprise 10.9 and higher

// Specify a set of features that were constructed
QueryFilter constructedFilter = new QueryFilter()
{
    WhereClause = "ConstructedStatus = 'True'"
};
// This selection represents the inserts and updates to the support
// structure feature class that we wish to post
using (Selection constructedSupportStructures = supportStructureFeatureClass.Select(constructedFilter, SelectionType.ObjectID, SelectionOption.Normal))
{
    // Specifying which feature deletions you wish to post is slightly trickier, since you cannot issue
    // a query to fetch a set of deleted features Instead, a list of ObjectIDs must be used
    using (Selection deletedSupportStructures = supportStructureFeatureClass.Select(
                                        null, SelectionType.ObjectID, SelectionOption.Empty))
    {
        deletedSupportStructures.Add(deletedSupportStructureObjectIDs);  //deletedSupportStructureObjectIDs is
                                                                         //defined as List<long>

        //Perform the reconcile with partial post
        //At 2.x - 
        //ReconcileDescription reconcileDescription = new ReconcileDescription();
        //reconcileDescription.ConflictDetectionType = ConflictDetectionType.ByColumn;
        //reconcileDescription.ConflictResolutionMethod = ConflictResolutionMethod.Continue;
        //reconcileDescription.ConflictResolutionType = ConflictResolutionType.FavorEditVersion;
        //reconcileDescription.PartialPostSelections = new List<Selection>() { constructedSupportStructures, deletedSupportStructures };
        //reconcileDescription.WithPost = true;

        //ReconcileResult reconcileResult = designVersion.Reconcile(reconcileDescription);

        ReconcileOptions reconcileOptions = new ReconcileOptions();//reconcile against Default
        reconcileOptions.ConflictDetectionType = ConflictDetectionType.ByColumn;
        reconcileOptions.ConflictResolutionMethod = ConflictResolutionMethod.Continue;
        reconcileOptions.ConflictResolutionType = ConflictResolutionType.FavorEditVersion;

        PostOptions postOptions = new PostOptions();//post against Default
        postOptions.PartialPostSelections = new List<Selection>() {
              constructedSupportStructures, deletedSupportStructures };
        postOptions.ServiceSynchronizationType = ServiceSynchronizationType.Synchronous;

        ReconcileResult reconcileResult = designVersion.Reconcile(reconcileOptions, postOptions);

        //TODO process result(s)
    }
}
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also