例: Working with attachments and embedded objects in Java™ classes

  1. 次のエージェントは、添付ファイルを取得する NotesRichTextNavigator メソッドを使用して、現在の文書の Body アイテムの添付ファイルを抽出します。
    import lotus.domino.*;
    
    public class JavaAgent extends AgentBase {
    
      public void NotesMain() {
    
        try {
          Session session = getSession();
          AgentContext agentContext = session.getAgentContext();
    
          // (Your code goes here) 
          DocumentCollection dc = agentContext.getUnprocessedDocuments();
          Document doc = dc.getFirstDocument();
          if (doc.hasEmbedded()) {
            RichTextItem body = (RichTextItem)doc.getFirstItem("Body");
            RichTextNavigator rtnav = body.createNavigator();
            if (rtnav.findFirstElement(
            RichTextItem.RTELEM_TYPE_FILEATTACHMENT)) {
              do {
                EmbeddedObject att = (EmbeddedObject)rtnav.getElement();
                String path = "c:¥¥Files¥¥" + att.getSource();
                att.extractFile(path);
                System.out.println(path + " extracted");
              } while (rtnav.findNextElement());
            }
            else
              System.out.println("No attachments");
          }
          else
            System.out.println("No attachments or embedded objects");
    
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }
  2. 次のエージェントは、RichTextItem.EmbeddedObjects プロパティを使用して現在の文書の Body アイテム内の添付ファイルを抽出して、添付ファイルを取得します。
    import lotus.domino.*;
    import java.util.Vector;
    
    public class JavaAgent extends AgentBase {
    
      public void NotesMain() {
    
        try {
          Session session = getSession();
          AgentContext agentContext = session.getAgentContext();
    
          // (Your code goes here) 
          DocumentCollection dc = agentContext.getUnprocessedDocuments();
          Document doc = dc.getFirstDocument();
          if (doc.hasEmbedded()) {
            RichTextItem body = (RichTextItem)doc.getFirstItem("Body");
            Vector atts = body.getEmbeddedObjects();
            int n = 0;
            for (int i = 0; i < atts.size(); i++) {
              EmbeddedObject att = (EmbeddedObject)atts.elementAt(i);
              if (att.getType() == EmbeddedObject.EMBED_ATTACHMENT) {
                String path = "c:¥¥Files¥¥" + att.getSource();
                att.extractFile(path);
                System.out.println(path + " extracted");
                n++;
              }
            }
            if (n == 0)
              System.out.println("No attachments");
          }
          else
            System.out.println("No attachments or embedded objects");
    
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }
  3. 次のエージェントの例では、文書内のすべての埋め込みオブジェクトのプロパティを表示します。
    import lotus.domino.*;
    import java.util.Vector;
    
    public class JavaAgent extends AgentBase {
    
      public void NotesMain() {
    
        try {
          Session session = getSession();
          AgentContext agentContext = session.getAgentContext();
    
          // (Your code goes here) 
          DocumentCollection dc = agentContext.getUnprocessedDocuments();
          Document doc = dc.getFirstDocument();
          if (doc.hasEmbedded()) {
            RichTextItem body = (RichTextItem)doc.getFirstItem("Body");
            Vector objects = body.getEmbeddedObjects();
            for (int i = 0; i < objects.size(); i++) {
              EmbeddedObject object = (EmbeddedObject)objects.elementAt(i);
              System.out.println(object.getSource());
              switch (object.getType()) {
                case EmbeddedObject.EMBED_ATTACHMENT:
                  System.out.println("¥tAttachment");
                  System.out.println("¥t" + object.getFileSize() + " bytes");
                  break;
                case EmbeddedObject.EMBED_OBJECT:
                  System.out.println("¥tObject");
                  System.out.println("¥tName: " + object.getName());
                  System.out.println("¥tClass name: " + object.getClassName());
                  break;
                case EmbeddedObject.EMBED_OBJECTLINK:
                  System.out.println("¥tObject link");
                  System.out.println("¥tName: " + object.getName());
                  System.out.println("¥tClass name: " + object.getClassName());
                  break;
              }
            }
          }
          else
            System.out.println("No embedded objects");
    
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }