Problem using the process method to update a document

my xml document looks like: (collection=customer)










My code is as follows:

set tamino = Server.CreateObject"TAMINOX.TaminoX1")
tamino.Initialize()
tamino.csDatabaseURL = "http://localhost/tamino/play/customer"
tamino.StartSession InoUnprotected, InoLockWaitYes
tamino.Encoding = “ISO-8859-1"

queryStr = “demographic[last-name=”“Kelkar””]"

set doc = tamino.DoQuery(queryStr)

set xqlresult = tamino.GetResult(doc)

set demographic = xqlresult.getElementsByTagName(“demographic”).item(0)

demographic.getElementsByTagName(“first-name”).item(0).text = "Mahesh"
demographic.getElementsByTagName(“last-name”).item(0).text = "Kelkar"
demographic.getElementsByTagName(“street”).item(0).text = "3200 John Burnes Way"
demographic.getElementsByTagName(“city”).item(0).text = "Herndon"
demographic.getElementsByTagName(“state”).item(0).text = "Mahesh"
demographic.getElementsByTagName(“zip”).item(0).text = "43000"
demographic.getElementsByTagName(“country”).item(0).text = "United States"
demographic.getElementsByTagName(“email”).item(0).text = "email"

tamino.Process demographic,"http://localhost/tamino/play/customer"
tamino.Commit

errorCode = tamino.GetErrorStatus(errorText)

When I run the code, I get a 8414 with errorText: INOXJE8414 Invalid content type.

Question:

1. What am I missing?
2. I tried to specify NULL as the second parameter to Process but always get a type mismatch. I do not really want to append anything to the db url !!!

I cannot figure out from the documentation and the example what the problem is. I can add new document to the demographic doctype.

Thanks. :confused:

I changed the url associated to the Process method to “/demographic” and that solves the problem. I can update a document successfully at this point.

I still would like to know why I need to provide one more url. I thought my node level, i.e. demographic, in conjunction with my db url would be sufficient. I remember in the past Process method associated with the JScript API does not need an additional url.

Did you try “” as the the value of the second parameter?

I think the point of this parameter is to allow the user
to extend the base url that you supplied to the TaminoClient
Scenario 1

(in your case
http://localhost/tamino/play/customer)

using "/demographic/25353546784"

would expand the URL internally to

http://localhost/tamino/play/customer/demographic/25353546784

In this case the document would acquire a unique name “25353546784” in the doctype "demographic"

Scenario 2

The base url was the DBURL http://localhost/tamino/play/

and you wanted to “process” to a particular collection called "customer"

This may seem a bit odd but in Tamino 1 doctypes
were unique in the database instead of being unique within a collection. Collections didn’t originally apper in the base URI path. The Tamino DOM APIs had to bridge that.

I think this facility was originally in the Jscript API but was pruned out as too tricky for the sort of guys who write Jscript (like myself)