I've written a basic script that reads through a table stored in an SDE database and reports back on values within a particular field. If the field is equal to 'Report to Manager" the script fetches notes about the issue and includes it in the report. the report is just a simple text file.
I ran the tool on my computer and it runs fine, and then published it as a processioning service. I set one parameter - to let a user define an output directory, but this option does not appear on AGOL. If I execute the tool, it runs but there are no visible results.
How do I get this report to run within AGOL so that the user can get a txt or pdf of the requested report?
import arcpy, os
import time
from datetime import datetime
from datetime import date
arcpy.env.workspace = "C:\\Temp"
arcpy.env.overwriteOutput = True
def outName(input,post="_Output"):
"""Returns output name."""
outName=os.path.basename(input).split(".")[0]+post
return outName
folder = arcpy.GetParameterAsText(0) #"C:\\Temp\\DDC_ReportSummary.txt"
inputfile = folder+"/DDC_ReportSummary.txt"
date= date.today()
time = datetime.now().time()
infile = open(inputfile,'w')
infile.write("REPORT SUMMARY: "+str(date)+" "+str(time)+'\n\n')
StopsTable = "C:\\Temp\\DDC_Stops"
ReportsTable = "C:\\Temp\\DDC_Reports_Table"
#Get the status of all stops that where status = "OK" for the current date, recorded within the past 3 hours
sc1=arcpy.SearchCursor(StopsTable)
for row in sc1:
if row.Stop_Status == "OK":
infile.write("Stop "+str(row.Stop_Number)+": "+row.Stop_Status+"\n")
del row
del sc1
#Get information on any stops that need to be reported to a manager
#In the Reports table, select all the records that have been recorded on the current date, wihtin the past 3 hours
infile.write("\nMANAGER ATTENTION REQUIRED\n\n")
sc2 = arcpy.SearchCursor(StopsTable)
for row in sc2:
if row.Stop_Status =="Report to Manager":
infile.write("Stop "+str(row.Stop_Number)+": "+row.Stop_Status+":")
sc3 = arcpy.SearchCursor(ReportsTable)
for line in sc3:
if line.Stop_Num ==row.Stop_Number:
infile.write(line.Issue+"\n\n")
del line
del sc3
del row
del sc2
infile.close()