go to post Robert Cemper · Feb 7, 2018 In Caché you typically work on objects but you can present them also as rows in an SQLtable.The identifier for objects is IDKEY if you don't do it yourself it is assigned by Caché.PrimaryKey is something you assign by your application.Both are UNIQUE.And if you define your PrimaryKey as Autoincrement starting with 1 both are quite likely identical.That's a basic view. IDKEY has far more variants to be found in documentation.
go to post Robert Cemper · Feb 6, 2018 There is a solution using WIN command attrib to check read only access flag.It doesn't write files.You are welcome to discuss about "elegance" . set dir=yourDirectory set dev="|CPIPE|" set cmd="attrib /d " set result="" open dev:(cmd_dir:"R"):0 if $test use dev read result close dev if $piece($zstrip(result,"<>"," "),dir)["R" write "directory read only",! else write "directory accessible",!
go to post Robert Cemper · Feb 6, 2018 But $ZU(140,1,Directory) ALWAYS returns -5 "no access"tested on Cache for Windows (x86-64) 2016.2
go to post Robert Cemper · Feb 6, 2018 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
go to post Robert Cemper · Feb 6, 2018 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.
go to post Robert Cemper · Feb 5, 2018 corrected:Set file="full file reference"OPEN file:("WN"):0 Else Write "write lock on file",!
go to post Robert Cemper · Feb 5, 2018 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
go to post Robert Cemper · Feb 5, 2018 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 ?
go to post Robert Cemper · Feb 5, 2018 You are right. But it has no impact.Another reason to move to Atelier.
go to post Robert Cemper · Feb 5, 2018 as all values out of your SQL query come from server you should be ableto setup the content of title on server side as you do for other ZEN components.#; compopse titel .... into variable mytitle set %page.%GetComponentById("Priority").title=mytitle There is a wide doc on programming ZEN pageshttp://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GZEN
go to post Robert Cemper · Feb 5, 2018 ZEN component <datacombo has a parameter title which is displayed on mouseover event of the browserexample out of SAMPLES/ Class ZENApp.HelpDesk <dataCombo id="Priority" name="Priority" label="Priority" title="RoberT"
go to post Robert Cemper · Feb 5, 2018 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:USER>s ^rcc=$lts($lb(123,"abc",23432,"hak","uuk"),$c(1)) USER>w ^rcc123abc23432hakuukUSER>zw ^rcc^rcc="123"_$c(1)_"abc"_$c(1)_"23432"_$c(1)_"hak"_$c(1)_"uuk"USER>ZZDUMP ^rcc0000: 31 32 33 01 61 62 63 01 32 33 34 33 32 01 68 61 123.abc.23432.ha0010: 6B 01 75 75 6B k.uukUSER>write $TR(^rcc,$c(1),"*")123*abc*23432*hak*uukUSER>
go to post Robert Cemper · Feb 4, 2018 So you require support for BMC Patrol!Check here http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCM_patrol
go to post Robert Cemper · Feb 3, 2018 OK if this Is outside you control you NEED a dirty trick.Just before after the last Set Properties(....) in ZAUTHENTICATE insert this line: Kill %myProperties Merge %myProperties=Propertiesto get a full copy of the array in %myProperties
go to post Robert Cemper · Feb 2, 2018 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.
go to post Robert Cemper · Feb 2, 2018 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.macin both cases you need to have activated this line:Set Properties("Comment")="....whatever you may pass along...."according to your description this is done .So the issue might result from the way the call is doneComment in ZAUTHENICATE.mac Line 90 says: Properties - Array of returned values, passed by referenceSo your call should look like Do ^ZAUTHENTICATE(ServiceName,Namespace,Username,Password,Credentials,.Properties)#;--------------------------------------------------------------------^^^ 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.
go to post Robert Cemper · Feb 2, 2018 Pls. be more specific on "It is not working."+ what would you expect to workeventually you have code and data separated, then it's more than just a single DBvarious mapping may add even more DBsYou 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.