Forum Replies Created

Viewing 15 replies - 526 through 540 (of 599 total)
  • Author
    Replies
  • in reply to: ConsoleOne admin #5213
    Support 2
    Moderator

      It appears the installation is not finding the correct Windows Registry entry to allow the automatic location for the Snapins folder. I will check this with our engineering team. In the meantime, I have posted the ConsoleOne snapin for Formativ 1.0 to our Web site and you can download it from http://www.advansyscorp.com/formativ/1_0/formativ.jar . Copy this file into the ConsoleOne snapins folder on the workstation.

      Please let us know if this does not assist in the short term.

      Regards,

      Advansys Support

      in reply to: Where is admintoolssetup.exe? #5386
      Support 2
      Moderator

        Go to the Formativ Download page, http://www.advansyscorp.com/formativ_download.htm , select the Formativ Admin 1.0 radio button product selection, scroll down to Product Description and you will see the link to the Admin Tools software. We also send the link in the automated message about important product information when the product is downloaded

        Here is the information:

        The Formativ Admin Tools 1.0 includes eDirectory/NDS ConsoleOne and NWAdmin snap-ins and the Formativ eDirectory/NDS schema extender. This software is required to administer Formativ Admin and Client (Runtime) using Novell eDirectory/NDS.

        You can download the Admin Tools from the link below.

        http://www.advansyscorp.com/download/admintoolssetup.exe

        Hope this helps.

        Regards,

        Advansys Support

        in reply to: Running formativ scripts from a batchfile #5387
        Support 2
        Moderator

          At this stage there is no way to run Formativ applets from an external application. However, you could write an applet which is integrated with the GroupWise On Startup event, which would execute each time the GroupWise client starts. You could write the applet solution in such a way that it only executed the Shared Address Book update once per day (i.e. by writing a small text file to indicate that processing was complete for that day etc.).

          Another possibility for initiating solutions, which is not likely to be desirable in this case, is to write an applet solution which triggers on the On Message Arrival event and which looks for a message specific subject/sender etc., then, if the message is a match, it executes the function and deletes the ‘trigger’ message. It could even send an email to the user indicating that the update was complete.

          There are a couple of disadvantages with the On Message Arrival approach for your requirements. Firstly, you do not know what the user may be doing when the solution is triggered by the incoming trigger message and you don’t want to interfere with the user’s work. Secondly, the GroupWise client must be running for the On Message Arrival event to trigger. Both of these disadvantages can be worked around. For example, when the applet solution triggers on an incoming message, ask the user whether they wish to update now or not. If the user decides not to update, leave the trigger message in the Mailbox and use the GroupWise client On Startup event start the same applet and get it look for any remaining trigger messages. If found, perform the update and remove any remaining trigger messages.

          BTW, you can also use Formativ to hide any message (such as the trigger message) from the user interface but allow it to be accessible via a search (this can also be disabled). Alternatively, access can be restricted exclusively to direct programmatic access.

          Regards,

          Advansys Support

          in reply to: Attachements #6469
          Support 2
          Moderator

            The code below will add an attachment, in this case ‘c:test.txt’, to a new mail message.

            Groupwise.NewMail 

            ' The attachment's full path
            iFilePath = "c:test.txt"
            call GroupWise.ItemAttachmentAdd("X00", itcAttachClassFile, iFilePath, "")

            Hope this helps.

            Best regards,

            Advansys Support

            Support 2
            Moderator

              Sorry for the delay, we’ve been hard at work getting the Formativ 1.5 beta launched on our Web site, http://www.advansyscorp.com/formativ_1_5.htm .

              Which version of GroupWise client are you using, 5.5, 5.5 Enhancement Pack or 6.01?

              Regards,

              Advansys Support

              in reply to: Missing Applets Menu Item #5676
              Support 2
              Moderator

                The Import Outlook Items applet available on Cool Solutions is ‘open source’, which will only run with Formativ Admin installed. The reason why it won’t run on your installation is because you have Formativ Client installed, which only executes ‘Encoded’ applets produced by Formativ Admin.

                You could solve the problem by installing Formativ Admin from our Web site, http://www.advansyscorp.com/formativ_download.htm, or to facilitate a quick solution, we have uploaded an encoded version of the applet, which will work with your current Formativ Client installation, to the following URL:

                http://www.advansyscorp.com/formativ/applets/encoded/import outlook items.vbf

                You just need to download this encoded version of the applet and copy it into the c:program filesadvansysformativlocal folder and then restart the GroupWise client.

                Please let us know if you have any questions.

                Regards,

                Advansys Support

                Support 2
                Moderator

                  There are ways to achieve a pre-send filing option but each approach would have advantages and disadvantages.

                  To help us better understand your business requirements, would it be possible for you to let us know the objective of the copy-to-self requirement? For example, would moving the GroupWise sent message into a target folder be sufficient or do you specifically need the sent message to also be addressed to the sender, which is then filed into the user’s target folder?

                  Which version of GroupWise are you using?

                  Here are some quick, off the cuff suggestions for implementing a system which moves the GroupWise sent item to a target folder, which is selected by the user prior to sending message.

                  The basic approach would be to mark the outgoing message with the user’s selection and then have a mechanism which identifies the marking and moves the message into the correct folder.

                  1) Marking the message

                  1a) Using a Custom Field

                  Design an applet which allows the user to select a target folder and which then saves the user selection in a custom field into the draft message prior to sending. The catch with this approach is that the draft message must be saved at least once, to get a valid message ID (rather than ‘X00’), before you can add a custom field. The applet could save the message by using the ItemSaveMessageDlg command (or another command depending on the version of GW you are using), which will prompt the user for a draft folder. The applet could be executed manually or integrated with the OnSend event (but again, the draft message must be saved first to get a valid Message ID).

                  The benefit of using a custom field to mark the message is that the data remains hidden from the user and does not appear in the outgoing message.

                  1b) Using the Message Fields

                  Another approach is for an applet to mark either the subject, the message text or by attaching a special file attachment. For example, you could append a special text code to the end of the subject, end of the message text, or add a text attachment which includes the target folder code or location.

                  The advantage of this approach is that you don’t need to save the message first but the disadvantage is that the target folder code or information would appear in the outgoing message.

                  2) Idenfiying and filing the message

                  Once the message is marked with the required target folder identifier, the next step is to develop a process which identifies the marking and then automatically files the message. Again there are a couple of approaches which could be used but to ensure an optimal solution, each approach would need to be tested first.

                  Note: You can’t have the same ‘marking’ applet move the GroupWise sent message because of the send event sequencing, i.e. when an applet is triggered by the client On Send event, the GroupWise message is not yet committed to the database.

                  2a) Automatically Generated Rule

                  The applet which marks the message could generate a GroupWise rule configured to automatically move the sent message, which includes the specific marking, to the target folder. This technique would have to be tested for timing issues. However, as the rule would be created before the message is sent, and because the rule events are POA database (server) driven, the rule ‘send’ event would trigger only when the message has been sent by the client. In any case, once the rule was created, it would work without potential timing problems for any subsequent messages containing the same marking identifier. The outcome of this approach is that, in addition to the marking applet, you will have a number of GroupWise rules created to do the filing.

                  2b) Filing Applet

                  The other approach is to use another applet which is either manually executed by the user and/or is triggered to run on GroupWise startup. This applet would scan GroupWise sent messages for the specific markings and automatically move them into the correct target folders.

                  Summary

                  The above suggestions focus on the GroupWise sent message, which is normally automatically created by the GroupWise client and by default is stored in the Mailbox folder. If you require that a copy of the sent message is filed, or if the sent message is to be addressed to the sender to achieve a copy, the above approaches could be adapted to work in either scenario.

                  I hope the above suggestions are of assistance. If you don’t wish to develop this solution yourself, Advansys does offer custom development services.

                  Regards,

                  Advansys Support

                  Support 2
                  Moderator

                    I think you will find that the Internet Reply Formatter applet will suit your requirements. This applet is installed with Formativ Admin.

                    Below is some info about the applet from our web site:

                    The Internet style reply formatter applet lets you format email replies using the standard ‘>’ quoting system. For example, if you reply to a message and execute this applet, the original message text has any soft line breaks converted to hard line breaks are a configurable column, and the ‘>’ character is inserted at the start of each line as shown below:

                    >Dear Sir,
                    >
                    >Thank you very much for your email message.
                    >We were very happy with your proposal and look
                    >forward to hearing from you soon.

                    Please let us know if this applet does not meet your needs.

                    Regards,

                    Advansys Support

                    in reply to: Email attachment property #6458
                    Support 2
                    Moderator

                      Thanks, no problem. Let us know if you have any further questions.

                      Regards,

                      Advansys Support

                      in reply to: Save message text to a file BEFORE sending… #6444
                      Support 2
                      Moderator

                        This example saves the message information from a composing item and will work when integrated with the OnSend event.

                        Let us know if you have any questions.

                        Regards,

                        Advansys Support

                        '-------------------------------------------------------------------------------
                        ' Formativ Solutions for GroupWise
                        ' Save Composing Message
                        ' Designed by: Formativ Business Solution Team
                        ' Copyright (c) 2002 Advansys Corporation (www.advansyscorp.com)
                        ' Version 1.01
                        '
                        ' Description:
                        ' This applet will save the composing message details to a file.
                        ' You need to provide the folder path where the file will be saved.
                        '
                        ' File name format: The file name will start with the subject,
                        ' followed by the current date/time.
                        ' For example: my subject_020314153920.txt
                        ' where:
                        ' my subject = The composing message's subject
                        ' 020314153920 = yymmdd + time(24 hours) + current second
                        '
                        ' INTEGRATIONS: GroupWise mail OnSend.
                        '-------------------------------------------------------------------------------

                        dim FSO

                        Const CAPTION = "Formativ Business Solutions"
                        HRT = Chr(13) & Chr(10)

                        ' Provide the root folder where the file will be saved
                        '===============================================================================
                        const FOLDER_PATH = "c:"
                        '===============================================================================

                        ' Do you want a confirmation message box when the applet creates the file
                        ' TRUE - Yes, FALSE - No
                        const CONFIRMATION_DLG = TRUE

                        '-------------------------------------------------------------------------------
                        ' Main line processing
                        '-------------------------------------------------------------------------------
                        Sub Main(Client, GWEvent)

                        dim iMsgID
                        dim iMsgText
                        dim iSubject
                        dim iAttachCounter

                        set FSO = CreateObject("Scripting.FileSystemObject")

                        ' Does the folder exist?
                        if FSO.FolderExists(FOLDER_PATH) then
                        ' Get the composing message ID
                        iMsgID = GroupWise.ItemMessageIDFromView

                        ' Make sure we have a composing message selected
                        if (iMsgID = "X00") then
                        ' Get the To, CC, BC, Subject and the body text
                        iMsgText = iMsgText & "To: " & GroupWise.ItemGetText(iMsgID, itfTo) & HRT
                        iMsgText = iMsgText & "CC: " & GroupWise.ItemGetText(iMsgID, itfCC) & HRT
                        iMsgText = iMsgText & "BC: " & GroupWise.ItemGetText(iMsgID, itfBC) & HRT
                        iSubject = GroupWise.ItemGetText(iMsgID, itfSubject)
                        iMsgText = iMsgText & "Subject: " & iSubject & HRT & HRT
                        iMsgText = iMsgText & "Message: " & GroupWise.ItemGetText(iMsgID, itfMessage) & HRT & HRT

                        ' Does the message have any attachments?
                        iAttachCounter = GroupWise.ItemAttachmentGetCount(iMsgID)
                        if (iAttachCounter > 0) then
                        ' Loop through the attachments to get the name
                        for x = 0 to (iAttachCounter -1)
                        iMsgText = iMsgText & "Attachment " & (x + 1) & ": " & GroupWise.ItemAttachmentGetName(iMsgID, x) & HRT
                        next
                        end if

                        ' Save the text into a file
                        if (iMsgText <> "") then
                        call SaveTextIntoFile(iMsgText, iSubject)
                        end if

                        else
                        call msgbox("Select a composing message and set the integration with OnSend.", vbInformation, CAPTION)
                        end if
                        else
                        call msgbox(FOLDER_PATH & " - folder not exists.", vbCritical, CAPTION)
                        end if

                        set FSO = nothing

                        End Sub


                        '-------------------------------------------------------------------------------
                        ' Save the text into a new file
                        '-------------------------------------------------------------------------------
                        sub SaveTextIntoFile(aText, aSubject)

                        dim iFileName
                        dim MyFile

                        iFileName = FOLDER_PATH & RemoveInvalidCharacter(aSubject) & "_" & GetCurrentDateTime & ".txt"
                        Set MyFile = FSO.CreateTextFile(iFileName, True)
                        MyFile.WriteLine(aText)
                        MyFile.Close
                        set MyFile = nothing

                        ' Do you need a confirmation message box?
                        if CONFIRMATION_DLG then
                        call msgbox("The following file created." & HRT & iFileName, vbInformation, CAPTION)
                        end if

                        end sub


                        '-------------------------------------------------------------------------------
                        ' Get the current date time to create a unique name
                        '-------------------------------------------------------------------------------
                        function GetCurrentDateTime

                        dim iDay
                        dim iMonth
                        dim iYear
                        dim iTime

                        iDay = Day(date)
                        if len(iDay) = 1 then
                        iDay = "0" & iDay
                        end if

                        iMonth = Month(date)
                        if len(iMonth) = 1 then
                        iMonth = "0" & iMonth
                        end if

                        iYear = Year(date)
                        if len(iYear) > 2 then
                        iYear = right(iYear, 2)
                        end if

                        iTime = FormatDateTime(Time, vbShortTime)
                        iTime = Replace(iTime, ":", "")
                        iTime = Replace(iTime, ",", "")
                        iTime = Replace(iTime, " ", "")

                        GetCurrentDateTime = iYear & iMonth & iDay & iTime & Second(Now)

                        end function


                        '-------------------------------------------------------------------------------
                        ' Remove invalid characters [The following characters are not acceptable as a file name]
                        '-------------------------------------------------------------------------------
                        function RemoveInvalidCharacter(aText)

                        aText = replace(aText, "/", "")
                        aText = replace(aText, "", "")
                        aText = replace(aText, ":", "")
                        aText = replace(aText, "*", "")
                        aText = replace(aText, """", "")
                        aText = replace(aText, "|", "")
                        aText = replace(aText, "<", "")
                        aText = replace(aText, ">", "")
                        aText = replace(aText, "?", "")
                        aText = replace(aText, ".", "")

                        RemoveInvalidCharacter = aText

                        end function
                        in reply to: If-then-else statement , if mail is send local #6449
                        Support 2
                        Moderator

                          Please find below an example of disclaimer applet which supports both text and HTML and which checks to see if any outgoing addresses are external. It achieves this by attempting to resolve an address with an embedded ‘@’ sign against the system address book.

                          Please let us know if you have any questions.

                          Regards,

                          Advansys Support

                          '-------------------------------------------------------------------------------
                          ' Formativ Business Solutions
                          ' Disclaimer
                          ' Copyright (c) 2002 Advansys Corporation (www.advansyscorp.com)
                          ' Version 1.0
                          '
                          ' This applet appends a disclaimer to the end of the message when the event is
                          ' OnSend. If the message recipients are internal GroupWise system users only,
                          ' then the applet will not add the disclaimer. The disclaimer can be a plain
                          ' text or HTML file (extension must be .htm or .html).
                          '
                          ' INTEGRATION: This applet requires integration with OnSend event.
                          '
                          ' Notes: If you are using internet addressing, you will need to set the
                          ' DOMAINNAME constant to your company's Internet domain name.
                          '-------------------------------------------------------------------------------

                          ' DOMAINNAME should be your company's Internet domain name, i.e. advansyscorp.com
                          Const DOMAINNAME = "domainname.com" 'do not prefix the domain name with www.
                          ' Full path to the location of the HTM file
                          FILENAME = Utilities.GetDataDirectory + "Disclaimer.htm"

                          '-------------------------------------------------------------------------------
                          ' Main line processing
                          '-------------------------------------------------------------------------------
                          Sub Main(Client, GWEvent)

                          Dim Msg
                          Dim FSO

                          On Error Resume Next
                          If ValidMsg(Msg) And (GWEvent = "GW#C#SEND") Then

                          Set FSO = CreateObject("Scripting.FileSystemObject")

                          If (FSO.FileExists(FILENAME)) Then
                          sTo = Msg.To_
                          sCC = Msg.CC
                          sBC = Msg.BC
                          Call GroupWise.FocusSet(9, "")

                          If CheckExternalEmail(sTo, sCC, sBC) = FALSE Then
                          If FileType And (GroupWise.EnvEditorStyle = 1) Then
                          Call GroupWise.SwitchToHTMLView
                          End If
                          'Set the position where you want to place the disclaimer.
                          ' To place the disclaimer at the
                          ' top of the message - uncomment the PosTextTop,
                          ' end of the message - uncomment PosToEndOfText
                          'Call GroupWise.PosTextTop
                          Call GroupWise.PosToEndOfText
                          Call GroupWise.Retrieve(FILENAME)
                          End If

                          End If

                          Set FSO = Nothing

                          End If

                          End Sub

                          '-------------------------------------------------------------------------------
                          ' Decide whether the file is HTM/HTML or text file?
                          '-------------------------------------------------------------------------------
                          Function FileType

                          Dim sFileType

                          If (Instr(1, FILENAME, ".") <> 0) then
                          sFileType = Split(FILENAME, ".", -1, 1)
                          sType = sFileType(UBound(sFileType))
                          If (UCase(sType) = "HTM") Or (UCase(sType) = "HTML") Then
                          FileType = TRUE
                          End If
                          End If

                          End Function

                          '-------------------------------------------------------------------------------
                          ' Check any external email addresses which exist in the recipient list
                          '-------------------------------------------------------------------------------
                          Function CheckExternalEmail(sTo, sCC, sBC)

                          'To field
                          If Len(sTo) > 0 then
                          If ResolveAddress(sTo) = FALSE Then
                          CheckExternalEmail = FALSE
                          Exit Function
                          Else
                          CheckExternalEmail = TRUE
                          End If
                          End If

                          'CC Field
                          If Len(sCC) > 0 Then
                          If ResolveAddress(sCC) = FALSE Then
                          CheckExternalEmail = FALSE
                          Exit Function
                          Else
                          CheckExternalEmail = TRUE
                          End If
                          End If

                          'BCC Field
                          If Len(sBC) > 0 Then
                          If ResolveAddress(sBC) = FALSE Then
                          CheckExternalEmail = FALSE
                          Exit Function
                          Else
                          CheckExternalEmail = TRUE
                          End If
                          End If


                          End Function


                          '-------------------------------------------------------------------------------
                          ' Resolve Address
                          '-------------------------------------------------------------------------------
                          Function ResolveAddress(ByVal Recp)

                          Dim sMail
                          Dim sEntry
                          Dim sAddress
                          Dim sReturnAddr

                          sAddress = Trim(Recp)

                          'If the recipient list contains more than one entry and separated by ';' then proceed
                          If (Instr(1, sAddress, ";") <> 0) Then
                          sEntry = Split(sAddress, ";", -1, 1)
                          For x = 0 to UBound(sEntry)
                          sMail = Trim(sEntry(x))
                          If MailCheck(sMail) Then
                          ResolveAddress = TRUE
                          Else
                          ResolveAddress = FALSE
                          Exit Function
                          End If
                          Next
                          Else
                          If MailCheck(sAddress) Then
                          ResolveAddress = TRUE
                          Else
                          ResolveAddress = FALSE
                          End If
                          End If

                          End Function

                          '-------------------------------------------------------------------------------
                          ' Check for the external mail
                          '-------------------------------------------------------------------------------
                          Function MailCheck(sMail)

                          Dim sEmail

                          If (Instr(1, sMail, "@") = 0) Then
                          On Error Resume Next
                          sEmail = GroupWise.AddressBookResolveFullName(sMail)

                          If (Instr(1, sEmail, "@") <> 0) Then
                          If (Instr(1, sEmail, DOMAINNAME) = 0) Then
                          MailCheck = FALSE
                          Else
                          MailCheck = TRUE
                          End If
                          Else
                          MailCheck = TRUE
                          End If
                          Else
                          If (Instr(1, sMail, DOMAINNAME) = 0) Then
                          MailCheck = FALSE
                          Else
                          MailCheck = TRUE
                          End If
                          End If

                          End Function

                          '-------------------------------------------------------------------------------
                          ' Do we have a composing item available?
                          '-------------------------------------------------------------------------------
                          Function ValidMsg(ByRef Msg)

                          On Error Resume Next
                          Set Msg = GroupWise.ComposingItem

                          If Msg is Nothing then
                          ValidMsg = FALSE
                          Else
                          ValidMsg = TRUE
                          End If

                          End Function
                          in reply to: Prevent delete when conditions are not met #6457
                          Support 2
                          Moderator

                            To meet your requirements, the applet needs to be executed prior to the delete function being processed by GroupWise and, depending on the number of selected messages, we may need to prevent the GroupWise delete function from executing. Unfortunately it is not possible to do this with the current version of Formativ.

                            A future version after v1.5 (probably v2) will provide you with the capability to control the sequence of event processing and applet execution.

                            Regards,

                            Advansys Support

                            in reply to: Accessing attachments #8506
                            Support 2
                            Moderator

                              The following sample code which will display the composing message’s attachment name(s) in a message box. It will also allow you to save an attachment but you will need to uncomment the ItemAttachmentSaveAs ‘save’ code and provide the target file name (this code would have to be updated to handle multiple filenames and check whether the file already exists).

                                dim iMsgID
                              dim iAttachCounter

                              Const CAPTION = "Formativ Business Solutions"

                              ' Get the composing message ID through TOKEN
                              iMsgID = GroupWise.ItemMessageIDFromView

                              ' Make sure we have a composing message selected
                              if (iMsgID = "X00") then
                              iAttachCounter = GroupWise.ItemAttachmentGetCount(iMsgID)

                              ' Does the message have any attachments?
                              if (iAttachCounter > 0) then
                              ' Loop through attachments to get the names
                              for x = 0 to (iAttachCounter -1)
                              call msgbox (GroupWise.ItemAttachmentGetName(iMsgID, x), vbInformation, CAPTION)

                              ' To save the attachment(s), you need to provide the file name(s) and have to check whether
                              ' the file already exists
                              'call GroupWise.ItemAttachmentSaveAs(iMsgID, x, "c:test.txt")
                              next
                              else
                              call msgbox("No attachments found.", vbInformation, CAPTION)
                              end if
                              else
                              call msgbox("Select a composing message to display the attachment names.", vbInformation, CAPTION)
                              end if

                              Hope this helps.

                              Regards,

                              Advansys Support

                              in reply to: Email attachment property #6459
                              Support 2
                              Moderator

                                The following sample code which will display the composing message’s attachment name(s) in a message box. It will also allow you to save an attachment but you will need to uncomment the ItemAttachmentSaveAs ‘save’ code and provide the target file name (this code would have to be updated to handle multiple filenames and check whether the file already exists).

                                  dim iMsgID
                                dim iAttachCounter

                                Const CAPTION = "Formativ Business Solutions"

                                ' Get the composing message ID through TOKEN
                                iMsgID = GroupWise.ItemMessageIDFromView

                                ' Make sure we have a composing message selected
                                if (iMsgID = "X00") then
                                iAttachCounter = GroupWise.ItemAttachmentGetCount(iMsgID)

                                ' Does the message have any attachments?
                                if (iAttachCounter > 0) then
                                ' Loop through attachments to get the names
                                for x = 0 to (iAttachCounter -1)
                                call msgbox (GroupWise.ItemAttachmentGetName(iMsgID, x), vbInformation, CAPTION)

                                ' To save the attachment(s), you need to provide the file name(s) and have to check whether
                                ' the file already exists
                                'call GroupWise.ItemAttachmentSaveAs(iMsgID, x, "c:test.txt")
                                next
                                else
                                call msgbox("No attachments found.", vbInformation, CAPTION)
                                end if
                                else
                                call msgbox("Select a composing message to display the attachment names.", vbInformation, CAPTION)
                                end if

                                Hope this helps.

                                Regards,

                                Advansys Support

                                in reply to: Auto logo in default view #5381
                                Support 2
                                Moderator

                                  Hi Bill,

                                  Our Formativ Stationery applet can be readily adapted for your requirements. We’ve written a detailed reply, including examples, to the email which you also sent to us. Please let us know if you have any further questions.

                                  Regards,

                                  Advansys Support

                                Viewing 15 replies - 526 through 540 (of 599 total)