go to post Robert Cemper · Apr 23, 2020 CLASSPARAMETERS are static and apply to class compile time. You refer to it by ..#paramname in your class codehttps://cedocs.intersystems.com/latest/csp/docbook/Doc.View.cls?KEY=RCOS_fparametersee section References to Other Class Members or by COS function $PARAMETER(class,parameter)
go to post Robert Cemper · Apr 22, 2020 For Multiline SQL you may do it his way: set myquery = "SELECT TOP 5 "_ "Name, "_ "DOB AS bdate, "_ "FavoriteColors "_ "FROM Sample.Person" no solution for coloring inside a String
go to post Robert Cemper · Apr 20, 2020 on "html to pdf converter freeware" google gave me 3 270 000 hits.Why reinventing the wheel. Place your HTML into a local file and let someone else do the dirty job.There are enough solutions for a call-out to trigger the conversion.
go to post Robert Cemper · Apr 17, 2020 #1) I'd suggest to increase the size of your LockTab as suggested by @Vic Sun #2) There is a class in %SYS . ^SYS.Lock that could be useful for multiple Lock deletes.and as I just learned to adjust LockTab size (SetMaxLockTableSize) https://cedocs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=SYS.Lock#3) ^LOCKTAB from terminal command line in %SYS also shows the Locktab
go to post Robert Cemper · Apr 17, 2020 So a possible workaround could be to have a VIEW on Oracle including ROWNUM as a columnlike SELECT ROWNUM as row, * from whatever_tableand then map the View instead of the original table just for this purpose.
go to post Robert Cemper · Apr 16, 2020 see this example to reproduce and explain that there is an unnecessary conversion on the way as you showed in your example "text": "Condição de pagamento sujeito a análise de crédito: "
go to post Robert Cemper · Apr 10, 2020 you may take this example from OpenExchange: https://openexchange.intersystems.com/package/Light-weight-EXCEL-download Al you have to do is to out-comment in ClassMethod OnPreHTTP() this line : #; set %response.ContentType="application/vnd.ms-excel" and the table goes to your browser.
go to post Robert Cemper · Apr 6, 2020 you have to mimic %Next() as %session.Data is a Multidimensional Array) set pos=-1while pos { set pos=$order(%session.Data("product",pos),1,value) /* whatever */ }
go to post Robert Cemper · Apr 4, 2020 If I understand you correct you expect something like INSERT INTO new.MESSAGE (SELECT * from EnsLib.HL7.Message where id = ? ) this may work for rather modest designed relational tables but I doubt it will work for some complex structure as EnsLib.HL7.Message . Subclassing is not the way to solve your problem for 2 reasons: A subclass has always to match the .IsA() class type of its parent (e.g. Employee as subclass of Person. Employee is also always a Person) SubClasses share the storage with its parent. There are dirty tricks to avoid this but I assume you do not intend to change EnsLib.HL7.Message. There are ways to do something like this if you fiddle around in the storage structures. BUT: for reasons of transparency, documentation, and maintainabilityI'd strongly recommend to use DTL. Fiddling around with COS in Ensemble is a rather tricky exercise.Based on practical experience I can confirm that your successors will never forget you.
go to post Robert Cemper · Mar 30, 2020 Hi Jenna, I took some time to verify my suspicion. (Caché 18.1) You depend on the type of stream that is used in your object #A) %Library.GlobalBinaryStream or %Library.GlobalCharacterStream if you have no stream yet you run do obj.MyStream.Write("whatever") then your stream will land in ^SSA.DocumentCacheS as expected but if you get an already existing external stream and set obj.MyStream = myStreamOref then just the oref / OID of the stream is set including ^CacheStream. Which seems to be your case it's not a big surprise as ENSEMBLE may still use the old style. #B) using %Stream.GlobalBinary, ... Both cases ended as expected with the stream in ^SSA.DocumentCacheS It seems to me that a CopyFromStream happens during the assignment. I'd name it expected behavior.
go to post Robert Cemper · Mar 30, 2020 Hi Nigel,About a year ago a faced a similar problem and found 2 possible workarounds. Instead of writing a WS client a delegated it out to JavaScript.#1) Using CSP#2) my preferred one with node.jsBoth examples are available on OpenExchange Client for WebSockets based on CSP Client for WebSockets based on Node.js as Websockets ar so natural to JavaScript the result is no rocket science. Stay healthy
go to post Robert Cemper · Mar 29, 2020 @Julius Kavay is fully correct. The compiler was first written ~10 years before the idea of LLVM started @ University of Illinois.Various interfaces allow your development very close to the data store. I'd suggest you contact your Sales Engineer @ InterSystems (Darmstadt ?) for disclosure of internals.
go to post Robert Cemper · Mar 22, 2020 why not use a free local mail server for testing?I personally use the german speaking Hamster. But there are lots of them. Google is your friend
go to post Robert Cemper · Mar 14, 2020 make your formula f = x + 20(y*y) > z a calculated, SQLcomputed property in your TABLEand provide it with a bitmap index and it will run distributed and be incredible fast docs: https://docs.intersystems.com/iris20192/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_proplit#GOBJ_proplit_computedhttps://docs.intersystems.com/iris20192/csp/docbook/Doc.View.cls?KEY=RSQL_C145362
go to post Robert Cemper · Feb 28, 2020 error -400 means there is an internal error It might be caused by using object properties as :context.anyname inside embedded SQL give it a try and use "simple variables" as :%myanyname , :%myShipmentTrackingNo and fill the context object outside the embedded SQLas you do with SQLCODE
go to post Robert Cemper · Feb 26, 2020 I'm surprised you don't see the obvious performance difference of looking for something of distinct length at the beginning of a stringvs. scanning an eventual rather long string for some bytes somewhere eventually including also composed strings as %AB%CD%. keep in mind: Caché is built for speed, not for the comfort of the average programmer
go to post Robert Cemper · Feb 24, 2020 %STARTSWITH relates better to Caché internal structures and is faster in larger scale
go to post Robert Cemper · Feb 7, 2020 USER>w $ZDATETIME($h,3)2020-02-08 00:59:59USER>w $ZDATETIME($h,-2)1581120005 docs: https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_fzdatetime
go to post Robert Cemper · Feb 1, 2020 Once the query is running it is not interested in any browser activity. BUT:the query is stopped when you fall into the session timeoutand the related process (and any query) is terminated.SO it not running forever!
go to post Robert Cemper · Jan 31, 2020 in Caché Terminal you may set file="c:\dir\filename"OPEN file:(:("RS":/IOTABLE="UTF8"):0 if $t write "file open ok",!use file read lineZw lineZZDUMP line ;;; see I/O device guide for more details The name of the io table is really just UTF8 with no hyphen ! So you force translation to internal format.