go to post Robert Cemper · Apr 14, 2021 try: Property alternateId As %String(%JSONNULL = 1); { "alternateId": null , "benefitPlanId": "FLSN4444",
go to post Robert Cemper · Apr 14, 2021 If you get back large results sets that you use for further processing PyODBC will be better suited.But for a small number of values, the overhead at both ends to service ODBC structures may not pay offsince both ends have to get their internal structure in to ODBC and out of it.I don't have measured the difference so this is just a guess:- for the typical embedded SQL returning < 1..10 rows a MethodCall might be more efficient.This doesn't prevent you from using and tuning an SQL SELECT isolated in IRIS environment. In any case, the transfer between PY and IRIS is the slowest piece.The less data you transport the faster the action is completed.And transport in blocks wins over isolated pieces in loops.
go to post Robert Cemper · Apr 14, 2021 there is Native API for Python - InterSystems IRIS Data Platform 2020.3 and embedded Python is available for testing but not released officiallyhttps://openexchange.intersystems.com/package/Trying-Embedded-Pythonhttps://openexchange.intersystems.com/package/Wsock-Embedded-Py
go to post Robert Cemper · Apr 13, 2021 There is InterSystems IRIS Adoption Guide available from WRC.It states: You should check with WRC which kit to use. But I'd personally suggest to move to IRIS NativeAPI for .NETsee also Using the Native API for .NET
go to post Robert Cemper · Apr 13, 2021 try to use a username with privileged %ALL in Health Share to distinguish between network problems and access right problems
go to post Robert Cemper · Apr 13, 2021 That's happening due to problems in the network or system stop/restart.normally it recovers without manual interventions and without data loss.levels 0 and 1 signal it's an info / warning.
go to post Robert Cemper · Apr 12, 2021 Hi, @Timothy Leavitt .# What's about a prodlog ? "JSONid public" would be nice pairing with "rowid privat" ?
go to post Robert Cemper · Apr 12, 2021 create a calculated property and it looks like any other one Property MyId As %Integer [ Calculated, SqlComputeCode = { set {*}={%%ID}}, SqlComputed ];
go to post Robert Cemper · Apr 12, 2021 this looks strange to me LITERAL ('PERSON') expected, IDENTIFIER (Person) found with not much hope:does CAST(TableA.ID AS INTEGER) instead of TableA.ID make a difference?
go to post Robert Cemper · Apr 12, 2021 indeed by CUSTOM_MyQuery(TableA.ID) you just pass 1 parameter but LinkedFundsByPerson(TableA.ID,1) might workas the signature expects 2 params some related code is generatedeven if the second param isn't used at all.You can test the Stored Procedure interactive from SMP>SQL>storedProcedures and you should be asked for 2 params
go to post Robert Cemper · Apr 11, 2021 did you consider using some of the standard MACROS available in Ensemble.inc ? $$$TRACE $$$LOGSTATUS $$$LOGERROR $$$LOGWARNING $$$LOGALERT $$$LOGINFO ....
go to post Robert Cemper · Apr 11, 2021 @Chris Bransden Without knowing the definition of CUSTOM_MyQuery(par) it's no possible to answer.The error message indicates that a literal is expected but indeed TableA.ID is a column reference and you feed a whole resultset instead of a single value My interpretation: You want to see the rows found by CUSTOM_MyQuery()which is indeed a classical inner join. So what is the result returned by SELECT * FROM CUSTOM_MyQuery(??) ? You may try this transformation that does the same in principle SELECT * FROM TableAWHERE 0<(SELECT count(*) FROM CUSTOM_MyQuery(TableA.ID))
go to post Robert Cemper · Apr 11, 2021 nowhere. It's the purpose of deployed code not to be hacked nor debugged
go to post Robert Cemper · Apr 10, 2021 GREAT!>> unless perhaps the right person at InterSystems is reading this and gets the change put into the products. <<My hope is with you! But even if you place a Prodlog / Change Request it might be a matter of years [plural] to see this in production. Always assuming the "priests of the security grail" don't oppose.
go to post Robert Cemper · Apr 10, 2021 There is a bunch of auto-generated methods that might be useful:https://community.intersystems.com/post/useful-auto-generated-methods especially this one from @Eduard Lebedyuk ############################################################# But with PropertySetObjectId you can expedite things set person = ##class(Person).%New() set companyId = 123 do person.EmployedAtSetObjectId(companyId) The main advantage is that company object doesn't have to be opened. #############################################################
go to post Robert Cemper · Apr 10, 2021 an example of a self-referencing 1:1 relationshipit is also characterized by our "implicit join" feature -> Class Sample.Person Extends (%Persistent, %Populate) { - - - Property Spouse As Sample.Person Index sp On Spouse [ Unique ]; // to verify 1:1 - - - }
go to post Robert Cemper · Apr 10, 2021 YES ! but not it's addressed explicitly the trivial one by self-restricting 1:many to a single link inheriting of classes is a 1:1 parent-child- relationship (sample.person<-sample.employee) the normal property -> object reference (sample.employee->sample.company)