| Numéro d’ID de bogue |
BUG-000155637 |
| Envoi | February 6, 2023 |
| Dernière modification | June 5, 2024 |
| S’applique à | ArcGIS Pro |
| Version trouvée | 2.9 |
| Système d’exploitation | Windows OS |
| Version du système d’exploitation | N/A |
| Statut | As Designed
Après examen par l’équipe de développement, il a été déterminé que ce comportement est prévu. Pour plus d’informations, reportez-vous à la section Informations supplémentaires.
|
Informations supplémentaires
The CIM often only persist changes made to an element in a project (to reduce the amount of bloat that would otherwise need to be persisted). In the case with field descriptions, the newly added data does not have any changes, therefore, nothing is persisted in the CIM. As a workaround, faking an alteration of a field in a feature or table can result in the information being persisted in the CIM.
The following code uses arcpy.AlterField (but simply keeps the field info the same). First, it reports zero field descriptions for a feature class and a table, makes the modifications, then reports the field description counts.
p = arcpy.mp.ArcGISProject('current')
m = p.listMaps()[0]
lyr = m.listLayers('NE_State_Boundaries')[0]
tab = m.listTables('CensusData')[0]
#Try returning cim field defs - NOPE
lyr_cim = lyr.getDefinition('V3')
print(f'LYR desc count PRE mod: {len(lyr_cim.featureTable.fieldDescriptions)}')
tab_cim = tab.getDefinition('V3')
print(f'TAB desc count PRE mod: {len(tab_cim.fieldDescriptions)}')
#Modify fields
lyrFld = arcpy.ListFields(lyr)[0]
arcpy.management.AlterField(lyr, lyrFld.name, lyrFld.name, lyrFld.name)
tabFld = arcpy.ListFields(tab)[0]
arcpy.management.AlterField(tab, tabFld.name, tabFld.name, tabFld.name)
#Try again
lyr_cim = lyr.getDefinition('V3')
print(f'LYR desc count POST mod: {len(lyr_cim.featureTable.fieldDescriptions)}')
tab_cim = tab.getDefinition('V3')
print(f'TAB desc count POST mod: {len(tab_cim.fieldDescriptions)}')
Solution de contournement
In ArcGIS Pro, manually change the alias name of the field and run the code.
Étapes pour reproduire