go to post Arto Alatalo · Jun 13, 2018 Thanks, good to know. Sounds like the authentication is simplest way to make the thing clear.
go to post Arto Alatalo · Jun 13, 2018 The Id is a string of random characters, like VAzZwAod6o. And I need a way to get some more details about the session.
go to post Arto Alatalo · Jun 13, 2018 Thanks for the tip, but as I mentioned, so far we were not able to reproduce the problem, it comes time after time without evident reasons.That's why I'm looking for a way to find out details of the client created the session.
go to post Arto Alatalo · May 30, 2018 As I see it, xml-to-objects classes need DOM while the whole purpose of TextReaded is to read the xml without DOM creation
go to post Arto Alatalo · May 30, 2018 Thanks but I must use xml-to-object classes generated by the xsd
go to post Arto Alatalo · Apr 30, 2018 Right. Somehow I missed the evident idea that all the indexes can be simply initialized with -1 $order. Thanks. The only thing, last index should be not set to its previous value.
go to post Arto Alatalo · Apr 20, 2018 Vladimir, the question was to resume the iteration from given point. Say we have only two indexes, A and B. When resuming, the code first has to check next values of B and only then next values of A. Your code stars with A skipping all remaining values of B.Check $query-based solution in my answer to a post below. Looks to me as more elegant than with nested loops.
go to post Arto Alatalo · Apr 13, 2018 >which is easy to do with $ORDERTried to do this but solution did not look easy at all :)
go to post Arto Alatalo · Apr 13, 2018 My reworked solution so far. Looks working on samples I tested ; Get log for given 'clientid' ; 'maxlog' records max, starting from given 'date','dek','idx' GetXLog(clientid,date,dek,idx,maxlog) public { s:maxlog="" maxlog=400 s counter=0 s gl=$name(^cxlog(clientid,date,dek,idx)) ; ^cxlog("EFRW1000",20161219,2,1,"date")=20161219 for { q:counter=maxlog s oldroot=$name(@gl,4) ; we care only about first 4 indexes s gl=$query(@gl) ; take next global s root=$name(@gl,4) continue:oldroot=root ; skip all sub-globals q:clientid'=$qsubscript(root,1) ; for given 'clientid' only w root,! s counter=counter+1 } w ! }
go to post Arto Alatalo · Apr 13, 2018 Does it work for you? I think at least the order must be c->b->a, not a->b-c
go to post Arto Alatalo · Dec 15, 2017 John,There were no changes neither to ns configuration nor to db configuration.Looks like ns gets its twin as soon as updated routines are imported into this namespace.The issue happens on production db only, we can't repeat it on test databases of same version.If I see your explanations right, the issue is just a harmless result of some internal Cache's behaviour, so I should not really care, right?
go to post Arto Alatalo · Dec 15, 2017 ok, thanks for explanations.We do the import always in the same way for many years and never saw this problem, but I doublecheck with my colleagues the way used last time
go to post Arto Alatalo · Jun 14, 2017 The idea is extremely simple: each class includes auto-generated query 'select ID from classname' that returns ids of all existing objects of this class
go to post Arto Alatalo · Jun 14, 2017 I just mean that if I have simple task to show 1000 records split into 10 pages, with "raw" globals I can do it simple with $order but with objects there is nothing similar to $Order so I have to use SQL
go to post Arto Alatalo · Jun 14, 2017 Check this "Using Caché Objects ▶ Introduction to Persistent Objects ▶ Extent Queries"https://community.intersystems.com/product-documentation/using-cach%C3%A...
go to post Arto Alatalo · Jun 13, 2017 Very same as with raw Order: user opens a list, you give him first 100 objects and when he presses Next page, you continue from index 101
go to post Arto Alatalo · Jun 13, 2017 I wonder why when working with objects, we still must use SQL (Extent Query) to be able iterate all instances of a class. Do you know reasons for this design?