Un patrón de codificación común utilizado en AML era ejecutar un AML (con parámetros) dentro de otro AML.
Una aplicación que estoy desarrollando actualmente se beneficiaría de poder ejecutar un script Python (con parámetros) dentro de otro script Python.
Sin embargo, esto no parece ser del todo sencillo.
Usando ArcGIS 10, estoy experimentando con envolver el script Python "interno" en una herramienta ArcGIS que tiene los parámetros. Pensé que sería simple hacer que el script Python "externo" use arcpy.ImportToolbox para importar la caja de herramientas y luego ejecutar las herramientas dentro de ella. Sin embargo, en las pruebas realizadas hasta ahora, todos mis intentos de ejecutar la herramienta "interna" desde el script "externo" parecen omitir simplemente la herramienta "interna" (no se produce ningún error).
Aquí hay un código de prueba para tratar de ilustrar mejor lo que estoy tratando de describir.
Mi script testinner.py es:
inputString = arcpy.GetParameterAsText(0)
newFC = "C:\\Temp\\test.gdb\\" + inputString
arcpy.Copy_management("C:\\Temp\\test.gdb\\test",newFC)
Mi script testouter.py es:
import arcpy
inputString1 = arcpy.GetParameterAsText(0)
inputString2 = arcpy.GetParameterAsText(1)
arcpy.ImportToolbox("C:\\Temp\\test.tbx")
arcpy.testinner_test(inputString1)
arcpy.testinner_test(inputString2)
Para testinner.py su herramienta necesita un único parámetro de cadena.
Para testouter.py su herramienta necesita dos parámetros de cadena
Las dos herramientas se colocan en un test.tbx.
Test.gdb solo necesita una única clase de entidad vacía llamada test.
Una vez que haya ensamblado lo anterior, ejecute la herramienta testinner con una cadena como 'abc' ya que su parámetro debería hacer que la clase de entidad 'prueba' se copie en una llamada 'abc' OK.
Pero cuando intenta ejecutar la herramienta Testouter con dos cadenas como 'uvw' y 'xyz' como sus parámetros, la herramienta testinner dentro de testouter.py parece ejecutarse una vez, pero envía ArcMap 10 SP2 en Vista SP2 a un error de aplicación grave cuando tratando de usarlo la segunda vez.
La misma prueba con Windows XP SP3 y ArcGIS Desktop 10 SP2 también produce un error grave de la aplicación en el mismo punto.