Xpages将文档中的附件发送到另一个文档

时间:2014-11-04 10:28:21

标签: xpages email-attachments xpages-ssjs ssjs

我有一个扫描仪的文档。扫描程序向我的数据库发送一封电子邮件,从视图中我可以访问该文档并查看附件和主题。

有没有办法可以使用附件并将其放入另一个文件中?我设法使用sessionScope发送主题富文本,但它不使用附件。

在目标文档中,我有一个fileDownloader。

这是最好的方法吗?

1 个答案:

答案 0 :(得分:1)

使用NotesRichTextItem' appendRTItem()方法:

  • 将原始Body项读入NotesRichTextItem
  • 在新文档中创建一个新的NotesRichTextItem
  • 将原始的NotesRichTextItem附加到新创建的

这也复制了RichText中包含的所有附件。

示例:

  var docOrig:NotesDocument = ...;
  var docNew:NotesDocument = database.createDocument();
  docNew.replaceItemValue("Form", "Test");
  var bodyOrig:NotesRichTextItem = docOrig.getFirstItem("Body");
  var bodyNew:NotesRichTextItem = docNew.createRichTextItem("Body");
  bodyNew.appendRTItem(bodyOrig);
  docNew.save();

示例2:

相同的代码嵌入XPage的按钮中,带有数据源" document1"。按钮

  • 使用表单" Test",
  • 创建一个新文档
  • 复制RichText项目" Body"包含当前文档的所有附件" document1"到新文件和
  • 打开一个XPage" Test.xsp"对于新创建的文档
<xp:button
    value="Create and open new document with a copy of current document's item Body"
    id="button1">
    <xp:eventHandler
        event="onclick"
        submit="true"
        refreshMode="complete">
        <xp:this.action>
            <xp:openPage
                name="Test.xsp"
                target="editDocument">
                <xp:this.documentId><![CDATA[#{javascript:
                    var docOrig:NotesDocument = document1.getDocument();
                    var docNew:NotesDocument = database.createDocument();
                    docNew.replaceItemValue("Form", "Test");
                    var bodyOrig:NotesRichTextItem = docOrig.getFirstItem("Body");
                    var bodyNew:NotesRichTextItem = docNew.createRichTextItem("Body");
                    bodyNew.appendRTItem(bodyOrig);
                    docNew.save();
                    return docNew.getUniversalID();}]]></xp:this.documentId>
            </xp:openPage>
        </xp:this.action>
    </xp:eventHandler>
</xp:button>

两个例子的前提条件:附件必须在当前文件的项目&#34; Body&#34;。