Great advice, Jordan! Thank you!
- Log in to post comments
Great advice, Jordan! Thank you!
%Close is called automatically. Consider the following example:
Class Utils.GC Extends%RegisteredObject
{
Property Type As%String;/// do ##class(Utils.GC).Test()ClassMethod Test()
{
set obj = ..%New("explicit")
kill obj
do..Implicit()
}
ClassMethod Implicit()
{
set obj = ..%New("implicit")
// obj will be removed from memory after we exit current method/frame.
}
Method %OnClose() As%Status [ Private, ServerOnly = 1 ]
{
Write"%Close is running: ", ..Type,!
Quit$$$OK
}
Method %OnNew(type) As%Status [ Private, ServerOnly = 1 ]
{
Set..Type = type
Quit$$$OK
}
}Here's the output from the Test method:
HCC>do##class(Utils.GC).Test()
%Close is running: explicit
%Close is running: implicitCheck this discussion. % variables are the simplest singletons there is.
Health Connect Cloud clients use System Default Settings. SDS serve two purposes:
They can be easily integrated into CICD processes. Starting from 2024.1 SDS can also control enabled/disabled state of individual BHs.
Add password auth as Allowed Authentication Method on Web App configuration page.
Doubt it - $system.OBJ.MakeClassDeployed deletes the source code so there's nothing to recompile. Contact the WRC maybe they can suggest something, but without the source code there's not much anyone can do.
Maybe you still have this class in your source control?
URL must have a scheme (either TCP or SSL). I don't think your (redacted) URL has a scheme.
If that does not help, try to init the object directly to see what's going on:
Set client=##class(%Net.MQTT.Client).%New(Url, ClientID, QOS, KeepAlive, LWTTopic, LWTMessage)When creating a new client instance at minimum the url to connect and a client id is required to be specified.
The client id must be a utf-8 string which is used to uniquely identify the client.
This takes the form "tcp://localhost:1883" where the scheme is tcp and the host and port are seperated by a colon. If
you are using ssl you should specify the url in the form "ssl://localhost:8883" where scheme is ssl.
The second parameter is a string which the broker can use to identify the client. The client will generate an id if not specified.
The third parameter defines the required quality of service, 'Fire and Forget' (0) or 'Wait for Delivery' (1).
The fourth parameter is the keepalive interval, defaults to 60.
The client will send keepalive messages to the broker according to the specified interval. The final pair of parameters specifies the last will and testament topic and associated message.
The LWT (last will and testament) feature tells the broker to deliver the Last Will message to the Last Will topic, should the client unexpectedly disconnect.
Note, %New() can error so it's important to check that the return value with $IsObject() and examine the %objlasterror status value should the %New() not return a valid object.
SDS for "enabled" and "pool size" were made available starting with 2024.1.
Can you elaborate please? What do you want to do?
Set response type to HTML:
ClassMethod Test()
{
set%response.ContentType = "application/html"do##class(%CSP.Utils).DisplayAllObjects()
quit$$$OK
}In Postman click Preview button:
.png)
It will work with any HTTP request verb.
Most REST dev clients have support for HTML preview, just remember to set Content Type. I don't think swagger-ui can do that as it's not an app, rather a page running in a browser.
Great article!
Highly recommend adding a common package root. I.e. not Operation.Alert but Company.Operation.Alert.
This way querying %Dictionary/InformationSchema becomes much easier since you always know what to filter on.