https:\/\/pro.arcgis.com\/en\/pro-app\/tool-reference\/server\/upload-service-definition.htm<\/>\/<\/A>. Náhodou je zde mnohem více možností pro kontrolu parametrů služby. <\/P>Prohlášení: O pythonu nic nevím, takže si jsem jistý, že zde jsou různé neefektivity, ale funguje to. <\/>P>
<\/>P>
import<\/> arcpy
import<\/> sys,<\/> string,<\/> os,<\/> calendar,<\/> datetime,<\/> traceback,<\/>smtplib
from<\/> arcpy import<\/> env
from<\/> subprocess import<\/> call
# Nastavení mailového serveru<\/>
service =<\/> "GRSM_SASQUATCH"<\/>
sd_filename =<\/> service +<\/> ".sd"<\/>
try<\/>:<\/>
d =<\/> datetime.<\/>datetime.<\/>now(<\/>)<\/>
log =<\/> open(<\/>"C:\\\PYTHON_LOGS\\LOG."<\/>+<\/>service+<\/>".txt"<\/>,<\/>"a"<\/>)
log.write("----------------------------" + "\n")
log.write("----------------------------" + "\n")
log.write("Log: " + str(d) + "\n")
log.write("\n")
# Spuštění procesu...
starttime = datetime.datetime.now()
log.write("Začátek procesu:\n")
log.write(" Proces spuštěn v " + str(starttime) + "\n")
log.write("\n")
# Nastavení mailového serveru
SERVER = "1.2.34"
PORT = "25"
FROM = "sasquatch@big.foot.com"
MAILDOMAIN = '@big.foot.com'
# Data Steward dostává email. Musí to být jejich emailová adresa... bez @big.foot.com na konci
userList=["yeti"]
# získat seznam uživatelských jmen ze seznamu pojmenovaných n-tic vrácených z ListUsers
userNames = [u for u in userList]
# vezměte seznam userNames a vytvořte emailové adresy přidáním příslušného přípony.
emailList = [name + MAILDOMAIN for name in userNames]
TO = emailList
# Získat datum pro email
DATE = d
# Přihlášení do portálu
arcpy.SignInToPortal('https://www.arcgis.com', 'userid', 'password')
# Nastavit názvy výstupních souborů
outdir = r"C:\PRODUCTION\GRSM_SASQUATCH"
sddraft_filename = service + ".sddraft"
sddraft_output_filename = os.path.join(outdir, sddraft_filename)
# Odstranit všechny zbylé SD soubory z předchozího neúspěšného běhu
try:
os.remove(sd_filename)
print("Úspěšně odstraněno ", sd_filename)
except:
print("Chyba při mazání souboru "<\/SPAN>,<\/SPAN> sd_filename,<\/SPAN> ", možná neexistuje"<\/SPAN>)<\/SPAN>\n zkusit<\/SPAN>:<\/SPAN>\n os.<\/SPAN>remove(<\/SPAN>sddraft_output_filename)<\/SPAN>\n print<\/SPAN>(<\/SPAN>"Úspěšně smazáno "<\/SPAN>,<\/SPAN> sddraft_output_filename)<\/SPAN>\n kromě<\/SPAN>:<\/SPAN>\n print<\/SPAN>(<\/SPAN>"Chyba při mazání souboru "<\/SPAN>,<\/SPAN> sddraft_output_filename,<\/SPAN> ", možná neexistuje"<\/SPAN>)<\/SPAN> \n\n # Reference map to publish<\/SPAN>\n aprx =<\/SPAN> arcpy.<\/SPAN>mp.<\/SPAN>ArcGISProject(<\/SPAN>r"C:\PRODUCTION\GRSM_SASQUATCH\GRSM_SASQUATCH.aprx"<\/SPAN>)<\/SPAN>\n m =<\/SPAN> aprx.<\/SPAN>listMaps(<\/SPAN>"GRSM_SASQUATCH_LOCATIONS"<\/SPAN>)<\/SPAN>[<\/SPAN>0<\/SPAN>]<\/SPAN>}\n}\n # Vytvořit FeatureSharingDraft a nastavit vlastnosti služby
# https://pro.arcgis.com/en/pro-app/arcpy/sharing/featuresharingdraft-class.htm
sharing_draft =< /span> m.getWebLayerSharingDraft( token">:<\/SPAN>\n \n # Získat objekt traceback<\/SPAN>\n tb =<\/SPAN> sys.<\/SPAN>exc_info(<\/SPAN>)<\/SPAN>[<\/SPAN>2<\/SPAN>]<\/SPAN>\n tbinfo =<\/SPAN> traceback.<\/SPAN>format_tb(<\/SPAN>tb)<\/SPAN>[<\/SPAN>0<\/SPAN>]<\/SPAN>\n # Spojit informace dohromady ohledně <\/SPAN>\n # chyby do řetězce zprávy<\/SPAN>\n pymsg =<\/SPAN> "PYTHON CHYBY:\nInformace o tracebacku:\n"<\/SPAN> +<\/SPAN> tbinfo +<\/SPAN> "\nInformace o chybě:\n"<\/SPAN> +<\/SPAN> str(<\/SPAN>sys.<\/SPAN>exc_info(<\/Span>)<\/span>[<\/span>1<\/span>]<\/span>\n msgs =<\/span> "ArcPy CHYBY:\n"<\/span> +<\/span> arcpy.<\/span>GetMessages(<\/span>2<\/span>)<\/span> +<\/span> "\n"<\/span>\n# Vrátit python chybové zprávy pro použití v <\/span>\n# skriptovém nástroji nebo Python okně<\/span>\n arcpy.<\/span>AddError(<\/span>pymsg)<\/span>\n arcpy.<\/span>AddError(<\/span>msgs)<\/span>\n# Vytisknout Python chybové zprávy pro použití v <\/span>\n# Python / Python okně<\/span>\n log.<\/span>write(<\/span>""<\/span> +<\/span> pymsg +<\/span> "\n"<\/span>)<\/span>\n log.<\/span>write(<\/span>""<\/span> +<\/span> msgs +<\/span> ""<\/span>)<\/span>\n log.<\/span>close(<\/span>)<\/span>\n # Definovat emailovou zprávu, pokud se něco pokazilo<\/span>\n SUBJECT =<\/span> "Oznámení o neúspěšné aktualizaci AGOL služby "<\/span>+<\/span>service \n MSG =<\/span> "Neaktualizováno: {} - ID: {} v "<\/span>+<\/panstr(DATE)<panstr("; ") + pymsg + "; " + msgs
print(MSG)\n print(emailList)\n \n # Odeslat email s oznámením správci o úspěšném archivování\n #MESSAGE = "\\ From: %s To: %s Subject: %s %s" % (FROM, ", ".join(TO), SUBJECT, MSG)\n MESSAGE <panstr("Subject: %s\\n\\n%s") % (SUBJECT, MSG)\n try:\n try:\n print("Připojování k serveru...")\n server = smtplib.SMTP(SERVER,PORT)\n try:\n print("Přihlašování...")\n try:\n print("Odesílání mailu...")\n server.sendmail(FROM, TO, MESSAGE)\n except Exception as e:\n print("Chyba při odesílání mailu\\n" + e.message)\n except Exception as e:\n print("Chyba autentizace serveru: zkontrolujte přihlašovací údaje \n" + e.message)\n except Exception as e:\n print("Chyba připojení k serveru: zkontrolujte URL serveru a komunikační port (25 je výchozí) \n" + e.message)\n \n print("Konec.")\n server.quit()\n \n except Exception as e:\n print(e.message) \n<SPanclass= "line-numbers-rows"></SpAN...