2

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

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

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

哪种方法是最好的方法?

4

1 回答 1

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:

嵌入在数据源“document1”的 XPage 按钮中的相同代码。按钮

  • 创建一个具有“测试”表单的新文档,
  • 将带有所有附件的 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>

两个示例的前提条件:附件必须在当前文档的“正文”项中。

于 2014-11-05T06:58:02.497 回答