Ein in AML häufig verwendetes Codierungsmuster bestand darin, eine AML (mit Parametern) in einer anderen AML auszuführen.
Eine Anwendung, die ich gerade entwickle, würde davon profitieren, ein Python-Skript (mit Parametern) in einem anderen Python-Skript ausführen zu können.
Dies scheint jedoch überhaupt nicht einfach zu sein.
In ArcGIS 10 experimentiere ich mit dem Umschließen des "inneren" Python-Skripts in ein ArcGIS-Tool mit den Parametern. Ich dachte, es wäre eine einfache Sache, das "äußere" Python-Skript arcpy.ImportToolbox verwenden zu lassen, um die Toolbox zu importieren und dann das (die) Tool (s) darin auszuführen. Beim bisherigen Testen scheinen jedoch alle meine Versuche, das "innere" Werkzeug über das "äußere" Skript auszuführen, das "innere" Werkzeug einfach zu überspringen (es wird kein Fehler ausgegeben).
Hier ist ein Testcode, um besser zu veranschaulichen, was ich zu beschreiben versuche.
Mein testinner.py Skript ist:
inputString = arcpy.GetParameterAsText(0)
newFC = "C:\\Temp\\test.gdb\\" + inputString
arcpy.Copy_management("C:\\Temp\\test.gdb\\test",newFC)
Mein testouter.py Skript ist:
import arcpy
inputString1 = arcpy.GetParameterAsText(0)
inputString2 = arcpy.GetParameterAsText(1)
arcpy.ImportToolbox("C:\\Temp\\test.tbx")
arcpy.testinner_test(inputString1)
arcpy.testinner_test(inputString2)
Für testinner.py benötigt das Tool einen einzelnen String-Parameter.
Für testouter.py benötigt das Tool zwei String-Parameter
Die beiden Tools befinden sich in einer test.tbx.
Die test.gdb benötigt nur eine einzelne leere Feature-Class namens test.
Wenn Sie das obige zusammengestellt haben und das Testinner-Tool mit einer Zeichenfolge wie 'abc' als Parameter ausführen, wird die Feature-Class 'test' in eine Zeichenfolge mit dem Namen 'abc' OK kopiert.
Wenn Sie jedoch versuchen, das Testouter-Tool mit zwei Zeichenfolgen wie "uvw" und "xyz" als Parameter auszuführen, wird das Testinner-Tool in "testouter.py" anscheinend einmal in Ordnung ausgeführt, sendet ArcMap 10 SP2 unter Vista SP2 jedoch bei einem schwerwiegenden Anwendungsfehler versuche es das zweite mal zu benutzen.
Der gleiche Test unter Windows XP SP3 und ArcGIS Desktop 10 SP2 führt zum gleichen Zeitpunkt auch zu einem schwerwiegenden Anwendungsfehler.