go to post Alexander Koblov · Sep 17, 2019 To add on what Dmitry said. We need to see the query, its plan and corresponding classes with selectivity information. For example, do you really want to run query without join condition? select o.col1, o.col2, op.partnum, op.amount from orders o join orderpositions op where o.orderDate > $H-1000
go to post Alexander Koblov · Sep 10, 2019 Contact InterSystems Support: https://www.intersystems.com/support-learning/support/immediate-help/
go to post Alexander Koblov · Sep 9, 2019 You need to return Status from this method. Everything that you write inside this method is placed inside element Method override( proxy As %SOAP.ProxyDescriptor, tag As %String) As %Status { Write "<request>hi</request>",! Quit 1 }
go to post Alexander Koblov · Sep 6, 2019 Not possible to do this in Query. You need to use dynamic SQL. Symbol ":" is used to indicate host variables. Host variables are treated as expressions, not as identifiers. During query compilation host variables are replaced with placeholders. Consider query: SELECT FirstName, MiddleName, LastName, Email, UserType FROM DB.ExternalUsers WHERE FirstName like :objSearch.FirstName ORDER BY :objSearch.SortingField This query is compiled as: SELECT FirstName, MiddleName, LastName, Email, UserType FROM DB.ExternalUsers WHERE FirstName like ? ORDER BY ? Then during runtime you supply values as follows: objSearch.FirstName = 'A%' objSearch.SortingField = 'FirstName' And query is executed as follows: SELECT FirstName, MiddleName, LastName, Email, UserType FROM DB.ExternalUsers WHERE FirstName like 'A%' ORDER BY 'FirstName' Notice 'FirstName' is in quotes in ORDER BY. So you sort by literal string. That is doing nothing. What you can do is to use expression like: Order by CASE :objSearch.SortingField WHEN 'FirstName' THEN FirstName WHEN 'MiddleName' THEN MiddleName ... END Although such generic queries makes SQL Query Analyzer unable to reason what plan is better to use for this query.
go to post Alexander Koblov · Aug 30, 2019 Name the file login.csp And inside it check for Error:ErrorCode request parameter: <html><head><title>Login</title></head> <body> My login page:</br> <form method='post'> Name: <input name="CacheUserName"/><br/> Password: <input type='password' name="CachePassword"/><br/> <input type='submit'/> </form> <server> Set tMsg = $Get(%request.Data("Error:ErrorCode",1)) If ((tMsg'="")&&($SYSTEM.Status.GetErrorCodes(tMsg)'[$$$ERRORCODE($$$RequireAuthentication))) { &html<<center>> write "Auth failed!" &html<</center>> } </server> </body> </html>
go to post Alexander Koblov · Aug 30, 2019 Hi Salma. Check for files with extension LUT. They represent Lookup Tables. You can add these files to Studio Export. Hope this helps, Alexander.
go to post Alexander Koblov · Aug 29, 2019 Hi Matthias. Try adding [Identity] to the attributes of property id in generated class. Something like follows: Property id As %Integer(EXTERNALSQLNAME = "id", EXTERNALSQLTYPE = 4) [ Identity, SqlColumnNumber = 2, SqlFieldName = ID ]; Hope this helps, Alexander.
go to post Alexander Koblov · Aug 27, 2019 Hi Oliver. It's hard to say what's wrong with your report, as example that you provided is not standalone -- it requires table AETMON.AvailabilityLog. At least I think, you should change Set var(tCount,0) = rs.%Get("availabilityStatus") Set var(tCount,1) = rs.%Get("CreatedTime") to Set var(0, tCount) = rs.%Get("availabilityStatus") Set var(1, tCount) = rs.%Get("CreatedTime") You have seriesCount="1". That is amount of lines to show on chart. Then you have seriesNames="Name1,Name2". These are names of lines. So either here you should have one name, or seriesCount should be 2. You have seriesSize="2". This is amount of points to draw from each serie. If you indeed need only 2 points, then that's OK. However, if you remove this attribute then all points are plotted. Generally, please see class reference for %ZEN.Report.Display.COSChart.cchart. It explains many attributes. Below please find small sample that works. Ignore ReportDefinition. It's just there to make report run. I hope it'll give you some hints. Class community.ClineReport Extends %ZEN.Report.reportPage { Parameter DEFAULTMODE As STRING = "html"; /// This XML defines the logical contents of this report. XData ReportDefinition [ XMLNamespace = "http://www.intersystems.com/zen/report/definition" ] { <report xmlns="http://www.intersystems.com/zen/report/definition" name="test" sql="select 1 q"> <group name="q" breakOnField="q"/> </report> } /// This XML defines the display for this report. /// This is used to generate the XSLT stylesheets for both HTML and XSL-FO. XData ReportDisplay [ XMLNamespace = "http://www.intersystems.com/zen/report/display" ] { <report xmlns="http://www.intersystems.com/zen/report/display" name="test"> <document width="8.5in" height="11in" marginLeft="1.25in" marginRight="1.25in" marginTop="1.0in" marginBottom="1.0in" /> <body> <clineChart ongetData="getChartData" title="Availability" height="400px" width="400px" currYAxis="0" labelsVisible="true" lineStyle="red" markersVisible="true" plotStyle="stroke-width: 1px;" seriesCount="2" seriesNames="Name1,Name2" seriesYAxes="0" ongetLabelX="getAxisTime" > <yAxis minValue="0" maxValue="100" /> </clineChart> </body> </report> } Method getChartData( ByRef data, chartObject) { for i=1:1:10 { set data(0,i-1)=i * 2 set data(1,i-1)=i * 3 } } Method getAxisTime( val, yseries) { quit $zdt($H-100 + val) } }
go to post Alexander Koblov · Aug 27, 2019 Hi Jochen. Have you looked at Microsoft forums? There are lot of posts there with similar "Another installation is already in progress" error. For example, following: https://answers.microsoft.com/en-us/windows/forum/all/windows-10-error-m... Currently it looks more like a problem with Windows Installer than with Caché
go to post Alexander Koblov · Aug 9, 2019 Hi Luis-Ángel. Generally, if you can connect successfully then configuration is fine. Does this happen with every query? If you try some simple query, like 'select 1', will this work ? If yes, does your query work from Management Portal ? Also, try enabling Audit and event Protect and check if this event is logged into Audit when this happens.
go to post Alexander Koblov · Aug 5, 2019 Daniel, you don't have DeepSee Model and DeepSee Analyze enabled in "Extended feature codes". That's why these menu options are grayed out. Check with InterSystems Sales to get a license with these bits enabled.
go to post Alexander Koblov · Aug 2, 2019 Do you have DeepSee in license? Please provide output of do $system.License.Decode()
go to post Alexander Koblov · Jul 30, 2019 To get environment variable you can use $System.Util.GetEnviron(). And to get current folder -- $system.Process.CurrentDirectory().
go to post Alexander Koblov · Jul 19, 2019 Indeed, documentation [1] says that this is "Number of private global data blocks used by this process.". So this is due to process-private globals You can inspect these global using ^GETPPGINFO utility [2] [1] https://irisdocs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page... [2] https://irisdocs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page...
go to post Alexander Koblov · Jul 5, 2019 Hi Colin. You can get .Net bindings package from Components section of WRC download page (https://wrc.intersystems.com/wrc/coDistGen.csp)
go to post Alexander Koblov · Jun 27, 2019 Hi Nael Not possible, as far as I know. You can play with $stack. Something like this: set Result=$$MyFunc(1,.Out) quit MyFunc(Param1,Param2) write $stack($stack-1,"MCODE"),! set Param2="it's all good" quit 1 USER>d ^test set Result=$$MyFunc(1,.Out) But here you are looking at parsing plain strings, and this is error-prone.
go to post Alexander Koblov · Jun 17, 2019 You should use Locate: Set tRegEx = "<[^>]*>" Set htmlSnippet = "<h1>Hello1</h1><h1>Hello2</h1>" Set regex=##class(%Regex.Matcher).%New(tRegEx) set regex.Text = htmlSnippet while regex.Locate() { write "Found ",regex.Group," at position ",regex.Start,! } Also it's not possible to parse generic HTML with regular expressions (https://stackoverflow.com/a/1732454/82675). Limited subset of HTML -- maybe.
go to post Alexander Koblov · Jun 13, 2019 Reason for "0.001005933" being string is not that it is less than 1, but that it's not in a canonical form. That is -- it has integer zero before decimal point. Put '+' before expression: USER>Set MsgDT = "20180405000000001005933" USER>Set MsgDTH = + $ZTH(($E(MsgDT,9,10)_":"_$E(MsgDT,11,12)_":"_$E(MsgDT,13,14)_"."_$E(MsgDT,15,23)),1) USER>write MsgDT=20180405000000001005933 MsgDTH=.001005933
go to post Alexander Koblov · May 13, 2019 There is a qualifier /incremental that allows incremental compilation. Check if it's enabled and try to disable it: See "Flags and Qualifiers" section: https://docs.intersystems.com/ens20101/csp/docbook/DocBook.UI.Page.cls?K...
go to post Alexander Koblov · Apr 12, 2019 Jimmy, what version do you use? Try to upgrade to latest available version -- 2018.1.2 for Caché, perhaps this error is fixed there.