LotusScript - 多次提取和重新附加附件会导致第一个附件的副本和文件损坏

LotusScript - Multiple extraction and reattaching of attachments leads to copies of the first attachment and file corruption

单个文件的提取和重新附加会产生正确的结果,但当涉及多个文件时,结果是第一个附件的副本,但带有文件名的名称。 例如,如果我提取 fileA.doc、fileB.doc 和 fileC.doc,我将得到 fileA.doc、fileB.doc 和 fileC.doc,但是文件将是 fileA.doc 的文件。文件名是正确的,但内容是第一个文档的内容,一些文件已损坏。 下面是相同的代码。

strRtFieldName(0) ="Body1"
strRtFieldName(1) ="Body2"
strRtFieldName(2) ="Body3"
strRtFieldName(3) ="Body4"
strRtFieldName(4) ="Body5"
strRtFieldName(5) ="Body6"
strRtFieldName(6) ="Body7"
strRtFieldName(7) ="Body8"
strRtFieldName(8) ="Body9"
strRtFieldName(9) ="Body0"

varAttachmentNames = Evaluate("@AttachmentNames", doc) 

For i = 0 To UBound(varAttachmentNames)     
    ' check for attachment in Rich Text fields
    For k = 0 To 9
        Set rtitem = doc.Getfirstitem(strRtFieldName(k))
        If (object Is Nothing) Then
            If Not rtitem Is Nothing Then
                If (rtitem.Type = RICHTEXT) Then
                    Set object = rtitem.GetEmbeddedObject(varAttachmentNames(i))
                End If
            End If
        End If
    Next
    If (object Is Nothing) Then
        ' check for attachment in document
        Set object = doc.GetAttachment(varAttachmentNames(i))
    End If  
Next

如果您能指出代码的错误,我们将不胜感激。

查看 object 变量,当它被设置时,对 if 语句的影响。然后应该很明显 object 在第一个循环中什么都不是。因此后续循环将重复使用相同的附件。

我不确定为什么这是用 XPages 标记的。