Hallo zusammen,
ich versuche mich gerade in Lotusscript und stehe hier vor einem kleinen Problemfall den ich nicht verstehe.
folgendes Script hat im Objekt "Proc" URL Variablen gespeichert die beim Aufruf dieser Seite angegeben wurden.
Wenn das Script ausgeführt wird soll es eigentlich nix anderes machen als das Dokument mit der NoteID "Proc.noteID" in der Datenbank suchen und kopieren.
Scipt:
' Script für Update von Buchungen
Dim session As New NotesSession
Dim db As New NotesDatabase( "", "" )
Dim docA As NotesDocument
Dim docB As NotesDocument
Dim OrgNoteID As String
OrgNoteID = Proc.orgNoteID(0)
Call db.OpenWithFailover( "", "xxxxxxxxx\\xxxxxx.nsf" )
Set doc = db.GetDocumentByID( OrgNoteID )
Set docB = New NotesDocument( db )
Call docA.CopyAllItems( docB, True )
Call docB.Save( True, True )
Ich erhalte hier immer den Fehler "Invalid NoteID (156)". Wieso? In der Doku (Designer Hilfe) steht, dass der Typ der NoteIT STRING ist.
Kann mir jemand einen Tip geben?
Danke
Jenson
Ich habe hier eine CMS Datenbank. Die stellt mir an dieser Stelle das Objekt "Proc" zur Verfügung in dem alle Variablen die über ein Formular an diese Seite (per POST) geschickt werden zur Verfügung. Alleine deshalb muss eigentlich der Typ schon String sein von Proc.noteID.
Die NoteID in meinem Proc Objekt kommt aus einem Formularfeld aus dem HTML Formular das diese Seite ruft (ím Formular Action-Tag).
Also in der Zeile:
OrgNoteID = Proc.orgNoteID(0)
weise ich der String Variablen "OrgNoteID" den Wert des HTML Formularfeldes orgNoteID zu. Da es sich hier um einen Vector handelt die "(0)" dahinter.
Der Fehler wird mir aber in der Zeile:
Set doc = db.GetDocumentByID( OrgNoteID )
ausgegeben.
Ich komme ja nicht mal so weit dass ich das Script mal laufen lassen kann. Der Fehler wird mir bei der Überprüfung (DEBUG!?) des kurzen Scriptes bereits ausgegeben.
Jenson
Hier mal ein kleines "Gegenbeispiel" :-)
hab das Script grade mal mit einer fest eingetragenen NoteID getestet. Gleiches Ergebnis:
Dim session As New NotesSession
Dim db As New NotesDatabase( "", "" )
Dim docA As NotesDocument
Dim docB As NotesDocument
Dim orgNoteID As String
orgNoteID = "NT000026A6"
Call db.OpenWithFailover( "", "webcontent\\timesheet.nsf" )
Set docA = db.GetDocumentByID( orgNoteID )
Set docB = New NotesDocument( db )
Call docA.CopyAllItems( docB, True )
Call docB.Save( True, True )
Wenn ich das richtig verstanden habe in der Doku, dann sollte "NT000026A6" doch eine gültige NoteID sein. Hier erhalte ich den gleichen Fehler.
Jenson