Robert Cemper · Dec 24, 2020 go to post

Instead of fiddling into system internals, you may just map ^ERROR or better just the annoying part
to a different DB to see the impact. Then you clean up this one on a regular basis this DB,
Just Kill this branch. 
Or map it to IRISTEMP. It is cleaned at every restart.

Robert Cemper · Dec 23, 2020 go to post

It is written by the standard ERROR logger ^%ETN.int used allover system routines.
You can see it in SMP/ application errors. And it might be wise to examine it if it is growing so fast.

Robert Cemper · Dec 18, 2020 go to post

A GREAT improvement! yes

Though a challenge to the voters: They have to make a decision ! laugh

Robert Cemper · Dec 15, 2020 go to post

Hmm. The link to GM says:

Ooops!

Sorry friend, looks like this challenge is no longer available.

My title: " Never say IMPOSSIBLE with IRIS " 

Robert Cemper · Dec 10, 2020 go to post

I fully support you.
Out of tradition, there is a tendency to implement already existing solutions though  better
and well-positioned on the markets. 
@Dmitry Maslennikov :
- you might remember times when even a webserver was written inside Caché
- or various text editors, source manager packages, and ..., and ... and ...
JUST because it was possible.
Decades back you had your globals and your language and not even an OS below.
But this was in previous millenium. This time is definitely over.

 

Robert Cemper · Dec 10, 2020 go to post

I missed this during a migration from Caché to IRIS.
There were roughly 1500 routines and ~2000 classes. grown over >15 years.
The point was to find out dependencies and estimate the impact of changes.
 

Robert Cemper · Dec 10, 2020 go to post

A cross-reference for external Classmethods and/or routines within:

  • a routine
  • a class
  • a package of classes
  • a package of routines

this

Robert Cemper · Dec 8, 2020 go to post

The key issue I see is: Is there a Related XML schema available.
If YES:
- you can generate a package with the existing tools
- import the file with %XML.Reader
- do an %JSON... export
The XML schema is necessary because straight XML is just TEXT with no datatypes
while JSON has data types. For XML the type of data is documented in XML Schema.

If NO:
You may call any of the public available XML to JSON converters.
They may guess rather easy for numerics vs. strings in most cases.
But detecting Boolean (true /false ) vs. Integer is somewhat mysterious to me.
My personal opinion: re-inventing this wheel is not worth the effort.
Writing an adapter makes sense 
 

Robert Cemper · Dec 6, 2020 go to post

Thank you @Nigel Salm !

The buzzword "language"  distracted me.
In IRIS our good old ENSEMBLE was renamed to Interoperability and is there by default.
​​​​​@Heloisa Ramalho you should know it best and could give  a native explanation

Robert Cemper · Dec 5, 2020 go to post

In principle YES.
SQL does it with parallel processing of queries.
CSP Servers do it by its concept of sessions.
The class compiler does it.
Work Queue Manager supports it.
It is part of IRIS.
ObjectScript itself just has a JOB command to start a process in the background.
how you organize it is up to you.
 

Robert Cemper · Nov 30, 2020 go to post

In DC ANALYTICS / Authors what do these column headers stand for?

  • Comment Rating
  • Post Rating
  • VPP Context
  • VPP Absolute

For Rating I'd expect Votes ? 
But VPP ? 

Robert Cemper · Nov 30, 2020 go to post

@Yuri Marx :
if you have the schema as XSD at hands 
All you need to do is to open the XML wizard in IRIS  Studio and it generates the whole packages for you


>>>

I used it rather intensive and a pack of 100+ classes from 1 XSD was no problem

Robert Cemper · Nov 29, 2020 go to post

I removed my example on PuTTY. 
It worked by mistake as the local firewall was switched off

If setup correctly it basically works as described by @Alexey Maslov 
and you need to log in separately on the server,

 

Robert Cemper · Nov 27, 2020 go to post

Correct.
After 20 years working with CSP since day 2.5 I just don't feel like discussing and explaining CSP internals anymore and argue against obviously wrong statements. 
There is enough public detailed documentation around .

Robert Cemper · Nov 26, 2020 go to post

Set Property Parameter %JSONNULL = 1

  Property Code As %String(%JSONNULL = 1);
Code = ""  >>> "Code":null
Code =$c(0)  >>> "Code":""
Robert Cemper · Nov 24, 2020 go to post

If you can grab a Caché distribution you will find in 
%cachedir%\dev\cpp\    several samples and required sources

Robert Cemper · Nov 24, 2020 go to post
the generated file:
------------------------------------------------------------------------------------------
<br><p>
<nobr>Klasse <b>zrcc.EX.ISOS</b>
</nobr><p>Execute InterSystems ObjectScript over ODBC</p><a name="Anchor_Inventory"></a>
<table class="Label" cellpadding="0" cellspacing="0" cols="1">
<tr valign="center">
<td align="left" width="100%" >
<a href="#" onclick="expandIt(1); return false;" class="PackageChoice" title="Expand/Collapse Inventory" onmouseover="this.style.color = 'red';" onmouseout="this.style.color = 'black';">
    <image id=Im1 src=/csp/sys/images/ExpandedMarker.jpg height=15 width=16 border=0 align=bottom>
<nobr><b>Inventory</b></nobr></a>
</td>
</tr>
</table>
<br>
<div id="Id1" class="DivShow" style="">
<table class="Summary" cellpadding="0" cellspacing="0" cols="1">
<tr valign="center">
<th align="center">
Parameters
</th>
<th align="center">
Properties
</th>
<th align="center">
<a href="#Anchor_Methods">Methods</a>
</th>
<th align="center">
Queries
</th>
<th align="center">
Indices
</th>
<th align="center">
ForeignKeys
</th>
<th align="center">
Triggers
</th>
</tr>
<tr>
<td align="center" class="private">
</td>
<td align="center" class="private">
</td>
<td align="center">
<a href="#Anchor_Methods">3</a>
</td>
<td align="center" class="private">
</td>
<td align="center" class="private">
</td>
<td align="center" class="private">
</td>
<td align="center" class="private">
</td>
</tr>
</table>
<br/>
<br/></div>
<a name="Anchor_Summary"></a>
<table class="Label" cellpadding="0" cellspacing="0" cols="1">
<tr valign="center">
<td align="left" width="100%" >
<a href="#" onclick="expandIt(2); return false;" class="PackageChoice" title="Expand/Collapse Summary" onmouseover="this.style.color = 'red';" onmouseout="this.style.color = 'black';">
    <image id=Im2 src=/csp/sys/images/ExpandedMarker.jpg height=15 width=16 border=0 align=bottom>
<nobr><b>Summary</b></nobr></a>
</td>
</tr>
</table>
<br>
<div id="Id2" class="DivShow" style="">
<table class="Summary" border="0" cellspacing="0" cellpadding="1">
        <tr><th colspan="3" title="Bold for local member; italics for inherited; shaded for private; blue for client methods; strikethrough for deprecated.">Methoden</th></tr>
<tr>
<td  nowrap><a class="" href="#METHOD_Gset" title="zrcc.EX.ISOS">Gset</a></td>
<td  nowrap><a class="" href="#METHOD_Ping" title="zrcc.EX.ISOS">Ping</a></td>
<td  nowrap><a class="" href="#METHOD_Xcmd" title="zrcc.EX.ISOS">Xcmd</a></td>
</tr>
</table><br/>
<br/></div>
<a name="Anchor_Methods"></a>
<table class="Label" cellpadding="0" cellspacing="0" cols="1">
<tr valign="center">
<td align="left" width="100%" >
<a href="#" onclick="expandIt(3); return false;" class="PackageChoice" title="Expand/Collapse Methods" onmouseover="this.style.color = 'red';" onmouseout="this.style.color = 'black';">
    <image id=Im3 src=/csp/sys/images/ExpandedMarker.jpg height=15 width=16 border=0 align=bottom>
<nobr><b>Methods</b></nobr></a>
</td>
</tr>
</table>
<br>
<div id="Id3" class="DivShow" style="">
<a name="Gset"></a>
<a name="METHOD_Gset"></a>
<span class="external"><nobr>&#149 classMethode <b>Gset(glob As <nobr><a href="%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=USER&CLASSNAME=%25String">%String</a></nobr>, subs As <nobr><a href="%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=USER&CLASSNAME=%25String">%String</a></nobr>, val As <nobr><a href="%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=USER&CLASSNAME=%25String">%String</a></nobr> = "", dd As <nobr><a href="%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=USER&CLASSNAME=%25Integer">%Integer</a></nobr> = 1)</b>
as <nobr><a href="%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=USER&CLASSNAME=%25String">%String</a></nobr></nobr>
[ SQLProc = Gset ]</span><blockquote>
set / kill global over ODBC
subs = subscript in ( )
dd = $data of source during global copy</blockquote>
<a name="Ping"></a>
<a name="METHOD_Ping"></a>
<span class="external"><nobr>&#149 classMethode <b>Ping()</b>
as <nobr><a href="%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=USER&CLASSNAME=%25String">%String</a></nobr></nobr>
[ SQLProc = Ping ]</span><blockquote>
check connectivity</blockquote>
<a name="Xcmd"></a>
<a name="METHOD_Xcmd"></a>
<span class="external"><nobr>&#149 classMethode <b>Xcmd(cmd As <nobr><a href="%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=USER&CLASSNAME=%25String">%String</a></nobr>, ret As <nobr><a href="%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=USER&CLASSNAME=%25String">%String</a></nobr> = "")</b>
as <nobr><a href="%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=USER&CLASSNAME=%25String">%String</a></nobr></nobr>
[ SQLProc = Xcmd ]</span><blockquote>
eXecute Command over ODBC
name of local variable for return value</blockquote>
-------------------------------------------------------------------------------------------
​​​
Robert Cemper · Nov 24, 2020 go to post

Hi @Yuri Marx!
I did a quick and dirty try during lunch in terminal:   

set %library=$namespace
set set %request=##class(%CSP.Request).%New()
set cdef=##class(%ClassDefinition).%OpenId("zrcc.EX.ISOS")     ; my classname
set file="my.html" o file:("WNS"):0 write $t     ;  1 if OK
use file d ##class(%CSP.Documatic).RenderClassPage(cdef,1)
close file

The result still holds references to /csp/...images  and data types  
     <image id=Im1 src=/csp/sys/images/ExpandedMarker.jpg height=. . . 
    <a href="%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=USER&CLASSNAME=%25String">%String</a>
that you might want to resolve as they are quite generic or you just ignore it .
My browser is very friendly  :-)
And that's the result:

Some polishing might be required