go to post Jeffrey Semmens · Aug 15, 2017 You could then iterate through the returned classes and check to see which ones are marked "system" by opening up each definition. I seem to vaguely remember a way to do this with a query but I can't find it now.
go to post Jeffrey Semmens · Aug 15, 2017 Programmatically you can use the SubclassOf() query in the %Dictionary.ClassDefinitionQuery class. Pass in %Persistent and the flag for non-system classes.
go to post Jeffrey Semmens · Jun 15, 2017 So if I am calling this service from an Ensemble operation that looks something like this: Method getPatient(pRequest As RESTDemo.REST.ClaimRequest, Output pResponse As EnsLib.REST.GenericMessage) As %Status { try { // Prepare and log the call // Append the claim to the URL Set tURL=..Adapter.URL_"/claims/"_pRequest.claimBlob // Execute the call set tSC=..Adapter.GetURL(tURL,.tHttpResponse) #; Suppress HTTP status errors and just pass back the status, headers and body If $$$ISERR(tSC)&&'$$$StatusEquals(tSC,$$$EnsErrHTTPStatus) { Quit } // Return the response Set tSC=$$$OK If $IsObject(tHttpResponse.Data) { Set tStream=tHttpResponse.Data } Else { Set tStream=##class(%GlobalBinaryStream).%New() Set tSC=tStream.Write(tHttpResponse.Data) Quit:$$$ISERR(tSC) } Set pResponse=##class(EnsLib.REST.GenericMessage).%New(tStream,,tHttpResponse) Do pResponse.HTTPHeaders.SetAt(tHttpResponse.StatusLine,"StatusLine") } catch { Set tSC=$$$SystemError } Quit tSC } Would I just call $system.Encryption.Base64Encode() on the claimBlob property?
go to post Jeffrey Semmens · Jan 11, 2017 I found the synctimedout variable in the documentation after a more thorough search. I am able to use this in an if condition to send the alert.
go to post Jeffrey Semmens · Dec 7, 2016 I typically use the SQL shell in the terminal when doing this. It is very powerful.SAMPLES>do $system.SQL.Shell()SQL Command Line Shell----------------------------------------------------The command prefix is currently set to: <<nothing>>.Enter q to quit, ? for help.SAMPLES>>?Interactive SQL Shell (c) InterSystems Corporation 1999-2009 All Rights Reserved----------------------------------------------------To execute an SQL statement, type it in and press ENTER.To execute a multiline SQL statement, press <enter> to entermultiline statement mode, enter the each statement line andenter GO to exit multiline statement mode and execute the statement.etc...This uses %SQL.Statement to do all the work and has a number of options including saving of queries, etc.
go to post Jeffrey Semmens · Oct 18, 2016 Looks like the server definition screen no longer allows me certain characters in the connection name. I used to name my server connections like this: "Ensemble 2016.2 736". This used to work fine. Now I get no "Finish" button unless I take out the white space and possibly the period. I ended up creating the following with no issues: "Ensemble2016p2b736"
go to post Jeffrey Semmens · Jun 16, 2016 If you are on Ensemble/ HealthShare you could use a REST passthrough service. Your would call the passthrough operation, (non ssl), which would then call your operation (with credentials), and you could see the request to the REST service. Anything passed back would also be returned into the passthrough service.
go to post Jeffrey Semmens · Jun 1, 2016 Did you ever bounce the service to make sure it was using the latest version you had compiled?
go to post Jeffrey Semmens · Jun 1, 2016 I have not been able use the %request.Data property with URL parameters in a GET. Is this now available? The testing I did last week (Just using an external REST tool and passing parameters in different formats) didn't allow me to get any URL body parameters in the %request.Data property. They weren't defined.
go to post Jeffrey Semmens · May 31, 2016 Great post. Using the documents is almost like going back to the time where I would create my own global structures to handle the changing data needs. Very intuitive and flexible.
go to post Jeffrey Semmens · May 6, 2016 I figured out my mistake. My solution works like a charm now. The operation returns a snapshot which I iterate through with a BPL While (Condition= context.MySnap.Next()), and within the while I then call the context.MySnap.GetData(1), etc. Populate the request to the RecordMapper can call the operation.
go to post Jeffrey Semmens · May 6, 2016 My thought was this: It has a counter at each level to signify the subscripts. Jus haven't added the root data.{"PersonCount":1,"Person":{"Name":"SMITH,JAMES","Address":{"AddressCount":1,"Address":{"Street":"123 Main St.","City":"Some City","State":"CA","Zip":92627}}}}
go to post Jeffrey Semmens · May 3, 2016 At the top I am reusing the same variable tProxy with this:set tProxy={}