Yeah, you just have to come to the forum and ask and someone will write a script for you :-)
The following script will prompt you for a text file containing lines like this:
1 0.5
3 0.7
93 0.15
where the first number is the Unique ID value for the row and the second number is the fraction of completion (0.0 for not started, 0.5 for 50%, 1.0 for 100%, etc.) Both Unique ID and Completion can be turned on as columns in the outline via the View->View Options... command.
After reading the file, the script will attempt to set the completion fraction of the designated actions. Any rows that don't exist, or where an error is encountered, will be reported and skipped over.
I would recommend running this on a copy of your data file until you are convinced of proper operation. If you need help installing the script, check out this thread:
http://forums.omnigroup.com/showthread.php?t=7453
(the procedures are the same, just read OmniPlan where you see OmniFocus)
Code:
tell application "OmniPlan"
try
set fileContents to read (choose file with prompt "Choose text file containing completion data")
on error
display dialog "Couldn't read file" buttons "OK"
return
end try
-- file format is lines of (int)unique_id (float)completion_fraction
set listofData to every paragraph of fileContents
repeat with parseRow in listofData
if (length of parseRow > 0) then
try
set {Unique_id, Completion_fraction} to words of parseRow
set myTasklst to (tasks of front document whose id is Unique_id)
set myTask to first item of myTasklst
set completed of myTask to Completion_fraction
on error
display dialog "Couldn't understand following row, ignoring it:
" & parseRow buttons "OK"
end try
end if
end repeat
end tell