Domino 9 und frühere Versionen > ND8: Entwicklung

LS2J und Type Mismatch

(1/2) > >>

magic_halli:
Hallo,

ich arbeite mich gerade in LS2J ein. Ich möchte verstehen und später nutzen, wie die Parameterübergabe aus LotusScript-Agents an eine Java-Anwendung vonstatten geht.
Soweit ist mir das auch erstmal relativ klar.
Jetzt habe ich eine total simple LS2J-Anwendung geschrieben:
1. ein LotusScript-Agent ließt aus einem selectierten Maildokument den Betreff aus
2. im Agent erfolgt die Parameterübergabe des Betreff´s an die Java-Scriptbibliothek
3. die Scripbibliothek stellt den Betreff lediglich in einem JOptionPane.showMessageDialog wieder dar.

Nur leider habe ich eine "Type Mismatch"-Exception, wenn ich im LotusScript-Agent den Mailbetreff in einer Stringvariable speichern will, um diese dann an Java zu übergeben!

LotusScrip-Agent:

--- Code: ---Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument

Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument


Dim jSession As JavaSession
Dim jError As JavaError
Dim jClass As JavaClass
Dim jObject As JavaObject
Dim sBetreff As String

' hier kommt der "Type Mismatch"
sBetreff = doc.GetItemValue( "Subject" )

Set jSession = New JavaSession
Set jClass = jSession.GetClass("DocumentLS2J")
Set jObject = jClass.CreateObject()
'Java-Methoden aufrufen
jObject.setBetreff(sBetreff)
jObject.showBetreff(jObject.getBetreff())

End Sub

--- Ende Code ---

Ich habe auch schon 'sBetreff = Cstr(doc.GetItemValue( "Subject" ))' versucht - hat auch nix gebracht (gleiche Meldung).
Was hab ich falsch gemacht?

Danke und Gruß

DAU-in:
sBetreff = doc.GetItemValue( "Subject" )(0)

Edit: getItemValue liefert dir ein Array, das kannst du nicht einer Stringvariablen zuweisen, mit (0) greifst du explizit auf das erste Element zu

magic_halli:
Ha, jawohl... klappt. Danke
Ich schau jetzt auch gleich nochmal in der Hilfe nach... Aber kannst Du mir die (0) erklären? ...heißt das an der Stelle 0?

flaite:
doc.getItemValue("feldName") gibt einen Array zurück.
(0) bedeutet das erste Element dieses Arrays.

koehlerbv:
Und genau das hat doch DAU-in schon geschrieben ...

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln