Forum Replies Created
-
AuthorReplies
-
The online Help for Personal Outlook Migration describes how to undo the effects of an earlier migration. Click the Help button on the dialog to open the online Help.
When you run the solution after completing a migration, an extra button appears on the dialog: Rollback. Additional text appears in the paragraph just below the dialog title. Click Rollback for a dialog with instructions and options to undo the migration.
Advansys Support
In order to modify the integrations for an applet, you need Formativ Admin or Formativ Developer.
Your requirement has been passed on to our Engineers for review. We will post an update here when we have news on this issue.
Advansys Support
It looks like a variable containing the string ‘Token failed execution’ was passed to a subroutine that expects an integer. But I don’t see a place in your quoted code line where such a variable is being used. I think the error is associated with a different line of code. The most likely reason is that an ‘on error’ statement is suppressing normal error-handling. This implies there is an unhandled error, that occurs earlier in the code execution.
Does this problem appear for all users of your applet or only these two? Perhaps there is something common to the two users’ environments that leads to this issue. It may be due to the version of Formativ or GroupWise, or something else. I suggest you review their Formativ configurations, which can be obtained from the GroupWise client Help menu: select About Formativ, then go to the Configuration tab.
Advansys Support
Novell have not notified us of a fix for this issue (though as noted in an earlier post, it is logged in their defect database). We cannot predict when their Development team plans to resolve this.
We are still awaiting a notification from Novell.
Advansys Support
I am not sure why you get the error ‘Invalid procedure call…’ That line of code works fine for us (GroupWise 6.5.1). What version of the GroupWise client are you using?
Novell’s online documentation here notes the method AddressBookEntries.Find does not support the BEGINSWITH operator.
The properties of Address object GroupWise.Account.Owner are fixed (see the API documentation). The Object API knows nothing about admin-defined fields, so you cannot retrieve your FullName property in this way.
Below is a complete sample applet. Note that collections such as AddressBookEntries, Fields are 1-based (not zero-based, like VBScript arrays).
-------------------------------------------------------------------------------- ' Displays a dialog, listing every field in the first ' address book entry matching the logged-in user. sub Main(Client, GWEvent) dim iUserId dim iText dim oEntry dim oEntries dim oField dim oFields dim oAddressBook set oAddressBook = GroupWise.Account.AddressBooks.Item("Novell GroupWise Address Book") iUserId = Groupwise.EnvUserID() set oEntries = oAddressBook.AddressBookEntries.Find("(<E-Mail Address> CONTAINS """ & iUserId & """)") if oEntries is nothing then msgbox "oEntries is nothing. Quitting" exit sub end if set oEntry = oEntries.Item(1) set oFields = oEntry.Fields iText = "" for each oField in oFields iText = iText & "Name: " & oField.Name & ", Value: " & oField.Value & vbCrLf next msgbox iText set oField = nothing set oFields = nothing set oEntry = nothing set oEntries = nothing set oAddressBook = nothing end sub --------------------------------------------------------------------------------
Advansys Support
The filter string should be quoted, and your email address field syntax is incorrect. Correct usage is as follows:
set oEntry = oAddressBook.AddressBookEntries.Find("(<E-Mail Address> CONTAINS """ & UserId & """)")
The method Find returns a collection of address book entries. The code should read each address book entry from that collection. Correct usage is as follows:
set oEntry = oEntries.Item(1) set oFieldObj = oEntry.Fields
If we only want the full name of the logged-in user, then there is no need to use the address book, which is very inefficient. We can do so as follows:
msgbox "Name: " & groupwise.account.owner.displayname & vbcrlf & _ "Email: " & groupwise.account.owner.emailaddress
I hope this helps.
Advansys Support
We will be in touch when we know more about the API behaviour.
Advansys Support
Thank you for clarifying the requirement.
I have tested the sample applet myself, and get the same results that you do. Specifying the folder GroupWise.Account.Mailbox does not affect the Query location!
We will look into whether this is a bug in the GroupWise Object API, and post an update here as soon as we know more.
In the meantime, you can change the Find properties of your search folder manually. Right-click on the folder in the GroupWise client, select Properties. On the Find tab, uncheck all the unwanted folders, and leave Mailbox checked.
I hope this helps.
Advansys Support
Thank you for clarifying the scenario. I can’t think of a reason why UI issues might arise from defining an invisible portal.
It may be that a future version of Formativ will include a means for in-memory persistence. The limitation described in my earlier post pertains to Formativ 1.6x.
Advansys Support
The following sample applet reads the CC field from a received message, and inserts the value into the main body-text of a new message. The applet requires GroupWise Integrations for the events Mail-Reply and Mail-Forward.
-------------------------------------------------------------------------------- dim iCC call GroupWise.FocusSet(fcsMessage, "") GroupWise.PosTextTop iCC = GroupWise.ItemGetText(Client.ClientState.CommandMessage.MessageID, itfCC) call GroupWise.TypeText(iCC) --------------------------------------------------------------------------------
Advansys Support
You can find documentation on the Query object here. Novell’s Object API reference also includes Filter Expressions.
The example applet in my earlier post limits the search to the Mailbox folder (see the Query.Locations property).
The folder object does not have a ‘sort by’ property. However you can create a Display Settings profile for this folder. On the main GroupWise menu: View | Display Settings > Edit/Create. Sort by date is among the many options available here. I think the administrator also can create a profile which can be shared by multiple users.
The following example applet applies the predefined profile ‘Test’ to the search folder ‘Unopened Items’.
const FOLDER_NAME_QUERY = "Unopened Items" const SETTINGS_NAME = "Test" '------------------------------------------------------------------------------- ' main-Line processing '------------------------------------------------------------------------------- Sub Main(Client, GWEvent) dim oFolder dim iSyntax dim iFolderPath set oFolder = GroupWise.Account.RootFolder.Folders.ItemByName(FOLDER_NAME_QUERY) ' Get the folder path call GetFolderPath(oFolder, iFolderPath) ' Remove the last '' delimiter from the path iFolderPath = RemoveTrailingDelimiter(iFolderPath) if iFolderPath = "" then exit sub end if ' Select the 'Unopened Items' folder call GroupWise.FolderSelect(iFolderPath) ' Change the folder settings iSyntax = "DisplaySettingsSetEx(""" & iFolderPath & """;""" & SETTINGS_NAME & """)" if GroupWise.ThrowToken(iSyntax, "") then msgbox("Display settings updated.") end if set oFolder = nothing End Sub function GetFolderPath(aFolder, aPath) dim iFolder if aFolder is nothing then exit function end if aPath = aFolder.name & "" & aPath if aFolder.ObjType <> fgwRoot then set iFolder = aFolder.ParentFolder call GetFolderPath(iFolder, aPath) set iFolder = nothing end if end function function RemoveTrailingDelimiter(aPath) aPath = trim(replace(aPath, "\", "")) dim iChar iChar = right(aPath, 1) if iChar = "" then aPath = mid(aPath, 1, len(aPath) -1) end if RemoveTrailingDelimiter = aPath end function
I hope this helps.
Advansys Support
Here is an example that removes the Document item from the File | New menu, and accounts for the new menu context in GroupWise 6.5.1:
dim iText iText = "Disable (File | New | Document) menu items on the GroupWise client menus?" if (msgbox(iText, vbYesNo, "Enable/disable menu item") = vbYes) then ' GroupWise 6.5.1 or later uses the short menu path. if (GroupWise.EnvVersionName >= "6.5.1") then call GroupWise.RemoveMenuItem("GW.CLIENTFileNewDocument") else call GroupWise.RemoveMenuItem("GW.CLIENT.WINDOW.BROWSERFileNewDocument") end if else call GroupWise.ResetMenuItems call GroupWise.EnableCommand(858) 'AddNewDocument() end if call msgbox("Restart GroupWise to see the changes.")
The method EnvVersionDate is also available.
Advansys Support
Since Caption and TabCaption are display controls on the Portal, I would not recommend using them as a persistence store. They are Variant-typed objects, so their theoretical size is up to 2Gb. But there may be a lower limit because of their roles in the user interface.
What data do you want to persist? How do you want to retrieve it? It may be better to use an INI file or the Windows Registry; the Formativ language supports both alternatives.
Advansys Support
Thank you for supplying a detailed wish-list. We will include this in an enhancements request to Novell in the near future.
For your information: An alternative way to access the Personalize tab, using the keyboard, is to press Ctrl-Tab. This shortcut cycles through the tabs.
Advansys Support
This error indicates the MS Outlook client is either not installed, or is not installed properly.
If the Outlook client is already installed, go to your Windows Control Panel, and open Add or Remove Programs. Select Microsoft Office and click the Change button, then choose Outlook as the item to Remove.
Now install the Microsoft Outlook client from your MS Office installer CD (or other source). Personal Outlook Migration should run as expected.
I hope this helps.
Advansys Support
-
AuthorReplies