Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

thriftinkid

macrumors regular
Original poster
Mar 24, 2008
119
0
I have had a few scripts now that work fine when I run the in script editor, but they don't run properly in automator. Automator has the ability to run applescript as part of a work flow by copying as pasting your applescript directly into Automator. I haven't had errors everytime I do it. But there are certain scripts that have had errors that have forced me to do some adjustments. Any ideas why? This recent script gave me the following error after copying and pasting it into an automator workflow.

Syntax Error
No result was returned from some part of this expression.


Here is the script:

(including automators on run, return input, and end tell commands added by automator within workflow.)

Code:
on run {input, parameters}
	
	tell application "Finder"
		set theFolder to "Macintosh HD:Users:John:Desktop:Finished" as alias
		set theList to name of (every file in theFolder)
	end tell
	
	repeat with i from 1 to (number of items of theList)
		set theName to (item i of theList)
		set item i of theList to ("http://www.mywebsite.com/mainfolder/" & theName)
	end repeat
	set theText to "

"
	repeat with i from 1 to (number of items of theList)
		set theText to (theText & (item i of theList) & "

")
	end repeat
	
	tell application "TextEdit"
		activate
		make new text document
		set the text of the front document to theText
		
	end tell
	
	return input
end run
 

thriftinkid

macrumors regular
Original poster
Mar 24, 2008
119
0
I have had a few scripts now that work fine when I run the in script editor, but they don't run properly in automator. Automator has the ability to run applescript as part of a work flow by copying as pasting your applescript directly into Automator. I haven't had errors everytime I do it. But there are certain scripts that have had errors that have forced me to do some adjustments. Any ideas why? This recent script gave me the following error after copying and pasting it into an automator workflow.

Syntax Error
No result was returned from some part of this expression.


Here is the script:

(including automators on run, return input, and end tell commands added by automator within workflow.)

Code:
on run {input, parameters}
	
	tell application "Finder"
		set theFolder to "Macintosh HD:Users:John:Desktop:Finished" as alias
		set theList to name of (every file in theFolder)
	end tell
	
	repeat with i from 1 to (number of items of theList)
		set theName to (item i of theList)
		set item i of theList to ("http://www.mywebsite.com/mainfolder/" & theName)
	end repeat
	set theText to "

"
	repeat with i from 1 to (number of items of theList)
		set theText to (theText & (item i of theList) & "

")
	end repeat
	
	tell application "TextEdit"
		activate
		make new text document
		set the text of the front document to theText
		
	end tell
	
	return input
end run

It seemed it was having a particular problem with this part of the code, but I'm not sure:

Code:
repeat with i from 1 to (number of items of theList)
		set theText to (theText & (item i of theList) & "
 

lee1210

macrumors 68040
Jan 10, 2005
3,182
3
Dallas, TX
I have no idea, but getting the number of items in theList was no longer working. This seems to:

Code:
on run {input, parameters}
	
	tell application "Finder"
		set theFolder to "Macintosh HD:Users:lee:Desktop:Finished" as alias
		set theList to name of (every file in theFolder)
	end tell
	
	set theText to "

"

	repeat with theName in theList
		set theText to (theText & ("http://www.mynetwork.tv/vue/" & theName) & "
		
")
	end repeat
	
	set input to theText
	
	return input
	
end run

This passes the generated text to the next step in the automator workflow. That may not be what you want to do, but writing it to the text file is sort of a dead-end in the workflow, unless there's some way to tell the next step where a document is, etc.

-Lee
 

lancestraz

macrumors 6502a
Nov 27, 2005
898
0
RI
For some crazy reason, Automator doesn't like the phrase "number of items in" so use "count" instead. Also, the word "text" should be omitted from the line "make new text document" in the TextEdit block. Tweaked the TextEdit "make new document" code a bit so that if TextEdit is not active when this script is run it will not create two documents.

Code:
on run {input, parameters}
	
	tell application "Finder"
		set theFolder to "Macintosh HD:Users:John:Desktop:Finished" as alias
		set theList to name of (every file in theFolder)
	end tell
	
	repeat with i from 1 to (count theList)
		set theName to (item i of theList)
		set item i of theList to ("http://www.mywebsite.com/mainfolder/" & theName)
	end repeat
	set theText to "

"
	repeat with i from 1 to (count theList)
		set theText to (theText & (item i of theList) & "

")
	end repeat
	
	tell application "TextEdit"
		activate
		if (front document exists) = true then
			if (text of the front document) ≠ "" then
				make new document
			end if
		else
			make new document
		end if
		set the text of the front document to theText
	end tell
	
	return input
end run
 

axello

macrumors newbie
Feb 12, 2006
4
0
Amsterdam
For some crazy reason, Automator doesn't like the phrase "number of items in" so use "count" instead. Also, the word "text" should be omitted from the line "make new text document" in the TextEdit block. Tweaked the TextEdit "make new document" code a bit so that if TextEdit is not active when this script is run it will not create two documents.

Wow! That really saved my day. Sometimes (often?) these idiosyncrasies of Apple Script drive me crazy :eek:.

Thanks for giving us the solution! :)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.