You don't need to create a /login route since Login method is being called implicitly if auth is required. To add logging, it's enough to redefine the Login method in your broker like this (##super docs):
Class Utils.DynArrayProp Extends%Persistent
{
Property A;Property B As list Of %Integer;/// do ##class(Utils.DynArrayProp).Test()ClassMethod Test()
{
Do ..%KillExtent()
Set json = "{""A"":123,""B"":[1,2,3]}"Set dynamicObject = {}.%FromJSON(json)
Set object = ##class(%ZEN.Auxiliary.altJSONProvider).%UnpackObjectToCOSObject(dynamicObject, $classname())
Set sc = object.%Save()
ZW sc,object,^Utils.DynArrayPropD
}
}
I thought the "irispip install *.whl" would install the wheel file.
That is correct. Download pycryptodomex wheel same as you downloaded pycryptodom wheel, thansfer it to your server and try to install first pycryptodomex, then pycryptodom.
go to post
I guess you do need to use SessionEvent. OnLogin method specifically.
Or you can log every request using OnPreDispatch method in your REST broker.
go to post
You need your own datatype, which implements method generators for
Set
,GetStored
etc.After that use your own datatype in your main class. Example.
go to post
In your REST Web Application settings, leave only pass (and remove group by id, if any):
After that check that
UnknownUser
does not have%ALL
.Finally try to access your REST url using Postman (or similar tool) and you should be able to see Login methind being executed.
go to post
Leave only password auth for the rest web app?
go to post
Only on IRIS.
Convert HL7 to FHIR and use The FHIR SQL Builder to make dataset available as a set of SQL Tables. Consume from InterSystems Reports.
go to post
You don't need to create a
/login
route sinceLogin
method is being called implicitly if auth is required.To add logging, it's enough to redefine the
Login
method in your broker like this (##super docs):ClassMethod Login(skipheader As %Boolean = 1) As %Status [ ProcedureBlock = 0 ] { // do app-level logging quit ##super(skipheader) }
go to post
Only if it's a collection property:
Class Utils.DynArrayProp Extends %Persistent { Property A; Property B As list Of %Integer; /// do ##class(Utils.DynArrayProp).Test() ClassMethod Test() { Do ..%KillExtent() Set json = "{""A"":123,""B"":[1,2,3]}" Set dynamicObject = {}.%FromJSON(json) Set object = ##class(%ZEN.Auxiliary.altJSONProvider).%UnpackObjectToCOSObject(dynamicObject, $classname()) Set sc = object.%Save() ZW sc,object,^Utils.DynArrayPropD } }
go to post
InitialExpression would be preferable to %OnNew for predefined values.
%OnNew is for cases where you have user input.
go to post
I think you'll need to open a WRC for that.
go to post
It is setting headers, yes. But in your previous sample code you were using ..Adapter.Post method which does not take tHTTPRequest.
go to post
Sync BO with Deferred Response. BO defers, Second BS resumes.
go to post
Go to routines and search for.png)
*%fm2class*
- you should be able to export 5 items available there.Alternatively, request WRC to provide you an xml file.
go to post
If you have more than one BH referring to the same property, either use System Default Settings or Production settings.
go to post
Also you need to pass your
tHTTPRequest
aspHttpRequestIn
(using Send* methods of the adapter) - as currently none of your headers are sent.go to post
When you use DEBUG=1 the request is not actually sent, just displayed, so you get downstream errors, ignore them.
First you need to check your request with DEBUG=1, verify that everything is okay and after that switch to DEBUG=2.
With DEBUG=2 the request is sent (but not displayed) and you get response back (which would be displayed).
go to post
I guess we are hitting some other limit.
I went with approach 4 myself.
go to post
Could you try DEBUG=1 please?
I think 1 is to show request and 2 is to show response.
go to post
You can also audit queries:
go to post
You need to set
Parameter DEBUG As %Integer = 2;
in adapter, not in BO.
You'll get output on the current IO device (that's why you need to run BO in Foreground Mode), when your code gets to this line:
set tSC = ..Adapter.Post(tURL)
go to post
That is correct. Download pycryptodomex wheel same as you downloaded pycryptodom wheel, thansfer it to your server and try to install first pycryptodomex, then pycryptodom.