1
我不知道這是否是更一個Python,FME,或ESRI的問題...ArcPy中ListLayers爲FME參數使用
因此,這裏的情況 - 用戶有一個MXD文檔打開連接到ArcSDE數據庫與一個版本。我創建了一個FME工作臺來寫入這個數據庫,但用戶不想手動輸入ArcSDE版本名稱作爲用戶參數(它是如何設置的)。相反,他們想要在工作臺中使用MXD中當前連接的任何版本。
我已經將一些Python代碼拼湊在一起我發現爲當前版本名稱創建了一個打開的MXD文本文件,但我想使用這個值(或者也許是返回的值)作爲一個新的腳本化(Python)私有參數在FME工作臺中使用。現在
兩個問題:
- 它列出了所有層的版本名稱(我只想一個記錄,所以我可以傳遞一個值到FME)
- 它寫入到一個文本文件中。它是否應該返回版本名稱,以便FME可以將它用作參數?如果是這樣,我該怎麼做?
這裏是我到目前爲止的代碼(!我是一個Python新手,所以請原諒)
import arcpy, os
mxd = arcpy.mapping.MapDocument(r'CURRENT')
text_file = open("C:\\temp\\VersionName.txt","w")
for lyr in arcpy.mapping.ListLayers(mxd):
if lyr.supports("SERVICEPROPERTIES"):
servProp = lyr.serviceProperties
if lyr.serviceProperties["ServiceType"] != "SDE":
print "Service Type: " + servProp.get('ServiceType', 'N/A')
else:
text_file.write (servProp.get('Version'))
text_file.close()
del mxd