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