Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: wittmann_franz am 30.09.11 - 10:05:42

Titel: Fehlermeldung: Falscher Datentyp
Beitrag 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
Titel: Re: Fehlermeldung: Falscher Datentyp
Beitrag von: m3 am 30.09.11 - 10:15:14
FielGetText ist eine Methode der Klasse NotesUIDocument, dcdoc ist aber ein NotesDocument. So wird das nix.
Titel: Re: Fehlermeldung: Falscher Datentyp
Beitrag von: Driri am 30.09.11 - 10:16:05
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.
Titel: Re: Fehlermeldung: Falscher Datentyp
Beitrag von: wittmann_franz am 30.09.11 - 12:44:28
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
Titel: Re: Fehlermeldung: Falscher Datentyp
Beitrag von: m3 am 30.09.11 - 13:02:54
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).
Titel: Re: Fehlermeldung: Falscher Datentyp
Beitrag von: ata am 30.09.11 - 15:23:59
Zitat
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...
Titel: Re: Fehlermeldung: Falscher Datentyp
Beitrag von: wittmann_franz am 05.10.11 - 12:48:48
Das hat jetzt sehr gut geklappt
und ich bin wieder ein großes Stück schlauer geworden  :)

Vielen Dank für Eure Hilfe.



Titel: Re: Fehlermeldung: Falscher Datentyp
Beitrag von: Tode am 06.10.11 - 10:50:33
mit option declare wärst Du da aber auch ganz alleine drauf gekommen...