@MarcoBoeringa , I understand your point of users editing different work areas of a feature class, or of only editing different layers altogether. However for various reasons that may not be realistic. A tool to systematically view Differences and Conflicts between two or three or more children, before posting to Default, would greatly assist in semi-automating QA/QC. For now the only thing I can think of, is to have an intermediate child Version to one-by-one post GrandChildren to, to see Differences and Conflicts. (Default->Child-> Grandchild 1, Grandchild 2, Grandchild 3)
It would be great if there was a way to view Differences and Conflicts between Children at the same level, before posting to Default. Or to any parent.
I posted a question before coming across this thread. https://community.esri.com/t5/data-management-questions/is-there-a-way-to-compare-between-multiple-child/td-p/1537009
Basically, seems like it's not possible? Someone posted some arcane SQL to do it but if it's not possible in a GUI I'll just muddle through by creating an intermediate version and one by one looking at Differences, which is the only way I can think of seeing differences, one by one, between multiple children, before posting all the way up to Default.
Ideally, 3 things would be possible:
1) ability to view differences and conflicts between child versions at the same level (child to child)
2) ability to accept/reject/modify in the Differences Panel one by one.
3) ability to Post only some feature classes, not all feature classes in the database, up Default or to a parent. Furthermore, ability to post only certain records (features) in a featureclass, based on an attribute. For example if I added a field marked 'approved' and then marked all the Posted features from Child 1 in Default as 'Approved'; then posted Child 2 with a filtering query, so only certain records in certain feature classes were Posted up from Child 2. I see the Conflict Filter tool in the toolbox and will experiment; hopefully that can exclude entire feature classes too.
This question is still valid in ArcGIS Enterprise (Pro 3.0.1)
Not sure why the edits occurred on the child versions are posted to the parent based on the date the child versions created but not the date the edits occurred in each version
Consider the scenario below:
This means that parent is modified based on the DATE the versions created but not the DATE the last edit made (regardless on which child version)
My understanding is that the parent should take the last edits made regardless the child version this editing is made in
Hi all,
Thank you for the useful information you discussed, but after working on this issue, I found that the "reconcile versions" depends on the updated of the last created version. which is "rr" in the attached photo, and does not depend on the time or other factors. The edits of the version of "rr" are transferred to the resulted default ArcSDE geodatabase while the edits of versions of "mm"" or "nn" are not transferred to default ArcSDE geodatabase, this clarify that the reconcile depends on the last created version.
Best,
Majdoleen
Jamal,No, this isn't risky, it is a choice. A choice that you as the user consciously make or not. There is no "good" or "bad" here. To make this more clear: let's for the sake of it assume there are two editors "A" and "B". "A" makes an edit to his version and saves at 10:05:34 AM. Now "B" makes a conflicting edit in his own version and saves at10:18:56 AM. Now who made the right edit? Is it "B" because he saved the last? Or "A" because he had the right papers, and "B" was accidentally given the wrong dossier? I hope you will agree there is no way to tell if A or B was right in case of a conflict, and certainly NOT based on something as arbitrary as a "save time". Only a review of what A and B did, and what paper sources or dossiers they used for the edits, might reveal who was right and who was wrong, so who made the error causing the conflict.And even if there is no conflict at all, any edits in any version including the DEFAULT might be wrong, because who is telling you your employees are doing their job right? (of course, I hope they do!). ArcGIS and the versioned editing environment does, of course - and logically - assume that any non-conflicting edits must be posted to the target based on the order of the save times / states, this is why the "edit versions" are listed in the recommended reconciliation order, the way they are visible in the Reconcile Versions dialog.I do have the feeling that you keep forgetting that editing conflicts, in a healthy well designed workflow, should be the absolute *exception*. If the workflow of your organization causes hundreds of editing conflicts, no (semi-automated) tool anyone at ESRI can devise, will solve the mess with you leaning back in your chair watching it happen!You should always ensure your workflows are good, than use reconciliation to fix the few errors left in a controlled and conscious matter.This may also mean no batch reconciliation, but one-by-one reconciliation with review of someone with authority to make the decisions to solve the conflict (most likely after a short investigation to find out what went wrong, and what the right state of the features involved should be based on the latest information gathered).
*If the type of conflict resolution is chosen to be �??in favor of edits�?� then the default.sde will be updated based on other versions in case of conflict! This is risky (screenshots below)
Jamal, you are still missing a point here, and I explained this in my last post. This is what is happening for feature 11:1) Since in these last screenshots you posted, you don't edit feature 11, feature 11 isn't in conflict with u1. This means the edit of u1 will be posted to target SDE.DEFAULT.2) Next u2 will be reconciled against target SDE.DEFAULT. Since feature 11 in SDE.DEFAULT now changed based upon the edit in u1, it now IS in conflict with feature 11 in u2! Since you set "FAVOR_TARGET_VERSION", the edit in u2 will be ignored and SDE.DEFAULT remains the same.3) The same holds for u3, feature 11 in u3 is in conflict with the target SDE.DEFAULT, and hence the edit of feature 11 in u3 will be ignored / discarded too. As a consequence, feature 11 in SDE.DEFAULT will be based on the edit of u1. You will need to set "FAVOR_EDIT_VERSION" in case you want the edit of feature 11 in u3 to be incorporated in target SDE.DEFAULT.As you can now also see, the status of being "in conflict" or not, can change during the batch reconciliation, as each edit version is reconciled and posted one after another...
1. I expect that feature #11 must be updated based on u3 (blue color) and thus THE SPATIAL LOCATION SHOULD GO TO THE �??BLUE�?� COLOR NOT TO THE RED
Jamal, if by this, you mean you hadn't expected feature 11 to move in SDE.DEFAULT because you set "FAVOR_TARGET_VERSION", than you are forgetting that you didn't edit feature 11 in the SDE.DEFAULT, you only edited feature 11 in the versions u1, u2 and u3.Since you didn't edit feature 11 in SDE.DEFAULT, there is NO edit conflict for feature 11 between SDE.DEFAULT and u1 once you start reconciling. Hence the edit of feature 11 in version u1 is posted to SDE.DEFAULT, and feature 11 thus moves in SDE.DEFAULT.If you want to see the other result as a test, namely a feature 11 that does not move with the edits in other versions, you will need to create a conflict by editing it in the SDE.DEFAULT as well, and setting "FAVOR_TARGET_VERSION", and than reconcile and post. This is what you did with feature 10, you moved it in SDE.DEFAULT. As a consequence, feature 10 in SDE.DEFAULT is in conflict with u1, and since you set "FAVOR_TARGET_VERSION", feature 10 remains as it is in SDE.DEFAULT after the reconciliation and post.ArcGIS is behaving exactly as expected!
Many thanks Marco for the massive elaboration,Please, consider the scenario in the screenshots belowThe target geodatabase is editied (in the post stage) despite the fact that the �??conflict resolution�?� is set based on �??target version�?�
Jamal, there are a few more things to take notice of:Basically, in a comparison of any two versions, there are two types of feature edits to be distinguished:- Those not in conflict- Those in conflictWhat happens with these feature edits?Those not in conflictIf there is no conflict between edit version and target for a particular feature, any edit to a feature in the edit version will be automatically posted to the target.Those in conflictIf there IS a conflict, the setting you choose for "conflict_resolution" (FAVOR_TARGET_VERSION or FAVOR_EDIT_VERSION), will determine whether the state of the conflicting feature in the target, or the state of the edit version will be maintained in the target after the reconciliation and post. If you choose FAVOR_TARGET_VERSION, NO posting of the conflicting feature edit in the edit version will take place, and the target versions representation remains the same as it was.If you choose FAVOR_EDIT_VERSION, posting of the conflicting feature edit in the edit version will take place, and the target versions representation will be replaced by the edit version.So the "conflict_resolution" parameter of the "Reconcile Versions" tool only affects / concerns features that are in conflict. This setting does nothing for all the remaining edits to features that are not in conflict (and remember that in a normal situation and with good workflow design, conflicts should be the exception, not the rule!).
ArcGIS determines the recommended reconciliation order based on the save times of the edits. In your case, the dialog shows that ArcGIS will perform three reconciliation and post cycles, in the following order starting at 1) and ending at 3).1) u2 <--- u32) u1 <--- u23) target <--- u1
How the order can be (so that the edits of u2 are taken):1. reconcile from sde to u2 and then post from u2 to sde2. reconcile from sde to u3 and then post from u3 to sde3. reconcile from sde to u1 and then post from u1 to sde[ATTACH=CONFIG]28079[/ATTACH]
One last and very important note about the whole reconcile & post of editing conflicts in the versioned editing environment:You should bear in mind, that conflict detection & reconciliation, is only a last resort to fixing errors that shouldn't be happening in the first place. If you give good working orders to your employees / editors, the amount of conflicts should be minimal. Editing conflicts can arise when users edit the same area, or make accidental mistakes by entering values for the wrong record (e.g. one record above or below what they intended).The versioned editing environment of ArcGIS, and its associated conflict detection & reconciliation was never meant to replace good workflow design and best practices for editing and work distribution / task designation among multiple editors.
Many thanks Marco.U2 version is derived directly from the default version. The tree is shown on the screenshot below:[ATTACH=CONFIG]27938[/ATTACH]
Very confusing! I expect that the updates of feature #11 will follow the u2.u.2 version (since the most recent edits occurred there) while the updates of feature #9 will follow the version u1.u1 (since the last edits occurred there)What is confusing that the both conflicts are updated based on the u1.u1 version! How come the u1.u1 is the determinant?I tried to do other conflict changes and found out that the updates of the u1.u1 are considered!What might be the issue here?
Jamal,Before I (or someone else) can answer this properly, can you tell me one thing:Is version U2 derived / based on / a child of version U1 or is version U2 derived from SDE.DEFAULT directly?
Not necessarily..., it may get a bit complicated now, but versions reference so called "database states". Each time you make any type of edit to a Feature Class, you create a new "database state", and the version starts referencing that state from that moment onwards until the next edit completes. The database state references a certain combination of records in the base table and A/D delta tables. Your single version may actually go through a whole set of "states" during its life-time until you delete the version once you no longer need it. Even during a single edit session (the time in between clicking Start Editing and Stop Editing in ArcMap), your version may go through multiple states, as you can perform multiple edits in a single edit session.It is the time you complete your edits (transaction closing time?) to specific records / geometries, which ultimately determines which records / geometries might be considered the "valid" or last "state" of the object they represent. It is this time and database state information that is used in the (batch) reconciliation and post process to determine if there are any conflicts due to other users having edited, saved and posted the same object to the same target version before you post it. You can than use the reconciliation tools to review the conflicting states and determine whether you favor the current target, or your own edit version.So don't confuse the creation time of the version with the save / completion times of specific edits to specific records / geometries.Jamal, I also strongly encourage you to read Derek Law's basic introduction to versioning to better understand what is going on "under the hood":Versioning 101And for a really comprehensive overview (older 2004 document, but the mechanism of versioning described there is still highly relevant):Versioning - ESRI Technical paper
What I wanted to highlight here is that the order of versions when reconciled/posted with the parent is determinant!In my previous example, if the first version is U2 and the second version is U1 then feature 10 will be deleted from the target. Correct?
Jamal:From this Help page:"If you resolve conflicts in favor of the edit version, all conflicting features in the current edit session take precedence over conflicting representations in the target version."1) You delete feature 10 in version U12) You start batch reconciliation and posting with the option "in favor of the edit version" as per your screenshot.2) Reconciliation and posting of version U1 takes place, where feature 10 is deleted from the target database, no conflicts are detected in this phase.4) Now reconcilation and posting of version U2 takes place, again "in favor of the edit version". A conflict is detected. U2 has the original feature 10 with an edit to its attributes, but this feature is deleted from the target. Since it takes precedence over the target version, where the feature is deleted, feature 10 is posted back to the target, including the attribute edit done in feature 10.And yes, the deleted feature in version U1 is back...Jamal, if you want detailed control over each conflict, you should review any edits manually, not run a "batch reconciliation" on multiple versions. ArcGIS has all these tools specifically for this reason: to allow you to make a good judgement of the conflict by thoroughly reviewing it.As to best practices: multi-user edit conflicts are allowed and reconciliation supported in ArcGIS, but this doesn't mean you should be lax on good working practices. Well designed work flows and good work orders should always try to avoid conflicting edits as much as possible to avoid excess work in the conflict detecting & reconciliation.
Then why the edits of the version of u1 are not transferred to the resulted default ArcSDE geodatabase while the edits of version of u2 are transferred to default ArcSDE geodatabase?
Hi Jamal,I'm still on 10.0, but the concept is the same.Whether you reconcile Sammi or Reda's version first to default doesn't matter if they are both children of the parent default version. If there are conflicts, the reconcile/post process will tell you about them and you can specify which version to favor or manually review the conflicts.However it is best to reconcile the parent/child line in order, based on which user owns/created the version.You should be able to reconcile/post any of those child versions against default in any order. if there are conflicts, the process will inform you about them.
How about the sequence of reconcile/post between the default ArcSDE geodatabase and these multiple versions? With which version the default ArcSDE geodatabase is first reconciled/posted?For example, is the default ArcSDE geodatabase first reconciled/posted with Sami's version or Reda's version? which edits of these two versions are first transferred to the default ArcSDE geodatabase?
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.