go to post Robert Cemper · Mar 9, 2018 there is an external config file in %cacheroot%/cache.cpf that holds your configuration. It is loaded at startup.You can verify it with any text editor and check especially directories. of your DBsAnd you see also NAMESPACE definitions.The important part is at the beginning.[ConfigFile]Version=2017.226[Databases]CACHESYS=C:\InterSystems\17E20\mgr\CACHELIB=C:\InterSystems\17E20\mgr\cachelib\CACHETEMP=C:\InterSystems\17E20\mgr\cachetemp\CACHE=C:\InterSystems\17E20\mgr\cache\CACHEAUDIT=C:\InterSystems\17E20\mgr\cacheaudit\BLOCKS=C:\opt\blocks\data\DOCBOOK=C:\InterSystems\17E20\mgr\docbook\ENSDEMO=C:\InterSystems\17E20\mgr\ensdemo\ENSEMBLE=C:\InterSystems\17E20\mgr\ensemble\ENSEMBLEENSTEMP=C:\InterSystems\17E20\mgr\ensemble\ensembleenstemp\ENSEMBLESECONDARY=C:\InterSystems\17E20\mgr\ensemble\ensemblesecondary\ENSLIB=C:\InterSystems\17E20\mgr\enslib\SAMPLES=C:\InterSystems\17E20\mgr\samples\TEST=C:\opt\blocks\test\USER=C:\InterSystems\17E20\mgr\user\[Namespaces]%SYS=CACHESYSBLOCKS=BLOCKSDOCBOOK=DOCBOOKENSDEMO=ENSDEMOENSEMBLE=ENSEMBLESAMPLES=SAMPLESUSER=USER
go to post Robert Cemper · Mar 8, 2018 IF you did a Restore of "%SYS" DB (.../mgr/CACHE.DAT)then you may have destroyed essential instance specific installation informationGo back and do a fresh install. And don't touch %SYS during restore.
go to post Robert Cemper · Mar 8, 2018 IF it was really only permissions you could run ^SECURITY from terminal promptUSER>zn "%SYS"%SYS>d ^SECURITY1) User setup2) Role setup3) Service setup4) Resource setup5) Application setup6) Auditing setup7) Domain setup8) SSL configuration setup9) Mobile phone service provider setup10) OpenAM Identity Services setup11) Encryption key setup12) System parameter setup13) X509 User setup14) Exit Option? 11) Create user2) Edit user3) List users4) Detailed list users5) Delete user6) Export users7) Import users8) Exit or Option? 21) Create role2) Edit role3) List roles4) Detailed list roles5) Delete role6) Export roles7) Import roles8) Exit or Option? 31) Edit service2) List services3) Detailed list services4) Export services5) Import services6) Exit Option? 4Export which services? * => *Export to file name ServicesExport.xml =>and so on...and Import on your test server .....But take care how you handle external connections!
go to post Robert Cemper · Mar 8, 2018 backups typically backup a DB in Cachè but never a full installation. (e.g ref to registry and similar)Do a fresh installation and next move / restore your DB
go to post Robert Cemper · Mar 8, 2018 take a look to class %SYSTEM.WorkMgr.I think this could match your description.http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=%25SYSTEM.WorkMgr
go to post Robert Cemper · Mar 8, 2018 Thanks Vitaly!My almost first task when I joined ISC was to translate a CSP training developed by "Salva" Jose-Tomas Salvadorfrom Spanish to German and English.So I have very personal feelings about this subject.
go to post Robert Cemper · Mar 7, 2018 Customizing DashboardViewer may take a lot of time for testing with questionable success.Alternate approach: Trigger your source control manually.- create a method to export your changes. example:#; find actual changes &SQL(select List(documentname) into :list from %DeepSee_Dashboard.Definition where timemodified-now()+1>0 ) set sc=$system.OBJ.Export(list,"DeepSee.xml")- next define an Action (in a KPI) that calls you methodhttp://localhost:57774/csp/docbook/DocBook.UI.Page.cls?KEY=D2IMP_ch_action- next define a Control "button" to your main Widget and add this Action to activate your source management.I admit. It's no an automatic & generic solution as directly inside DashboardViewer (engineering may have a hint howto use it) but you get the advantage to decide which dashboard you want to manage and whensince not every change in dashboards may need to go immediately to source controlAnd it's definitely simpler than to do it our of Studio.
go to post Robert Cemper · Mar 7, 2018 sorry!examining the source it turns out that this parameter didn't make it to call parameters (ZENURL) nor to settings.though I found a bunch of comments // +DTB103 - source controlwith no hint how to use it.It might be necessary to build a private copy.Attention on line +7 says: /// This class should be considered as *internal*; subclassing is not supported.
go to post Robert Cemper · Mar 7, 2018 Hi Evgeny,class %DeepSee.UserPortal.DashboardViewer has a property saveAction as %ZEN.Datatype.string;Container for the current save mode for source control.http://localhost:57774/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=samples&CLASSNAME=%25DeepSee.UserPortal.DashboardViewer#PROPERTY_saveActionif you combine this with standard $system.OBJ.Export() this may do it.SAMPLES>s sc=$system.OBJ.Export("B*.DFI","DeepSee.xml") Exporting to XML started on 03/07/2018 09:36:32Exporting type : Basic Dashboard Demo.dashboard.DFIExport finished successfully.
go to post Robert Cemper · Mar 5, 2018 and if you write this string to a %Stream.FileCharacter It's a file again.http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=%25Stream.FileCharacterand your file is base64 encoded
go to post Robert Cemper · Mar 5, 2018 try to encode / decode your text to base64 to make sure you don't get in conflict with transmission control chars.http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=%25SYSTEM.Encryption#METHOD_Base64Encodehttp://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=%25SYSTEM.Encryption#METHOD_Base64Decode
go to post Robert Cemper · Mar 4, 2018 A good friend of mine provided this solution using also JSON types and internal $LB() types for more detailed type analysis.Of course there's no guaranty for the hidden types in $LB() . types ; Show COS-Datatypes ; kav ; 2018-03-04 // set obj=##class(Person).%New() write "VALUE",?15,"JSON",?22,"$LISTBUILD",! ,$TR($J("",32)," ","-"),! for val="453","abcd",1234,"abc"_$c(352), -34, 1.3, -7.9, $double(1.25),obj { write val,?15,$$TypeOf1(val),?22,$$TypeOf2(val,.txt),.txt! } quit // Return JSON datatype by the documented way // TypeOf1(val) Public{ quit [(val)].%GetTypeOf(0) } // Return datatype by the undocumented $LB() way // TypeOf2(val) Public { if $length(val)>253 { set typ=$ziswide(val)+1 } else { set typ=$a($lb(val),2) } set txt=$case(typ ,1:" 8bitString" ,2:" 16bitString" ,4:" nonNegativeInteger" ,5:" negativeInteger" ,6:" nonNegativeFloat" ,7:" negativeFloat" ,8:" double" , :" ??? never seen before") quit typ}d ^typesVALUE JSON $LISTBUILD--------------------------------453 string 1 8bitStringabcd string 1 8bitString1234 number 4 nonNegativeIntegerabcŠ string 2 16bitString-34 number 5 negativeInteger1.3 number 6 nonNegativeFloat-7.9 number 7 negativeFloat1.25 number 8 double1@User.Person oref 1 8bitString
go to post Robert Cemper · Mar 2, 2018 I hope it will be recorded as I'm already booked at that time and can't attend
go to post Robert Cemper · Mar 2, 2018 pls. distinguish correctlySystemVariable $ZT / $ZTRAP .... error trapSystenFunction $ZT() / $ZTIME() ... time conversionHint: don't waste your time on Google. Online Documentation knows it all.docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls
go to post Robert Cemper · Mar 1, 2018 simplified you could translate it to "lazy loading" if not in memorymore: http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_persobj_swizzling
go to post Robert Cemper · Mar 1, 2018 you need an oref in ref and also in Myproperty1, ... So you have to check both . see answer
go to post Robert Cemper · Mar 1, 2018 ClassMethod myfuct( id) As %String{ set ref=##class(myClass).%OpenId(id) If '$isobject(ref) quit "no object 1, no return" if '$isrobject(ref.Myproperty1) quit "no object 2, no return" set str="my return: "_ref.Myproperty1.OtherClass1Property quit str}
go to post Robert Cemper · Mar 1, 2018 you do set ref=##class(myClass).%OpenId(id)but you don't check if you really got an object. the id might be invalidcontinue with if '$isobject(ref) quit ""
go to post Robert Cemper · Mar 1, 2018 the code causing the problem in MyClass.2.int looks most likely like this: Set oid=$select(i%Myproperty="":"",1:$listbuild(i%Myproperty_""))you are inside an ObjectMethod and miss the actual Object reference.This happens when you try to access a property inside a Classmethod. classic mistake:ClassMethod MyMethod(1,2,3) as %Status { set x=..Myproperty}correct use: ClassMethod MyMethod(oref,1,2,3) as %Status { set x=oref.Myproperty}