go to post Robert Cemper · May 7, 2023 Typical licensing happens by user by processes - every user gets 25 processes slotsif you exceed this 25 every process consumes its own license.so up to 25 you consume 1 license but by #26 you convert to 26 licenses consumedthen the total number of license slots counts.But there are also other licensing models. You should check with ISC Sales or WRC which one applies. $SYSTEM.License.KeyLicenseUnits() returns the number of license units authorized by the active key. $SYSTEM.License.LUConsumed() returns number of license units currently consumed at the local instance. there are more $SYSTEM.License...... that might be of interest. Docu %SYSTEM.License
go to post Robert Cemper · May 1, 2023 Permission points to some missing user privilegesstart your container in foreground (no -d switch) to see the full log with details
go to post Robert Cemper · May 1, 2023 It is from 2017During the Quality Assurance of the article it was updated
go to post Robert Cemper · Apr 28, 2023 @Yuri Marx thank you.! To some extent, I'm an actor too and enjoy pleasing my audience
go to post Robert Cemper · Apr 26, 2023 I have a straight Caché only Docker available for you:Here is the GitHub Repo until publication on OEX is approved
go to post Robert Cemper · Apr 25, 2023 If you need Caché in Docker you may use this examplehttps://community.intersystems.com/post/using-ecp-across-iris-and-cach%C3%A9An individual license is only required if you want to use ECPIt's the single user version 2018.* and should fit your needs
go to post Robert Cemper · Apr 19, 2023 we need to handle 2 types of line terminators. $C(13,10) and $C(10)+ BASE64 holds only printable characters, $C(13) is a NONO in Base64.So:if you always use $c(10) as line terminator then set ln=$TRANSLATE(ln,$c(13)) will remove also a leftover $C(13) if existingor just do nothing.
go to post Robert Cemper · Apr 17, 2023 right! Just the stating numeric is important i will elaborate on the background of objects
go to post Robert Cemper · Apr 17, 2023 It is dating back to the very early days of Caché. Even before my time @ ISC(my guess >25 years) There was a lot of $Z* stuff e.g. $ZU(..) That was not meant to be used for applications.Just for internal use in system utilities. With no public Docs.Some became public over time, mostly renamed, and were documented.I just found it by examing some related system functions.
go to post Robert Cemper · Apr 16, 2023 MUCH more simple and shorter kill set a=##class(Sample.Person).%OpenId(2) set b=##class(Sample.Person).%OpenId(12) set c=##class(Sample.Person).%OpenId(111) set obj=$zobjref("2@Sample.Person") ;; BINGO zw a=<OBJECT REFERENCE>[1@Sample.Person] b=<OBJECT REFERENCE>[2@Sample.Person] c=<OBJECT REFERENCE>[3@Sample.Employee] obj=<OBJECT REFERENCE>[2@Sample.Person]
go to post Robert Cemper · Apr 16, 2023 there was some GOLF work to do set o="" for set o=$zobjnext(o) quit:(o="")||($p(o,"?")=x)
go to post Robert Cemper · Apr 16, 2023 it is possible. but an OREF is always a LOCAL reference !see this example SAM>kill SAM>set a=##class(Sample.Person).%OpenId(2) SAM>set b=##class(Sample.Person).%OpenId(12) SAM>set c=##class(Sample.Person).%OpenId(111) SAM>set x="3@Sample.Person" ;what we look for SAM>set o="" ;this will be our OREF SAM>zw a=<OBJECT REFERENCE>[4@Sample.Person] b=<OBJECT REFERENCE>[3@Sample.Person] c=<OBJECT REFERENCE>[2@Sample.Employee] o="" x="3@Sample.Person" SAM>;; now we convert our String x to OREF o SAM>for set o=$zobjnext(o) quit:(o="")||($p(o,"?")=x) SAM>zw ;; we did it a=<OBJECT REFERENCE>[4@Sample.Person] b=<OBJECT REFERENCE>[3@Sample.Person] c=<OBJECT REFERENCE>[2@Sample.Employee] o=<OBJECT REFERENCE>[3@Sample.Person] x="3@Sample.Person" SAM> The key-oneliner:for set o=$zobjnext(o) quit:(o="")||($p(o,"?")=x)
go to post Robert Cemper · Apr 16, 2023 I'll think it over. I have some dirty ideas. need to check itit's kind of useful golf for me.
go to post Robert Cemper · Apr 16, 2023 you just can copy an already existing reference SET rerf=a from the example above to show all open objects:Do $System.OBJ.ShowObjects()Oref Class Name Ref Count---- ---------- ---------1 Sample.Person 12 Sample.Person 13 Sample.Employee 14 Sample.Company 1 OR Do $System.OBJ.ShowObjects("/detail=1")Oref Class Name Ref Count---- ---------- ---------1 Sample.Person 1+----------------- general information ---------------| oref value: 1| class name: Sample.Person| %%OID: $lb("2","Sample.Person")| reference count: 1+----------------- attribute values ------------------| %Concurrency = 1 <Set>| DOB = 32225| Name = "Ubertini,Brian S."| SSN = "231-12-5250"+----------------- swizzled references ---------------| i%FavoriteColors = "" <Set>| r%FavoriteColors = "" <Set>| i%Home = $lb("9177 First Court","Bensonhurst","SC",42658) <Set>| r%Home = "" <Set>| i%Office = $lb("260 First Place","Larchmont","NV",99593) <Set>| r%Office = "" <Set>| i%Spouse = ""| r%Spouse = ""+--------------- calculated references ---------------| Age <Get>+----------------------------------------------------- 2 Sample.Person 1+----------------- general information ---------------| oref value: 2| class name: Sample.Person| %%OID: $lb("12","Sample.Person")| reference count: 1+----------------- attribute values ------------------| %Concurrency = 1 <Set>| DOB = 33423| Name = "Waal,Jeff V."| SSN = "137-61-1656"+----------------- swizzled references ---------------| i%FavoriteColors = "" <Set>| r%FavoriteColors = "" <Set>| i%Home = $lb("3872 Washington Place","Newton","NJ",80886) <Set>| r%Home = "" <Set>| i%Office = $lb("4339 Second Drive","Albany","PA",79202) <Set>| r%Office = "" <Set>| i%Spouse = ""| r%Spouse = ""+--------------- calculated references ---------------| Age <Get>+----------------------------------------------------- 3 Sample.Employee 1+----------------- general information ---------------| oref value: 3| class name: Sample.Employee| %%OID: $lb("111","Sample.Employee")| reference count: 1+----------------- attribute values ------------------| %Concurrency = 1 <Set>| DOB = 50109| Name = "Yezek,Chelsea F."| SSN = "227-72-8394"| Salary = 69426| Title = "Executive WebMaster"+----------------- swizzled references ---------------| i%Company = 2 <Set>| r%Company = "" <Set>| i%FavoriteColors = ""|i%FavoriteColors(1) = "Blue"|i%FavoriteColors(2) = "Yellow"| r%FavoriteColors = "" <Set>| i%Home = $lb("7573 Main Drive","Bensonhurst","MA",97453) <Set>| r%Home = "" <Set>| i%Notes = "" <Set>| r%Notes = "" <Set>| i%Office = $lb("7403 Oak Place","Vail","NH",46047) <Set>| r%Office = "" <Set>| i%Picture = "" <Set>| r%Picture = "" <Set>| i%Spouse = 89| r%Spouse = ""+--------------- calculated references ---------------| Age <Get>+-----------------------------------------------------4 Sample.Company 1+----------------- general information ---------------| oref value: 4| class name: Sample.Company| %%OID: $lb("9","Sample.Company")| reference count: 1+----------------- attribute values ------------------| %Concurrency = 1 <Set>| Mission = "Leaders in dynamic nano-application development instruments for the desktop."| Name = "BioDyne LLC."| Revenue = 928565856| TaxID = "X6668"+----------------- swizzled references ---------------| i%Employees = $lb("Sample.Employee","Company",4,"many",1,1) <Set>| r%Employees = "" <Set>+----------------------------------------------------- Then you can use %%OID to generate your own OREF like set ref=##class(%Persistent).%Open($lb("9","Sample.Company"))It's not really comfortable
go to post Robert Cemper · Apr 16, 2023 Grazie @Luca Ravazzolo !You hit the point: could create security vulnerability my intention was to see the license capacity used for this type of service
go to post Robert Cemper · Apr 16, 2023 @ is just a separatorwhile n is just an internal sequence number within your partitionsee this example SAMPLES>s a=##class(Sample.Person).%OpenId(2) SAMPLES>s b=##class(Sample.Person).%OpenId(12) SAMPLES>s c=##class(Sample.Employee).%OpenId(111) SAMPLES>s d=##class(Sample.Company).%OpenId(9) SAMPLES>zw a=<OBJECT REFERENCE>[1@Sample.Person] b=<OBJECT REFERENCE>[2@Sample.Person] c=<OBJECT REFERENCE>[3@Sample.Employee] d=<OBJECT REFERENCE>[4@Sample.Company] SAMPLES>
go to post Robert Cemper · Apr 16, 2023 I try to test contributions to the contestbut IRIS Cloud SQL just shows Deployment Pendingfor HOURS !!And no contact or mail to report this breakdownIt is really disappointing!
go to post Robert Cemper · Apr 14, 2023 I googled "JSON max property size" and found So whoever is the recipient, there will be troubles with larger propertiesI'd look for something to chop it into smaller pieces. (elephant approach)
go to post Robert Cemper · Apr 13, 2023 Could be a practical use of embedded python.https://www.w3schools.com/python/ref_string_split.aspa little more typing if you use $LOCATE function