Domino 9 und frühere Versionen > ND6: Entwicklung

Werte werden durch LS in Dokument nicht gespeichert.....?

(1/4) > >>

LuckyNotes2004:
hallo werte Kollegen.....
ich habe mal wieder ein Problem und würde gerne um Hilfe bitten.....
ich habe ein Skript geschrieben, welches unter bestimmten Bedingungen Dokumente von einer Datenbank in eine andere kopiert, das Skript selber läuft in einer dritten DB.... soweit alles ganz gut.... das gewünschte Dokument landet auch in der Zieldatenbank....... im Anschluß hieran sollen noch einige Werte im kopierten Dokument geändert werden..... ich führ diese Änderungen durch (sind im Debugger auch zu sehen) sie sind nur nach dem Durchlauf des Skripts nicht in der Zieldatenbank zu sehen....

für eine schnelle Hilfe wäre ich sehr dankbar....

mit bestem gruß LuckyNotes

P.S. der problematische Teil steht denke ich am Ende des Skripts in der If-Else-If Schleife...


--- Code: ---Sub Initialize

Dim session As New NotesSession
Dim ui As New NotesUIWorkspace
Dim MB As NotesDatabase
Dim sourceDB As NotesDatabase
Dim targetDB As NotesDatabase
Dim mail As NotesUIDocument
Dim doc As NotesDocument
Dim searchID As String
Dim dcCOM As NotesDocumentCollection
Dim docCOM As NotesDocument


Dim server As String
Dim CISpath As String
Dim COMpath As String

Set MB = session.CurrentDatabase
Set mail = ui.CurrentDocument
server = MB.Server
'#server = "sdb15096"
MBpath      = MB.FilePath
CISpath = isWord( MBpath , "\" , 1 ) + "\" + isWord( MBpath , "\" , 2 ) + "\" + "com\cis.nsf"
COMpath = isWord( MBpath , "\" , 1 ) + "\" + isWord( MBpath , "\" , 2 ) + "\" + "com\sales.nsf"
'#CISpath = "regional\nord\com\cis.nsf"
'#COMpath = "regional\nord\com\sales.nsf"

Set sourceDB = New NotesDatabase ( server , CISpath )
Set targetDB   = New NotesDatabase ( server , COMpath )

' doc als aktuelles dokument setzen
CIS_ID  = Right( mail.FieldGetText("CIS_ID"), 8)
Set doc = sourceDB.GetDocumentByID( CIS_ID )
'doc.ID =
doc.CIS_ID = "NT" + CIS_ID
saved1 = doc.Save( 1, 1, 1)
'Dokument in Zieldatenbank kopieren
Call doc.CopyToDatabase( targetDB )



searchID = "NT" + CIS_ID
Set dcCOM = targetDB.FTSearch(searchID, 0)
Set docCOM = dcCOM.GetFirstDocument()
While Not(docCOM Is Nothing)
    'Operationen in COM DB

formCOM = docCOM.Form
cisIDCOM = docCOM.CIS_ID

If ( formCOM(0) = "CIS" And cisIDCOM(0) = searchID)  Then
docCOM.Form = "Company"
docCOM.FormTitle = "Firma"
docCOM.ID = Left ( doc.ID(0), 15 )
savedCOM1 = docCOM.Save( 1, 1, 1 )
Elseif ( formCOM(0) = "Memo" And cisIDCOM(0) = searchID ) Then
docCOM.ID = Left ( doc.ID(0), 21 )
savedCOM2 = docCOM.Save( 1, 1, 1 )
Else
'Set docCOM = dcCOM.GetNextDocument(docCOM)
End If 

Set docCOM = dcCOM.GetNextDocument(docCOM)
Wend


End Sub

--- Ende Code ---

Glombi:
Ersetze
  docCOM.Save( 1, 1, 1 )
durch
   docCOM.Save( True, True, True )
dann sollte es gehen.

Hinweis: In Script ist True = -1

Andreas
 

LuckyNotes2004:
danke, hat das Problem aber leider nicht gelöst, ich bekomme sowohl mit 1 als auch mit True eine Meldung über erfolgreiches Speichern.... nur leider sind meine Änderungen an den Werten nicht gespeichert....

Marinero Atlántico:
... das kann dann aber auch andere Gründe haben:
z.B.:
- das Feld ist Berechnet und so wird der alte Wert wieder reingeschrieben.
- etwas im PostOpen setzt den Wert wieder zurück.

Glombi:

--- Zitat von: Marinero Atlántico am 01.11.04 - 17:43:14 ---... das kann dann aber auch andere Gründe haben:
z.B.:
- das Feld ist Berechnet und so wird der alte Wert wieder reingeschrieben.
- etwas im PostOpen setzt den Wert wieder zurück.

--- Ende Zitat ---
Das kann es aber nicht sein, da nur Backend Save und kein ComputeWithForm aufgerufen wird.

Mich würde interessieren, was die kühne Behauptung

--- Zitat ---führ diese Änderungen durch (sind im Debugger auch zu sehen)

--- Ende Zitat ---
heisst? Ist das denn wirklich im Backend? und mit dem true, true anstelle dem nichts, nichts ?

Andreas

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln