Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: wittmann_franz am 30.09.11 - 10:05:42
-
Hallo zusammen,
Folgende Fehlermeldung erhalte ich bei der Ausführung eines Agenten:
Falscher Datentyp in Methode RunStkCoerceVal: STIRNG wurde gefunden, NULL wurde erwartet.
Ich möchte aus Dokumenten aus einer Collection einen Feldwert auslesen und diesen in ein anderes Dokument einlesen.
Das Script existiert bislang nur bis zu der Stelle des Auslesens, und dort kommt es bereits zu der Fehlermeldung:
Im Debugger kommt es in der 4. letzten Zeile sAbt = dcdoc.FieldGetText ("Anw_Abteilung") zum Fehler.
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim newDoc As NotesDocument
Dim doc As NotesDocument
Dim dcdoc As NotesDocument
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim iApp_ID As Integer
Dim iAnw_ID As Integer
Dim sAbt As String
Dim coll As NotesDocumentCollection
Dim searchFormula As String
Set db = session.CurrentDatabase
Set view = db.GetView ("Anwendungen")
Set uidoc = ws.CurrentDocument
'Ermitteln der zu bearbeitenden Dokumente
iApp_ID = uidoc.FieldGetText("App_ID")
searchFormula = {Form = "Anwendung" & Anw_ID=} & CStr(iApp_ID)
Set coll = db.Search(searchFormula, Nothing, 0)
Set dcdoc = coll.GetFirstDocument()
While Not dcdoc Is Nothing
Set uidoc=ws.EditDocument(True, dcdoc)
sAbt = dcdoc.FieldGetText ("Anw_Abteilung")
Set dcdoc = coll.GetNextDocument(dcdoc)
Wend
Call uidoc.FieldSetText("App_Abteilung", CStr(sAbt))
Vielen Dank schon mal für Euere Hilfe
-
FielGetText ist eine Methode der Klasse NotesUIDocument, dcdoc ist aber ein NotesDocument. So wird das nix.
-
FieldGetText ist keine gültige Methode für ein Objekt NotesDocument.
Schau Dir in der Designer Hilfe mal das Objekt NotesDocument und die zugehörigen Methoden an, für den Fall insbesondere GetItemValue.
-
Supi, vielen Dank,
das hat bis dahin erstmal funktioniert.
Jetzt stehe ich jedoch vor der nächsten Hürde.
Ich möchte das die verschiedenen Werte aus der collection zu einem String zusammengefasst werden und dann in das Feld App_Abteilung geschrieben werden.
Schreiben tut er wunderbar, allerdings nicht mit meiner Berechnung für vAbt
Dort kommt dann der Fehler:
Falscher Datentyp in Methode CoerceString: Unknown wurde gefunden, Unknown wurde erwartet ??
While Not dcdoc Is Nothing
vAbt = vAbt & "," & dcdoc.GetItemValue ("Anw_Abteilung")
Set dcdoc = coll.GetNextDocument(dcdoc)
Wend
Set uidoc=ws.EditDocument(True)
Call uidoc.document.ReplaceItemValue("App_Abteilung", vAbt)
Könnt Ihr mir hier evt. auch noch weiterhelfen.
Vielen Dank schonmal
-
Ja
Falls Du auch nach dem "wie" fragen wolltest:
GetItemValue liefert ein Array zurück und NICHT einen String (wie auch in der Hilfe beschrieben).
-
dcdoc.GetItemValue ("Anw_Abteilung")
... das liefert ein Array zurück, daß kannst du dann aber nicht mit einem String verbinden
dcdoc.GetItemValue ("Anw_Abteilung")(0)
... sollte helfen, solange nur ein Wert in dem Feld ist...
-
Das hat jetzt sehr gut geklappt
und ich bin wieder ein großes Stück schlauer geworden :)
Vielen Dank für Eure Hilfe.
-
mit option declare wärst Du da aber auch ganz alleine drauf gekommen...