Un patrón de codificación común utilizado en la AML era ejecutar una AML (con parámetros) dentro de otra AML.
Una aplicación que estoy desarrollando actualmente se beneficiaría de poder ejecutar un script de Python (con parámetros) dentro de otro script de Python.
Sin embargo, esto no parece ser en absoluto sencillo.
Al usar ArcGIS 10, estoy experimentando con envolver el script Python "interno" en una herramienta de ArcGIS que tiene los parámetros. Pensé que sería una cuestión simple que el script Python "externo" usara arcpy.ImportToolbox para importar la caja de herramientas y luego ejecutar las herramientas dentro de ella. Sin embargo, al probar hasta ahora, todos mis intentos de ejecutar la herramienta "interna" desde el script "externo" parecen simplemente omitir la herramienta "interna" (no se produce ningún error).
Aquí hay un código de prueba para intentar 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 String.
Para testouter.py su herramienta necesita dos parámetros de cadena
Las dos herramientas se colocan en un test.tbx.
El test.gdb solo necesita una única clase de entidad vacía llamada prueba.
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 a una llamada 'abc' OK.
Pero cuando intentas ejecutar la herramienta testouter con dos cadenas como 'uvw' y 'xyz' como sus parámetros, la herramienta testinner en testouter.py parece funcionar bien una vez, pero envía ArcMap 10 SP2 en Vista SP2 a un serio Error de aplicación al intentar usarlo por segunda vez.
La misma prueba que usa Windows XP SP3 y ArcGIS Desktop 10 SP2 también produce un error de aplicación grave en el mismo punto.