Надо быстро восстановить связи lyr файлов после смены пароля

0 голосов
спросил 19 Окт от bkolubenka (120 баллов) в категории Программные продукты Esri
У меня в сетевой папках и подпапках сохранены очень много lyr файлов. Ожидается ежегодное плановой смена пароля базы данных после которого эти файлы станут невалидными. Обычно восстанавливал связи с базой вручную. Но теперь их много и надо как то все сделать скриптом. Как это можно сделать? Пыталься сделать через arcpy но несмог добиться нужного результата. Использовал это не не работает. Было бы прекрасно добиться того чтобы отфильтровать lyr файлы так чтобы те которые обращены в локальный источник игнорировались

lyr = arcpy.mapping.Layer(r"*.lyr")
lyr.findAndReplaceWorkspacePath(r"*.sde", r"*.sde")
lyr.saveACopy(r"*.lyr")
del lyr

1 Ответ

0 голосов
ответил 26 Окт от Grigoriy (119,880 баллов)

Сначала изменить пароль, а потом изменять слои.

В противном случае, у Вас будут проблемы. По умолчанию, новое подключение проверяется "на валидность" и только потом его параметры сохраняются.

Вот так будет работать для одного слоя.

lyr = arcpy.mapping.Layer(r'E:\Projects\Projects_2018\gis\GEOPROCESSING\DIY.lyr')

lyr.findAndReplaceWorkspacePath(r'E:\Projects\Projects_2018\GDB\gis@gis.sde', r'E:\Projects\Projects_2018\gis\GDB\editor@gis.sde')

lyr.saveACopy(r'E:\Projects\Projects_2018\gis\GEOPROCESSING\DIY_replace.lyr')

Как зациклить и как проверять, что источник файловый - читайте справку.

https://desktop.arcgis.com/ru/arcmap/latest/analyze/arcpy-mapping/updatingandfixingdatasources.htm

...