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
go to post Eduard Lebedyuk · Aug 20, 2018 1. SELECT parent As Class, Properties FROM %Dictionary.CompiledIndex WHERE IdKey=1 2. SELECT parent As Class, Name, Type FROM %Dictionary.CompiledProperty WHERE Type='%Library.Integer' -- Name='Property' AND parent='Class' 3. SELECT 1 As "Exists" FROM %Dictionary.CompiledIndex WHERE _Unique=1 AND parent = :Class AND Properties = :Property
go to post Eduard Lebedyuk · Aug 20, 2018 You can map ^DeepSee.Folder and ^DeepSee.FolderItem globals, but it would map all dashboards from one NS to another.
go to post Eduard Lebedyuk · Aug 20, 2018 Have you checked ProComm+ alternatives?ZOC advertises as one, maybe there're others.
go to post Eduard Lebedyuk · Aug 17, 2018 Generally speaking, inside Caché you must have two functions InternalToExternal(name) As %String ExternalToInternal(path) As %String That translate Cache names (/app/index.csp) into filenames (i.e. C:\Temp\MyRepo\CSP\app\index.csp) and vice versa. Your CI system should: Build git diff between target commit and environment current commit. Sample code.Separate diff into 2 parts: added/modified and deleted.Load added/modified files into Cache.Translate external names for deleted list into internal names.Delete items from deleted list.Set current environment commit equal to target commit Here's a series of articles on building a CI/CD pipeline for InterSystems Cache.
go to post Eduard Lebedyuk · Aug 16, 2018 I ran InterSystems IRIS containers via Rancher and Portainer it's all the same stuff. GUI over docker run.
go to post Eduard Lebedyuk · Aug 16, 2018 can I deploy a container manuallySure, to deploy a container manually it's enough to execute this command: docker run -d --expose 52773 --volume /InterSystems/durable/master:/data --env ISC_DATA_DIRECTORY=/data/sys --name iris-master docker.eduard.win/test/docker:master --log $ISC_PACKAGE_INSTALLDIR/mgr/messages.log Alternatively, you can use GUI container management tools to configure a container you want to deploy. For example, here's Portainer web interface, you can define volumes, variables, etc there: it also allows browsing registry and inspecting your running containers among other things:
go to post Eduard Lebedyuk · Aug 16, 2018 This info does not seem to be available by default.You can define JOB^%ZSTART that would set global: Set ^TimeStarted($job) = $h And JOB^%ZSTOP: Kill ^TimeStarted($job) And reference this global to get process start time.
go to post Eduard Lebedyuk · Aug 16, 2018 GitHub does not offer CI functionality but can be integrated with CI engine.