Um padrão de codificação comum usado na AML era executar uma AML (com parâmetros) dentro de outra AML.
Um aplicativo que estou desenvolvendo atualmente se beneficiaria da capacidade de executar um script Python (com parâmetros) dentro de outro script Python.
No entanto, isso não parece ser nada simples.
Usando o ArcGIS 10, estou experimentando envolver o script Python "interno" em uma ferramenta do ArcGIS que possui os parâmetros. Eu pensei que seria uma questão simples fazer com que o script Python "externo" usasse o arcpy.ImportToolbox para importar a caixa de ferramentas e, em seguida, execute as ferramentas nela. No entanto, nos testes realizados até agora, todas as minhas tentativas de executar a ferramenta "interna" a partir do script "externo" parecem simplesmente ignorar a ferramenta "interna" (nenhum erro é gerado).
Aqui está um código de teste para tentar ilustrar melhor o que estou tentando descrever.
Meu script testinner.py é:
inputString = arcpy.GetParameterAsText(0)
newFC = "C:\\Temp\\test.gdb\\" + inputString
arcpy.Copy_management("C:\\Temp\\test.gdb\\test",newFC)
Meu script testouter.py é:
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, sua ferramenta precisa de um único parâmetro String.
Para testouter.py, sua ferramenta precisa de dois parâmetros String
As duas ferramentas são colocadas em um test.tbx.
O test.gdb precisa apenas de uma única classe de recurso vazia chamada test.
Após a montagem acima, a execução da ferramenta testinner com uma string como 'abc' transmitida como parâmetro deve resultar na cópia da classe de recurso 'test' para uma chamada OK 'abc'.
Mas quando você tenta executar a ferramenta testouter com duas sequências como 'uvw' e 'xyz' como parâmetros, a ferramenta testinner no testouter.py parece funcionar OK uma vez, mas envia o ArcMap 10 SP2 no Vista SP2 para um erro grave de aplicativo quando tentando usá-lo pela segunda vez.
O mesmo teste usando o Windows XP SP3 e o ArcGIS Desktop 10 SP2 também produz um erro grave de aplicativo no mesmo ponto.