• Creator
  • #3938

      I am exporting documents from GW to files and want to preserve the folder structure from GW in the file structure.

      I try:

      MyOneDocVersion = MyOneDoc.CurrentVersion

      This does export the file fine, but how can I find the GW-folder of the document?

      I tried also running through the GW Folder Structure and getting the message with the MessageID using ItemSaveMessage.
      How would I get to the actual document when having the MessageID of a message?

      Your help is appreciated!

    • Author
    • #6661
      Support 1a

        You would need to obtain the document reference enclosing folder object, read its name property, then recurse up through the enclosing folder properties until you get to the top of the account. Using this technique you could build a string representing the full folder structure to the document, i.e.

        “UserNameDocumentsProject X”

        Here’s some code you can use to access the enclosing folder of the selected message:

        dim oMsg
          Set oMsg = Client.ClientState.CommandMessage
          ' Refresh the folders collection 
          ' The folder this item is contained in.
          if (oMsg.EnclosingFolders.count > 0) then
            msgbox oMsg.EnclosingFolders.item(1).name
          end if
          set oMsg = nothing 

        To obtain the physical document via the message ID, I suspect you would need to use GroupWise.Account.GetMessage(MessageID) to obtain an instance of the document reference object, then save the current version out as you are currently doing.

        I hope this helps.

        Advansys Support


          Many Thanks, Dave,

          You say, that with GroupWise.Account.GetMessage(MessageID) I get an instance of the document reference object.
          However, there is an Error executing this code on the sond line:
          Set oDoc = GroupWise.Account.GetMessage(MyMsg.MessageID)
          MyDocNumber = oDoc.DocumentNumber

          I assume GroupWise.Account.GetMessage(MyMsg.MessageID) gets a reference to an instance of the message object.

          How can I get a reference to the document?


          Support 1a

            Remember there is a different between a document reference object (which GetMessage() is going to return) and a document object.

            Once you have an instance of your document reference object, you need to access it’s document property in order to work with the physical document.

            Here’s some psuedo code:

            set oDocRef = GroupWise.Account.GetMessage("abcdefg")
            MsgBox oDocRef.Document.DocumentNumber

            In your example code it appears you already have the Document Reference object (MyMsg.MessageID), so there’s no need to call GetMessage – it’s going to return the object you already have. All you need to do is reference the Document Reference’s .Document property.

            I hope this helps.

            Advansys Support


              Many Thanks! You helped me a lot!

              It works now.

              The missing element was the .Document Attribute on the Message Object.

              MyDoc = oMsg.Document

              In the Novell GroupWise Object API documentation, the object Message does not have a Document property. Is there another Documentation describing this (and many other useful) features?

              best regards

              Support 1a

                The object you are working with in this case is actually a ‘Document Reference’ object, which is derived from the ‘Message’ object type. Look up DocumentReference in the Object API documentation. You notice it says at the top of the page it is a subtype of Message.

                I hope this helps.

                Advansys Support

              Viewing 5 replies - 1 through 5 (of 5 total)
              • You must be logged in to reply to this topic.