| Número de ID del error |
BUG-000155637 |
| Enviado | February 6, 2023 |
| Última modificación | June 5, 2024 |
| Relacionado con | ArcGIS Pro |
| Versión encontrada | 2.9 |
| Sistema operativo | Windows OS |
| Versión de sistema operativo | N/A |
| Estado | As Designed
Tras revisión realizada por el equipo de desarrollo, se ha determinado que este comportamiento es acorde con lo designado. Consulte los detalles en la sección Información adicional.
|
Información adicional
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)}')
Solución alternativa
In ArcGIS Pro, manually change the alias name of the field and run the code.
Pasos para reproducir