public sealed class PostOptions
Public NotInheritable Class PostOptions
public sealed class PostOptions
Public NotInheritable Class PostOptions
public void ReconcileAndPost(Geodatabase geodatabase) { // Get a reference to our version and our parent if (geodatabase.IsVersioningSupported()) { using (VersionManager versionManager = geodatabase.GetVersionManager()) using (Version currentVersion = versionManager.GetCurrentVersion()) using (Version parentVersion = currentVersion.GetParent()) { //// Create a ReconcileDescription object //At 2.x - //ReconcileDescription reconcileDescription = new ReconcileDescription(parentVersion); //reconcileDescription.ConflictResolutionMethod = ConflictResolutionMethod.Continue; // continue if conflicts are found //reconcileDescription.WithPost = true; //// Reconcile and post //ReconcileResult reconcileResult = currentVersion.Reconcile(reconcileDescription); // ReconcileResult.HasConflicts can be checked as-needed // Create a ReconcileOptions object var reconcileOptions = new ReconcileOptions(parentVersion); reconcileOptions.ConflictResolutionMethod = ConflictResolutionMethod.Continue; // continue if conflicts are found reconcileOptions.ConflictDetectionType = ConflictDetectionType.ByRow; //Default reconcileOptions.ConflictResolutionType = ConflictResolutionType.FavorTargetVersion;//or FavorEditVersion // Reconcile ReconcileResult reconcileResult = currentVersion.Reconcile(reconcileOptions); if (!reconcileResult.HasConflicts) { //No conflicts, perform the post var postOptions = new PostOptions(parentVersion); //var postOptions = new PostOptions(); for default version postOptions.ServiceSynchronizationType = ServiceSynchronizationType.Synchronous;//Default currentVersion.Post(postOptions); } } } }
public void ReconcileAndPost2(Geodatabase geodatabase) { // Get a reference to our version and our parent if (geodatabase.IsVersioningSupported()) { using (VersionManager versionManager = geodatabase.GetVersionManager()) using (Version currentVersion = versionManager.GetCurrentVersion()) using (Version parentVersion = currentVersion.GetParent()) { //// Create a ReconcileDescription object //At 2.x - //ReconcileDescription reconcileDescription = new ReconcileDescription(parentVersion); //reconcileDescription.ConflictResolutionMethod = ConflictResolutionMethod.Continue; // continue if conflicts are found //reconcileDescription.WithPost = true; //// Reconcile and post //ReconcileResult reconcileResult = currentVersion.Reconcile(reconcileDescription); // ReconcileResult.HasConflicts can be checked as-needed // Create a ReconcileOptions object var reconcileOptions = new ReconcileOptions(parentVersion); reconcileOptions.ConflictResolutionMethod = ConflictResolutionMethod.Continue; // continue if conflicts are found reconcileOptions.ConflictDetectionType = ConflictDetectionType.ByRow; //Default reconcileOptions.ConflictResolutionType = ConflictResolutionType.FavorTargetVersion;//or FavorEditVersion var postOptions = new PostOptions(parentVersion); //var postOptions = new PostOptions(); for default version postOptions.ServiceSynchronizationType = ServiceSynchronizationType.Synchronous;//Default // Reconcile ReconcileResult reconcileResult = currentVersion.Reconcile(reconcileOptions, postOptions); if (reconcileResult.HasConflicts) { //TODO resolve conflicts } } } }
// 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); var reconcileOptions = new ReconcileOptions();//reconcile against Default reconcileOptions.ConflictDetectionType = ConflictDetectionType.ByColumn; reconcileOptions.ConflictResolutionMethod = ConflictResolutionMethod.Continue; reconcileOptions.ConflictResolutionType = ConflictResolutionType.FavorEditVersion; var postOptions = new PostOptions();//post against Default postOptions.PartialPostSelections = new List<Selection>() { constructedSupportStructures, deletedSupportStructures }; postOptions.ServiceSynchronizationType = ServiceSynchronizationType.Synchronous; var reconcileResult = designVersion.Reconcile(reconcileOptions, postOptions); //TODO process result(s) } }
System.Object
ArcGIS.Core.Data.PostOptions
Target Platforms: Windows 11, Windows 10, Windows 8.1