Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 735
  • Last Modified:

Illegal use of PROPERTY

I am trying to select two documents, store the values of the first document, then set the values of the second document to equal the first, but when I run the agent I get the "Illegal use of PROPERTY" error.
Sub Initialize
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Dim docs As NotesDocumentCollection
	Dim doc As notesdocument
	Dim Q_1 As String
	Dim output_1 As String
	Dim cirats_1 As String
	Dim comments_1 As String
	Dim Q_2 As String
	Dim output_2 As String
	Dim cirats_2 As String
	Dim comments_2 As String
	Dim Q_3 As String
	Dim output_3 As String
	Dim cirats_3 As String
	Dim comments_3 As String
	Dim Q_4 As String
	Dim output_4 As String
	Dim cirats_4 As String
	Dim comments_4 As String
	Set db = s.CurrentDatabase
	Set docs = db.UnprocessedDocuments
	Set doc = docs.GetFirstDocument( )
	Do While Not (doc Is Nothing)		
'Part One
		If doc.Q_1(0) <> "" Then
			Q_1 = doc.Q_1(0)
			output_1 = doc.output_1(0)
			cirats_1 = doc.cirats_1(0)
			comments_1 = doc.comments_1(0)
		End If
		If doc.Q_2(0) <> "" Then
			Q_2 = doc.Q_2(0)
			output_2 = doc.output_2(0)
			cirats_2 = doc.cirats_2(0)
			comments_2 = doc.comments_2(0)
		End If
		If doc.Q_3(0) <> "" Then
			Q_3 = doc.Q_3(0)
			output_3 = doc.output_3(0)
			cirats_3 = doc.cirats_3(0)
			comments_3 = doc.comments_3(0)
		End If
		If doc.Q_4(0) <> "" Then
			Q_4 = doc.Q_4(0)
			output_4 = doc.output_4(0)
			cirats_4 = doc.cirats_4(0)
			comments_4 = doc.comments_4(0)
		End If
'Part Two
		Print "starting part two"
		If doc.Q_1(0) = "" Then
			doc.Q_1(0)= Q_1
			doc.output_1(0) = output_1
			doc.cirats_1(0) = cirats_1
			doc.comments_1(0) = comments_1
		End If
		Print "Q_2"
		If doc.Q_2(0) = "" Then
			doc.Q_2(0) = Q_2
			doc.output_2(0) = output_2
			doc.cirats_2(0) = cirats_2
			doc.comments_2(0) = comments_2
		End If
		Print "Q_3"		
		If doc.Q_3(0) = "" Then
			doc.Q_3(0) = Q_3
			doc.output_3(0) = output_3
			doc.cirats_3(0) = cirats_3
			doc.comments_3(0) = comments_3
		End If
		Print "Q_4"
		If doc.Q_4(0) = "" Then
			doc.Q_4(0) = Q_4
			doc.output_4(0) = output_4
			doc.cirats_4(0) = cirats_4
			doc.comments_4(0) = comments_4
		End If
'Part Three
		Call doc.Save(True,False)
		Set doc = docs.GetNextDocument(doc)
End Sub

Open in new window

  • 2
1 Solution
When you are setting the field value don't use (0), use it only when reading the field's value (cuz' fields are line arrays, so 0 is the value of single value field & first element of multivalue field)

e.g. instead of
    doc.Q_1(0)= Q_1
    doc.Q_1 = Q_1
You cannot set it like that, if you ever need to set multiple elements of multivalue field, use NotesItem's AppendToTextList method.
The other way would be to create an array, fill it and then assign it to the field.

Featured Post


Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now