Report - Data Collection Error - Script

I am rebuilding a Report in v8.1.25 (from older v7.9). I am getting a Data Collection Error message when I am on the Design and Preview tabs in the Report designer. Here is the Error:

WARN: Unable to compile script.SyntaxError: mismatched input '\n' expecting INDENT (<function:updateData>, line 1)

I have triple checked the script from the old to the new and cannot locate where this error is generated from. It does work with no errors in the older v7.9. Here is the script:

def updateData(data, sample):
	dbConnection = "redacted"
	
	querywait = """
		SELECT top 5 
			(DATEDIFF(mi,timein,filling_start_time)) AS 'WaitTime'
		FROM truckdriver
		WHERE job_status = 'Completed' 
			AND Loadout_ID = ?
			AND CAST(timein AS DATE) = CAST(? AS DATE)
			AND DATEPART(HOUR, timein) >= ?
			AND DATEPART(HOUR, timein) <= ?
			AND NOT trailer = 9999
		ORDER BY WaitTime DESC
				"""
	
	queryfill = """
		SELECT top 5 
			(DATEDIFF(mi,filling_start_time,timeout)) AS 'FillingTime'
		FROM truckdriver
		WHERE job_status = 'Completed' 
			AND Loadout_ID = ?
			AND CAST(timein AS DATE) = CAST(? AS DATE)
			AND DATEPART(HOUR, timein) >= ?
			AND DATEPART(HOUR, timein) <= ?
			AND NOT trailer = 9999
		ORDER BY FillingTime DESC
				"""
	
	querytotal = """
		SELECT top 5 
			(DATEDIFF(mi,timein,timeout)) AS 'TotalTime'
		FROM truckdriver
		WHERE job_status = 'Completed' 
			AND Loadout_ID = ?
			AND CAST(timein AS DATE) = CAST(? AS DATE)
			AND DATEPART(HOUR, timein) >= ?
			AND DATEPART(HOUR, timein) <= ?
			AND NOT trailer = 9999
		ORDER BY TotalTime DESC
				"""
				
	startDate = data["StartDate"]
	
	
	gravewait3 = system.db.runPrepQuery(querywait,[3, startDate, 0, 7], database = dbConnection)
	daywait3 = system.db.runPrepQuery(querywait,[3, startDate, 8, 15], database = dbConnection)
	swingwait3 = system.db.runPrepQuery(querywait,[3, startDate, 16, 23], database = dbConnection)
	
	gravefill3 = system.db.runPrepQuery(queryfill,[3, startDate, 0, 7], database = dbConnection)
	dayfill3 = system.db.runPrepQuery(queryfill,[3, startDate, 8, 15], database = dbConnection)
	swingfill3 = system.db.runPrepQuery(queryfill,[3, startDate, 16, 23], database = dbConnection)
	
	gravetotal3 = system.db.runPrepQuery(querytotal,[3, startDate, 0, 7], database = dbConnection)
	daytotal3 = system.db.runPrepQuery(querytotal,[3, startDate, 8, 15], database = dbConnection)
	swingtotal3 = system.db.runPrepQuery(querytotal,[3, startDate, 16, 23], database = dbConnection)
	
	gravewait2 = system.db.runPrepQuery(querywait,[2, startDate, 0, 7], database = dbConnection)
	daywait2 = system.db.runPrepQuery(querywait,[2, startDate, 8, 15], database = dbConnection)
	swingwait2 = system.db.runPrepQuery(querywait,[2, startDate, 16, 23], database = dbConnection)
	
	gravefill2 = system.db.runPrepQuery(queryfill,[2, startDate, 0, 7], database = dbConnection)
	dayfill2 = system.db.runPrepQuery(queryfill,[2, startDate, 8, 15], database = dbConnection)
	swingfill2 = system.db.runPrepQuery(queryfill,[2, startDate, 16, 23], database = dbConnection)
	
	gravetotal2 = system.db.runPrepQuery(querytotal,[2, startDate, 0, 7], database = dbConnection)
	daytotal2 = system.db.runPrepQuery(querytotal,[2, startDate, 8, 15], database = dbConnection)
	swingtotal2 = system.db.runPrepQuery(querytotal,[2, startDate, 16, 23], database = dbConnection)
	
	gravewait1 = system.db.runPrepQuery(querywait,[1, startDate, 0, 7], database = dbConnection)
	daywait1 = system.db.runPrepQuery(querywait,[1, startDate, 8, 15], database = dbConnection)
	swingwait1 = system.db.runPrepQuery(querywait,[1, startDate, 16, 23], database = dbConnection)
	
	gravefill1 = system.db.runPrepQuery(queryfill,[1, startDate, 0, 7], database = dbConnection)
	dayfill1 = system.db.runPrepQuery(queryfill,[1, startDate, 8, 15], database = dbConnection)
	swingfill1 = system.db.runPrepQuery(queryfill,[1, startDate, 16, 23], database = dbConnection)
	
	gravetotal1 = system.db.runPrepQuery(querytotal,[1, startDate, 0, 7], database = dbConnection)
	daytotal1 = system.db.runPrepQuery(querytotal,[1, startDate, 8, 15], database = dbConnection)
	swingtotal1 = system.db.runPrepQuery(querytotal,[1, startDate, 16, 23], database = dbConnection)
	
	
	ds1 = system.dataset.toDataSet([ 'gwait', 'gfill', 'gtotal', 'dwait', 'dfill', 'dtotal', 'fwait', 'ffill', 'ftotal' ],[])
	ds2 = system.dataset.toDataSet([ 'gwait', 'gfill', 'gtotal', 'dwait', 'dfill', 'dtotal', 'fwait', 'ffill', 'ftotal' ],[])
	
	if gravewait1 or  daywait1 or swingwait1:
		newRow = ['', '', '', '', 'Dock 1 Stats', '', '', '', '']
		ds1 = system.dataset.addRow(ds1,newRow)
		newRow = ['', 'Grave', '', '', 'Day', '', '', 'Swing', '']
		ds1 = system.dataset.addRow(ds1,newRow)
		newRow = ['Max Wait Time', 'Max Fill   Time', 'Max Total Time', 'Max Wait Time', 'Max Fill   Time', 'Max Total Time', 'Max Wait Time', 'Max Fill   Time', 'Max Total Time']
		ds1 = system.dataset.addRow(ds1,newRow)
		
		for i in range(5):
			try:
				gw = gravewait1[i][0]
				gf = gravefill1[i][0]
				gt = gravetotal1[i][0]
			except:
				gw = None
				gf = None
				gt = None
			try:
				dw = daywait1[i][0]
				df = dayfill1[i][0]
				dt = daytotal1[i][0]
			except:		
				dw = None
				df = None
				dt = None
			try:
				sw = swingwait1[i][0]
				sf = swingfill1[i][0]
				st = swingtotal1[i][0]
			except:
				sw = None
				sf = None
				st = None
				
			newRow = [gw, gf, gt, dw, df, dt, sw, sf, st ]
			ds1 = system.dataset.addRow(ds1,newRow)
#		newRow = ['', '', '', '', '', '', '', '', '']
#		ds1 = system.dataset.addRow(ds1,newRow)
		
	elif (gravewait2 or  daywait2 or swingwait2):
		newRow = ['', '', '', '', 'Dock 2 Stats', '', '', '', '']
		ds1 = system.dataset.addRow(ds1,newRow)
		newRow = ['', 'Grave', '', '', 'Day', '', '', 'Swing', '']
		ds1 = system.dataset.addRow(ds1,newRow)
		newRow = ['Max Wait Time', 'Max Fill   Time', 'Max Total Time', 'Max Wait Time', 'Max Fill   Time', 'Max Total Time', 'Max Wait Time', 'Max Fill   Time', 'Max Total Time']
		ds1 = system.dataset.addRow(ds1,newRow)
		for i in range(5):
			try:
				gw = gravewait2[i][0]
				gf = gravefill2[i][0]
				gt = gravetotal2[i][0]
			except:
				gw = None
				gf = None
				gt = None
			try:
				dw = daywait2[i][0]
				df = dayfill2[i][0]
				dt = daytotal2[i][0]
			except:		
				dw = None
				df = None
				dt = None
			try:
				sw = swingwait2[i][0]
				sf = swingfill2[i][0]
				st = swingtotal2[i][0]
			except:
				sw = None
				sf = None
				st = None
			newRow = [gw, gf, gt, dw, df, dt, sw, sf, st ]
			ds1 = system.dataset.addRow(ds1,newRow)
	
	elif (gravewait3 or  daywait3 or swingwait3):
		newRow = ['', '', '', '', 'Dock 3 Stats', '', '', '', '']
		ds1 = system.dataset.addRow(ds1,newRow)
		newRow = ['', 'Grave', '', '', 'Day', '', '', 'Swing', '']
		ds1 = system.dataset.addRow(ds1,newRow)
		newRow = ['Max Wait Time', 'Max Fill   Time', 'Max Total Time', 'Max Wait Time', 'Max Fill   Time', 'Max Total Time', 'Max Wait Time', 'Max Fill   Time', 'Max Total Time']
		ds1 = system.dataset.addRow(ds1,newRow)
		for i in range(5):
			try:
				gw = gravewait3[i][0]
				gf = gravefill3[i][0]
				gt = gravetotal3[i][0]
			except:
				gw = None
				gf = None
				gt = None
			try:
				dw = daywait3[i][0]
				df = dayfill3[i][0]
				dt = daytotal3[i][0]
			except:		
				dw = None
				df = None
				dt = None
			try:
				sw = swingwait3[i][0]
				sf = swingfill3[i][0]
				st = swingtotal3[i][0]
			except:
				sw = None
				sf = None
				st = None
			newRow = [gw, gf, gt, dw, df, dt, sw, sf, st ]
			ds1 = system.dataset.addRow(ds1,newRow)

	if (gravewait1 or  daywait1 or swingwait1) and (gravewait2 or  daywait2 or swingwait2):
		newRow = ['', '', '', '', 'Dock 2 Stats', '', '', '', '']
		ds2 = system.dataset.addRow(ds2,newRow)
		newRow = ['', 'Grave', '', '', 'Day', '', '', 'Swing', '']
		ds2 = system.dataset.addRow(ds2,newRow)
		newRow = ['Max Wait Time', 'Max Fill   Time', 'Max Total Time', 'Max Wait Time', 'Max Fill   Time', 'Max Total Time', 'Max Wait Time', 'Max Fill   Time', 'Max Total Time']
		ds2 = system.dataset.addRow(ds2,newRow)
		for i in range(5):
			try:
				gw = gravewait2[i][0]
				gf = gravefill2[i][0]
				gt = gravetotal2[i][0]
			except:
				gw = None
				gf = None
				gt = None
			try:
				dw = daywait2[i][0]
				df = dayfill2[i][0]
				dt = daytotal2[i][0]
			except:		
				dw = None
				df = None
				dt = None
			try:
				sw = swingwait2[i][0]
				sf = swingfill2[i][0]
				st = swingtotal2[i][0]
			except:
				sw = None
				sf = None
				st = None
			newRow = [gw, gf, gt, dw, df, dt, sw, sf, st ]
			ds2 = system.dataset.addRow(ds2,newRow)
	
	elif (gravewait1 or  daywait1 or swingwait1) and (gravewait3 or  daywait3 or swingwait3):
		newRow = ['', '', '', '', 'Dock 3 Stats', '', '', '', '']
		ds2 = system.dataset.addRow(ds2,newRow)
		newRow = ['', 'Grave', '', '', 'Day', '', '', 'Swing', '']
		ds2 = system.dataset.addRow(ds2,newRow)
		newRow = ['Max Wait Time', 'Max Fill   Time', 'Max Total Time', 'Max Wait Time', 'Max Fill   Time', 'Max Total Time', 'Max Wait Time', 'Max Fill   Time', 'Max Total Time']
		ds2 = system.dataset.addRow(ds2,newRow)
		for i in range(5):
			try:
				gw = gravewait3[i][0]
				gf = gravefill3[i][0]
				gt = gravetotal3[i][0]
			except:
				gw = None
				gf = None
				gt = None
			try:
				dw = daywait3[i][0]
				df = dayfill3[i][0]
				dt = daytotal3[i][0]
			except:		
				dw = None
				df = None
				dt = None
			try:
				sw = swingwait3[i][0]
				sf = swingfill3[i][0]
				st = swingtotal3[i][0]
			except:
				sw = None
				sf = None
				st = None
			newRow = [gw, gf, gt, dw, df, dt, sw, sf, st ]
			ds2 = system.dataset.addRow(ds2,newRow)
		
		
				
	elif (gravewait2 or  daywait2 or swingwait2) and (gravewait3 or  daywait3 or swingwait3):
		newRow = ['', '', '', '', 'Dock 3 Stats', '', '', '', '']
		ds2 = system.dataset.addRow(ds2,newRow)
		newRow = ['', 'Grave', '', '', 'Day', '', '', 'Swing', '']
		ds2 = system.dataset.addRow(ds2,newRow)
		newRow = ['Max Wait Time', 'Max Fill   Time', 'Max Total Time', 'Max Wait Time', 'Max Fill   Time', 'Max Total Time', 'Max Wait Time', 'Max Fill   Time', 'Max Total Time']
		ds2 = system.dataset.addRow(ds2,newRow)
		for i in range(5):
			try:
				gw = gravewait3[i][0]
				gf = gravefill3[i][0]
				gt = gravetotal3[i][0]
			except:
				gw = None
				gf = None
				gt = None
			try:
				dw = daywait3[i][0]
				df = dayfill3[i][0]
				dt = daytotal3[i][0]
			except:		
				dw = None
				df = None
				dt = None
			try:
				sw = swingwait3[i][0]
				sf = swingfill3[i][0]
				st = swingtotal3[i][0]
			except:
				sw = None
				sf = None
				st = None
			newRow = [gw, gf, gt, dw, df, dt, sw, sf, st ]
			ds2 = system.dataset.addRow(ds2,newRow)
					
		
		
		
		
		
		
		
	data["top"] = ds1
	data["top2"] = ds2

Any extra set of eyes to help me find the source of the error will be appreciated.

I also checked the logs in the Gateway, so here is the log of this particular error.

org.python.core.PySyntaxError: SyntaxError: mismatched input '\n' expecting INDENT (, line 1)
at org.python.core.ParserFacade.fixParseError(ParserFacade.java:95)
at org.python.core.ParserFacade.parse(ParserFacade.java:205)
at org.python.core.Py.compile_flags(Py.java:2252)
at com.inductiveautomation.ignition.common.script.ScriptManager.compileFunction(ScriptManager.java:898)
at com.inductiveautomation.ignition.gateway.project.ProjectScriptLifecycle$TrackingProjectScriptManager.compileFunctionSuper(ProjectScriptLifecycle.java:789)
at com.inductiveautomation.ignition.gateway.project.ProjectScriptLifecycle$AutoRecompilingScriptFunction.getOrCreateDelegate(ProjectScriptLifecycle.java:888)
at com.inductiveautomation.ignition.gateway.project.ProjectScriptLifecycle$AutoRecompilingScriptFunction.(ProjectScriptLifecycle.java:879)
at com.inductiveautomation.ignition.gateway.project.ProjectScriptLifecycle$TrackingProjectScriptManager.compileFunction(ProjectScriptLifecycle.java:774)
at com.inductiveautomation.ignition.common.script.ScriptManager.compileFunction(ScriptManager.java:881)
at com.inductiveautomation.reporting.gateway.data.ScriptReportDataSource.gatherData(ScriptReportDataSource.java:47)
at com.inductiveautomation.reporting.gateway.ReportingGatewayHook.getReportData(ReportingGatewayHook.java:476)
at com.inductiveautomation.reporting.gateway.ReportingGatewayHook$RPC.getReportData(ReportingGatewayHook.java:579)
at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at com.inductiveautomation.ignition.gateway.servlets.gateway.functions.ModuleInvoke.invoke(ModuleInvoke.java:167)
at com.inductiveautomation.ignition.gateway.servlets.Gateway.doPost(Gateway.java:434)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:523)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
at com.inductiveautomation.ignition.gateway.bootstrap.MapServlet.service(MapServlet.java:86)
at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1410)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1383)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1305)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at com.inductiveautomation.catapult.handlers.RemoteHostNameLookupHandler.handle(RemoteHostNameLookupHandler.java:121)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:301)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.Server.handle(Server.java:563)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:416)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:385)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:272)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$0(AdaptiveExecutionStrategy.java:140)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:934)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1078)
at java.base/java.lang.Thread.run(Unknown Source)

It is telling you that the error is on line one. Did you inject the def yourself?

Also if you moved this through Notepad++ at any point it might have converted a tab to four spaces. I take scripts like this over to Notepad and turn on all characters. Usually the problem becomes apparent.