- Log in to post comments
you need to specify SSLConfiguration property of %XML.Reader that points to valid SSL configuration to be used to access https://www.musicxml.org [1]
Or you can just disable entity resolution: Disabling Entity Resolution
- Log in to post comments
I don't like 'isc'. It was (is) sometimes used as an abbreviation for "InterSystems Corporation". So that does not indicate clearly that package comes from Community.
'community' is fine. It's not too long.
- Log in to post comments
dc is fine!
- Log in to post comments
Try this one: ftp://ftp.intersystems.com/pub/cache/odbc/
- Log in to post comments
This works both way.
Consider class:
Class dc.TestArgs
{
ClassMethod AcceptArgs(x...)
{
write "Got following params",!
zw x
}
ClassMethod NormalMethod(a As %String, b As %String, c As %String)
{
write "we got in a: ",a,!
write "we got in b: ",b,!
write "we got in c: ",c,!
}
ClassMethod SendArgs()
{
set p = 3
set p(1) = "first parameter"
set p(2) = "second"
set p(3) = "third"
do ..AcceptArgs(p...)
write "works with usual argument style",!
do ..NormalMethod(p...)
}
}
Notice in SendArgs we are constructing p -- array of arguments. We can pass it both to method that accepts args..., and to normal method.
USER>d ##class(dc.TestArgs).AcceptArgs(1,2,3)
Got following params
x=3
x(1)=1
x(2)=2
x(3)=3
USER>d ##class(dc.TestArgs).SendArgs()
Got following params
x=3
x(1)="first parameter"
x(2)="second"
x(3)="third"
works with usual argument stylewe got in a: first parameter
we got in b: second
we got in c: third
- Log in to post comments
You need to specify number of parameter in the variable:
s Args=10
See my original example
- Log in to post comments
Check if you have CryptoPro. If you have -- uninstall it, then install Caché, then install CryptoPro back
- Log in to post comments
In Studio open Inspector and then Storage
- Log in to post comments
Hi Lucas.
I'm confused in the URL on the screenshot you are correctly using IRISUsername [0]
Why in the "sudo google-chrome-stable ..." command you are using just "Username" parameter? Did you redefine GetCredentials to take username from URL parameter "Username" ?
[0] https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=GCAS_apps#GCAS_apps_typecsp
- Log in to post comments
You can redirect results to the file. If you specify csv format then data is TAB-delimited.
SAMPLES>>set displaymode=csv
displaymode = csv
SAMPLES>>set displaypath=c:\temp\
displaypath = C:\temp\
SAMPLES>>set displayfile=results.txt
displayfile = results.txt
SAMPLES>>select * from Sample.Person
4. select * from Sample.Person
C:\temp\results.txt.csv
C:\temp\results.txtMessages.txt
- Log in to post comments
Dismount/mount database invalidates cache for the globals from this database.
- Log in to post comments
David,
JDBC Gateway is used when IRIS needs to connect to 3rd party database via JDBC.
If you or your customers need to connect to IRIS via JDBC -- then JDBC Gateway is not needed. Just use superserver port.
- Log in to post comments
Hi Yone.
Notice -- 4th argument is status code of conversion:
ENSDEMO>set fecha = "2021-08-18T07:44:14.180+0000"
ENSDEMO>set nuevaFecha = ##class(Ens.Util.Time).ConvertDateTime(fecha,"%Y-%m-%d%T%H:%M:%S","%d/%m/%Y",,.status)
ENSDEMO>zw status
status="0 "_$lb($lb("<Ens>ErrGeneral","Extra text 'T07' not parsed before end marker ':'",,,,,,,,$lb(,"ENSDEMO",$lb("e^zParseDateTime+102^Ens.Util.Time.1^2","e^zConvertDateTime+3^Ens.Util.Time.1^1","e^^^0"))))
Adjust format and you'll get expected value:
ENSDEMO>set nuevaFecha = ##class(Ens.Util.Time).ConvertDateTime(fecha,"%Y-%m-%dT%H:%M:%S.%N%z","%d/%m/%Y",,.sc)
ENSDEMO>write nuevaFecha
18/08/2021
- Log in to post comments
In Studio if you open Watch view and select Call Stack tab and then select particular line then in the right part you'll see variables for current stack
- Log in to post comments
I also don't know if this is fixed. Studio is backwards compatible, so you can try to use Studio from Caché 2018.1.4 to connect to Caché 2017.1 or Caché 2017.2 instance. Or you even can try to use IRIS Studio 2020.1
- Log in to post comments
Hi Ramesh.
"Invalid cursor state" is an error returned by ODBC driver. Ensemble just shows this error to you.
It's expected that you don't get this error when you run the proc directly on SQL Server -- because there is no ODBC driver involved in this case.
What you can try is to run the same query from some other ODBC tool (e.g. WinSQL) and see if you are getting the same error message.
If you see the same problem -- the likely the issue is within ODBC-driver+SQL Server. If you don't see the same problem then indeed, something might require changing on Ensemble side.
Also -- try googling this error message "Invalid cursor state". As this error message comes from Microsoft ODBC driver there are perhaps discussions on Microsoft sites. For example, I found this one https://social.msdn.microsoft.com/Forums/en-US/f6466a82-caf7-4053-94a4-a6f756b2f5c6/calling-stored-procedure-invalid-cursor-state?forum=sqldataaccess
- Log in to post comments
I think both should be used.
If an application needs some privilege for itself (=for all users), e.g. for reading database with code, then this should be role for the application.
If different users within same application have different permissions then this should (can) be handled via user roles.
- Log in to post comments
"Quick analysis shows that CSP Gateway for each request opens a new TCP connection to Cache SuperServer (port 1972) allocating CSP session and license slot."
That is not true.
Web Gateway (fka CSP Gateway) has pool of connections that it uses to handle incoming requests. If all existing connections are busy and its number is less than "Maximum Server Connections" [0] then Web Gateway indeed creates new connection. And keeps it in the pool of available connections until this connection is not used for "No Activity Timeout".
Each new HTTP request does not allocate CSP session. If the request identifies itself as a part of already existing session (via cookie or other means) then the CSP session is not created. Also, if this is a request to the REST or SOAP Service that has sessions disabled then session is not created.
Each new HTTP request does not allocate license unit. HTTP requests for existing sessions use the same license unit. HTTP requests for new sessions usually do allocate the license unit.
"SuperServer has no queues or pools"
- It's possible to configure SuperServer to have pool of processes to be ready to handle incoming TCP connections [1]
[0] https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=GCGI_oper_config [1] https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=RACS_JobServers
- Log in to post comments
Hi.
You need to specify
Parameter ARGUMENTSTYLE = "message";
For example:
Class delme.SoapService Extends %SOAP.WebService [ Language = objectscript, ProcedureBlock ]
{
Parameter ARGUMENTSTYLE = "message";
Parameter SERVICENAME = "MyService";
Parameter NAMESPACE = "http://tempuri.org";
Method Test(x As %String) As %String(XMLNAME="Root") [ WebMethod ]
{
Return "Test"
}
}
Then response is following:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<Root xmlns="http://tempuri.org">Test</Root>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
- Log in to post comments
Guillaume, can you please post WSDL here.
- Log in to post comments
Great!
I think what you did is a proper way to do this, because WSDL itself does not define this type, so there is no way for IRIS to figure out it automatically.
- Log in to post comments
Well, link https://support.google.com/mail/?p=WantAuthError explains the reasons for this error.
Did you try these troubleshooting steps?
- Log in to post comments
Hi Lee.
"For example, for the error log I am trying to display, it's a table that has just 16 rows and 6 columns. The columns I turn into dimensions. If I crossjoin more than 3 of the columns, I will timeout/freeze."
Can you provide reproducible case? It would be interesting to look into this. Not that crossjoining of three dimensions is a best practice, but it should work quickly for 16 rows.
Now to your questions.
- How do we prevent double columns for the 1st column?
Go to Widgets -> [your widget] -> Data Properties.
Define properties for your columns.
On the ID property put checkbox "hidden"
- How to prevent putting commas in the numbers:
Put "#" in the format field [0]
*How to format date to be returned in external format.
As far as I know, you should do this in the SQL query itself.
- Log in to post comments
Also, you can create calculated dimension member and sort members by PROPERTIES("KEY") using following expression:
ORDER([DateOfSale].[Actual].[DaySold].Members,[DateOfSale].CurrentMember.PROPERTIES("KEY"),BDESC)

- Log in to post comments
a) Try setting error page as %CSP.Error.cls for this web application, then errors are shown on the page itself, instead of being logged
b) Reproduce the error with ^%ISCLOG enabled:
kill ^%ISCLOG
set ^%ISCLOG = 3
Reproduce the error quickly. Disable ^%ISCLOG
set ^%ISCLOG = 0
Check for errors in ^%ISCLOG:
zwrite ^%ISCLOG
- Log in to post comments
Afaik for Application Roles to take place, user should re-login -- Roles are assigned on login. So -- no need to restart the web application, but user should log out and login again.
And yes, Application Roles is a great tool to minimize privileges that are given to the user directly
- Log in to post comments
In this case I think "sorts after" (]]) is better. So that locale is taken into the account.
- Log in to post comments
It’s $System.SQL.Export before InterSystems IRIS 2021.1
- Log in to post comments
Hi Kevin.
What version of Caché or InterSystems IRIS do you have? INFORMATION_SCHEMA.COLUMNS seem to be available only since Caché 2015.2
- Log in to post comments