go to post Evgeny Shvarov · Jun 9, 2017 Thanks, Vitaly!That looks exactly like what I want. I'll give it a try. Except with not very clear magic with SQLStorage. Is there any way to "generate" compatible storage? And why SQLStorage? Why not default CachéStorage, but copy-pasted from Class A?
go to post Evgeny Shvarov · Jun 9, 2017 VIews work for SQL access. I really need a kind of view, but for classes paradigm: so I could have access to Class B property P2 with Caché object access.
go to post Evgeny Shvarov · Jun 7, 2017 Hi, Sean!Check Cache-udl tool by [@Oleg Dmitrovich]. It does UDL import/export nicely in following manner:path/cls/package/classpath/mac/package/routinepath/inc/package/includepath/DFI/Folder/dashboard
go to post Evgeny Shvarov · May 31, 2017 When I've seen "ORM javascript" in the feature list I remembered yet another very interesting approach which is in fact the result of Hachathon took place in Moscow two years ago: CNDO (Caché Node Data Object), project made by [@Nikita.Savchenko], Anton Gnibeda and [@Irene.Mikhaylova].
go to post Evgeny Shvarov · May 30, 2017 Hi, Arockia!Maybe you can find an answer on your question in this article too.
go to post Evgeny Shvarov · May 26, 2017 Thanks, Dan! That definitely makes sense. What I like about object callbacks is the code readability. Compare: Method %OnBeforeSave(insert as %Boolean) As %Status [ Private, ServerOnly = 1 ] { if insert s ..CreationDate=$H q $$$OK } And Property CreationDate As %TimeStamp [ SqlComputeCode = { set {*}=$zdt($h,3) }, SqlComputed, SqlComputeOnChange = %%INSERT ]; What if I would need to refer to other properties in {*)=expression() Or the expression would be complex and if I want to debug it? Is there a way to keep callbacks readability and have the callback methods be fired for object and SQL access both? Something like: Property CreationDate As %TimeStamp [ SqlComputeCode = { set {*}=..%OnBeforeSave(1) }, SqlComputed, SqlComputeOnChange = %%INSERT ];
go to post Evgeny Shvarov · May 26, 2017 Thank you, Rubens, Fabian, Sean.Agreed, that Initial expression is the best option here. And thanks for the explanations on the callbacks!
go to post Evgeny Shvarov · May 26, 2017 Thanks, Sean!JSON-RPC libraryWould be great to look into this if you want to expose it some day.
go to post Evgeny Shvarov · May 25, 2017 Hi, Ponnumani!In addition to answers above you can check DeepSee in action even here in Developer Community: DC DeepSee Analytics.And see the small gif how it works:
go to post Evgeny Shvarov · May 25, 2017 Hi, Vineeth! See the sample of exporting and importing global to zip file on the fly from @Eduard Lebedyuk post: set ^dbg=123 set s=##class(%Stream.FileBinaryGzip).%New() do s.LinkToFile("1.xml") do $System.OBJ.ExportToStream("dbg*.GBL", s) do s.%Save() kill kill ^dbg set s=##class(%Stream.FileBinaryGzip).%New() do s.LinkToFile("1.xml") do $System.OBJ.LoadStream(s) write ^dbg >123 Hope that helps.