go to post Robert Cemper · Nov 23, 2021 the example breaks on Win and in Docker with <DIVIDE>. PullRequest for fix is pending
go to post Robert Cemper · Nov 22, 2021 Of course! Browser Caching could be a beast.I remember CSP or ZEN testing when I couldn't get rid of the old cached image version
go to post Robert Cemper · Nov 21, 2021 a typical feature of DNS resolution is caching of the translationsof servername.domain.name.tld or servername to IP addr.so the resolution is just done once.And a clever DNS would detect "oh it's me"
go to post Robert Cemper · Nov 21, 2021 in Open Exchange you find 15 examples searching for Angulare.g.angular-material-iris-starter, iris-sample-rest-angular, ....13 others
go to post Robert Cemper · Nov 19, 2021 hmmm 4 hours is a lot.What's the DB you insert it ? If external, jdbc / odbc ?
go to post Robert Cemper · Nov 18, 2021 it is possible, but I'd rate it as highly inefficient. You have been warned.working for objects and SQL /// The company this employee works for. Relationship Company As Company [ Cardinality = one, Inverse = Employees ]; Property Cname As %String [ Calculated, SqlComputeCode = {set {*}=##class(Company).%OpenId({Company}).Name }, SqlComputed ];
go to post Robert Cemper · Nov 18, 2021 what's the location to work ???? 611 N. Iron Bridge WaySpokane, WA 99202???
go to post Robert Cemper · Nov 16, 2021 It was an additional pleasure to see your verbose comments in dock-compose.yml.not just the usual plain parameters with no explanation of what the intention is!
go to post Robert Cemper · Nov 16, 2021 you may try this approach: https://openexchange.intersystems.com/package/Light-weight-EXCEL-download using separators instead or <tr><td> tags should not be a big issue,same for the appropriate document type.
go to post Robert Cemper · Nov 16, 2021 running the docker image uncovered the result (interactive:=> docker-compose up) only at stopping of the container. So I changed installer.sh and run the method from iris session This gave me the full dimension of this EXCELLENT TOOL! especially the integrity check!I just can say WOW. So delegating of routine jobs of a System Manager becomes safe and easy. This is the output that kicked me: ------------------------------------------------------------------------------- irisowner@7aa9b053e544:/opt/irisapp$ iris session iris -U "%SYS" Node: 7aa9b053e544, Instance: IRIS %SYS>do ##class(BackupChecker.Installer).restoreAll("backup.cbk") Starting to restore the Backup... It will take some time, be patient! The following directories will be restored: c:\intersystems\iris\mgr\appcode\ => /ISC/utiles/Restore/c:\intersystems\iris\mgr\appcode\/ c:\intersystems\iris\mgr\appdata\ => /ISC/utiles/Restore/c:\intersystems\iris\mgr\appdata\/ c:\intersystems\iris\mgr\cacheuser\ => /ISC/utiles/Restore/c:\intersystems\iris\mgr\cacheuser\/ c:\intersystems\iris\mgr\remote\ => /ISC/utiles/Restore/c:\intersystems\iris\mgr\remote\/ c:\intersystems\iris\mgr\user\ => /ISC/utiles/Restore/c:\intersystems\iris\mgr\user\/ Cannot mount database in /ISC/utiles/Restore/c:\intersystems\iris\mgr\cacheuser\/ because its default collation is not available (see messages.log). c:\intersystems\iris\mgr\cacheuser\ will not be restored. Cannot mount database in /ISC/utiles/Restore/c:\intersystems\iris\mgr\remote\/ because its default collation is not available (see messages.log). c:\intersystems\iris\mgr\remote\ will not be restored. ***Restoring c:\intersystems\iris\mgr\appcode\ to /ISC/utiles/Restore/c:\intersystems\iris\mgr\appcode\/ at 10:18:55 469 blocks restored in 0.0 seconds for this pass, 469 total restored. ***Restoring c:\intersystems\iris\mgr\appdata\ to /ISC/utiles/Restore/c:\intersystems\iris\mgr\appdata\/ at 10:18:55 413 blocks restored in 0.0 seconds for this pass, 413 total restored. Starting skip of c:\intersystems\iris\mgr\cacheuser\. skipped 77 blocks in .007096 seconds. Starting skip of c:\intersystems\iris\mgr\remote\. skipped 77 blocks in .006635 seconds. ***Restoring c:\intersystems\iris\mgr\user\ to /ISC/utiles/Restore/c:\intersystems\iris\mgr\user\/ at 10:18:55 656 blocks restored in 0.1 seconds for this pass, 656 total restored. ***Restoring c:\intersystems\iris\mgr\appcode\ to /ISC/utiles/Restore/c:\intersystems\iris\mgr\appcode\/ at 10:18:55 1 blocks restored in 0.0 seconds for this pass, 470 total restored. ***Restoring c:\intersystems\iris\mgr\appdata\ to /ISC/utiles/Restore/c:\intersystems\iris\mgr\appdata\/ at 10:18:55 1 blocks restored in 0.0 seconds for this pass, 414 total restored. Starting skip of c:\intersystems\iris\mgr\cacheuser\. skipped 1 blocks in .000007 seconds. Starting skip of c:\intersystems\iris\mgr\remote\. skipped 1 blocks in .000008 seconds. ***Restoring c:\intersystems\iris\mgr\user\ to /ISC/utiles/Restore/c:\intersystems\iris\mgr\user\/ at 10:18:55 1 blocks restored in 0.0 seconds for this pass, 657 total restored. ***Restoring c:\intersystems\iris\mgr\appcode\ to /ISC/utiles/Restore/c:\intersystems\iris\mgr\appcode\/ at 10:18:55 1 blocks restored in 0.0 seconds for this pass, 471 total restored. ***Restoring c:\intersystems\iris\mgr\appdata\ to /ISC/utiles/Restore/c:\intersystems\iris\mgr\appdata\/ at 10:18:55 1 blocks restored in 0.0 seconds for this pass, 415 total restored. Starting skip of c:\intersystems\iris\mgr\cacheuser\. skipped 1 blocks in .000022 seconds. Starting skip of c:\intersystems\iris\mgr\remote\. skipped 1 blocks in .000008 seconds. ***Restoring c:\intersystems\iris\mgr\user\ to /ISC/utiles/Restore/c:\intersystems\iris\mgr\user\/ at 10:18:55 1 blocks restored in 0.0 seconds for this pass, 658 total restored. Mounting /ISC/utiles/Restore/c:\intersystems\iris\mgr\appcode\/ /ISC/utiles/Restore/c:\intersystems\iris\mgr\appcode\/ ... (Mounted) Mounting /ISC/utiles/Restore/c:\intersystems\iris\mgr\appdata\/ /ISC/utiles/Restore/c:\intersystems\iris\mgr\appdata\/ ... (Mounted) Mounting /ISC/utiles/Restore/c:\intersystems\iris\mgr\user\/ /ISC/utiles/Restore/c:\intersystems\iris\mgr\user\/ ... (Mounted) [Journal not applied to any directory] Restored completed! Starting the Integrity report Directory: /ISC/install/mgr/ No errors found Summary of blocks in /ISC/install/mgr/ 87 Pointer Level blocks 696kb (16% full) 5,908 Data Level blocks 46MB (84% full) 2,553 Big String blocks 19MB (86% full) # = 1,011 8,563 Total blocks 66MB (84% full) 2,951 Free blocks 23MB Elapsed time = 14.3 seconds. Directory: /ISC/install/mgr/irisaudit/ No errors found Summary of blocks in /ISC/install/mgr/irisaudit/ 34 Pointer Level blocks 272kb (0% full) 54 Data Level blocks 432kb (33% full) 4 Big String blocks 32kb (99% full) # = 1 107 Total blocks 856kb (20% full) 21 Free blocks 168kb Elapsed time = 6.1 seconds. Directory: /ISC/install/mgr/irislocaldata/ No errors found Summary of blocks in /ISC/install/mgr/irislocaldata/ 35 Pointer Level blocks 280kb (1% full) 213 Data Level blocks 1704kb (58% full) 25 Big String blocks 200kb (74% full) # = 13 288 Total blocks 2304kb (49% full) 1,130 Free blocks 9040kb Elapsed time = 6.5 seconds. Directory: /ISC/install/mgr/iristemp/ No errors found Summary of blocks in /ISC/install/mgr/iristemp/ 46 Pointer Level blocks 368kb (0% full) 81 Data Level blocks 648kb (33% full) 0 Big String blocks 142 Total blocks 1136kb (19% full) 1,177 Free blocks 9416kb Elapsed time = 8.5 seconds. Directory: /ISC/install/mgr/user/ No errors found Summary of blocks in /ISC/install/mgr/user/ 50 Pointer Level blocks 400kb (0% full) 73 Data Level blocks 584kb (27% full) 0 Big String blocks 138 Total blocks 1104kb (14% full) 1,270 Free blocks 10160kb Elapsed time = 8.9 seconds. Directory: /ISC/utiles/Restore/c:\intersystems\iris\mgr\appcode\/ No errors found Summary of blocks in /ISC/utiles/Restore/c:\intersystems\iris\mgr\appcode\/ 32 Pointer Level blocks 256kb (2% full) 379 Data Level blocks 3032kb (71% full) 43 Big String blocks 344kb (88% full) # = 12 469 Total blocks 3752kb (66% full) 1,067 Free blocks 8536kb Elapsed time = 0.1 seconds. Directory: /ISC/utiles/Restore/c:\intersystems\iris\mgr\appdata\/ No errors found Summary of blocks in /ISC/utiles/Restore/c:\intersystems\iris\mgr\appdata\/ 57 Pointer Level blocks 456kb (0% full) 241 Data Level blocks 1928kb (66% full) 100 Big String blocks 800kb (92% full) # = 30 413 Total blocks 3304kb (61% full) 995 Free blocks 7960kb Elapsed time = 0.1 seconds. Directory: /ISC/utiles/Restore/c:\intersystems\iris\mgr\user\/ No errors found Summary of blocks in /ISC/utiles/Restore/c:\intersystems\iris\mgr\user\/ 68 Pointer Level blocks 544kb (1% full) 447 Data Level blocks 3576kb (70% full) 126 Big String blocks 1008kb (90% full) # = 33 656 Total blocks 5248kb (65% full) 752 Free blocks 6016kb Elapsed time = 0.2 seconds. Directory: /usr/irissys/mgr/enslib/ No errors found Summary of blocks in /usr/irissys/mgr/enslib/ 130 Pointer Level blocks 1040kb (33% full) 14,684 Data Level blocks 114MB (97% full) 4,407 Big String blocks 34MB (88% full) # = 1,606 19,236 Total blocks 150MB (94% full) 1,500 Free blocks 11MB Elapsed time = 12.6 seconds. Directory: /usr/irissys/mgr/irislib/ No errors found Summary of blocks in /usr/irissys/mgr/irislib/ 180 Pointer Level blocks 1440kb (60% full) 39,001 Data Level blocks 304MB (98% full) 11,177 Big String blocks 87MB (86% full) # = 4,234 50,373 Total blocks 393MB (95% full) 59 Free blocks 472kb Elapsed time = 7.9 seconds. Directory: /usr/irissys/mgr/zpm/ No errors found Summary of blocks in /usr/irissys/mgr/zpm/ 44 Pointer Level blocks 352kb (11% full) 2,129 Data Level blocks 16MB (97% full) 453 Big String blocks 3624kb (88% full) # = 175 2,641 Total blocks 20MB (94% full) 431 Free blocks 3448kb Elapsed time = 7.7 seconds. Run successfully and found NO errors! Databases are VALIDATED! %SYS> -------------------------------------------------------------------------------
go to post Robert Cemper · Nov 15, 2021 callSQL ; ; compose an SQL Statement set query="SELECT something FROM TABLE_A JOIN TABLE_B ON ...........WHERE ...." set rs=##class/%ResultSet.%NEW() set sc=rs.Prepare(query) if 'sc write $system.OBJ.DisplayError(sc) set sc=rs.Execute() if 'sc write $system.OBJ.DisplayError(sc) while rs.%Next() { ;consume the result set row by row } OK yo can write this in .INT, in .MAC, in Methods .....and SORRY:IDX is still just 3 chars to me, as Athena is 6 chars. (or the Greek Godess of Wisdom)
go to post Robert Cemper · Nov 12, 2021 BIG CONGRATULATIONS to the team that made this possible! When I joined ISC ~20 years ago I was shocked that there was no exchangeof information and code between customers. There was just nothing.As SSE I met customers that didn't know of each other just living within a mile's distance. I made noise and rumors and proposals to change this.Located in Vienna(Austria, EU) with no local office I had zero influence.I was like an alien from the outer edge of the milky way. Only 4 years ago, 3 years after my retirement from ISC, and just by accident, I met the Community. I'm happy that "my personal" dream became so successful true.Thanks to the amazing team and their many ideas that move the Community forward.
go to post Robert Cemper · Nov 11, 2021 I assume your Classmethod runs from console / terminal.running as scheduled Task you are always running in Background.So where do you expect all the WRITE to go.I did neither see a log file or a Spool device.
go to post Robert Cemper · Nov 11, 2021 I just found this. https://stackoverflow.com/questions/3897694/python-convert-csv-to-dbf (just 1 of several dozens) You have no embedded Py in Caché. But you could create a CSVand then convert it to DBF with an external converter triggered by some $ZF(-1) Or via CPIPE device.
go to post Robert Cemper · Nov 11, 2021 "ok but where should I specify $ or $.firstName, please answer if you know this."Sorry, I'm lost as you. From the docs I understand this is a position definition. Though I have no idea how to apply it to the %iFind.
go to post Robert Cemper · Nov 11, 2021 There is a basic mistake:docs refer to "Indexing a JSON Object aka %DynamicObject But in your example, you use %Stream.GlobalCharacter which is a totally different objectThe fact that it contains a JSON formatted string is not visible from the outside of the stream.Instead of writing it to the Stream (which is an overkill anyhow) convert it and store it as JSON Object. That's what I had to do in my example
go to post Robert Cemper · Nov 10, 2021 OK. I was blocked by other activities. But this is my solution:Assumption1: Property JSON As %Stream.GlobalCharacter;Assumption2: You know the properties you want to index, as with normal tables The idea: A calculated property is mainly used for building indices The solution: the Stream needs to be presented as %DynamicObject to get the value. And here is it: Property JSON As %Stream.GlobalCharacter; Property FirstName As %String [ Calculated, SqlComputed , SqlComputeCode = { set {*}=..GetDyn({ID},"FirstName") } ]; Property LastName As %String [ Calculated, SqlComputed , SqlComputeCode = { set {*}=..GetDyn({ID},"LastName") } ]; Index fn on FirstName; Index ln on LastName; ClassMethod GetDyn(ID As %Integer, item = "") As %String { set JSON=..%OpenId(ID).JSON do JSON.Rewind() set st=JSON.Read(3000000) set dyno={}.%FromJSON(st) set rep=$Property(dyno,item) quit rep } There is room to improve the speed of the method. Also saving your keys in individual properties during data load could be a valid approach.The principle is always the same. %Stream --> %DynamicObject --> extract keys by name
go to post Robert Cemper · Nov 10, 2021 Just an idea:If you use calculated properties (==columns) for FirstName, LastNameyou can create an index on these properties without increasing the storage requirement.