I add a parameter CampoConfere = arcpy.GetParameterAsText(1) which get a field from Tabela_Base to calculate in the next steps from the code. The Scripts works well until the Calculate Field Step when the prompt says that "CampoConfere" is not valid. Why Python do not calculate this parameter?
import arcpy
Tabela_Base = arcpy.GetParameterAsText(0)
CampoConfere = arcpy.GetParameterAsText(1)
arcpy.AddMessage('Tabela de Entrada: '+Tabela_Base)
arcpy.AddMessage('Campo: '+CampoConfere)
fields = arcpy.ListFields(Tabela_Base)
ValidaCampo = sum(field.name == CampoConfere and field.type == "Single" for field in fields)
if not ValidaCampo:
Nome_Campo = "CHAVEIBGE2"
Tipo_Campo = "FLOAT"
Campo_Calculo = "CHAVEIBGE2"
Saida1 = Tabela_Base
arcpy.AddField_management(Tabela_Base, Nome_Campo, Tipo_Campo, "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
arcpy.CalculateField_management(Saida1, Campo_Calculo, "!CampoConfere!", "PYTHON_9.3", "")
Them I get the message error:
Executing: Script F:\AgroDB.gdb\IBGE\Brasil_Municipios COD_IBGE Start Time: Fri Jun 23 08:46:05 2017 Running script Script... Tabela de Entrada: F:\AgroDB.gdb\IBGE\Brasil_Municipios Tabela de Entrada: COD_IBGE Failed script Script...
Traceback (most recent call last): File "F:\AgroDB.gdb\Modelo1.py", line 18, in arcpy.CalculateField_management(Saida1, Campo_Calculo, "!CampoConfere!", >"PYTHON_9.3", "") File "c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\management.py", >line 3453, in CalculateField raise e ExecuteError: ERROR 000539: Invalid field CampoConfere Failed to execute (CalculateField).
Failed to execute (Script). Failed at Fri Jun 23 08:46:06 2017 (Elapsed Time: 0,74 seconds)
arcpy.AddMessage('Tabela de Entrada: '+Tabela_Base)
but I think it would also be useful to output a value coming from your tool dialog forCampoConfere
, and then to show us what you get in the Results window as text.