Cuando se ejecuta una herramienta, ArcPy está completamente al tanto de la aplicación desde la que se invoca. Un efecto importante de esto es que puede escribir mensajes en Python y estos aparecen automáticamente en el cuadro de diálogo de la herramienta, en historial de geoprocesamiento y en la ventana de Python. También significa que cualquier modelo o herramienta de secuencia de comandos que invoque la herramienta tiene acceso a los mensajes que usted escribe.
Para obtener más información sobre los mensajes, consulte Entender el envío de mensajes en las herramientas de secuencia de comandos.
En una caja de herramientas de Python, se usa un objeto messages para volver a agregar mensajes adicionales a la herramienta.
Métodos de mensaje | Descripción |
---|---|
addMessage(message) | Agrega un mensaje informativo a los mensajes de la herramienta |
addErrorMessage(message) | Agrega un mensaje de error a los mensajes de la herramienta Nota:addErrorMessage no generará una excepción. |
addWarningMessage(message) | Agrega un mensaje de advertencia a los mensajes de la herramienta |
addIDMessage(message_type, message_ID, add_argument1=None, add_argument2=None) | Agrega un mensaje de cualquier tipo usando los códigos de mensaje de geoprocesamiento |
addGPMessages() | Agrega mensajes de la última ejecución de geoprocesamiento a los mensajes de la herramienta |
Ejemplo de agregar mensajes
En el ejemplo siguiente, la entrada se evalúa y si no contiene entidades de entrada, se agrega un mensaje de error a la herramienta y se eleva una excepción de arcpy.ExecuteError para finalizar la herramienta.
def execute(self, parameters, messages):
input = parameters[0].valueAsText
output = parameters[1].valueAsText
# If the input has no features, add an error message, and raise
# an arcpy.ExecuteError
if int(arcpy.GetCount_management(input)[0]) == 0:
messages.addErrorMessage("{0} has no features.".format(input))
raise arcpy.ExecuteError
return
Nota:
También puede agregar mensajes con funciones como AddMessage. Consulte Comprender los tipos de mensajes y la severidad para obtener más información.