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



Hi Steve, what you're missing? This is "Using Node.js with Caché" and includes the available API's. Connection options and parameters are described here as well.


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"

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.

open declaration for/on routines will be included/fixed in upcoming v1.2. Stay tuned.

on my surface book win10-x64, in a test using a simple (non-time-intensive) math-function/calculation (atan2(x,y)) in Node.js returning back the result, it turns out that callouts by REST are ~100 times faster than callouts by a command-pipe/$ZF(-1), due to the overhead of creating a child process for each callout every time.

Eduard, this was for a windows-platform only. I couldn't find a suitable windows command line tool for *raw* deflate/inflate compression/decompression, so i wrote my own, knowing that Node provides a built-in zlib module.
Please note that zlib, etc. or compression/decompression is not what this article is about in the first place.
I only have chosen this as an example of a function not directly available (by native) in Caché.
Maybe you're right and this is probably not the ideal function/example,  but the article is meant more about the mechanism and way/practice
and on how to use a REST callout in general as an alternative way (instead of using a shell/command callout) making Node modules and their capabilities available from within Caché.