Your observation is correct.
I checked the underlying system call.
In Windows {for me Win10} all you get back is the flag ="isDirectory"
So you need to do the indirect check as described in the comments
- Log in to post comments
Your observation is correct.
I checked the underlying system call.
In Windows {for me Win10} all you get back is the flag ="isDirectory"
So you need to do the indirect check as described in the comments
You are right. Open Parameter should be "WN"
It is just an indirect test as OPEN on a directory fails with < NOTOPEN>
And it also fails if the file already exists and can be accessed.
corrected:
Then you should check it with the OPEN command
Set file="full file reference"
OPEN file:("WN"):0 Else Write "write lock on file";!
you do an open for write on the file with timeout zero if it fails $TEST is 0 (false)
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GIOD_rmsseqfiles
You have to be aware that you access the file by the rather high privileged account that Caché service is running in.
Have you blocked this account too ?
You are right. But it has no impact.
Another reason to move to Atelier.
as all values out of your SQL query come from server you should be able
to setup the content of title on server side as you do for other ZEN components.
There is a wide doc on programming ZEN pages
http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GZEN
ZEN component <datacombo has a parameter title which is displayed on mouseover event of the browser
example out of SAMPLES/ Class ZENApp.HelpDesk

Basically $c(1) s a NONPRINTING character - it has to be invisible by definition.
Instead of WRITE command use ZWRITE to visualize it or $TRANSLATE function to make it visible.
example:
So you require support for BMC Patrol!
Check here http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCM_patrol
OK if this Is outside you control you NEED a dirty trick.
Just before after the last Set Properties(....) in ZAUTHENTICATE insert this line:
to get a full copy of the array in %myProperties
property onselectrow as %ZEN.Datatype.eventHandler;
onselectrow event handler: This event is fired when a new row is selected. This event is passed a variable, which, which indicates how the row was selected: "", "click" or "keypress".
I'd assume in your case as you did neither "click" nor "keypress" var which ="" will apply.
So you may use this to ignore the call and return without action.
It would be easier to help you with the concrete call to ZAUTHENTICATE in hands.
In addition ZAUTHENTICATE.mac needs to be modeled by un-commenting lines.
Or do you use the pre-configured OAUTH2.AUTHENTICATE.mac
in both cases you need to have activated this line:
according to your description this is done .
So the issue might result from the way the call is done
Comment in ZAUTHENICATE.mac Line 90 says:
Properties - Array of returned values, passed by reference
So your call should look like
It's the dot in front of variable name Properties that does the Pass by Reference and enables you to use the updated array after the call.
The dirty approach would be to name your array %myProp instead of Properties thus using a variable with public scope.
Pls. be more specific on "It is not working."
+ what would you expect to work
eventually you have code and data separated, then it's more than just a single DB
various mapping may add even more DBs
You should get previous releases from WRC based on your service contract.
But be aware: from 2007 to 2017 there have been 15..20 releases.
Each with changes + release notes that may affect you.
Congratulations,
that's engineering!
Right !!
A major step forward!
Hi Ben,
I just installed a few samples as in description . CONGRATULATIONS !
- not only that I get what I want and leave the rest aside
- I also can split samples by subjects in several DBs and namespaces without being trapped by (hidden) dependencies.
I think this makes live for training and teaching significantly easier!
And allows central bug fixing independent from core release dates.
A great idea! Thanks!
![]()
![]()
![]()
Congratulations!
I new I had seen something similar
To my understanding the main purpose of introducing %INLIST in our SQL was
to have a more handy option than the classic IN (....)
%INLIST takes a Single $LISTBUILD() as parameter with a Variable number of values that you pass at runtime by only 1 "?"
while IN (p1,p2,p3,p4) or better IN (?,?,?,?) requires a fixed static number of parameters during execution.
so you have to know the maximum number of values ahead when you create your query
and eventually to fill unused parameters by some impossible value to feed the query
I wasn't sure.
therfore: .... some kind of code optimizer eventually might run.
I remembered a discussion around Java JIT compiler and XEP being faster on globals that pure COS.
But I can't remember any result or consequences.
I had the issue short after an update of Eclipse.
I fixed it by re-installing the glassfish stuff (whatever that might be) explicitly from Marketplace.
There is an excellent series of 5 articles from Brendan Bannon
https://community.intersystems.com/post/art-mapping-globals-classes-1-3
It tells you all details how to wrap existing globals into classes
Query 1 Example 1 could be marginally faster by less line terminations and less command dispatch:
But as this will be compiled some kind of code optimizer eventually might run.
Query2 Example1 is faster by less line terminations and less command dispatch.
BUT: Both cases aren't the place to win benchmarks. Rather look for Global access , SQL optimizing, ....
query 1 misses a variant:
query 2,example 2 should be
I a=2 SET R="Arun"Hi Ben,
- I like the idea of external samples. That offers definitely more flexibility .
- DOCUMATIC is unchanged and works local! That's important. OK
- JDBC: it isn't visible in Custom Install. You only see xDBC -> ODBC .
Not an issue, rather a surprise. The .jar are where they used to be before.
I'm really happy that we finally can get out of old chains imposed by 40yrs (DSM-11 and others) backward compatibility .
Robert
- 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.