go to post Jenna Poindexter · May 30, 2016 Here's my code, of course I could shrink this down a lot, but figured people might want to read it. Personally, I think looking at different ways of doing the same thing are a great learning lesson. Judging based on the length of the code, simply encourages bad programming. ClassMethod toPhone(i As %String) { set k="----abc-def-ghi-jkl-mno-pqrstuv-wxyz ---" set i=$zconvert(i,"L"),o="" f p=1:1:$l(i) s c=$e(i,p),d=$f(k,c)\4+1,r=3-(d*4-($f(k,c))) s:r<1 r=4+r,d=d-1 s:d>9 d=0 s z="",$p(z,d,r+1)="",o=o_$s($e(o,$l(o))=d:" ",1:"")_z q o }
go to post Jenna Poindexter · May 27, 2016 That must have been where I missed it. I think I was looking at docs for 2016.1 and didn't see it there Definately . $toJSON is the easiest method to get a persistent object to JSON, also more efficient SQL method works great too if you don't necessarily want the whole object.
go to post Jenna Poindexter · May 27, 2016 Reading the documentation it seems to be saying that you should exclude directories containing files that are actively used by Cache such as those containing databases, WIJ and journal files, etc.It is not recommending that you disable virus scanning on all directories associated with Cache
go to post Jenna Poindexter · May 26, 2016 Wow! Not sure how I missed that when I went through the docs looking for it.Indeed exactly what I was lookimg for.
go to post Jenna Poindexter · May 26, 2016 Things to considerDoes the SMTP server require SSL/TLS?Are there any restrictions as to who can connect to the server. Eg, white listed IP addresses?
go to post Jenna Poindexter · May 25, 2016 Some clients may simply not want to expose the /csp... to mask thay this is based on ISC technology.Some customers may have existing Web apps they are migrating to ISC technology and they may want to mimic their existing URL naming conventions.
go to post Jenna Poindexter · May 23, 2016 Hi KamalHave your checked then VistA Document Library which contains a wealth of information everything VistA.http://www.va.gov/vdlThere is also the VistA community on HardHats at http://www.hardhats.org
go to post Jenna Poindexter · May 19, 2016 Your $zv looks very suspect Paul. On one hand you have a 2016.2 beta of Ensemble, but you have HealthShare libraries also which aren't distributed with Ensemble.Was this a HealthShare instance of 2016.1 that you overlayed with a 2016.2 install of Ensemble?I'm not sure that can ever be expected to work right.Maybe try your service on a fresh install of 2016.2 beta and see if it works then, although you won't have access to the HS libraries
go to post Jenna Poindexter · May 19, 2016 Can you provide the full version, including build # of your HealthShare instance? I'll try your service on the same identical version to see if I can duplicate it here.
go to post Jenna Poindexter · May 19, 2016 The only strangeness I see here is that in your code you set pOutput to the result of HS.Test.Service.SendSync which returns a %Status.In your method, the pOutput variable is used in the method declaration and is supposed to be a stream object because that is how the adapter responds back as the response to the http request.I wonder if this could possibly be the problem. I have to admit that the behavior is very strange, if indeed that is the problem.
go to post Jenna Poindexter · May 19, 2016 Also-Can you provide a copy of the code that should go where your example shows.// Nothing in here gets touched, thus my problem
go to post Jenna Poindexter · May 19, 2016 Interesting, I took your code and just added some code to the OnProcessInput method so that it would just take a string int he body of the http request and then echo that string back as the response. here is the code, which when tested with my http test tool seems to work fine which would indicate that there might be a problem elsewhere.What settings are you using when adding your service to the production, and what version of Ensemble are you using?Here's a copy of the working code I tested in 2016.1Class Community.Services.MyService Extends Ens.BusinessService{/// Set AdapterParameter ADAPTER = "EnsLib.HTTP.InboundAdapter";/// Set this to 0 to prevent normalizing of HTTP header variable names to lowercaseParameter TOLOWERHEADERVARS = 1;/// Set this to make page parse form variables from the form body in case of a form POSTParameter PARSEBODYFORMVARS = 0;/// Copied from EnsLib.HTTP.ServiceMethod OnInit() As %Status{ If $IsObject(..Adapter) { Set ..Adapter.%ToLowerHeaderVars=..#TOLOWERHEADERVARS Set ..Adapter.ParseBodyFormVars=..#PARSEBODYFORMVARS } Quit ##super()}/// Same method signature as EnsLib.REST.ServiceMethod OnProcessInput(pInput As %Library.AbstractStream, Output pOutput As %Stream.Object = {$$$NULLOREF}) As %Status{ set pOutput=##class(%GlobalCharacterStream).%New() set string=pInput.Read() do pOutput.Write(string) quit $$$OK}}
go to post Jenna Poindexter · May 18, 2016 Here's an example of a business service that receives input in the form of a delimited string, passes the input off to a business process (in your case it would be a business operation), gets the response and returns the response as the return document.Class AC.Services.HTTPService Extends Ens.BusinessService{Parameter ADAPTER = "EnsLib.HTTP.InboundAdapter";Method OnProcessInput(pInput As %GlobalCharacterStream, Output pOutput As %Stream.Object) As %Status{ // Instanciate the output stream set pOutput=##class(%GlobalCharacterStream).%New() // Read the delimited string passed in the content stream set iStr=pInput.Read(,.tSC) // Build the request message set request=##class(AC.Messages.RouteMessagePreProcessRequest).%New() set request.DOB=$p(iStr,"^",1) set request.Facility=$p(iStr,"^",2) set request.RXNumber=$p(iStr,"^",3) set request.SSN4=$p(iStr,"^",4) set request.CMOPFlag=$p(iStr,"^",5) // Send request message to RouterPrePRocess do ..SendRequestSync("RouteMessagePreProcess",.request,.response) // Return response to caller do pOutput.Write(response.RESP) Quit $$$OK}}
go to post Jenna Poindexter · May 18, 2016 You should use an Ensemble REST web service which is a sub-class of EnsLib.REST.ServiceI would recommend starting with reviewing the documentation on CSP REST services which can be found at the link below. This will give you a basic understanding of how Ensemble implements RESTful web services.http://docs.intersystems.com/ens201513/csp/docbook/DocBook.UI.Page.cls?K...There is also an extension of the HTTP adapter that provides an interface for providing RESTful web services as part of your production. The documentation on how to implement this can be found here:https://community.intersystems.com/product-documentation/creating-rest-s...
go to post Jenna Poindexter · May 13, 2016 Pretty sure Pretty sure Atelier is not compatible with versions prior to 2016.2The services it uses aren't part of earlier versions
go to post Jenna Poindexter · May 6, 2016 Jeff- ThanksWhat I am really looking for here is a generic way to represent any global structure as JSON.In my example, the top node contains both data as well as sub-nodes. I'm not really looking for a way to represent a person in JSON, just a way to represent generic global structures taking into account the fact that a global node can have both data stored at that particular level as well as sub-nodes below it.
go to post Jenna Poindexter · May 5, 2016 Hi LauraDo you have a production already created that you are now trying to document? Or is this a case where your are getting ready to develop your first production in Ensemble?
go to post Jenna Poindexter · May 4, 2016 Weblink is downloadable from our Worldwide Response Center portal at http://wrc.intersystems.comIt does appear that the public download page is no longer available.Ken
go to post Jenna Poindexter · Apr 29, 2016 I have to say that I never thought of using Google to search our documentation until a colleague pointed it out to me a while back.Need the function to determine your process id.Open Google, enter "intersystems determine process id"First returned document is the documentation for the $JOB symbol variable which contains your process id.I have to say that as an Intersystems employee I was disappointed when I heard that the feature maps were going away. I cant say how many times I used to use those maps for jumping to a key feature that I wanted to know about.However, since I started using Google to search the docs the docs have become much more friendly and easy to locate what I'm looking for.Change is hard....