I'm trying to figure out what is the best (or at least pros & cons) on how to manage login accounts in a multi-tenant SaaS web based application context.
Assume that a company is designing a collections of web based applications that they will be selling as "services" to their clients, and that these clients will each have their own "users" and "customers" that will be logging into these services.
I have some logging code that outputs task status information to a log file. I would like to make the log available for reading while it is open for writing. The file is opened using the "L" option (Lock):
I would like to change the initial text that is generated by the New Class wizard in Atelier, but I'm not sure if I can or where to go to make the modification. I have a specific format for initial classes, and the wizard generated code isn't cutting it for me. I know it's trivial to take the generated text and just modify it, but if I could only have to do that in the wizard, that would be better.
The more generalized question is, which wizard output can be safely changed without fear of losing the change on upgrade, and where are these?
This question came on the Ensemble in Healthcare email list. It's a great question. I'm working on an answer, but am posting it here to get any other input. I'll also address the option of using %CSP.REST.
I am trying to execute a system query. - %SYS.Journal.File_Search()
The Query is looking for a Journal File Name and a String.
However, the Query line accepts no parameters. - Query Search() As %Query(ROWSPEC = "Offset:%Integer")
But in the SearchExecute method if checks for File and String.
ClassMethod SearchExecute(ByRef qHandle As %Binary, String As %String, FileName As %String . . . { i $g(String)="" q $$$ERROR($$$JournalFileSearchUndefined) i $g(FileName)="" q $$$ERROR($$$JournalFileUndefined)
I was writing a routine that called some class methods and when I typed in ##class( and the package, there was a drop down list of all the classes that match that package but when I selected one of the dropdown entries it added the package name again.
For example if I enter ##class(dim.
I am presented with a list of classes in the dim package but when I selected one of them,(dim.OccupationList), what ended up in the editor was
I have a class which, in the previous instance, was able to extract metadata field names and data from a text file, and load this information into a domain. I am trying to run this in the field test instance, but it is not loading the metadata - only the field names. I am not getting an error, but the data is not loaded.
The few changes I made to the original class:
Previously, this class also ran iTables. I commented all that code out.
I have a scenario where I am calling a business operation which populates and returns an EnsLib.SQL.Snapshot via dynamic SQL to a Business Process. I then want to iterate over this snapshot and call a RecordMap Operation to write those records to a delimited file.
Is this the correct way to do something like this? If so, does anyone have a sample which illustrates its correct usage?
When the snapshot is returned I save it into a context variable with:
set context.Snapshot=callresponse where the pOutput variable of the operation is set to EnsLib.SQL.Snapshot.
I have a need to query and retrieve DICOM images using the 'pull' method of C-FIND and C-GET. I have seen examples in Ensdemo where Ensemble is a target of pushed messages. Has anyone used Ensemble this way? If so, can you share and example?
Hi, The ZEN Mojo Widget reference at ../csp/sys/%ZEN.Mojo.WidgetReference.bootstrap33xHomepage.cls is a great reference for viewing the different components available with each helper plugin - and it also supplies snippets of JSON code to use in your layout definitions.
I'm having problems with the Bootstrap $navbar component however. This is layout definition, with a navbar and button contained within the bar.:
I was trying to modify the REST.DocServer sample in the SAMPLE namespaces to use the new %Object and %Array system objects (Ensemble 2016.2 build 636) with the following changes:
/// This method returns a list of namespaces for this server
ClassMethod GetNamespaces() As %Status
{
#dim tSC As %Status = $$$OK
#dim tList,tNS,tFilteredList,tValue As %String
#; Get the list of namespaces
Do List^%SYS.NAMESPACE(.tList)
Set tNS="" For {
Set tNS=$Order(tList(tNS),1,tValue) If tNS="" Quit
It is time for me to eat my own dog's food and start implementing unit test running with coverage :) I will be inundating IRC with questions at this point, but I have a more general question first.
In this tutorial, it is supposed that your unit tests are exported as XML first... But that's not very practical. Is there a way, instead, to run all tests from a given project without having this export?
I've defined a Cache Connection to my local server. It worked for the last two days, but after an uninstall/reinstall of Atelier, it stopped working. The stack trace has these entries:
java.lang.RuntimeException: Can't read from secure storage node /com.intersys.eclipse.connmgr/ensrc
Caused by: org.eclipse.equinox.security.storage.StorageException: No password provided.
One possible way I already know of is that all fully qualified class names (ie, the package + the class name) start with %, which mean that on installation all classes will end up in the %SYS namespace, but this requires that the install be done as a user with the necessary privileges to write to %SYS.
We are currently looking into a way to provide a group of end-users (i.e. non-Interface Development engineers) access to a pre-defined group of Ensemble-based Data Lookup Tables for purposes of viewing and editing. We do not want to give them access to ALL Data Lookup Tables due to security/continuity concerns.
My thinking is that a simple persistent Cache table with three columns (Role Name, Table Name, Access-Level [like View or Edit]) with a CSP front-end could potentially provide an easy way to make this solution a reality.
What would be the preferred method to create an HL7 message from an input that is not HL7?
Would it be better to take the non-HL7 input and construct an HL7 message in the business service that then gets passed off to a routing process, or would it be best to just pass the non HL7 message to a routing process that called a data transformation to create the HL7 message?
My thought is the later, due to the fact that updates to the creation of the HL7 message are done using the graphical DTL editor rather than editing COS in the service.
I have two servers in our TEST environment. One with HSBUS and one with HSREGISTRY. Let's call them "HSBUS01" and "HSDB01" respectively.
Now, I can access HSBUS with my SQL client by using the JDBC driver pointed to hsbus01.full.name.com and port 1972 and specifying a namespace of "HSBUS". I am, however, unable to access the HSREGISTRY instance via SQL with a similar combination of information.
I have to disect thousands upon thousands of strings like this:
96842-2-AEV.00001-63561-001958-100728760I-42
I've been able to pull out the first, second and final segments as separated by hyphens, but now I have a predicament where I need to use the second segment, the 2 shown in the example above, in a join to another table. Problem is Cache apparently doesn't like doing that. Just the same, I have to find a way.
Here's the code I'm using to pull that segment out into as separate field in the query results: