PDA

View Full Version : Script Editor to Automator Issue




thriftinkid
Apr 17, 2008, 12:43 AM
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.)

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
Apr 17, 2008, 07:51 PM
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.)

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:

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

lee1210
Apr 17, 2008, 10:24 PM
I have no idea, but getting the number of items in theList was no longer working. This seems to:

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
Apr 17, 2008, 10:25 PM
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.

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
Jun 25, 2013, 09:24 AM
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! :)