Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: 0xse am 05.08.05 - 09:16:45

Titel: "Variant enthält keinen Container"
Beitrag von: 0xse am 05.08.05 - 09:16:45
Set doc = docs.GetFirstDocument()
Do While Not doc Is Nothing
   Set doc2 = doc
   If doc.HasItem("TimeExtract") Then
      zeiten = doc.TimeExtract(0)         

Beim Zuweisen dieses Feldes an zeiten tritt der Fehler (s.T.) auf. Woran liegt das? Zeiten hat den Datentyp String. TimeExtract ist ein Feld vom Typ Text.
Ich wüßte nicht was ich da sonst noch prüfen soll. Wenn der Fehler auftritt, haben alle Variablen laut Debugger, genau die Werte die sie haben sollen. Das ist skuril :|
Titel: Re: "Variant enthält keinen Container"
Beitrag von: umi am 05.08.05 - 09:19:02
evtl. könnte mehr code helfen.

gruss
umi
Titel: Re: "Variant enthält keinen Container"
Beitrag von: 0xse am 05.08.05 - 10:49:27
Immer die gleichen Anmerkungen :P Nein, könnte es nicht.

Das Document wurde ohne Fehler der Variable doc zugewiesen.
Der Fehler tritt in der Zeile auf:

zeiten = doc.TimeExtract(0)

Der Rest ist unwichtig. Was vorher in zeiten stand ist uninteressant. Doc wurde erfolgreich zugewiesen, im Debugger sieht man, dass es ein Document ist und auch entsprechende Daten enthällt. Es enthällt auch das Feld TimeExtract. Einmal laut Debugger und das andere mal ist aus dem Quelllcode weiter oben ersichtlich. Ansonsten wäre das Script sicher nicht bis zu der Zeile mit dem Fehler vorgedrungen.

Ich habe es alternativ mal mit doc.GetItemValue() probiert, hat aber den gleichen Fehler ausgeworfen. Deswegen versteh ich das ganze auch nicht.
Titel: Re: "Variant enthält keinen Container"
Beitrag von: umi am 05.08.05 - 10:54:26
schon mal ein Recompile versucht?
Titel: Re: "Variant enthält keinen Container"
Beitrag von: eknori am 05.08.05 - 10:58:34
müsste zeiten nicht ein Variant sein ??

Text or text list (includes Names, Authors, and Readers item types)  returns Array of strings
Titel: Re: "Variant enthält keinen Container"
Beitrag von: Semeaphoros am 05.08.05 - 11:11:09
Nope, er greift ja auf das erste Element des Arrays zu, bekommt also den gewünschten Skalar. Ausserdem ist die Fehlermeldung eine, die rechts von der Zuweisung auftritt, nicht links. Wenn Variant hilft, was nicht auszuschliessen ist, dann hätte sich Notes hier in der Fehlermeldung vergriffen, was auch nicht auszuschliessen ist.
Titel: Re: "Variant enthält keinen Container"
Beitrag von: Glombi am 05.08.05 - 11:20:53
Hast Du es schon mit

zeiten = doc.GetItemValue("TimeExtract")(0)   

versucht?
TimeExtract ist vielleicht ein Keyword und dann geht die Extended Syntax nicht.

Andreas
Titel: Re: "Variant enthält keinen Container"
Beitrag von: 0xse am 05.08.05 - 11:50:59
"Ich habe es alternativ mal mit doc.GetItemValue() probiert, hat aber den gleichen Fehler ausgeworfen. Deswegen versteh ich das ganze auch nicht."

In den restlichen 4500 Dokumenten davor klappt es ja auch, nur in dem nicht -.-

http://nopaste.php-q.net/151613

Ich glaube kaum das du damit mehr anfangen können wirst, außer das es dich vermutlich eher verwirrt ;)
Titel: Re: "Variant enthält keinen Container"
Beitrag von: 0xse am 05.08.05 - 12:08:59
Hier mal ein Screenie vom Debugger:

(http://www.neokortex.de/notes1.jpg)
Titel: Re: "Variant enthält keinen Container"
Beitrag von: 0xse am 05.08.05 - 12:13:13
Set notesItem = doc.GetFirstItem("TimeExtract")
Print "TimeExtract: " & notesItem.text

Könnte das klappen? Kann es grad nicht ausprobieren, Notes rattert wieder ^^
Titel: Re: "Variant enthält keinen Container"
Beitrag von: Glombi am 05.08.05 - 12:16:20
Also laut dem Screenshot ist das nie und nimmer ein Textfeld !

Type = 1
und dann gibt es noch EmbeddedObjects

Ein Textfeld hat den type 1280.

Du solltest Dir mal das Dokument genauer anschauen.

Andreas
Titel: Re: "Variant enthält keinen Container"
Beitrag von: Thomas Schulte am 05.08.05 - 12:19:24
Type 1 ist Richttext und damit dürfte der Fehler da liegen. RT kannst du so nicht ansprechen.
Titel: Re: "Variant enthält keinen Container"
Beitrag von: 0xse am 05.08.05 - 12:27:37
das ist aber definitiv ein text feld in der maske OO

mal angenommen es wäre keins, warum geht das dann bei allen anderen dokumenten?
Titel: Re: "Variant enthält keinen Container"
Beitrag von: Driri am 05.08.05 - 12:29:09
Maske != Dokument

Evtl. hat da mal einer dran rumgespielt und in dem einen Dokument ist das Feld jetzt Richtext ?
Titel: Re: "Variant enthält keinen Container"
Beitrag von: Glombi am 05.08.05 - 12:29:47
das ist aber definitiv ein text feld in der maske OO

mal angenommen es wäre keins, warum geht das dann bei allen anderen dokumenten?
Was in der Maske steht ist irrelevant. In dem einen Dokument ist es ein Rich Text Feld. Weiss der Geier wie es da hereinkommt.

Du kannst ja mal einen Blick in die Dokumenteigenschaften werden.

Andreas
Titel: Re: "Variant enthält keinen Container"
Beitrag von: Thomas Schulte am 05.08.05 - 12:44:09
das ist aber definitiv ein text feld in der maske OO

mal angenommen es wäre keins, warum geht das dann bei allen anderen dokumenten?
Du kannst dich eben bei Notes im Gegensatz zu anderen, wie auch immer, Datenbank Systemen nicht darauf verlassen das in einem Feld wirklich das drin ist was auf der Verpackung (Maske) draufsteht.
Das ist so ähnlich wie bei manchen Seifen. Die Verpackung zeigt eine grüne Seife, drin ist aber eine weisse.
Du musst wenn so was vorkommen kann hergehen und erst einmal ein
Notesitem = doc.getfirstitem("TimeExtract") machen. Dann kannst du (und das funktioniert immer, auch bei Richtext) mit
Zeiten = Notesitem.text direkt auf den Textwert des Items zugreifen.
du könntest auch mit
if notesitem.type = 1280 then
Zeiten = doc.TimeExtract(0) arbeiten
Else
Fehlermeldung
End if
Titel: Re: "Variant enthält keinen Container"
Beitrag von: 0xse am 05.08.05 - 12:45:00
Mir ist schon klar, dass die Maske nur der Anzeige des Dokumentes dient. Aber die ganzen Dokumente wurden über ein LS erstellt mit dieser Maske. Also müsste doch dieser Datentyp dadrin sein.

Laut DB Log war niemand außer mir in der DB... Notes spricht mal wieder Sumpfantilopisch. Ich lasse einen Design Refresh über alle Dokumente laufen. Mal gucken ob das Problem danach immer noch besteht.

Der Datentyp von dem doc.TimeExtract(0) ist übrigens 8192 ^^
Titel: Re: "Variant enthält keinen Container"
Beitrag von: Thomas Schulte am 05.08.05 - 12:47:19
Immer die gleichen Anmerkungen :P Nein, könnte es nicht.
Du siehst also das immer die gleichen Anmerkungen durchaus einen Sinn haben können. In diesem Fall wäre das Ganze schon vor drei Stunden einer Lösung deutlich näher gekommen wenn du den Auszug aus deinem Debug mit gepostet hättest.
Titel: Re: "Variant enthält keinen Container"
Beitrag von: flaite am 05.08.05 - 13:00:54
Der Datentyp von dem doc.TimeExtract(0) ist übrigens 8192 ^^
Das ist ein Fixed Array des Datentyps EMPTY?
Titel: Re: "Variant enthält keinen Container"
Beitrag von: 0xse am 05.08.05 - 13:20:06
Die Hilfe fand ich an dieser Stelle nicht eindeutig formuliert, deswegen habe ich mir nicht "angemaßt" diese Zahl zuzuordnen.

Nach einem Designrefresh und Einbau des NotesItem funktioniert es. Aber warum vorher nicht? Oo