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)
go to post Robert Cemper · Apr 9, 2021 There is some 'silent' period during the night.Actually, a snapshot (~380 GB) is taken during a Freeze-Thaw window, Which is not really RO.
go to post Robert Cemper · Apr 8, 2021 the format ./IOTABLE="CP1252" applies only using the OPEN command $ZCONVERT and %Stream.FileCharacter just use "CP1252" just by the name
go to post Robert Cemper · Apr 8, 2021 In namespace %SYS you have a utility NLS that shows your installed conversion table and its short names. %SYS>d ^NLS2) Select defaults2) I/O tablesItems marked with (*) represent the locale's original default I/O table Current default--------------------- --------------------1) Process RAW (*)2) Cache Terminal UTF8 (*)3) Other terminal UTF8 (*)4) File RAW (*)5) Magtape RAW (*)6) TCP/IP RAW (*)7) System call RAW (*)8) Printer RAW (*) I/O table: 4 1) RAW (*) 2) UTF8 3) UnicodeLittle 4) UnicodeBig 5) CP1250 6) CP1251 7) CP1252 8) CP1253 9) CP1255 10) CP43711) CP850 12) CP85213) CP866 14) CP87415) EBCDIC 16) Latin217) Latin9 18) LatinC19) LatinG 20) LatinH21) LatinT So you see the shortnames but no Latin1 but CP1252 which is almost identical.the related problem is described here: https://www.i18nqa.com/debug/table-iso8859-1-vs-windows-1252.html "ISO-8859-1 (also called Latin-1) is identical to Windows-1252 (also called CP1252) except for the code points 128-159 (0x80-0x9F). ISO-8859-1 assigns several control codes in this range. Windows-1252 has several characters, punctuation, arithmetic and business symbols assigned to these code points." and Encoding Problem: ISO-8859-1 vs Windows-1252So you should check what your customer really does (some hide the fact they use Windows)The appropriate table can be used in $ZCONVERT(), ##class(%Stream.FileCharacter ) property TranslateTable OPEN command parameter /IOTABLE=
go to post Robert Cemper · Apr 7, 2021 Sorry! That doesn't indicate any reason. $zf(-1) is just a spawn.
go to post Robert Cemper · Apr 6, 2021 I just verified: Download an Ubuntu Docker image Install a Caché Ububtu distribution tar + gzip the image and you are part of the game with 550 MB only
go to post Robert Cemper · Apr 5, 2021 If this record is Property Record as %STRING; you can use 2 calculated properties /// true if Header/Trailer Property HeaderTrailer as %Boolean [Calculated,SqlComputed, SqlComputeCode = { set {*} = $extract({Record},1,20)?20" " } ]; /// make integer, 0 for Header / Trailer Property RecordType as %Integer [Calculated,SqlComputed, SqlComputeCode = { set {*} = $extract({Record},21,23)\1 } ];
go to post Robert Cemper · Apr 4, 2021 @Mike Minor I just installed a full instance on WIN10. boooooring slow!!If you don't disable AutoStart @ Boot in the config Win reacts rather confused.Especially if your drive has changed by dynamics from F : -> D: or similar.In addition, a lot of info is saved in Win-Registry. Overall performance is not a thrill but acceptable Next trouble: Dismount of the flash drive. Painful My strong recommendation: Use a Docker container instead. Example here CrossECP-CacheThen you are really mobile and fast
go to post Robert Cemper · Apr 4, 2021 using LOG^%ETN gives a full stack trace. without breaking the processyou just have to place it into your code at the critical points.https://docs.intersystems.com/iris20201/csp/docbook/Doc.View.cls?KEY=GCOS_errors#GCOS_errors_log_etn
go to post Robert Cemper · Apr 4, 2021 Instead of the double $ZF() I'd suggest using the query in Library class %File. set rs=##class(%ResultSet).%New("%File:FileSet") do rs.Execute(SDIR,"*",1) while rs.Next() { write !,rs.GetData(1) }