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

问题描述:

我有一个正在为扫描仪工作的文档。扫描仪向我的数据库发送一封电子邮件,并且从视图中可以访问该文档并查看附件和主题。Xpages将附件从文档发送到另一个

有没有一种方法可以使用附件并将其放入另一个文档?我设法使用sessionScope发送主题丰富的文本,但它不与附件一起工作。

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

这将是最好的方式来做到这一点?

+0

如何创建目标文档?它是否没有源文件? – poisonedYouth 2014-11-04 12:40:01

+0

是的,它不在源文档中。 – 2014-11-04 12:56:44

+0

你想打开目标文件还是仅仅用于保存数据? – poisonedYouth 2014-11-04 13:04:12

使用NotesRichTextItem的appendRTItem()方法:

  • 阅读原体项目进入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:

嵌入在与数据源 “文档1” 一个XPage的按钮相同的代码。按钮

  • 将创建表“测试”一个新的文档,
  • 副本富文本项目“身体”与当前文档“文档1”到新文档的所有附件和
  • 打开一个XPage“测试。 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> 

为前提两个例子:附件必须在当前文档的项目‘身体’。

+0

我打开一个带有按钮打开页面事件的新文档,不需要使用'database.createDocument()'创建一个文档,如何从上一页保存正文并将其带入新页面? – 2014-11-05 11:24:23

+0

而我已经有了RichText字段。 – 2014-11-05 11:46:52

+0

您可以使用Knut的代码来复制rtItem并保存文档(以获得单一的)。使用unid,您可以使用“打开页面简单操作”来编辑文档 – poisonedYouth 2014-11-05 12:46:22