POST
|
Thanks Eric, From what I saw in the API reference this is not exactly what I am looking for, because it seems to undo all of the local edits, whereas I only want to undo the conflicting edits. At present, my approach is: var gdb = await Geodatabase.OpenAsync(localPath);
var syncTask = await GeodatabaseSyncTask.CreateAsync(new Uri(serviceUrl));
var syncParams = await syncTask.CreateDefaultSyncGeodatabaseParametersAsync(gdb);
syncParams.KeepGeodatabaseDeltas = true;
syncParams.GeodatabaseSyncDirection = SyncDirection.Download;
var job = syncTask.SyncGeodatabase(syncParams, gdb);
job.Start();
var results = await job.GetResultAsync(); Next, if there are any results (indicating errors), I will iterate those with ErrorCode 3070 (apparently conflicts), figure out by table name and GlobalID where the conflicting delta features are stored in the delta geodatabase (job.GeodatabaseDeltaInfo.DownloadDeltaPath) and apply their values feature by feature as edits to the local geodatabase. I am not happy with this workaround because it means that those edits will be uploaded to the server again as deltas on the next round trip, although the values correspond to what the server already has. I would prefer undoing the edits to the individual features so they won't appear as edits during the next upload. But I need to keep and upload the edits to all other features that have no conflicts.
... View more
05-19-2025
12:15 AM
|
1
|
0
|
412
|
POST
|
In an offline workflow we have a requirement that if a row was updated both on the server and on the client side, the server's representation should prevail (server wins scenario). However, when I start a sync job with SyncDirection set to Bidirectional, the local changes will be uploaded first and overwrite the updates on the server row. On the other hand, when I set SyncDirection to Download (to get updated rows from the server first), the locally modified row will not be updated with the server's modified data. Instead, a SyncLayerResult is returned for the affected table with an error entry for the conflicting row: Service error code 3070: Update failure. There are pending edits on the feature. This feature will not be synchronized. This error seems to indicate a conflict (not a lock e.g. by a pending edit session). What would be the best approach to integrate the server's updates and overwrite any local updates in case of conflicts? I haven't found any conflict resolution settings in the Esri.ArcGISRuntime.Tasks.Offline namespace, such as a FavorClient/FavorServer switch. I thought about keeping the downloaded delta geodatabase, in case of errors retrieving the affected features from there and applying the updates to the local geodatabase one by one. But I was wondering if there is a more convenient way or better support for such scenarios in the SDK. By the way, I am presently working with Runtime 100.15 but will soon upgrade to 200.x. Our data is not registered as versioned but with geodatabase archiving enabled.
... View more
05-09-2025
12:44 AM
|
0
|
3
|
516
|
POST
|
Hello Esri, In an ArcGIS Pro SDK Add-In (version 3.4) I subscribed to the row events of a line feature class to manipulate edits as they occur. I noticed that the row events are fired differently whether the feature class is accessed through a branch versioned feature service or directly from an Enterprise Geodatabase (sde connection) with traditional versioning. In case of the sde connection, splitting a line feature at one point fires the following row events: A RowChangedEvent for the original feature (the shape is still the same as before the split operation) A RowCreatedEvent for a new feature (with the shape of one part resulting from the split operation) A RowChangedEvent for the original feature (with the shape of the other part resulting from the split operation) However, in case of the feature service, only the first row event is fired. The two events with the shapes resulting from the split operation are not. Therefore I cannot update the split features as needed. @Esri, is this a bug or by design? Will firing the row events be implemented in a future version? Thanks, Fridjof
... View more
03-17-2025
02:28 AM
|
0
|
0
|
339
|
POST
|
Ah, I just saw that is a different tool... Yours is Simplify Line from Cartography Tools, but I was referring to Simplify 3D Line from 3D Analyst Tools. Simplify 3D Line does not provide the M Values environment.
... View more
03-11-2025
09:27 AM
|
0
|
0
|
328
|
POST
|
Hi @DanielFox1 , You find me puzzled, because I tried this in ArcGIS Pro 3.4.2 and the M Values environment did not appear: Also, the 3.4 documentation currently does not mention the M Values environment. Maybe you are using a future version where this has been implemented? That would be good news.
... View more
03-11-2025
08:23 AM
|
0
|
0
|
329
|
POST
|
Hello community, hello Esri, When running the Simplify 3D Line tool on an M-enabled polyline feature class, the M values get lost. Is there a way to prevent this? I tried arcpy.env.outputMFlag = "Enabled", but the tool seems to ignore it. @Esri: Could you please implement the outputMFlag environment for this tool? Thanks much, Fridjof
... View more
03-07-2025
10:04 AM
|
0
|
3
|
397
|
POST
|
After playing around with chained operations, which kind of worked but made things much more complicated than expected, I found an easy solution to this. I replaced var result = await MapView.Active.Map.GetZsFromSurfaceAsync(newShape); with var result = MapView.Active.Map.GetZsFromSurface(newShape); and voilà: The geometry update can be applied within the current edit operation. No async call needed. It seems the method was added in ArcGIS Pro version 3.2.
... View more
10-25-2024
08:02 AM
|
0
|
0
|
700
|
POST
|
Hello, In the ArcGIS Pro SDK 3.0+, (how) is it possible to activate the selection chip programmatically? I would like to write a MapTool that interactively selects features and lets the user choose one if multiple features were clicked (same as the standard SelectyByRectangle tool). Thanks for any advice! Fridjof
... View more
03-27-2023
07:31 AM
|
2
|
3
|
859
|
POST
|
Probably I would also subscribe to the MapViewInitializedEvent, so you can analyze the layers and tables in the current map once the map view is ready.
... View more
03-01-2023
10:59 PM
|
1
|
0
|
1255
|
POST
|
@KierenTinning2, I added an ArcGIS Idea for this issue. Please vote for it, anybody who would like this feature to be added.
... View more
02-12-2023
11:36 PM
|
0
|
0
|
1674
|
IDEA
|
In the ArcGIS.Desktop.Editing.Attributes.Inspector class of the SDK, please provide a member for hiding fields by name (e.g., IEnumerable<string> HiddenFields {get; set;}) or displaying only a subset of fields by name. See also this post. The workaround described there is to alter the field visibility in the CIM of the underlying layer. However, there are workflows where fields should not be hidden in general, while the user should see only a subset of fields in a customized Inspector.
... View more
02-12-2023
11:27 PM
|
0
|
0
|
820
|
POST
|
Thank you Narelle, I really appreciate it and I am looking forward to working with this future release. For those interested, my current approach is this: static bool SelectFirstTemplateFromFolder(string folderName)
{
var pane = FrameworkApplication.DockPaneManager.Find(DAML.Dockpane.esri_editing_CreateFeaturesDockPane);
pane.Activate();
var paneType = pane.GetType();
var pi = paneType.GetProperty("SubPanelIndex");
pi?.SetValue(pane, 0);
pi?.SetValue(pane, 1); // Switch to Favorites
pi = paneType.GetProperty("TemplateFoldersVM");
var templateFoldersVM = pi?.GetValue(pane);
pi = templateFoldersVM?.GetType().GetProperty("RootFolderChildren");
if (pi?.GetValue(templateFoldersVM) is IEnumerable col)
{
foreach (var item in col)
{
var itemType = item.GetType();
pi = itemType.GetProperty("Name");
var name = pi.GetValue(item);
if (Equals(name, folderName))
{
pi = itemType.GetProperty("Children");
if (pi?.GetValue(item) is IEnumerable children)
{
var enumerator = children.GetEnumerator();
if (enumerator.MoveNext())
{
var child = enumerator.Current;
var childType = child.GetType();
pi = childType.GetProperty("IsSelected");
pi.SetValue(child, false);
pi.SetValue(child, true);
return true;
}
}
break;
}
}
}
return false;
}
... View more
01-30-2023
10:02 PM
|
0
|
0
|
1081
|
POST
|
OK, this might be an option, but actually I was planning to go with the existing UI: Selecting a template from the list of favorites so that it appears selected, expands, and activates its default tool. It seems I can get hold of the TemplateFoldersVM in esri_editing_CreateFeaturesDockPane and its children via reflection, but I'd prefer a supported solution.
... View more
01-30-2023
04:57 AM
|
0
|
0
|
1101
|
POST
|
Hello, I would like to programmatically select a feature editing template from the list of favorites. For example, when the user clicks a button, the list of favorite templates appears and the first item under a certain folder gets selected. Is there a recommended way of doing this?
... View more
01-30-2023
03:32 AM
|
0
|
4
|
1116
|
POST
|
Hi sjones, unfortunately this doesn't help, because the row is getting disposed while awaiting GetZsFromSurfaceAsync.
... View more
12-07-2022
11:01 PM
|
0
|
0
|
1563
|
Title | Kudos | Posted |
---|---|---|
1 | 11-16-2022 09:21 AM | |
1 | 05-19-2025 12:15 AM | |
2 | 03-27-2023 07:31 AM | |
1 | 03-01-2023 10:59 PM | |
1 | 11-18-2022 06:55 AM |
Online Status |
Offline
|
Date Last Visited |
06-26-2025
11:19 PM
|