Pola pengkodean yang umum digunakan dalam AML adalah menjalankan AML (dengan parameter) di dalam AML lain.
Aplikasi yang saat ini saya kembangkan akan mendapat manfaat karena dapat menjalankan skrip Python (dengan parameter) dalam skrip Python lain.
Namun, ini tampaknya tidak langsung sama sekali.
Menggunakan ArcGIS 10, saya bereksperimen dengan membungkus skrip Python "dalam" ke dalam alat ArcGIS yang memiliki parameter. Saya pikir ini akan menjadi masalah sederhana untuk memiliki skrip Python "luar" menggunakan arcpy.ImportToolbox untuk mengimpor kotak alat dan kemudian menjalankan alat di dalamnya. Namun, dalam pengujian sejauh ini semua upaya saya untuk menjalankan alat "dalam" dari skrip "luar" tampaknya hanya melewatkan alat "dalam" (tidak ada kesalahan dilemparkan).
Berikut adalah beberapa kode uji untuk mencoba dan menggambarkan dengan lebih baik apa yang saya coba gambarkan.
Skrip testinner.py saya adalah:
inputString = arcpy.GetParameterAsText(0)
newFC = "C:\\Temp\\test.gdb\\" + inputString
arcpy.Copy_management("C:\\Temp\\test.gdb\\test",newFC)
Skrip testouter.py saya adalah:
import arcpy
inputString1 = arcpy.GetParameterAsText(0)
inputString2 = arcpy.GetParameterAsText(1)
arcpy.ImportToolbox("C:\\Temp\\test.tbx")
arcpy.testinner_test(inputString1)
arcpy.testinner_test(inputString2)
Untuk testinner.py alatnya membutuhkan parameter String tunggal.
Untuk testouter.py alatnya membutuhkan dua parameter String
Dua alat ditempatkan di test.tbx.
Test.gdb hanya membutuhkan satu kelas fitur kosong bernama test.
Setelah Anda memiliki yang dirakit di atas, menjalankan alat testinner dengan string seperti 'abc' dilewatkan sebagai parameternya akan menghasilkan 'tes' kelas fitur yang disalin ke yang disebut 'abc' OK.
Tetapi ketika Anda mencoba menjalankan alat testouter dengan dua string seperti 'uvw' dan 'xyz' sebagai parameternya, alat testinner dalam testouter.py tampaknya berjalan OK sekali, tetapi mengirimkan ArcMap 10 SP2 pada Vista SP2 ke Serious Application Error saat mencoba menggunakannya kedua kalinya.
Pengujian yang sama menggunakan Windows XP SP3 dan ArcGIS Desktop 10 SP2 juga menghasilkan Kesalahan Aplikasi Serius pada titik yang sama.