in System Mgmt Portal / Operation / Database you find a Free Space view
.png)
- Log in to post comments
in System Mgmt Portal / Operation / Database you find a Free Space view
.png)
I have added a new version for the GLOBALS contest
To take care of large Globals that may break your available memory.
The JSON Object is exported to a file. and there is also the related loader
USER>write ##class(dc.GblToJSON.EX).export("^dc.MultiD")
File gbl.json created
And the related loader creates the Global
USER>write ##class(dc.GblToJSON.EX).import()
Global ^dc.MultiD loaded
It is of course also available in the Online Demo facility.
And to see the generated file there is a show() method
USER>write ##class(dc.GblToJSON.EX).show()
{"gbl":[
{"node":"^dc.MultiD","val":5},
{"node":"^dc.MultiD(1)","val":"$lb(\"Braam,Ted Q.\",51353)"},
{"node":"^dc.MultiD(1,\"mJSON\")","val":"{}"},
{"node":"^dc.MultiD(2)","val":"$lb(\"Klingman,Uma C.\",62459)"},
{"node":"^dc.MultiD(2,2,\"Multi\",\"a\")","val":1},
{"node":"^dc.MultiD(2,2,\"Multi\",\"rob\",1)","val":"rcc"},
{"node":"^dc.MultiD(2,2,\"Multi\",\"rob\",2)","val":2222},
{"node":"^dc.MultiD(2,\"Multi\",\"a\")","val":1},
{"node":"^dc.MultiD(2,\"Multi\",\"rob\",1)","val":"rcc"},
{"node":"^dc.MultiD(2,\"Multi\",\"rob\",2)","val":2222},
{"node":"^dc.MultiD(2,\"mJSON\")","val":"{\"A\":\"ahahah\",\"Rob\":\"VIP\",\"Rob2\":1111,\"Rob3\":true}"},
{"node":"^dc.MultiD(3)","val":"$lb(\"Goldman,Kenny H.\",45831)"},
{"node":"^dc.MultiD(3,\"mJSON\")","val":"{}"},
{"node":"^dc.MultiD(4)","val":"$lb(\"\",\"\")"},
{"node":"^dc.MultiD(4,\"mJSON\")","val":"{\"rcc\":122}"},
{"node":"^dc.MultiD(5)","val":"$lb(\"\",\"\")"},
{"node":"^dc.MultiD(5,\"mJSON\")","val":"{}"}
]}
***** gbl.json *****I have added a new version for the GLOBALS contest
To take care of large Globals that may break your available memory.
The JSON Object is exported to a file. and there is also the related loader
USER>write ##class(dc.GblToJSON.CX).export("^dc.MultiD")
File gbl.json created
And the related loader creates the Global
USER>write ##class(dc.GblToJSON.CX).import()
Global ^dc.MultiD loaded
It is of course also available in the Online Demo facility.
And to see the generated file there is a show() method
USER>write ##class(dc.GblToJSON.CX).show()
{"gbl":[
"^dc.MultiD=5",
"^dc.MultiD(1)=$lb(\"Braam,Ted Q.\",51353)",
"^dc.MultiD(1,\"mJSON\")=\"{}\"",
"^dc.MultiD(2)=$lb(\"Klingman,Uma C.\",62459)",
"^dc.MultiD(2,2,\"Multi\",\"a\")=1",
"^dc.MultiD(2,2,\"Multi\",\"rob\",1)=\"rcc\"",
"^dc.MultiD(2,2,\"Multi\",\"rob\",2)=2222",
"^dc.MultiD(2,\"Multi\",\"a\")=1",
"^dc.MultiD(2,\"Multi\",\"rob\",1)=\"rcc\"",
"^dc.MultiD(2,\"Multi\",\"rob\",2)=2222",
"^dc.MultiD(2,\"mJSON\")=\"{\"\"A\"\":\"\"ahahah\"\",\"\"Rob\"\":\"\"VIP\"\",\"\"Rob2\"\":1111,\"\"Rob3\"\":true}\"",
"^dc.MultiD(3)=$lb(\"Goldman,Kenny H.\",45831)",
"^dc.MultiD(3,\"mJSON\")=\"{}\"",
"^dc.MultiD(4)=$lb(\"\",\"\")",
"^dc.MultiD(4,\"mJSON\")=\"{\"\"rcc\"\":122}\"",
"^dc.MultiD(5)=$lb(\"\",\"\")",
"^dc.MultiD(5,\"mJSON\")=\"{}\""
]}
***** gbl.json *****
USER>
ATTENTION: US Summer time (EDT) started already Sunday, 13 March
Hi @Joel Solon , I see it that way:
COS is aged but was not as short as M (even more aged)
but InterSystemsObjectScript are 24 Character to type !
At least 18+ chances for mistyping with my old fingers. ![]()
So I have my personal FLA (4 letter abbreviation) to write "new-speak" and get it sorted right.
LOAD DATA was released with IRIS 2021.2 and was unknown before
Your version is 2020.1 only.
Sorry
If your global is part of a class/table class parameter DSTIME could be an approach.
or any SQL trigger or any %OnAfterSave, %OnAfterDelete, ...
For pure Globals all you have is the Journal (if enabled)
You may try an external RTF parser to run your conversion using CPIPE or $ZF(-100-)
and then consume the result.
1 Example of many others in Google: striprtf (py)
Once you move to a version supporting Embedded Python you can run it even internal
OK. after some detailed analysis I found these facts that I forward to WRC:
Another reason why Embedded Python Pure is just a fiction
Hi @Scott.Roth. I'm sure you have access to WRC
under Previews there is a standalone kit Studio-2022.1.0.131.0-win.msi
and it is backward compatible as usual.
take a tour through the support of TSQL in Caché
in namespace %SYS you may run DO ^JRNDUMP from the terminal prompt
What you see is typical for an inappropriate double encoding.
USER>r c
Gômez Jesús María
USER>zzdump c
0000: 47 F4 6D 65 7A 20 4A 65 73 FA 73 20 4D 61 72 ED Gômez Jesús Marí
0010: 61
;;; this is already encode in UTF-8 !!!!!
;;; what you name RAW is already UTF-8 !!! a
USER>s z=$zcvt(c,"O","UTF8")
USER>w z
Gômez Jesús MarÃa
;;; now its just broken
USER>zzdump z
0000: 47 C3 B4 6D 65 7A 20 4A 65 73 C3 BA 73 20 4D 61 Gômez Jesús Ma
0010: 72 C3 AD 61 rÃa
USER>Hi @Stuart Strickland !
This well-known effect is named Proleptic Gregorian Calendar.
A bunch of other DBs is using it as well. As well as my favorite competitor O*****.
This means it calculates backward as if we always had the Gregorian date since the beginning
and the lost days in October 1582 and other adjustments are ignored.
In fact, at that time almost every country and smaller had its own calendar. Often like "in the 3rd month of the 7th year of the reign of Duke Goofy 4th". And converting regional dates from Spain to England or Franc or Italy or Ireland or even Scandinavia is a special mathematical exercise for students of History. On top of that, you often don't have the information if they counted years by Sun calendar or by Moon calendar.
from session use the SQL Shell
PROMPT>do $system.SQL.Shell()
SQL Command Line Shell
----------------------------------------------------
The command prefix is currently set to: <<nothing>>.
Enter <command>, 'q' to quit, '?' for help.
[SQL]PROMT>>SELECT whatever single line SQL
or
PROMPT>do $system.SQL.Shell()
SQL Command Line Shell
----------------------------------------------------
The command prefix is currently set to: <<nothing>>.
Enter <command>, 'q' to quit, '?' for help.
[SQL]PROMPT>> << entering multiline statement mode, 'GO' to execute >>
1>>Just found this. Intersystems Cache Python Object-Relational Mapper
Try the test with some table in SAMPLPES
you should check a few things upfront
- is your Caché a 64 bits installation and is the pythonbind3.c also compiled for 64 bit (or both 32bit)
this might be one possible reason for the "data mismatch" you mention
- pythonbind3.c seems to be a C code using the Callin Interface.
this requires Service %Service_CallIn to be enabled with user, passwd, ...
- next check the SuperServer Port (default = 1972)
- connect to a USER namespace. Since %SYS requires rather high privileges.
- then check if the connection really works.
once established it should be possible to identify the related process from
System Management Portal / Operations / Processes showing the client_exe, namespace, ...
- then you may start composing queries.
Correct !
it is in Namespace %SYS
if you use a class name starting with %Z* you can even have it in %SYS
A little bit of guessing from my side. behind your page /csp/test/person.csp
there is a namespace (eg. USER) with DB user
If you have no login page you run as "UnknownUser"
If it has no access rights or appropriate roles (most likely) for this DB behind you are lost;
2 possible workarounds:
Congratulations to all paticípants and
Thanks for your efforts to provide public examples for the new technology.
with CSP you have a license user that can be changed by %CSP.Session.Login()
Login with this username and password, returns a status code to show if it worked or not. This method also trades license units at the same time so this CSP session will be logged in as a named user. If you pass type=1 then this will trade licenses only and not login as this user. After the login completes it also updates the property Username to match the $username value this session is logged in as. The property LicenseId is also updated to be the license identifier that this session is logged in with.
If a login fails then the property Username and property LicenseId will remain at their previous values. If you pass oldpassword then this will attempt to change the password of username from oldpassword to password and login as this user. Note new status return values: CSP applications can be two-factor-enabled. If the current application is one such, then if Login() successfully authenticates the username/password, it does not return $$$OK, but rather $$$CSPPendingTwoFactorAuthentication. During Two-Factor Authentication, an 8-character numeric security string will be sent to the user's cellphone. You must obtain this string from the user and call CompleteTwoFactorLogin^%CSP.Session() to complete authentication of this user. Also note that if the login SUCCEEDS (status returned will be $$$OK), but you were unable to secure a license, the new apperr parameter will have the value of $$$CSPErrorTradeLicense. In such a case, you may have to call the Login function again to trade a license. If you are calling merely to trade a license (type=1), then if the license trade fails, Login will return a status of $$$CSPErrorTradeLicense.
Version is not the reason. It is %JSON Adaptor that breaks it.
Removing it let it compile. Just tried it with 2022.1 preview
I suggest you deposit a bug report at WRC. Either compiler od Doc is wrong
You reference the documentation for .png)
but your $ZV shows.
$ZV: IRIS for Windows (x86-64) 2021.1 (Build 215U) Wed Jun 9 2021 09:39:22 EDT [Health:3.3.0]
this might be the reason !
The difference is significant.
detailed description is here Defining an XData Mapping Block
XData {MappingName}
{
<Mapping {ClassAttribute}="value" [...] xmlns="http://www.intersystems.com/jsonmapping".>
<{Property Name}="PropertyName" {PropertyAttribute}="value" [...] />
[... more Property elements]
</Mapping>
}Just checked. The method uses
So you better compose a nice XML description.
this tells you what is expected:
And that's the description
classmethod GenerateMappingFromXdata(class As %String, ByRef mapping) as %Status
Get the JSON adaptor configuration information from class and property parameters.
This class is used internally by InterSystems IRIS. You should not make direct use of it within your applications. There is no guarantee made about either the behavior or future operation of this class.
It looks like your JSON Mapping is already content of what you labeled XDATA.
The essence of XDATA is to contain an XML structure to describe your data.
that is to be transformed into a JSON mapping.
In your case, you have the mapping already in hands.
So what other mapping would you expect ?
No, I have no solution.
As all development on Caché (except serious bugfix) is frozen I wouldn't expect this to come.
You may migrate your Caché to IRIS. Or use some other way (REST ?) for access.
!.png)