- no DOCBOOK
- no SAMPLES
- no JDBC Driver in install
but there is C:\InterSystems\IRIS\dev\java\lib\JDK18\isc-jdbc-3.0.0.jar .....
- and a very small icon for csystray.exe in Win 
- Log in to post comments
- no DOCBOOK
- no SAMPLES
- no JDBC Driver in install
but there is C:\InterSystems\IRIS\dev\java\lib\JDK18\isc-jdbc-3.0.0.jar .....
- and a very small icon for csystray.exe in Win 
I wonder if it would be possible to have a more rigid syntax check (now in Atelier / and switchable)
to enforce all kind of brackets (eg: condition like in JS).
I tried to recommend this while teaching COS myself.
With very limited success as some Dinos ignored it.
rewrite of comment:
if this is something like
SELECT people.name, holiday.date, people.ID||'^'||holiday.ID as UNIQ
FROM people JOIN holiday
ON people.country = holiday.country
Then the bolded expression should not be longer than your 50 Char.
IF you use CachéStorage
ID is always a unique positive Integer (1.... 19digits) and you can always disassemble it by the separator.
NO NEVER!
ID in CacheStorage is an "autoincrement" positive Integer (1...2**64-1) ~19 digits decimal.
AND is never reused.
And you can split this construct in the original pieces if required
totally right!!
there is more old code out than you could / would like to imagine
And Caché is backward compatible for 40 years (since DSM V1)
New developers should not write it. But they need to understand it. Or at least recognize it.
It's pretty similar to reading the bible in original language with no translation.
if this is something like
Then the bolded expression should not be longer than your 50 Char.
IF you use CachéStrorage
I just added Quick Bookmarks plugin to my Atelier (better Eclipse)
Works excellent and to my opinion far better than Studio.
ALT+<num> to set numbered
<CTRL>+B toggle / set unnumbered
<CTRL>+N next
<CTRL>+P previous
Just installed from https://marketplace.eclipse.org/content/quick-bookmarks-plugin (ignore warnings)

eventually an add-on from eclipse marketplace can close the gap.
https://marketplace.eclipse.org/content/quick-bookmarks-plugin
Show Active Key Bindings is in HelpMenu

And as this is based on Eclipse some keys a different then in Studio.
Eventually you may produce your private setup using Preferences.
Assuming that you did not disable Journaling for the critical CACHE.DAT
you can take a look into Mgmt Portal / System Operation / Journal
There you click on PROFILE and sort by Size:
This gives you the fastest moving parts.
And though it also contains updates your fastest GROWING globals will leave their traces there.

In a next step you may analyze the Journal itself filtered by CACHE.DAT and SET operation
but that may take more time and effort.
suggested steps:
#1)Add Property Experiment As %String; to Class SCHED.TracerEntry
#2) Write a Utility Class to move the existing content from SCHED.SchedEntry.Experiment in to the all List entries.
#3)
If you are satisfied and all methods access the new location of Experiment
You may remove all old content of SCHED.SchedEntry.Experiment . Set it to ""
and set the property to INTERNAL, PRIVATE or just delete SCHED.SchedEntry.Experiment . BUT don't touch the storage map!
This is not a necessary step but just kind of clean up.
NOTE: I had commented out the two &html lines in the Testing Method... and doing a Ctrl-O still work.
Most likely your browser displays a cached version.
Clean all caches on the way to browser and you will see the changes. It's a principle issue.
with <input type="file" /> you select a file name local to your browser. That's just pure HTML.
And what you have in hands is a file reference. Not the file itself.
So what you may do next is to SUBMIT it to server.
But scanning your menu you expect to open, modify, copy, ...
That's nothing to be done from Browser but by a local application.
Adam,
you can download it directly from your WRC account.
the only effect is a smaller resultset of the subquery.
it doesn't speed up the inner collection /sort process (+ inner WHERE ) before TOP is applied.
I'm with you it's not intuitive and I think TOP ALL could be a default. But that's not happening.
In principle OK.
But also ODBC or JDBC connection have timeouts limits. Though they are typically longer than CSP.
Yeah!
it's not only no timeout but you can easy debug all your SQLCOMPUTED code.
If you use ORDER BY in a SubSELECT you have to add a TOP clause as well. e.g.
select *, %vid from (select TOP ALL * from UACCESSRIGHT order by RIGHTID) where %vid between 10 and 20
I think they named it M(umps)
![]()
Postcondition is preferred
especially quit:error or continue:ignore
for i=1:1:5 write i," " is as fine as for i=1:1:5 { write i," " } write "end"
but this is really bad:
f i=1:1:5 d w "? "
.w i," "
w "end"ZEN uses pure XML encoding:
differently from HTML there are just 5 specials allowed / required
I see 2 options
#1)
add the ChangeItem holding the last change in addition to your list of Objects.
and add the appiopriate indices.
like this:
This looks simple but it requires that any program that adds a change also
updates the "Last" property.
If this isn't feasible you may use %OnBeforeAddToSaveSet() or similar to insert you "Last" object during %Save().
It requires more space on disk and is not redundant.
It doesn't generate entries for existent records.This requires a special update exercise.
#2)
Add the property to be indexed as SqlComputed and index it.
This is not so speedy but gives you the flexibility not just check the last element
and has no impact or dependency on any existing code using it.
if you search for Cacheobject.dll in docs.intersystems.com
you find several articles that my help you.
%Service_CacheDirect
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
Upgrading from CacheObject.dll
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
Connection String for Use with the Older DLL
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
what you describe sounds pretty much like code management, versioning.
these tools depend on appropriate plugins to Word, EXCEL, Eclipse, ....
to trap the SAVE in the appropriate "editor"
BUT this always means to have a specific piece of code installed on your client if you expect some "automatic" upload.
This thing may upload/download your documents over HTTP, WebSockets or whatever.
browsers should NEVER be allowed to access your local machine without manual confirmation.
#1)
authentication is switched on/off in Mgmt Portal
System > Security Management > Web Applications and bound to the specific WebApplication
#2)
CSP has typically a persistent %session object.
You can that switch off by a Class parameter.
#3) You have 2 typical places for private Classmethods:
OnPreHTTP() before anything goes back to browser or similar.
You typically place your private authentication there.
http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?…
OnPage() which means when you have already replied with an HTTP header...
Some Example
But there is no array keys and no %DynamicArray object found.
so it fails on %GetIterator().
my guess {"keys":[ .... ]} could be the solution.
Why would you hack around Studio to mimic what is ready to use in Atelier ?
just for better readability of the audience I transformed your WHEN condition that dictates speed.
It shows me that you basically check on (HL7.{RGSgrp(1).AIL:LocationResourceID(1).Room}
I see not much opportunity for optimization of CONTAINS
But for your StartsWith you may try this construct:
In(SubString((HL7.{RGSgrp(1).AIL:LocationResourceID(1).Room},1,6),"HOC OR","HOC EN")
or
In(SubString((HL7.{RGSgrp(1).AIL:LocationResourceID(1).Room},1,6),"ONT EN","GAL OR","GAL EN",BUC OR")
An HealthShare expert might be able to answer if it is possible to have an index on the fields of your WHEN condition.
A different approach could be to handle the whole WHEN in a Custom Utility Function
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
the code is already included in the CSP example
the file comes a MIME data in %request:
<!-- As form is submitted to this page look to see if we have the stream in the %request object -->
<csp:if condition='($data(%request.MimeData("FileStream",1)))'>
<hr><br>
Submitted filename: <b>#(..EscapeHTML(%request.MimeData("FileStream",1).FileName))#</b><br>
Size of file: <b>#(..EscapeHTML(%request.MimeData("FileStream",1).Size))#</b><br>
Mime Section: <b>#(..EscapeHTML(%request.MimeData("FileStream",1).MimeSection))#</b><br>
Type of stream: <b>#(..EscapeHTML($classname(%request.MimeData("FileStream",1))))#</b><br>
Content Type: <b>#(..EscapeHTML(%request.MimeData("FileStream",1).ContentType))#</b><br>
<br>
First 200 characters of stream:<br>
<ul>
<script language="Cache" runat="server">
See also doc on %CSP.Request
http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?…
It seems you try to call ans Action that is not defined / compiled
Method GetMsgClass(action As %String, messageChildlist As %Integer, Output methodName As %String, bodyStream As %GlobalCharacterStream = "") As %String [ Internal, ServerOnly = 1 ]
{
Set (methodName,className,msgClass,methodList)=""
Set class=$classname()
Set methodList=$get($$$SOAPParametersSoapActionList(class,action))
>>>> this is line +3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
this translates to and there is no attempt to write something.
But finally: . . . . stNow"),h:\dev5\</text>
Does your Caché Server Instance have access right to the bolded directory location ???? This smells like <PROTECT>