Sample code for creating Tasks in Outlook via VFP

As I mentioned in my last email about TaskLine, here’s the code I used to create a task in Outlook:

crlf = CHR(13)+CHR(10)

lo = GETOBJECT(,”Outlook.application”)

loSpace = lo.GetNameSpace(“MAPI”)

loTasks = loSpace.Folders(“Mailbox”).Folders(“Tasks”)

loTask = loTasks.Items.add()

loTask.subject = TRIM(synopsis)

loTask.startdate = entdate

loTask.categories = “Automatic Call” && This was done to categorize it faster

lcBody = “ID: ” +LTRIM(STR(callid))+crlf+”Customer: “+ custcode + crlf

lcBody = lcBody + “Status: ” +callstat + crlf

lcBody = lcBody + “Type: ” +calltype+ crlf

lcBody = lcBody + “Severity: ” +severity+ crlf

lcBody = lcBody + “Contact : ” +cntname+ crlf

lcBody = lcBody + “Application: ” +appname+ crlf

lcBody = lcBody + TRIM(calldetl) + crlf

lcBody = lcBody + TRIM(workdetl) + crlf

IF NOT ISNULL(duedate)

loTask.DueDate = duedate

ELSE

lotask.duedate = MAX(DATE()+15,TTOD(entdate)+30)

ENDIF

** This is important because the Task Status is a numeric value

DO CASE

CASE callstat=”Follow-Up”

loTask.Status =4 && Waiting on someone else

CASE callstat=”Call Back”

loTask.Status = 4

CASE callstat=”New”

loTask.Status = 0 && Not Started

OTHERWISE

loTask.Status = 1 && In progress

ENDCASE

loTask.totalwork = 120

loTask.Companies = TRIM(custcode)

loTask.Body = lcBody

loTask.Save()

Then I let TaskLine do the rest.