Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

Pls. don't forget to mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept

Robert Cemper · Aug 14, 2017 go to post

not a problem of version

A subquery using ORDER requires a TOP clause

Change the query to

SELECT *
FROM
  (SELECT TOP ALL
          sslog.userRowid,
          sslog.CreateDate,
          sslog.CreateTime,
          Sslog.SSUSR,
          sslog.Terminal,
          ssuser.Initials,
          ssuser.USName
   FROM SUser_Log sslog
   LEFT JOIN DHC_SSuser ssuser ON (Sslog.SSUSR = ssuser.userRowid
                                   OR sslog.ssusr = ssuser.Initials
                                   OR sslog.ssusr = ssuser.USName)
   WHERE ssuser.USName ['admin'
   ORDER BY sslog.CreateDate DESC)
WHERE %VID> 5
Robert Cemper · Aug 12, 2017 go to post

To mark your question as "answered" on Developer Community,
please click the checkmark alongside the answer you (as author of the question) accept.

Robert Cemper · Aug 12, 2017 go to post

You have 2 Options for LOCK

1) LOCK lockargument  
either you succeed or you hang until you get success or forever

2) LOCK lockargument:timeout 

timeout releases your attempt after the defined time
and signal by system variable $TEST if you were successful or not

so your code may have this structure

LOCK  +(^a,^b,^c):0
If $TEST  {
    write "successful Locked",! 
}  ELSE  { write "attempt to Lock failed",! }

more on LOCK: http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…

if  failing you may want to identify your competitor using  ^$LOCK

http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…

Robert Cemper · Aug 11, 2017 go to post

given the property you want to sort is unique and suitable as key for your array you may get the expected result.

set key=obj.sortproperty
set tSC=myArray.SetAt(obj, key)
Robert Cemper · Aug 11, 2017 go to post

To mark your question as "answered" on Developer Community, please click the checkmark alongside the answer you (as author of the question) accept.

Robert Cemper · Aug 10, 2017 go to post

You are welcome.
When I loaded the class first I was surprised too just to see 4 methods.

Robert Cemper · Aug 10, 2017 go to post

Mike,

You are formally correct but data type %List just has no method LogicalToDisplay !
but:

- LogicalToOdbc
- LogicalToXSD
and reverse

it seems the implementer expected us to use $ListToString(...) and $ListFromString()
so far for consistency in object model support  sad

Robert Cemper · Aug 10, 2017 go to post

Alexey,
- The final size  after some design optimizations was
175 GB DataGlobals  + 216 GB IndexGlobals   ;  separated for backup considerations  (on 1 single drive sad )

- data analysis was all done with SQL + a bunch of "homemade" SQL Procedures / ClassMethods running specific subqueries.
 

Robert Cemper · Aug 9, 2017 go to post

Documentation is the art to express facts in a way the non insiders could understand.
Engineers are quite often "unverbose" and "limited in verbal communication skills". 
In any language exept programing languages smiley
BTW. your book made things clear to me that I assumed to know for many years.

BTW. I appreciate if you accept my answer wink

Robert Cemper · Aug 9, 2017 go to post

I'd try to have just 1 query with 3 parameters and switch them on/off as you need

SELECT ID FROM Table WHERE (Field1 %STARTSWITH :par1 
AND ((0=:sw2) OR (
Field2 = :par2)) 
AND ((0=:sw3) OR (
Field3 = :par3))

Now using only par1  means (par1=whatever, sw2=0,sw3=0, par2="",par3="") so the 2nd + 3rd condition is switched off and par2,par3 ignored

2nd case: (par1=whatever,  par2=something, sw2=1,sw3=1, par3="") so only 3rd condition is switched off  par 3 ignored

3rd case: (par1=whatever,  par2=something, par3=other, sw2=1,sw3=1) all conditions active

you see this could be extended easily

Robert Cemper · Aug 9, 2017 go to post

%Library.Char uses MAXLEN as size:
it's applied in  LogicalToOdbc and  LogicalToDisplay appending Blank until MAXLEN is reached

anyting else is inherited from %String

Robert Cemper · Aug 9, 2017 go to post

before launching your request in your check your %Net.HttpRequest object
property Https is obviously set.

property SSLConfiguration has to be

The name of the activated TLS/SSL configuration to use for https requests.

if the request fails in execution
property SSLError tells you what went wrong

If request uses an SSL connection and a SSL handshake error has occurred, then SSLError contains text describing the SSL error.

more on  %Net.HttpRequest here
http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?…