Question
· May 20, 2018
JSON - is this a bug??

Hi All

I'm sharing this ticket just posted to wrc as I believe it is inconsistent behaviour. and other developers may trip over it....

<wrc ticket>

I have found something that appears to me to be inconsistent
Simple example

set x={"theValue":true} write x.theValue
this correctly converts true to 1

However if " (double quotes are placed around it
eg
set x={"theValue":"true"} write x.theValue
it does not convert and displays the string "true"

!!!!!

</wrc ticket>

Peter

0 7
0 398

Hi community.

I'm trying to create a "setup" method to be called on a batch script but i'm getting the error <INVALID ARGUMENT> when I pass a string as an argument to this method.

The idea is to call the method with a folder as the parameter, for example:

##class(test.MyClass).MyMethod("D:\path\to\my\file.json")

My class (just for example)

Class test.MyClass

0 7
0 1.1K

We are running old VB code on a Windows 2012 R2 server.

In the last month the following error has been happening.

Failure to create CacheObjectConnection.
Failure in GetClassInfo for CacheObjectConnection

Factory not connected to server
Send to Cache' failed

Neither the the code or Cache instance has not changed.

Cache 2017.1.1.111.0

The code:

Dim bRtn As Boolean
Dim objCacheObject As Object
cntr = 1

0 7
0 1K

Time after time on CSP Session page of our Cache 2017.2.1 installation I see that all licenses are consumed by CSP sessions of /csp/sys, /csp/sys/op/and /csp/sys/mgr applications which I assume are sessions of Management Portal. The problem is that there are only few of us accessing the Portal and as we test by browsing Portal, we can't reproduce the problem.

Is there any way to see client IP of CSP session? Any other way to approach the problem?

The problem looks very similar to the Forefox-related one but we don't use Forefox.

0 7
0 484

I have a 2GB CSP.log file that I need to investigate.

I'm using a %Stream.FileCharacter() object to open the file and then using the .FindAt() to search for a particular string.

I'm seeing the FindAt() stop after processing 49m characters?

Here is my code:

k
s stream=##class(%Stream.FileCharacter).%New()
d stream.LinkToFile("d:\csp.log")
s x=""
s i=0
s j=0
w stream.Rewind()
w stream.AtEnd
w stream.SizeGet()
while(stream.AtEnd=0){set i=stream.FindAt(-1,"Invalid password",x)+i  set j=j+1}
w stream.AtEnd
w i
w j

Which gives the following output:

0 7
0 848

I have a CACHE.DAT file that is working under CACHE version 2015.1.0.429.0

I have a second machine with CACHE version 2017.2.0.741.0

When I attempt to add/use the CACHE.DAT in the new version of CACHE, it will not mount.

How do I upgrade/convert the DAT file to make it work under the new CACHE version?

Thx. Larry...

0 7
0 907

I have an in-memory list of items and I want to check which items match my pattern string.

Pattern string is a comma-separated list of items and special symbols like '*' and maybe '?'.

There's something similar in $system.OBJ.Compile, it accepts patterns: "*.data.*,Sample.*" - and it would compile 'Sample' package and all 'data' packages.

For example:

set list=$lb("abc", "c", "aaa", "bbb")
set result = ..match(list, "a*,*b")
zw result
result=$lb("abc","aaa","bbb")
0 7
0 844

Hi all,

I am new in Cache. I have to update a record with a long text field, for that, I am using ODBC but the issue is that it is returning an error when I execute the ODBC SQL statement because the field contains some commas, colon, double quotes, single quotes, and CR LF characters.

There is a way to escape this chars? I have seen I can save the field when I replace the single quotes with a double single quote (it's -> it''s) but I can not save the information when the field contains double quote chars. What about the other chars?

0 6
0 1.2K

Hello Everyone,

I was wondering about the best way to initialize several variables, or several lists of variables.

Would it be better to write it like:

set (var1, var2, var3) = "value1"
set (var4, var5) = "value2"
set (var6,var7,var8) = "value3"

or

set var1="value1", var2="value1", var3="value1", var4="value2", var5="value2", var6="value3", var7="value3", var8="value3"

or

0 6
0 553
Question
· Jan 14, 2018
Find last in a list of objects

I have a class to track data changes.
As it becomes slower and slower to find last changes I think I need an index.
The 2 classes are just simplified reality.
HowTo ?

Class Rick.ChangeItem Extends %SerialObject
{
Property Subject As %String;

Property Author As %String;

Property Change As %TimeStamp;
}

and

1 6
0 1.1K

I can directly order over a MultiDimensional property, e.g.

set key=$order(obj.prop(key))

However I have a generic method that has to use the $property method, if I know the keys then I can just fetch a value with...

set value=$property(obj,"prop","key")

But if I don't know the keys then I am not aware of a solution to do this, e.g.

set key=$order($property(obj,"prop",key))

will not work.

0 6
0 553
Article
· Feb 8, 2018 1m read
Atelier security quirk

When defining a server connection in Atelier we are required to enter a username and password because these are mandatory fields in the dialog. However, if the /api/atelier web application definition on that server has only the "Unauthenticated" checkbox set in the section titled "Allowed Authentication Methods", then our Atelier connection will succeed even if we supply an invalid username and/or password.

2 6
0 712