go to post Eduard Lebedyuk · Nov 16, 2019 Are you sure you want to change system routine? Is there any particular reason why you want to replace Cache for IRIS in code? Anyway, is IRISLIB database writable? Here's how you can make database writable. Open System Management Portal Go To: Menu (upper right corner) -> Databases Choose database you want to modify Set/remove ReadOnly flag Saave It's really not recommended for IRISLIB.
go to post Eduard Lebedyuk · Nov 16, 2019 I think virtual PDF printer can help in this situation. From a cursory search LibreOffice does not seem to be ported to AIX. You can try to compile it from source with AIX Toolbox for Linux Applications.
go to post Eduard Lebedyuk · Nov 16, 2019 Third parameter is expire: d %response.SetCookie("XXXXX",%session.SessionId,"expirationdate") For example: d %response.SetCookie("XXXXX",%session.SessionId,"Wed, 31 Oct 2020 00:00:00 GMT")
go to post Eduard Lebedyuk · Nov 15, 2019 Are you able to open and login into System Management Portal? http://ip:52773/csp/sys/UtilHome.csp
go to post Eduard Lebedyuk · Nov 15, 2019 Have you specified Address? Looks empty. If it's GCP do you have a static public IP address/hostname you can connect to? Can you open management portal?
go to post Eduard Lebedyuk · Nov 14, 2019 You need to use the IDE to edit routines. For WRC access/Studio write to your InterSystems contact. Have you tried installing Atelier or VS Code? They are available without registration.
go to post Eduard Lebedyuk · Nov 14, 2019 Use one of the IDEs available to edit routines, classes, etc. You can use Studio, Atelier or VS Code (Implementation 1, Implementation 2).
go to post Eduard Lebedyuk · Nov 14, 2019 You need to create a Web Application pointing to the directory you want to serve. Here's how. By default "root" directory (C:/InterSystems/Cache/CSP/ in your case) is not served, rather each folder there is a separate Web Application.
go to post Eduard Lebedyuk · Nov 14, 2019 Yes, try this instead (in adaptor): Method OnTask() As %Status { Set sc = ##super() // all rows were just processed // add your logic here If '$IsObject(..%CurrResultSet) { Set ^dbg($i(^dbg)) = "Last row" } Quit sc } Worked for me.
go to post Eduard Lebedyuk · Nov 13, 2019 It all depends on your locale. In RUSW for example UTF8 is the default, bit not in English locales. You can also use ^NLS to check/modify the defaults.
go to post Eduard Lebedyuk · Nov 13, 2019 You can use both: [ SqlComputeOnChange = (%%INSERT, %%UPDATE) ]
go to post Eduard Lebedyuk · Nov 13, 2019 You can change the charset by setting this global: set ^%SYS("CSP","DefaultFileCharset")="utf-8"
go to post Eduard Lebedyuk · Nov 10, 2019 Do you want for each Movie object (row) to guarantee that it's Actors property would be unique (containing only distinct Actors)? Or is it something else? Can you show us examples of correct and incorrect Movie records?
go to post Eduard Lebedyuk · Nov 7, 2019 Some questions/notes: 1. Why are you not using relationships? 2. If you have an object, which references another object in a property and you save a base object all it's properties-objects are also saved automatically. Have you thought about setting all references before save and after that only calling %Save() once? 3. I'd really recommend against relying on auto-incremental ID matches. They are NOT guaranteed to be equal. 4. The answer to your original question depends on where the failure was. %OnAfterSave is in transaction and is rolled back. However $Increment used to get hew IDs is not rolled back (as per documentation).
go to post Eduard Lebedyuk · Nov 5, 2019 If you want it stored, make it triggered computed like this: Property LabCode As %Library.String(MAXLEN = 64) [ SqlColumnNumber = 5, SqlComputeCode = { set {*}= $EXTRACT({LabName},0,3)_" "_{LabID}}, SqlComputed, SqlComputeOnChange = LabName ]; Docs. Note that it wouldn't recalc LabCode values for existing rows. If you need that, trigger recalculation with trivial update.
go to post Eduard Lebedyuk · Nov 5, 2019 Use {%%ID}. Here's an example: Class util.Calc Extends %Persistent { Property calc As %String [ Calculated, SqlComputeCode = {set {*} = {%%ID}}, SqlComputed ]; /// do ##class(util.Calc).Test() ClassMethod Test() { set obj = ..%New() set sc = obj.%Save() do ..AllFunc().%Display() } Query All() As %SQLQuery { SELECT * FROM util.Calc } } Calling: do ##class(util.Calc).Test() Returns: ID calc 1 1 Docs.