Select to view content in your preferred language

Issues with Using Attribute rules to assign parcel number in the Parcel Fabric Service

7950
21
06-24-2022 07:36 AM
JoeGuziStarkCountyOH
Frequent Contributor

Greetings Esri Community,

     I hope this post finds you well and that everything is awesome. I'm desperate. I am trying to write a rule that will generate a parcel number and calculate the Name field of the parcel parcel type in the fabric. I created a geodatabase sequence, written the calculation rule as a batch calculation rule, so I can run it manually at the appropriate time via the evaluate rules gp tool, and I get the dreaded 999999 error. This rule works in a file geodatabase, and in a feature service with the just the parcel fc and the validation fcs in the service. Therefore I am confident that expression works. I get the error when I run the evaluate gp tool on the parcel fabric service. Here are the details:

  • System
    • ArcGIS Pro 2.9.3, also tried 3.0
    • ArcGIS Enterprise 10.9.1
    • Windows Server 2019
    • SQL Server 2019
    • GDB Version 10.9.1.2.9
  • Attribute Rule on the Parcel FC in the fabric
    • Calculation Rule
    • Execution: Exclude from application evaluation, Batch
    • It should be noted that when I initially created the rule, I did not check the Exclude from application evaluation box, but it would not allow me to save the rule unless I checked it...
      • Error:  Error 002920: Exclude from Application Evaluation Must be enabled [ while using sequences. (RuleName: name of the rule)]. Error 002556: Attribute rule not found.
      • When I check the Exclude from application evaluation box, that error goes away and I can save the rule.
    • Expression: return nextsequencevalue("ParcelNumberAssignmentSequence");
    • Field: Name
  • Sequence:
    • sequence name: ParcelNumberAssignmentSequence
    • Start with: 10015314
    • Sequence increment value: 1
  • Implementation:
    • The Parcel fabric was already published as a service.
    • after I implemented the rule I overwrote the service
    • added the service to a new map
  • Parcel Fabric Service Settings
    • Service was published using the owner connetion
    • The owner connection is set to be Branch Versioned
    • all of the data in the service is Branch Versioned
    • The Parcel Fabric Service is a Feature Service
    • The Validation capability is checked
    • The Version Management capability is checked
    • The Parcel Fabric Capability is checked 
    • I have been able to edit the fabric through this service... everything about the service seems to be working fine
    • I just can't successfully run the Evaluate Rules GP Tool
  • testing workflow
    • selected a parcel
    • ran the Evaluate Rules GP Tool
      • Input workspace: my parcel fabric feature service url
      • Evaluation Type: Calculation Rules
      • Extent Default
      • Async Checked
    • Error: ERROR 999999: Something unexpected caused the tool to fail. Contact Esri Technical Support (http://esriurl.com/support) to Report a Bug, and refer to the error help for potential solutions or workarounds. Unidentified Error Failed to execute (EvaluateRules)
  • Troubleshooting:
    • I am able to run this tool with the same rule set up on a file gdb
    • I also published the parcel layer and the validation layers in a service by themselves, from the same fabric, and the tool ran successfully
    • Therefore, I am reasonably confident that the rule and expression are fine, the problem seems to be with the parcel fabric service and it's execution of the rule.  
    • When troubleshooting the parcel fabric service
      • I also tested on the default version, and a created version. 
      • I have tried specifying the parcel layer with in the feature server url
      • I have gotten the same error every way I have tried it

Ok I think that is everything. Thank you in advanced for any help you can provide. We're hoping to implement the pro parcel fabric in the upcoming weeks, and assigning parcel numbers is very important to our workflow. Thank you for everything and have a delightful day.

Sincerely,

Joe Guzi

0 Kudos
21 Replies
JohannesLindner
MVP Frequent Contributor

OK, time to check your service.

Take a look at these articles:

https://pro.arcgis.com/en/pro-app/2.8/help/data/geodatabases/overview/calculation-attribute-rules.ht... 

https://pro.arcgis.com/en/pro-app/2.8/help/data/geodatabases/overview/share-datasets-with-attribute-... 

 

  • Your service has to have the "Validation" option checked.
  • It has to be a feature service.
  • All data has to be branch versioned.
  • The connected geodatabase has to be in branch versioned mode (gdb connection properties)
  • The connected gdb user has to be the data owner.

Have a great day!
Johannes
0 Kudos
JoeGuziStarkCountyOH
Frequent Contributor

Greetings @JohannesLindner ,

Thank you for your response. I have already read both of those and I can confirm that I have all of those settings appropriately set. I'll include those in my original post. Thank you for everything and have a delightful day.

Sincerely,

Joe Guzi

0 Kudos
AmirBar-Maor
Esri Regular Contributor

@JoeGuziStarkCountyOH 
It seems everybody already gave you the correct tips!

My only tip: don't get desperate - we'll figure it out.

Attribute Rules are stored in the geodatabase as part of the schema and are also executed in the geodatabase. This is why they use the table name and not the layer name.

If you are certain you used the 'fully qualified' table name in your expression and it still refuses to work, please contact technical support.

@HusseinNasser2 - FYI

 

return nextsequencevalue("XXX.XXX.ParcelNumberAssignmentSequence");

All 

0 Kudos
JoeGuziStarkCountyOH
Frequent Contributor

Greetings @AmirBar-Maor,

Thank you for your response. I am definitely desperate. I have been beating my head on this for weeks. I talk to any gis professional who will listen to me about it, I have a case open (Esri Case #03082690), and I have tried everything I can think of to resolve this issue. On the Esri support case front, the assigned analyst is leaving his support role, so I haven't heard anything in a few days. I appreciate your reassurance that we will get this resolved, but it hasn't been going very well. The only thing that is making this somewhat ok, is that our Go-Live date keeps getting pushed back for other reasons. So we have time, but I would still feel a whole lot better if I could get some help on this problem. Thank you for everything and have a delightful day.

Sincerely,

Joe Guzi

0 Kudos
JoeGuziStarkCountyOH
Frequent Contributor

Greetings @AmirBar-Maor ,

     I double checked that I was referencing the 'fully qualified' table name in the rule. When it was suggested earlier, I referenced the 'fully qualified' table name in the rule, tested it, and it still didn't work. Then I put the rule back to just reference the table name.... Since you suggested the 'fully qualified' table name in the rule again, I stopped the service, made the change to the rule, republished the service, and tested again. I am still getting the same results. The moral of the story is, I have tried it both ways and neither works. Thank you again for your suggestion, I just wanted to provide an update with my results from that troubleshooting. Thank you for everything and have a delightful day.

Sincerely,

Joe Guzi

0 Kudos
AmirBar-Maor
Esri Regular Contributor

@JoeGuziStarkCountyOH 

I am using ArcGIS Pro 3.0 against a 10.9.1 Enterprise and the rule works for me. The only difference might be that I did not check the 'Batch' option since I want the name field to be calculated as the feature is created. You you mark the batch option it means you can defer when the rule is being executed and need to use the error inspector or the Evaluate Rules geoprocessing tool.

The one 'gotcha' I've noticed is that after creating the sequence in the geodatbase I could not find it and had to use the geoprocessing history to make sure I have the correct sequence name.

AmirBarMaor_0-1656924009195.png

 

AmirBarMaor_1-1656924309313.png

AmirBarMaor_2-1656924435293.png

I hope this helps

Amir

0 Kudos
JoeGuziStarkCountyOH
Frequent Contributor

Greetings @AmirBar-Maor,

     Thank you for your response. Unfortunately, that does not help. If you noticed from earlier posts, My workflow requires that we are able to run the rule manually. From my understanding, the only way to accomplish this is to have the batch enabled, and run the evaluate rules gp tool. I have not been able to run the evaluate rule gp tool because of the previously mentioned error. 

      I too have proven that the rule works when creating the rule as an immediate rule type. That being said, that does not work for my workflow. I need to be able to run the rule manually.

      Regarding your sequence point. I have verified the sequence name, by going into Sql Server Management studio, and finding the sequence in the database. 

      Thank you for your attempt at helping, but I'm still desparate because we have yet to find a solution. We now have a go-live date for the end of July. Therefore I need to find a solution fast. Thank you for everything and have a delightful day.

Sincerely,

Joe Guzi

0 Kudos
AmirBar-Maor
Esri Regular Contributor

@JoeGuziStarkCountyOH 

Last try 🙂

I've created a new batch rule and it is working.

I think the reason it is failing is because you might not have the error layers in your map.

Here are a few steps:

1.  Before publishing the map make sure to add the error layer to it

AmirBarMaor_0-1656968596167.png

 

2. Once you have published your map and added the parcel fabric to a new map, right click on the parcel layer and add the error layers to the map. 

AmirBarMaor_1-1656968643988.png

 

3. Open Error Inspector and switch from the parcel fabric controlled topology to the Attribute Rules

AmirBarMaor_2-1656968686688.png

 

4. You can check the Batch Calculation and evaluate the rules. It worked for me.

AmirBarMaor_3-1656968733119.png

I hope this works for you too

 

 

0 Kudos
JoeGuziStarkCountyOH
Frequent Contributor

Greetings @AmirBar-Maor ,

      Thank you for your response. I had to clean up my services. I had a bunch of service I published for troubleshooting, so I pretty much started over. Here were my steps:

  • Created a new Map
  • Added the Fabric 
  • Added the Validation Layers 
  • I published the service 
    • using all of the appropriate settings, see original post for details
  • I added the fabric service to a map.
  • Then I followed your workflow. 

So it worked, but it assigned parcel numbers for the visible extent, which isn't my goal either. I really only want to assign Parcel numbers for the selected parcels. I tried your method twice and it assigned parcel numbers to the visible extent both times, and ignored my selection. 

Since your method ignored my selection, I'm not convinced your method is the correct solution either. I need to be able to select the parcel, and manually run the rule on that parcel. I apologize if I haven't done a good job articulating my goal. I'm pretty sure I have said this already. To my understanding the Evaluate Rules GP tool will accomplish my goal, but I am still getting the attached error. Can you tell me why the Evaluate Rule GP tool is giving me this error when I run it on the Parcel Fabric Service? I have gotten this tool to run successfully in a file geodatabase, and the results were exactly what I was after. Would you be open to a meeting to discuss this issue further?

Thank you for everything and have a delightful day.

Sincerely,

Joe Guzi

0 Kudos
AmirBar-Maor
Esri Regular Contributor

@JoeGuziStarkCountyOH 

Assuming you checked the Validation capability when you published, you should be able to see the validation REST API exposed on your server:

AmirBarMaor_5-1657004068177.png

 

The first thing I did was to verify that the Evaluation service REST API supports a selection set.

It does 🙂

AmirBarMaor_0-1657003500777.png

 

To use the geoprocessing tool Evaluate Rules you will need to supply the 'Feature Server' URL of your published map. It will end with '...FeatureServer' and will look like this:

AmirBarMaor_1-1657003627089.png

Also notice it is set to Calculation rules.

Now you can run it on a selection for the 'default extent' (all of the data).

To see the update (another 'gotcha'), you will have to select the version in the contents pane \ data source tab and then hit refresh. I have verified that only the selected features are updated.

However, getting a 999999 error is always a BUG.

 

 

 

AmirBarMaor_4-1657003830028.png

 

 

 

 

0 Kudos