ah, i see that you have contacted support in the meantime and a WRC problem is already logged for this.
If the issue is solved, please update the solution here as well.
- Log in to post comments
ah, i see that you have contacted support in the meantime and a WRC problem is already logged for this.
If the issue is solved, please update the solution here as well.
John, keep on the good work!
Hi,
>I don't understand why its not working in the NodeJs v0.10
What error do you get? Why using such outdated/ancient NodeJS versions?
>I need to get file from Cache Database. File stored as a FileBinaryStream in DB.
You need to provide much more details in order for us able to help you.
See docs/class-reference here which might be helping you:
https://docs.intersystems.com/irislatest/csp/documatic/%25CSP.Documatic…
Hi,
you can test your Node environment within a simple windows command window (CMD.exe):
C:\>node -v
v0.10.26
C:\>node
> x=require('cache.node')
{ Cache: [Function: Cache] }
> y = new x.Cache
{}
> y.version()
'Node.js Adaptor for Cache: Version: 1.0.63 (CM)'
>
Do you have renamed cache0100.node into cache.node an copied it into location specified in environment variable NODE_PATH ? e.g. NODE_PATH=C:\Program Files\nodejs
If not, you need to specify path to cache.node within require(), e.g. x=require('c:/mypath/tocachenode/cache')
HTH,
Bernd
Hi,
are you all set now? Or do you still get the same error? Please confirm.
You can add parameter debug: "debug.log" with the open() if it still does not work in order to hopefully get more information!?
Anyway, if you are local anyway you should use native connectivity mode instead tcp since it get's you better performance.
Bernd
Hi, you can use CSPGateway event-log to log request- and response content coming through and from the server.
Since REST is coming through http you can also use any external network trace tool like tcpdump, wireshark, fiddler, etc.
To test REST services you can use Curl command-line tool or ARC (Advanced REST Client) chrome extension, etc.
HTH,
Bernd
Steve,
starting with ZM 1.1.1 the "event" object is now passed to all event-handlers (unselect/onevent/onchange) as the optional last argument. User could now make use of it in their template client methods if needed (e.x. handle propagation-related issues, etc.)
This is missing in the documentation so far but is already addressed to be added shortly.
HTH,
Bernd
yes, with the html5 type $input layout object you have to add onkeypress:true to it in order that onevent() gets triggered.
And in onevent(eventType,key,value,docViewId,event), you can do for example :
//$input onkeypress:trueif (eventType== 'keypress') {var keyCode= event.keyCode|| event.which;console.log('keyCode :' + keyCode);if (keyCode== '13') {// Enter pressed -> Do somethingzenPage.doSomething(value);}}HTH,
Bernd
Hi Peter,
this is very specific issue and hard to say with the information you've provided so far.
Are you sure this is related to Zen/Caché/CSPGateway and not a client-browser issue?
We need more information on this for a further investigation.
What changes are made that makes it stop working?
What client-browser/version you are using, what Caché version on server?
I assume you are using an "old" IE version, right?
The navigation to the #2 page called from #1 does work and loaded correctly?
Only the DXImageTransform did not work as expected in that case?
Calling #2 directly makes it working?
Did you try using IE-Developer-Tools (F12) to inspect and compare page-source and component loadings of both?
Any errors in the console, etc.?
Maybe it's better for you to report this in the WRC, so that support can continue with you on this!?
Regards,
Bernd
if you already have pcl documents available, then probably using 3rd party pcl to pdf converter command-line tool would be the easiest solution for you. You can use $ZF(-1, <oscommand>) call-out from within COS to invoke conversion process.
(for example: VeryPDF PCL Converter, etc.)
HTH,
Bernd
on Unix and Windows you can use PIPES:
s prog="whoami",oldIO=$IO open prog:"QR" use prog read result c prog use oldIO w !,result
Hi Nikita,
do you've tried Set %session.EndSession=1 in your Logout()?
Regards,
Bernd
how did you login? Do you use url-name/value params or http-basic-authentication with the first initial request?
Can you log/check %session.SessionId and %session.NewSession?
i am using curl with basic-auth and this seems to work for me:
Every request results in new session. The same for logout request.
I assume that the client browser remains the first http-basic-auth credentials and reusing it for the second (logout) request as well.
If i skip the basic-auth in curl request for the logout i will get 401 Unauthorized which is expected.
HTH,
Bernd
Hi,
ssl/tls (https) support for the atelier connections is planned for Atelier 1.1
It should work via external webserver too.
Did you get a response from http://<webserverip>:<port>/api/atelier/ in browser? (or postman, arc, etc.)
What version of Caché/HS you are running on server? (> write $ZV)
HTH,
Bernd
ok, thanks for providing the conf.
Do you have configured the cspgateway to route / or /api app-path to approperiate server?
See CSP-Gateway-Management of external webserver : http://localhost/csp/bin/systems/Module.cxw
HTH,
Bernd
you also should remove the CSPFileType directive.
See here: http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
"Registering Additional File Types with CSP"
HTH,
Bernd
Hi Jeffrey,
it seems this is a specific configuration issue which needs a more deeper look. (further logging, etc.)
I would suggest you to contact WRC support so that we can continue investigation.
Thanks and Regards,
Bernd
Hi James,
it seems you are correct, direct marco evaluation is not yet supported.
As a workaround, you can define class-parameters for the $$$ macros you wanna use in your installer/manifest class:
Parameter CacheVersion = {$$$CacheVersion};
...
which then can be referenced in XDATA manifest that way: (parameter expression)
${#CacheVersion}
HTH,
Bernd
Hi Soufiane,
as you can see in the GetAccessTokenFromRequest() method, the access token is taken from the http authorization bearer header or from the encoded entity body's access_token parameter. As described in RFC6750, see here: https://tools.ietf.org/html/rfc6750
Your client need to send that way. Not within the url as a name/value param.
On resource server side you then need to continue with this, see section "Code Requirements" here: http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GOAUTH_resource
Be also aware on the prerequisites and code requirements also.
HTH,
Bernd
i would start using "postman" to try out google restful api for your particular needs. To see what exactly you need to sent (request) and what you get in return (response). With that in place you can start coding some kind of wrapper methods using %Net.HttpRequest for doing the same requests and preparing the appropriate results from the response for your further processing, as you've already figured out before by using postman.
HTH, Bernd
if we can not allocate a license for a REST call/request we report a "503 Service unavailable" error by default.
Please note: Studio, Terminal and SMP allocates a license-slot. Every unauthenticated REST request will retain a license-slot for at least 10 sec. after request is finished.
if i remember correctly you do not need to create a custom tag in order to use your customer version of the lookup-class. You can use the default CSP:search tag and provide your modified custom lookup-class by the "searchpage" attribute.
<csp:Search name="FindPerson"
searchpage="%ZCSP.PageLookup.cls?SEARCH&..."
onselect="onFindCustomer"
classname="Sample.Person"
...
Hi,
underscore in method names are *not* supported and possible, I am afraid.
Besides the SoapAction already mentioned by Eduard you can try if adjusting the SoapMessageName and SoapRequestMessage keywords
at the method level in your WebService are helping to get what you want.
Here is an example:
Method AddInteger(Arg1 As %Integer = 0, Arg2 As %Integer = 0) As %Integer [ SoapAction = Add_Integer, SoapMessageName = Add_Integer_Response, SoapRequestMessage = Add_Integer, WebMethod ]
{
Quit Arg1 + Arg2
}
HTH,
Bernd
this is now corrected.
To let *all* (and custom) CGI-Variables coming through, you probably need to set the extra environment variables in the CSP Gateway configuration.
You can set/specify via the "Extra CGI Environment Variables" Setting in the "Application Access" section in CSP Gateway Management.
If you enter a * here, *all* CGI-Variables will be sent/tranmitted and provided to Caché-Server-Side in the %request.CgiEnvs multidimensional property.
HTH,
Bernd
Hi,
i would start with a SOAP-LOG ("ios") to see what is sent out and what SoapAction is used from within Caché soap client.
see SOAP Logging docs here.
Use/install 3rd party tool "soapUI" (there is a free version), import WSDL and try to sent request from here. See if you can make it working and chekc http-log in soapUI to see what soapUI is exactly sending out to the service.
Some WebServices requires SOAPAction http-header to be quoted. To achieve this you need to use SOAPACTIONQUOTED param in your WebClient class, e.g.
Parameter SOAPACTIONQUOTED = 1;
HTH,
Bernd
Hi,
for tcp connection mode you need to specify superserver-port, not webserver port.
HTH,
Bernd
Hi,
use %Net.HttpRequest library-class to post binary data (from your FileBinaryStream stored in Caché DB) to node.js server using express framework.
See here for example : https://stackoverflow.com/questions/16631975/node-js-server-not-receive-all-binary-data-or-client-not-sending-all-binary-dat
HTH,
Bernd
Hi,
i would start with the xml-structure you expect and which probably/hopefully is already defined by an xml-schema.
You can import xml-schemas into IRIS to generate XML-enabled classes which extends %XML.Adaptor.
https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=G…
If you do not have a xml-schema, you need to create it or your xml-enabled classes manually. (extending %XML.Adaptor)
https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=G…
If you have that ready, let your XML-enabled classes also extend %JSON.Adaptor.
https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=G…
Use %JSON.Adaptor to import the JSON data (i think DynamicObject is also supported here directly)
into your XML enabled class with the help of %JSONImport() method.
Then use XMLExport..() method (inherited from %XML.Adaptor) to export as XML data.
I have not tried this so far but i think it should work :)
HTH,
Bernd