Awesome!
Have you looked at OpenAI Privacy Filter?
- Log in to post comments
Awesome!
Have you looked at OpenAI Privacy Filter?
Great! It was quite a challenging exam.
set bhList = $lb("ServiceA", "OperationB")
set stop = 1
for i=1:1:$ll(bhList) {
set host = $lg(bhList, i)
set sc = ##class(Ens.Director).TempStopConfigItem(host, stop, 0)
}
set sc = ##class(Ens.Director).UpdateProduction()
Would trigger stopping all Business Host in a given list at the same time (once UpdateProduction is called).
For more details check out this article.
Form httpRequest in a local terminal session and send it using
do httpRequest.Post("/Car/Save", test)If test is 1 then instead of connecting to a remote machine it will just output what it would have send to the web server to the current device, if test is 2 then it will output the response to the current device after the Post.
I thought it's safer but rereading the docs I don't see any difference.
Thank you!
Thank you! We had a great discussion on branching.
If it's not associated with a class what writes into it?
You can get all globals used by classes by running these two queries:
SELECT
CounterLocation,
DataLocation,
ExtentLocation,
IdLocation,
IndexLocation,
StreamLocation,
VersionLocation
FROM %Dictionary.StorageDefinitionAnd:
SELECT
Location
FROM %Dictionary.StorageIndexDefinitionAre the files in a local folder?
I think the simplest would be customizing EnsLib.File.PassthroughService to drop all files except for the last.
Or writing a new adapter/BS which does it for you.
You can run irissession:
C:\InterSystems\IRIS\bin\irissession.exe iris -U "%SYS" "classmethod"
As for EmbeddedGit you can commit using EmbeddedGit and deploy using gitlab runners. I suppose you can call EmbeddedGit methods to import code, probably SourceControl.Git.Utils:ImportAll.
I'd use a Business Operation approach. Did it for Community Python Gateway, and it worked pretty well.
Is your BS enabled via SDS by any chance? If yes, can you try enabling it directly and remove Enabled SDS to test?
WebServerPort=0 only stops internal apache which has been removed many years ago. It does not affect an external webserver.
Change it in CSP.ini, leaving only your web app entry.
I suppose you can do it via Merge CPF too if you really want:
[Actions]
ModifyApplication:Name=/api/atelier,Enabled=0
ModifyApplication:Name=/api/deepsee,Enabled=0
ModifyApplication:Name=/api/docdb,Enabled=0
ModifyApplication:Name=/api/healthshare-rest/hssys,Enabled=0
ModifyApplication:Name=/api/iam,Enabled=0
ModifyApplication:Name=/api/iknow,Enabled=0
ModifyApplication:Name=/api/interop-editors,Enabled=0
ModifyApplication:Name=/api/mgmnt,Enabled=0
ModifyApplication:Name=/api/monitor,Enabled=0
ModifyApplication:Name=/api/security-config,Enabled=0
ModifyApplication:Name=/api/uima,Enabled=0
ModifyApplication:Name=/csp/broker,Enabled=0
ModifyApplication:Name=/csp/documatic,Enabled=0
ModifyApplication:Name=/csp/fhir-management,Enabled=0
ModifyApplication:Name=/csp/fhir-management/api,Enabled=0
ModifyApplication:Name=/csp/fhirsql,Enabled=0
ModifyApplication:Name=/csp/fhirsql/api/repository,Enabled=0
ModifyApplication:Name=/csp/fhirsql/api/ui,Enabled=0
ModifyApplication:Name=/csp/healthshare,Enabled=0
ModifyApplication:Name=/csp/healthshare/hcc,Enabled=0
ModifyApplication:Name=/csp/healthshare/hcc/bulkfhir,Enabled=0
ModifyApplication:Name=/csp/healthshare/hcc/bulkfhir/api,Enabled=0
ModifyApplication:Name=/csp/healthshare/hcc/services,Enabled=0
ModifyApplication:Name=/csp/healthshare/hssys,Enabled=0
ModifyApplication:Name=/csp/healthshare/hssys/app,Enabled=0
ModifyApplication:Name=/csp/healthshare/hssys/app/api,Enabled=0
ModifyApplication:Name=/csp/healthshare/hssys/services,Enabled=0
ModifyApplication:Name=/csp/hscustom,Enabled=0
ModifyApplication:Name=/csp/hssys,Enabled=0
ModifyApplication:Name=/csp/oauth2-client/api,Enabled=0
ModifyApplication:Name=/csp/oauth2-server/api,Enabled=0
ModifyApplication:Name=/csp/sys,Enabled=0
ModifyApplication:Name=/csp/sys/exp,Enabled=0
ModifyApplication:Name=/csp/sys/mgr,Enabled=0
ModifyApplication:Name=/csp/sys/oauth2,Enabled=0
ModifyApplication:Name=/csp/sys/op,Enabled=0
ModifyApplication:Name=/csp/sys/sec,Enabled=0
ModifyApplication:Name=/csp/test,Enabled=0
ModifyApplication:Name=/csp/user,Enabled=0
ModifyApplication:Name=/isc/studio/rules,Enabled=0
ModifyApplication:Name=/isc/studio/templates,Enabled=0
ModifyApplication:Name=/isc/studio/usertemplates,Enabled=0
ModifyApplication:Name=/ui/interop,Enabled=0
ModifyApplication:Name=/ui/security-config,Enabled=0Thank you, Stephen!
What's your Business Process class?
If you're using a message router (derived from EnsLib.MsgRouter.RoutingEngine), check Response From, Response Target Config Names, and Forward Generated Response To Target(s) settings. Although if called in a sync way, it should return a response to the caller anyway.
If you're extending an Ens.BusinessProcess, you can populate a response in any On* method (OnRequest, OnResponse, OnComplete, etc.)
If you're writing a BPL process, you should be able to access a response object everywhere.
Thank you, Brett!
First ^UnitTestRoot must be set to a valid directory. This resolves the initial error of:
LogStateStatus:0:Finding directories: ERROR #5007: Directory name 'U:\internal\testing\unit_tests\' is invalid <<==== **FAILED** (root)::
After that run:
Do ##class(%UnitTest.Manager).DebugRunTestCase(,"User.TestCase")
List several classes separated by a semicolon (;) to run them as one suite:
Do ##class(%UnitTest.Manager).DebugRunTestCase(,"User.TestCase;User.TestCase2")
I was confused a bit by the practice question 19
check whether the caller correctly passed an instance of
Sample.Personor a subclass.
I thought it meant:
check whether the caller correctly passed an instance of
Sample.Person(which would be correct) or a subclass (which would be incorrect).
But it meant:
check whether the caller correctly passed an instance of
Sample.Personor a subclass (both would be correct).
This can possibly work if you make %Persistent a secondary superclass. In that case, new properties would go to a separate subscript, and your setup can maybe work (requires testing).
Storage works like this (parent has N properties, Child - X):
Child Extends %Persistent, Parent:
^a(id) = $lb("", prop1, prop2, ..., propX)Child Extends Parent, %Persistent:
^a(id) = $lb("Child", propA, propB, ..., propN)
^a(id, "Child") = $lb(propO, propP, ..., propX)Anyone? Found this idea.
I use return where it's important that we exit (middle of the loop, etc) immediately, in all other cases I use quit.
I think you might want to track these numbers instead:
I wouldn't worry about total class length, but rather the number of individual elements and method sizes.
There's also class limits docs, but if you hit them, you probably have an issue already.
To wait for 15 seconds:
Set tSC = ..SetTimer("PT15S")I'm thinking we may need to create a custom business operation extending the default one EnsLib.HL7.Operation.TCPOperation, and we would need to wrap up the RetryCount inside the response. What do you think?
I think you are correct. RetryCount is a runtime property, I don't think it's stored anywhere longterm, so you need a custom BO to save it. There are some workarounds you can attempt:
But I would definitely recommend subclassing.
Great tutorial, but please consider adding IAM policies/roles jsons.
Check ParseIOStream/ParseFramedIOStream from EnsLib.HL7.Parser. These methods take a stream (read to a specific position) and return next HL7 message. Overall loop can be seen in EnsLib.HL7.Service.FileService's OnProcessInput.
Great! What's the new database size limit?