No that's not really what I meat. My question was much more generic about data projection of object data like listOfObjects.
When you look at the projected data of those "object" collections they are projected as $LISTBUILD lists in SQL. So the question was, is there a reporting tool out there in use, that can handle the object data from IRIS as for IRIS there is no object binding anymore like there was for Caché.

For Java there is the cachedb.jar and that binding doesn't exist for IRIS.

Hello Ramya,

sorry for the confusion.

The class Config.Configuration is deprecated. so it should'n be used anmore (mentioning it, was my fault, as my samples simply came from our code base, where we still use this interface).

so assuming you have a database named TEST2 in your system you would call

do ##class(Config.Configuration).AddNamespace("TESTNAMESPACE","TEST2","TEST2")

But this is, as mentioned deprecated

The object orientated way to do this remains in Config.Namespaces. In the docimentation there are actually samples on what to do to create a new namespace using this interface.

It's a bit difficult to answer this question in general. But I will try to give you some places to look at.

First Creating the databases on the terminal you would want to look at documentation for SYS.Database

so you might end up with a method or even key it in on the terminal like this

  ClassMethod createCacheDatabase(path As %String) As %Status [ Final, Private ]
#dim db as SYS.Database = ##class(SYS.Database).%New()
set db.BlockSize=8192
set db.Directory = path
set db.ExpansionSize=0
set db.ResourceName="%DB_%DEFAULT"
set db.NewGlobalCollation=5
quit db.%Save()

Now you have created you databases you need to tell cache to create a namespace using those.

The interface to do that sit's in the Config.Coniguration class. Please refer to Config.Configuration Class Documentation in the online documentation for more info about that interface.

The deprecated way was (sorry I've just reread that documentation):

What you will do is run ##class(Config.Configuration).AddNamespace(namespace,dbName,dbName) and after that maybe to some ##class(Config.Configuration).AddGlobalMapping(..)
The new interface to do a Namespace is in  Config.Namespace

  Regardless wich you want to use they are both pretty straight forward.

This is how you can create programmatically weather on terminal or from within your code a namespace, databases and the appropriate mappings.

Oh I should mention you have to be in "%SYS" NAMESPACE to be able to do this


I'm not sure if I'm missing something but you are actually not removing anything, you are simply setting the value at index xyz to the empty string.

If I understand correctly I think you could use

#dim i,cnt as %Integer = tList.Count()

for i=1:1:cnt

#dim key as %Integer = tClaim.Find(tList.GetAt(i))
do:(key>0) tClaim.RemoveAt(key)


As I said. if I understand your question correctly, that is actually removing everything from tClaim that is part of tList.

The problem with the CSV SQL procedure is that it doesn't take care of the masked delimiters.

if the file for the above sample would contain a line (if the masking character is the very common and usual ")

4711,"Peter, Paul and Mery","Sample",undecided,500

the 2. Part is only read as Peter (at least on Caché 2017.2 and IRIS 2018.1.2 so atm. the only chance when the data doesn't play nicely you have to implement the CSV reading yourself (which is much slower)