In Pseudocode (heisst: die Methoden mögen anders heissen, aber im Groben sollte es stimmen)
Dim docResp as yourResponse
set docResp = db.createDocument
docResp.makeResponse(doc)
' wichtig. Vergisst man schnell:
docResp.save true, false
Wie Bernhard.
Mal so allgemein:
Ich würd an deiner Stelle grundsätzlich die ganzen zu kopierenden Items aus dem Hauptdokument erzeugen.
Wie du ja schon gemacht hast.
Set NAME1 = doc.getfirstitem("NAME1")
Set KDNR = doc.Getfirstitem( "KDNR" )
Set AUFNR = doc.Getfirstitem( "AUFNR" )
Set AUFPOS = doc.Getfirstitem( "AUFPOS" )
Set CLART = doc.Getfirstitem( "CLART" )
Set CLID = doc.Getfirstitem( "CLID" )
Set CPART = doc.Getfirstitem( "CPART" )
Set CPBEZ = doc.Getfirstitem( "CPBEZ" )
Set CPENDE = doc.Getfirstitem( "CPENDE" )
Und dann mit NotesItem.copyItemToDocument(newDoc, "neuerItemName") arbeiten (echt guter Tipp, wie ich finde, also in keinem Fall überlesen).
In der Praxis sähe das dann etwa so aus:
NAME1.copyItemToDocument(newDoc, "NAME1")
Die Namen der Items für die zu kopierenden Dokumente in dem alten Dokument und dem neuen Dokument in je einem Array schreiben. Das gleiche mit den Item-Objekten selbst. Oder in 1 Array aus Structs (letzeres ist wohl besser). Das Struct hat dann 2 String-Member (feldNameNew und feldNameAlt sowie 1 NotesItem).
Das würd ich aber morgen machen.
Axel
set CPOCSSB = new NotesItem (doc, "CPOCSSB", user)
[...]
Call newdoc.MakeResponse( doc )
newdoc.Form = "aktion"
NAME1.copyItemToDocument(newDoc, "NAME1")
[...] der ganze Rest so ähnlich.
Call newdoc.save (True, True)
workspace.EditDocument True,newdoc
'Call newdoc.Save( False, False )
'workspace.EditDocument True,newdoc
' wichtig. Vergisst man schnell:
End Sub
und das mit den Arrays ist ne gute Idee.
Und das mit den structs noch eine bessere.