Hi Dale,
thanks for that help. After putting all scripts ones after ones your's worked well - I found that i did a copy error and missed the first line. BTW: I've edited your script a little bit to add the date of the scan (stole that at asianeffiecncy): [CODE] tell application "Finder" to set file_name to (name of theFile) set theDate to current date set theNote to "Scanned " & (theDate as string) & " " tell application "OmniFocus" set task_title to "Proceed: " & file_name tell default document set theContext to first flattened context where its name = "Review" set newTask to make new inbox task with properties {name:task_title, context:theContext} set note of newTask to theNote tell the note of newTask make new file attachment with properties {file name:theFile, embedded:false} end tell end tell end tell [/CODE] Thanks a lot man! To get it into the right project is quite easier as you can drag and drop a lot of tasks to a project :-) |
It is good to hear you have something working and is useful for you. The point of my bringing up all the scripts/references was to help give background to the original script you posted and at least get that working for you.
I would strongly suggest to take a look at the script Rob Trew presented as a solution in this thread when you have time. His scripts are very well done and I use many of them in my personal workflows. Besides his script is much more sophisticated and offers more features than my simple cobbling together of these other scripts. |
Yeah, i'll have a look at Rob's script, maybe I'll be able to get it working :)
|
[QUOTE=RobTrew;124712]It seems that Applescript code embedded in Hazel can't use function definitions (Hazel probably wraps the code in a function handler).
You should be able to unpackage the functions along these lines: [CODE]tell application "Finder" to set file_name to (name of theFile) set theDate to current date set theNote to "Scanned " & (theDate as string) & " " set projectname to "Proceed Files" set ContextName to "Some Context" set theTask to "Proceed: \"" & file_name & "\"" tell application "OmniFocus" set task_title to theTask tell default document -- GET A REFERENCE TO AN EXISTING PROJECT (OR NEW) PROJECT set lstProj to flattened projects where name = projectname if lstProj ≠ {} then set oProj to item 1 of lstProj else set oProj to (make new project with properties {name:projectname}) end if -- GET A REFERENCE TO AN EXISTING (OR NEW) CONTEXT set lstContexts to flattened contexts where name = ContextName if lstContexts ≠ {} then set oContext to item 1 of lstContexts else set oContext to (make new context with properties {name:ContextName}) end if -- MAKE A NEW TASK UNDER THE SPECIFIED PROJECT, ATTACHING IT TO THE SPECIFIED CONTEXT tell oProj tell (make new task with properties {name:task_title, context:oContext}) set its note to theNote tell its note to make new file attachment with properties {file name:file_name, embedded:false} end tell end tell end tell end tell [/CODE][/QUOTE] I have to admit that I'm really stupid. This script works like a charm if you copy it right. I forgot the first line again... Sorry for beeing so dumb! Just one more question: Can you help me to add a Start Date for that task as well? I'd like something like "today+3". Cheers, Ben PS: Rob you are truly a hero! |
[QUOTE=hubutz;124781]I forgot the first line again... [/QUOTE]
No problem – easily done. [QUOTE]a Start Date for that task as well? I'd like something like "today+3"[/QUOTE] Perhaps something along these lines: [CODE]tell application "Finder" to set file_name to (name of theFile) set dteBase to current date set theNote to "Scanned " & (dteBase as string) & " " set projectname to "Proceed Files" set ContextName to "Some Context" set theTask to "Proceed: \"" & file_name & "\"" tell application "OmniFocus" set task_title to theTask tell default document -- GET A REFERENCE TO AN EXISTING PROJECT (OR NEW) PROJECT set lstProj to flattened projects where name = projectname if lstProj ≠ {} then set oProj to item 1 of lstProj else set oProj to (make new project with properties {name:projectname}) end if -- GET A REFERENCE TO AN EXISTING (OR NEW) CONTEXT set lstContexts to flattened contexts where name = ContextName if lstContexts ≠ {} then set oContext to item 1 of lstContexts else set oContext to (make new context with properties {name:ContextName}) end if -- MAKE A NEW TASK UNDER THE SPECIFIED PROJECT, -- ATTACHING IT TO THE SPECIFIED CONTEXT -- AND STAMPING IT WITH A START DATE set dteStart to dteBase - (time of dteBase) -- zero the time to midnight set dteStart to dteStart + (3 * days) -- and add three days tell oProj tell (make new task with properties {name:task_title, context:oContext, start date:dteStart}) set its note to theNote tell its note to make new file attachment with properties {file name:file_name, embedded:false} end tell end tell end tell end tell[/CODE] |
[QUOTE=hubutz;124781]
Just one more question: Can you help me to add a Start Date for that task as well? I'd like something like "today+3". [/QUOTE] This works for me. [CODE] tell application "Finder" to set file_name to (name of theFile) set theDate to current date set theStartDate to current date set time of theStartDate to 0 + (8 * hours) set theNote to "Scanned " & (theDate as string) & " " set projectname to "Proceed Files" set ContextName to "Some Context" set theTask to "Proceed: \"" & file_name & "\"" tell application "OmniFocus" set task_title to theTask tell default document -- GET A REFERENCE TO AN EXISTING PROJECT (OR NEW) PROJECT set lstProj to flattened projects where name = projectname if lstProj ≠ {} then set oProj to item 1 of lstProj else set oProj to (make new project with properties {name:projectname}) end if -- GET A REFERENCE TO AN EXISTING (OR NEW) CONTEXT set lstContexts to flattened contexts where name = ContextName if lstContexts ≠ {} then set oContext to item 1 of lstContexts else set oContext to (make new context with properties {name:ContextName}) end if -- MAKE A NEW TASK UNDER THE SPECIFIED PROJECT, ATTACHING IT TO THE SPECIFIED CONTEXT tell oProj tell (make new task with properties {name:task_title, context:oContext, start date:(theStartDate) + (3 * days)}) set its note to theNote tell its note to make new file attachment with properties {file name:file_name, embedded:false} end tell end tell end tell end tell [/CODE] To modify the time change the number of hours using 24hour time in the this line of code. [CODE] set time of theStartDate to 0 + (8 * hours) [/CODE] |
[QUOTE=RobTrew;124800]No problem – easily done.
Perhaps something along these lines: [CODE]tell application "Finder" to set file_name to (name of theFile) set dteBase to current date set theNote to "Scanned " & (dteBase as string) & " " set projectname to "Proceed Files" set ContextName to "Some Context" set theTask to "Proceed: \"" & file_name & "\"" tell application "OmniFocus" set task_title to theTask tell default document -- GET A REFERENCE TO AN EXISTING PROJECT (OR NEW) PROJECT set lstProj to flattened projects where name = projectname if lstProj ≠ {} then set oProj to item 1 of lstProj else set oProj to (make new project with properties {name:projectname}) end if -- GET A REFERENCE TO AN EXISTING (OR NEW) CONTEXT set lstContexts to flattened contexts where name = ContextName if lstContexts ≠ {} then set oContext to item 1 of lstContexts else set oContext to (make new context with properties {name:ContextName}) end if -- MAKE A NEW TASK UNDER THE SPECIFIED PROJECT, -- ATTACHING IT TO THE SPECIFIED CONTEXT -- AND STAMPING IT WITH A START DATE set dteStart to dteBase - (time of dteBase) -- zero the time to midnight set dteStart to dteStart + (3 * days) -- and add three days tell oProj tell (make new task with properties {name:task_title, context:oContext, start date:dteStart}) set its note to theNote tell its note to make new file attachment with properties {file name:file_name, embedded:false} end tell end tell end tell end tell[/CODE][/QUOTE] Thanks a lot Rob! This works perfectly and will give me some more spare time :-) @Dale: thanks for your help as well! But I don't get this. Why do i want to add 8 * hours? Do i have to add 72 instead of hours if i want 3 days? :) [QUOTE=Dale;124801] To modify the time change the number of hours using 24hour time in the this line of code. [CODE] set time of theStartDate to 0 + (8 * hours) [/CODE][/QUOTE] |
[QUOTE=hubutz;124816]
@Dale: thanks for your help as well! But I don't get this. Why do i want to add 8 * hours? Do i have to add 72 instead of hours if i want 3 days? :) [/QUOTE] I had posted my script modification before I saw Rob Trew also had posted a response. My script has two parts to it; start date of 3 days from the current date, and start time of 8AM. [B]Part one:[/B] Set the start date to equal the current date. [CODE] set theStartDate to current date [/CODE] Added the start date property to the task to start in three days. [CODE] start date:(theStartDate) + (3 * days) [/CODE] [B]Part two:[/B] Added the option for setting a start time to the start date being added to the task. By default the start time is the time the script is run. I wanted to set the tasks to start at a specific time. [CODE] set time of theStartDate to 0 + (8 * hours) [/CODE] The line above controls the time you want the tasks to start. The "8" means 8AM. If you wanted the tasks to begin at 8PM you would use "20". I like to use start times with my tasks and I could have explained this a lot better. |
Ahh, thanks - that makes sense. I think I'll have a deeper look into programming or scripting if the summer keeps sucking that much... seems to be pretty helpful and straight forward!
|
1 Attachment(s)
Hello everyone,
Thank you RobTrew for this great script! I just have a question about file attachment : when I set embedded:true, I get a repetition of the introduction of the task in Omnifocus indefinitely and without the file is attached. Thank you to enlighten me. Wonderfull Forum !!! here is the script I've used and the image of the result : [CODE]tell application "Finder" to set file_name to (name of theFile) set dteBase to current date set theNote to "Scanned " & (dteBase as string) & " " set projectname to "Factures à Encoder" set ContextName to "En-Ligne" set theTask to "Encoder: \"" & file_name & "\"" tell application "OmniFocus" set task_title to theTask tell default document -- GET A REFERENCE TO AN EXISTING PROJECT (OR NEW) PROJECT set lstProj to flattened projects where name = projectname if lstProj ≠ {} then set oProj to item 1 of lstProj else set oProj to (make new project with properties {name:projectname}) end if -- GET A REFERENCE TO AN EXISTING (OR NEW) CONTEXT set lstContexts to flattened contexts where name = ContextName if lstContexts ≠ {} then set oContext to item 1 of lstContexts else set oContext to (make new context with properties {name:ContextName}) end if -- MAKE A NEW TASK UNDER THE SPECIFIED PROJECT, -- ATTACHING IT TO THE SPECIFIED CONTEXT -- AND STAMPING IT WITH A START DATE set dteStart to dteBase - (time of dteBase) -- zero the time to midnight set dteStart to dteStart + (10 * days) -- and add three days tell oProj tell (make new task with properties {name:task_title, context:oContext, start date:dteStart, flagged:true}) set its note to theNote tell its note to make new file attachment with properties {file name:file_name, embedded:true} end tell end tell end tell end tell[/CODE] |
All times are GMT -8. The time now is 09:04 AM. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.