go to post Robert Cemper · Jul 10, 2019 it's not related to ENS . the error is pure HTTP<Ens>ErrHTTPStatus: Received non-OK status 404 from remote HTTP server: 'HTTP/1.1 404 Not Found':<html>simply tells you that your URL is wrong.try it in browser to verify it exists
go to post Robert Cemper · Jul 8, 2019 as a quick approach: set instring="........whatever you need .........." set len=75 for part=0:1 { set segment=$extract(instring,part*len+1,part+1*len) do OBX(segment) if $length(instring)<(part+1*len+1) quit ; nothing left } ;;; have no details how OBX looks like but this are the pieces
go to post Robert Cemper · Jun 29, 2019 I prefer this solution as it is in full accordance with the documentation andwith no need also for beginners to fiddle into internals .https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_flist<snip>$LIST(list,position,end) returns a “sublist” (an encoded list string) containing the elements of the list from the specified start position through the specified end position (inclusive). If position and end specify the same element, $LIST returns this element as an encoded list.</snip>
go to post Robert Cemper · Jun 28, 2019 (XMLPROJECTION="wrapped");should separate your items.from docs: https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GXMLPROJ_basics#GXMLPROJ_basics_collectionsEffect of XMLPROJECTION on Collection PropertiesValue of XMLPROJECTIONEffect on Collection Properties"WRAPPED"The property is projected as an element with subelements; each subelement corresponds to an item of the collection. This is the default for collection properties."ELEMENT"Each item in the collection is projected as an element, without being wrapped in the parent property.
go to post Robert Cemper · Jun 27, 2019 I miss Public { } in your exampleit ensures that only parameters are visible as <Private variables> or all %*
go to post Robert Cemper · Jun 27, 2019 MyFunc(Param1,Param2) Public { if $d(Param2) write " 2 params",! else write " 1 param",! S Param2="it's all good" Q 1 }
go to post Robert Cemper · Jun 27, 2019 did you try to Save your Stream.Container ?set tSC = tRequest.%Save()before set tSC = ..SendRequestAsync(..TargetConfigNames,tRequest)
go to post Robert Cemper · Jun 22, 2019 Did you check your license capacity? looks like running out of license slots.
go to post Robert Cemper · Jun 20, 2019 my personal rule:In the development stage, programmers should have full access but data are anonymized.In the test stage - only some qualified developers get limited accessin the production stage, neither users nor developers should have access to the studio or terminal.Access is given only temporary, to top experts for error analysis.That's like the doctors that take care of places of your body you won't' show to anybody else.
go to post Robert Cemper · Jun 20, 2019 Yeah!you can lock out developers from SMP.But you can't prevent them from writing code with similar functionality. And run it.And then you have the same SYSTEM privileges as your Caché installation has. It might be hard to block it.For stronger security block all developers on production systems.
go to post Robert Cemper · Jun 14, 2019 #3 in details:- mount the copy of the DB as an additional DB to your Test Environment READ ONLY.e.g directory C:\InterSystems\Cache\myCopyDB\- Using Extended Global References you copy whatever global your need.e.g. merge ^my.Global = ^|"^^C:\InterSystems\Cache\myCopyDB\"|my.Global
go to post Robert Cemper · Jun 13, 2019 did you try instead of Array Of Objects to use List of Objects ?(it's different storage structure behind)
go to post Robert Cemper · Jun 13, 2019 see this article Execute Server Commands from Caché / Ensemble / IRISand the related example in OpenExchange
go to post Robert Cemper · Jun 12, 2019 not at all. It's just a readable formatted picture of the executed code.
go to post Robert Cemper · Jun 7, 2019 Ah, got it.I understand and agree on 7, 8, 9for 1. I still wait for the "modern" editor. None of the existing ones could really convince me. But all are easier to handle than vi or X ^%
go to post Robert Cemper · Jun 6, 2019 normally there is no need for such "wrapper"typically %Save() returns a %Status object and then it's up to you to analyze it in case there is an error.In the situation described here, all you can do is just a retry. - it could be a Lock collision - or the LockTable is full. Instead of fiddling in system parameters requiring a restart, you just wait and retry. if you are curious how often this happens you may add a loop counter. for further decisions
go to post Robert Cemper · Jun 6, 2019 Yes.it prevents an error message if there is a collision.if nobody else is around it just falls through without loop.
go to post Robert Cemper · Jun 6, 2019 for an insert you may need and exclusive lock for your table do { set gotit=##class(my.class).%LockExtent() if 'gotit hang .3 } while 'gotit ;; now do your INSERT and don't forget do ##class(my.class).%UnLockExtent(0,1) after your insert.
go to post Robert Cemper · Jun 6, 2019 other: XMLSPy for XML/XSD/DTD editingof course I also use Caché Studiostraight NotepadNotpad++ especially for JS also some XML if XMLSpy is to heavy