Lotus notes 第二个注意事项文档未保存在For循环中

Lotus notes 第二个注意事项文档未保存在For循环中,lotus-notes,lotusscript,Lotus Notes,Lotusscript,我有一个for循环,在其中检索Notes文档。在这个循环中,我还更改字段值。更改字段值后,我保存文档。第一个文档被保存,我在文档中看到了新的更改,我也保存了第二个文档(根据调试器正确检索),但更改没有保存 我的Cod(我保存在:Call docOrderLineTemp.save(True,True)): 这里可能有什么问题 更新:将getDocumentByKey更改为GetAllDocumentsByKey,这使它能够工作。两个问题:1/您是否使用调试器进行了测试,2/为什么不使用GetAl

我有一个for循环,在其中检索Notes文档。在这个循环中,我还更改字段值。更改字段值后,我保存文档。第一个文档被保存,我在文档中看到了新的更改,我也保存了第二个文档(根据调试器正确检索),但更改没有保存

我的Cod(我保存在:Call docOrderLineTemp.save(True,True)):

这里可能有什么问题


更新:将getDocumentByKey更改为GetAllDocumentsByKey,这使它能够工作。

两个问题:1/您是否使用调试器进行了测试,2/为什么不使用GetAllDocumentsByKey,以便将所有匹配的文档作为NotesDocumentCollection进行保存?您的代码有两个层次。创建子函数。。。是否确实需要将文档另存为响应文档?notesview是否设置为autoupdate?@D.Bugger我与调试器检查过,一切看起来都很好docOrderLineTemp设置了正确的文档(正确的通用ID),但没有保存。我将getDocumentByKey更改为GetAllDocumentsByKey,现在它可以工作:)
For x = 0 To nrOfOrderResponseLines - 1
        Dim nodeOrderResponseLine As Variant
        Set nodeOrderResponseLine = nodeOrderResponseLineList.Item(x)
        If nodeOrderResponseLine.nodeName = "OrderResponseLine" Then
            Dim nodeDeliveryDateTimeInformation As Variant
            Dim nodeScheduledDeliveryDate As Variant
            Dim scheduledDeliveryDateStr As String
            Dim scheduledDeliveryDate As Variant
            Dim docOrderLineTemp As NotesDocument
            Dim counter As Integer
            Dim nodeItemNoSupplier As Variant
            Dim orderLineStatusCode As String

            Set nodeItemNoSupplier = nodeOrderResponseLine.getElementsByTagName("SuppliersTradeItemIdentification").Item(0)

            Dim searchKeys(1 To 3) As String
            searchKeys(1) = docOrder.ID_Order(0)
            searchKeys(2) = creditorObj.crdnr
            searchKeys(3) = nodeItemNoSupplier.Text
            Print "searchKeys 3 : " + searchKeys(3)




            Set docOrderLineTemp = nvwOrderRegels.getDocumentByKey(searchKeys,True)

            counter = 0
            While Not docOrderLineTemp Is Nothing 
                'Is order waar het omgaat zelfde als gevonden order
                If docOrder.ID_Order(0) = docOrderLineTemp.ID_Order(0) Then
                    'komt artikelnummer en crediteurnummer overeen, als ja dan onderstaand uitvoeren
                    If (nodeItemNoSupplier.Text = docOrderLineTemp.ArtikelnrKlant(0)) And (creditorObj.crdnr = docOrderLineTemp.Crdnr(0)) Then
                        Print "docOrderLineTemp.StatusRegeldocOrderLineTemp.StatusRegel " + docOrderLineTemp.StatusRegel(0)
                        orderLineStatusCode = nodeOrderResponseLine.getElementsByTagName("StatusCode").Item(0).Text
                        If(orderLineStatusCode = "7") Then
                            docOrderLineTemp.StatusRegel = "Waiting for info supplier"
                        Else
                            docOrderLineTemp.StatusRegel = "Order placed"
                        End If

                        'TO DO! checken bij uitlezen orderregel dat orderregel opgepakt wordt adhv artikelnummer en crediteurnummer!

                        Set nodeDeliveryDateTimeInformation = nodeOrderResponseLine.getElementsByTagName("DeliveryDateTimeInformation").Item(0)
                        If Not nodeDeliveryDateTimeInformation Is Nothing Then
                            Set nodeScheduledDeliveryDate = nodeDeliveryDateTimeInformation.getElementsByTagName("ScheduledDeliveryDate").Item(0)
                            If Not nodeScheduledDeliveryDate Is Nothing Then
                                'datum formaat in orderbevestiging is = YYYY-MM-DD
                                scheduledDeliveryDateStr = nodeScheduledDeliveryDate.Text
                                Dim splittedDate As Variant
                                Dim newDate As String
                                splittedDate = Split(scheduledDeliveryDateStr, "-")

                                newDate = splittedDate(2) + "-" + splittedDate(1) + "-" + splittedDate(0)
                                'Duedate is DD-MM-YYYY
                                scheduledDeliveryDate = CDat(newDate)
                                docOrderLineTemp.EerstBevestigdeDatum = scheduledDeliveryDate
                                docOrderLineTemp.ViewEerstBevestigdeDatumBestel = scheduledDeliveryDate


                            End If
                        End If

                        Call docOrderLineTemp.save(True,True)
                    End If

                    Set docOrderLineTemp = nvwOrderRegels.GetNextDocument( docOrderLineTemp )



                    counter = counter + 1


                Else
                    Set docOrderLineTemp = Nothing
                End If
            Wend
        End If
    Next