#8000
Support 3
Participant

Your code review shows that you did not call the GetWIPFolderPath from the main subroutine prior to save the message. The following code works fine in our environment. Let us know if we missed anything…

Sub Main(Client, GWEvent)

  dim iWIPFolderPath
  dim oMsg
  dim iMsgID
  dim iWIPPath
  Dim iBreakCount

 ' Save the draft message to the Work in Progress folder
  Call Groupwise.ItemSetText("X00", itfSubject, " COMPLETED", TRUE) ' TRUE = Append

  call GetWIPFolderPath(groupwise.account.workfolder, iWIPPath)

  msgbox "Work In Progress folder path: " & iWIPPath

  Call Groupwise.throwtoken("ItemSaveMessageDraft(""" & iWIPPath & """)", iReturnVal)

  ' Calling ItemMessageIDFromView immediately after GroupWise.ItemSaveMessageDraft
  ' can result in an X00 ID.
  iMsgID = GroupWise.ItemMessageIDFromView

  iBreakCount = 0
  while (iMsgID = "Token failed execution!") or (iMsgID = "X00")
     Application.ProcessMessages
     utilities.Timer(1)
     Application.ProcessMessages
     iMsgID = GroupWise.ItemMessageIDFromView
     iBreakCount = iBreakCount + 1
     Utilities.Trace iBreakCount & ": " & iMsgID
     if (iBreakCount > 10) then
       exit sub
     end if
  wend

  set oMsg = GroupWise.Account.GetMessage(iMsgID)
  msgbox "Subject: " & oMsg.subject.plaintext

End Sub



'-------------------------------------------------------------------------------
' Get full path of the Work-In-Progress folder where Drafts are saved
'-------------------------------------------------------------------------------
Function GetWIPFolderPath(aGWFolder, byref aPath)
  Dim sHome
  sHome = ""
  Utilities.Trace "aGWFolder.Name=" & aGWFolder.Name & " aPath=" & aPath
  If (Cint(Left(GroupWise.EnvVersionName,1)) >= 7) Then
    If aGWFolder.Name = GroupWise.Account.Owner.DisplayName Then
      sHome = " Home"
    End If
  End If
  If aGWFolder Is Nothing Then
    Exit Function
  End If
  If (aPath <> "") Then
    aPath = aGWFolder.name & sHome & "" & aPath
  Else
    aPath = aGWFolder.name
  End If
  If (aGWFolder.objtype = fgwRoot) Then
    Exit Function
  Else
    Call GetWIPFolderPath(aGWFolder.ParentFolder, aPath)
  End if
End Function  

BTW, you can use the custom fields to store data or insert the data to the message body. If the data is sensitive then you can consider to encrypt and decrypt at the other end by your solution.

Most probably in GroupWise 8 (Bonsai) will have the X-Fields where you can add additional data and viewable by other non GroupWise clients.

Hope this helps.

Regards,
Advansys Support