go to post Eduard Lebedyuk · Aug 27, 2018 From windows error codes 2 (0x2) The system cannot find the file specified. ERROR_PATH_NOT_FOUND Check your path, also Caché may not have access to the directory or file.
go to post Eduard Lebedyuk · Aug 27, 2018 Cache private web server is configured and available by default.If System Management Portal opens then private server works.Here's a good tutorial on developing Angular applications on Caché.
go to post Eduard Lebedyuk · Aug 27, 2018 Please check the output: set result = ##Class(%File).Delete(fileNamewithPath, .status) zw result zw status
go to post Eduard Lebedyuk · Aug 27, 2018 The object of com.intersys.jdbc.CacheListBuilder class is returned.
go to post Eduard Lebedyuk · Aug 24, 2018 Well, updating to a newer version is definetly recommended.This feature (SSLCheckServerIdentity) appeared in 2013.2.That said, comments to the feature state that the new default is to check the name where as before we did not perform this check.So on older version request should be working by default. What error are you getting on old version?
go to post Eduard Lebedyuk · Aug 24, 2018 There are several ways to do that. Let's say you have a persistent property Property Problem As %String; That you don't want anyone to see. 1. Make it private: Property Problem As %String [ Private ]; It would not be displayed altogether 2. Add accessor methods: Property Problem As %String; Method ProblemGet() As %String [ ServerOnly = 1 ] { Quit "****" } Method ProblemRealGet() { Quit i%Problem2 } Method ProblemSet(Arg As %String) As %Status [ ServerOnly = 1 ] { Set i%Problem2 = Arg Quit $$$OK } This way default callers would get **** and only your app code can access the real value. 3. Do not project property to XML Property Problem As %String(XMLPROJECTION = "none"); As ensemble message viewer is XML-based it would hide property from it. 4. Create a special datatype. For example MyApp.Datatype.Password datatype returns **** as Display and ODBC values: Class MyApp.Datatype.Password Extends %String { ClassMethod LogicalToDisplay(%val As %String) As %String [ Internal ] { q $case(%val,"":"",:"*****") } ClassMethod LogicalToOdbc(%val As %String) As %String [ Internal ] { q $case(%val,"":"",:"*****") } } To use it: Property Problem As MyApp.Datatypes.Password; 5. Extract the property into a separate class and reference the object of that class. These approaches could be combined.
go to post Eduard Lebedyuk · Aug 24, 2018 ICM can do it.Use DM and AM instances.Maybe @Luca Ravazzolo would add more info.
go to post Eduard Lebedyuk · Aug 23, 2018 #dim are easier to notice, as they are different from the usual set.
go to post Eduard Lebedyuk · Aug 23, 2018 I do not think that it's possible.If display values are unique, you can build a unique index and use it to translate display value into id.
go to post Eduard Lebedyuk · Aug 23, 2018 You can subclass Ens.ContextSearch to provide dynamic settings lists. Docs.Here's a sample class that adds ability to select XData in Ensemble setting. /// Ensemble settings interface implementation Class Package.EnsSearchUtils Extends %ZEN.Portal.ContextSearch { ///Get class Xdata list. ClassMethod GetXDatas(Output pCaption As %String, Output pTopResults, Output pResults, ByRef pParms As %String, pSearchKey As %String = "") As %Status { Set tStatus = $$$OK Kill pResults, pTopResults Set pCaption = "" Set tClass = $get(pParms("class")) If tClass '= "" { Set tClassObj = ##class(%Dictionary.CompiledClass).%OpenId(tClass) For i=1:1:tClassObj.XDatas.Count() { Set pResults($i(pResults)) = tClassObj.XDatas.GetAt(i).Name } } Quit tStatus } } For example to add a setting XSLTTransformation to BH that would allow me to choose on XData from my Package.XSLT class, I can specify SETTINGS parameter like this: Parameter SETTINGS = "XSLTTransformation:Basic:selector?context={Package.EnsSearchUtils/GetXDatas?class=Package.XSLT}";
go to post Eduard Lebedyuk · Aug 23, 2018 Do you want to get a list of possible values at runtime?If so consider making your property object-valued: Property PrdType As Demo.Data.PrdType; If you do want to build a list once at compile time, then it is probably possible using method generators, but I would not recommend this approach.
go to post Eduard Lebedyuk · Aug 23, 2018 Not an answer, but you can use LIST function to remove cursors and simplify code. ClassMethod GetTypeDisplay() As %String { &sql(SELECT LIST(DISTINCT TypeName) INTO :result FROM Demo_Data.PrdType) q result } ClassMethod GetTypeValue() As %String { &sql(SELECT LIST(DISTINCT TypeId) INTO :result FROM Demo_Data.PrdType) q result }
go to post Eduard Lebedyuk · Aug 23, 2018 You should not modify system classes.So without Set httpRequest.SSLCheckServerIdentity=0 it doesn't work?
go to post Eduard Lebedyuk · Aug 22, 2018 I use set var1 = "value1" set var2 = "value1" set var3 = "value1" set var4 = "value2" set var5 = "value2" set var6 = "value3" set var7 = "value3" set var8 = "value3" as it's the most readable. Or #dim var1 As Type = "value1" Time spent on local sets is usually a pittance of all CPU time spent.
go to post Eduard Lebedyuk · Aug 22, 2018 You seem to receive empty response.What does set resp = httpRequest.HttpResponse zwrite resp write !,!,! do resp.OutputToDevice() Output?
go to post Eduard Lebedyuk · Aug 22, 2018 Check that stream is an object and contains relevant data: write $isObject(httpResponse) what data does it contain: do httpResponse.OutputToDevice() if it's not an object - what is it? zwrite httpResponse If everything is okay - stream contains what you expect it to contain, then what is the status of convert operation: Set sc = ##class(%ZEN.Auxiliary.jsonProvider).%ConvertJSONToObject(httpResponse,,.Object,1) write $System.Status.GetErrorText(sc) zwrite Object