go to post Eduard Lebedyuk · Apr 24, 2023 I think it would be easier to write ndjson->json converter. Something like this: ClassMethod nd2json(file, dir) { set dir = ##class(%File).NormalizeDirectory(dir) quit:'##class(%File).Exists(file) $$$ERROR($$$GeneralError, "File " _ file _ " does not exist") if '##class(%File).DirectoryExists(dir) { do ##class(%File).CreateDirectoryChain(dir) quit:'##class(%File).DirectoryExists(dir) $$$ERROR($$$GeneralError, "Directory " _ dir _ " does not exist and creation failed") } set stream = ##class(%Stream.FileCharacter).%New() do stream.LinkToFile(file) while 'stream.AtEnd { set json = stream.ReadLine($$$MaxStringLength) //set out = ##class(%File).TempFilename("json", dir) // random order set out = dir _ $tr($j($i(count), 4), " ", 0) _ ".json" // if the order is important set outStream = ##class(%Stream.FileCharacter).%New() do outStream.LinkToFile(out) do outStream.Write(json) do outStream.%Save() kill outStream } }
go to post Eduard Lebedyuk · Apr 24, 2023 Before set sc=conn.PrepareW(hstmt,sql) add: set sql = $zcvt(sql, "O", "UTF8") It will make the string UTF8 encoded. Docs.
go to post Eduard Lebedyuk · Apr 24, 2023 Enabling OS authentication may be an option, but that's a global setting and not (easily) configurable per-user. But is there a way to configure OS authentication for one user only?
go to post Eduard Lebedyuk · Apr 24, 2023 Use caution with auto-play: Auto-playing GIFs can be distracting and annoying for some users, so use caution when deciding to have your GIFs auto-play. Consider giving users the option to play or pause the GIF. I think that's only videos.
go to post Eduard Lebedyuk · Apr 17, 2023 ISC's Interoperability business rule editor has some quirks; it does not allow the passing of variables by reference to custom methods Interesting. Can you post sample code please?
go to post Eduard Lebedyuk · Apr 17, 2023 Now, why isn't $ZOBJREF() in the documentation? What's the use case for this function? Here's some (autotranslated) info about thesefunctions. Also $zobjref accepts only integers, so you can pass just the part before @: set a={} set b={} set obj1=$zobjref(1) set obj2=$zobjref("1@Sample.Person") zw Results in: a=<OBJECT REFERENCE>[1@%Library.DynamicObject] b=<OBJECT REFERENCE>[2@%Library.DynamicObject] obj1=<OBJECT REFERENCE>[1@%Library.DynamicObject] obj2=<OBJECT REFERENCE>[1@%Library.DynamicObject] There's also no guarantee that the object would be the same i.e.: set a={"a":1} set b={"b":1} set aoref = ""_ a kill a set c={"c":1} set obja=$zobjref(aoref) zw obja > obja={"c":1} ; <DYNAMIC OBJECT>
go to post Eduard Lebedyuk · Apr 14, 2023 Depending on the fidelity you need, something like this would work: set str = "abc def! xyz" set punctuation = "'!""#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~" set strNoPuncuation = $tr(str, punctuation, $j("", $l(punctuation))) set strDedupeWhitespaces = $zstrip(strNoPuncuation,"<=>P") set out = $lfs(strDedupeWhitespaces, " ") Another approach. Simpler and likely faster but it will merge sentence ends without whitespace afterwards: set str = "abc def! xyz" set strNoPuncuation = $zstrip(str,"*P",," ") set strDedupeWhitespaces = $zstrip(strNoPuncuation,"<=>P") set out = $lfs(strDedupeWhitespaces, " ") Check $translate, $zstrip. If you want more fidelity/features check %iKnow.Stemming package.
go to post Eduard Lebedyuk · Apr 14, 2023 Replace Set tSC1 = tStream.Write(dynObject1.%ToJSON()) with: Do dynObject1.%ToJSON(tStream)
go to post Eduard Lebedyuk · Apr 12, 2023 I recommend you to check this article, but here's a summary: 1. Calculate a list of BHs which need a restart (not sure why you need regexp, all BHs are in Ens_Config.Item table): SELECT %DLIST(Name) bhList FROM Ens_Config.Item WHERE 1=1 AND Enabled = 1 AND Production = :production AND ClassName %INLIST :classList -- or some other condition 2. Restart them all at once instead of one by one: for stop = 1, 0 { for i=1:1:$ll(bhList) { set host = $lg(bhList, i) set sc = ##class(Ens.Director).TempStopConfigItem(host, stop, 0) } set sc = ##class(Ens.Director).UpdateProduction() }
go to post Eduard Lebedyuk · Apr 12, 2023 Why not map packages (also maybe use %ALL namespace to map to all namespaces at once)?
go to post Eduard Lebedyuk · Apr 12, 2023 1. Do you need to restart several BHs at once or do you need to restart them one by one? 2. How long does it take currently and what's your goal timing-wise?
go to post Eduard Lebedyuk · Apr 1, 2023 Calling @Bob Kuszewski. My JAVA_HOME is a is a JRE (C:\Program Files\Java\jre1.8.0_361) not a JDK if that matters? No, it should not. I can't seem to edit the External Language Servers in the management portal Please stop it before editing. You also should be able to create a new External Language Server.
go to post Eduard Lebedyuk · Mar 31, 2023 What's the Undefined config value on TEST and PROD: zn "%SYS" set sc=##Class(Config.Miscellaneous).Get(.p) write p("Undefined")
go to post Eduard Lebedyuk · Mar 23, 2023 here I want to capture the error details in trace , log , that I can see in production web page If you want to quit processiong, it's enough to either quit: quit:$$$ISERR(sc) sc Or raise an error (if you're several levels deep for example): $$$TOE(sc, sc) If you don't want to interrupt processing, use $$$LOG macroes, for example: $$$LOGWARNING($System.Status.GetErrorText(sc)) This code would create a new Log entry of a warning type.