go to post Eduard Lebedyuk · Jul 30, 2021 I think the preferred way is to use $SYSTEM.OBJ.Export (or even better - VCS) instead of direct global manipulation to export code.
go to post Eduard Lebedyuk · Jul 29, 2021 Set in the BP/BPL classes: Parameter SKIPMESSAGEHISTORY = 1; it would improve journaling.
go to post Eduard Lebedyuk · Jul 28, 2021 The BP (and the entire production) is down for the entire modification/compilation/update. The issue is that for existing instances ResponseHandlers should be updated after BP compilation to point to the new values.
go to post Eduard Lebedyuk · Jul 28, 2021 For the case where only a new OnResponse method is added the workaround is executing these update queries: UPDATE process.Context__ResponseHandlers SET "_ResponseHandlers" = 'OnResponseXYZ' WHERE "_ResponseHandlers" = 'OnResponseABC' Where ABC is an old method name, XYZ is a new method name. In a case of several new methods they should be executed from the largest number first.
go to post Eduard Lebedyuk · Jul 27, 2021 Do you have a Swagger? If so you can generate a client using Open API Client Gen community project by @Lorenzo Scalese.
go to post Eduard Lebedyuk · Jul 27, 2021 Unable to reproduce. Here's my test routine: ByRef kill a set a = 1 set a(1) = 2 do Test(.a) zw a Test(a) set a(1) = a(1) + 1 set a(2) = -1 And here's an invocation result: >d ^ByRef a=1 a(1)=3 a(2)=-1 as you can see a new subscript has been added successfully.
go to post Eduard Lebedyuk · Jul 27, 2021 Change httpd.conf in <iris>\httpd\conf and restart iris (or at least the web server).
go to post Eduard Lebedyuk · Jul 27, 2021 Are you using Apache2 (private web server is Apache2)? What's your AllowEncodedSlashes value? You need both AllowEncodedSlashes = true and encoding the parameter for this to work.
go to post Eduard Lebedyuk · Jul 23, 2021 Datatype classes are used to define object properties, they allow to: Validate values both generic (for example any defined %Integer property by default checks that it's value is an integer) and based on datatype parameters (for example you can have an %Integer(MINVAL=0, MAXVAL=9) property which in addition to checking that it's value is an integer would check that integer value is between 0 and 9) Provide different representations based on context, specifically: Logical (what's stored in globals) Display (what's shown in object) XSD (for XML export/import) ODBC (returned in SQL) Provide generators for utility methods. Article on some examples. Docs.
go to post Eduard Lebedyuk · Jul 22, 2021 Here's an example: Class User.Assert Extends Ens.BusinessProcess [ ClassType = persistent, Language = objectscript ] { Method OnRequest(pRequest As Ens.Request, Output pResponse As Ens.Response) As %Status { Set pResponse = ##class(Ens.Response).%New() $$$LOGINFO("$$$ASSERT(1)") $$$ASSERT(1) // skipped $$$LOGINFO("$$$LOGASSERT(1)") $$$LOGASSERT(1) $$$LOGINFO("$$$ASSERT(0)") $$$ASSERT(0) $$$LOGINFO("$$$LOGASSERT(0)") $$$LOGASSERT(0) Quit $$$OK } }
go to post Eduard Lebedyuk · Jul 22, 2021 This looks more like a WRC issue, but I'd wager a guess that the first and second query use different indices. To be more specific the second query does not use some index due to the need to traverse all RPE.Veterinario rows due to the vet.numConselho > 0 condition. To solve this issue try to rebuild all indices for these 3 tables.
go to post Eduard Lebedyuk · Jul 22, 2021 It's a special type of event which is only written to the database if the assert is false. It accepts one argument which must evaluate into 0 or 1. Check the docs for more info.
go to post Eduard Lebedyuk · Jul 17, 2021 Add: set request.FollowRedirect = $$$YES before sending a GET request.
go to post Eduard Lebedyuk · Jul 17, 2021 There are two ways to do that: 1. Mappings. Map classes and globals into the namespace you're querying from. This would work if there's no global/class collisions of course. 2. Custom queries. Here's an article on the topic. And here's an example. 3. Just set $namespace before running your query. Works only if you need to query one other namespace at a time. Example.