go to post Stephen Canzano · Oct 31, 2024 when you say using IPM do you mean perfoming "install -v moduleName" on IRIS or do you mean creating a registry on IRIS earlier than 2022.1
go to post Stephen Canzano · Oct 23, 2024 Using the message viewer you can add criteria and search by
go to post Stephen Canzano · Oct 11, 2024 Edit.. for some reason I didnt see the above reply. Given that you are extending Ens.BusinessProcess you have access to Ensemble/Interoperability. If you are going down this path you might want to review RecordMaps which is a general purpose way of consuming data from files via a business service based on EnsLib.RecordMap.Service.FileService. This will open the file, for each line create an instance of your RecordMap object and then if you define in the service the TargetConfigNames sent the Record as a message to commonly a business process. In the busines process you will receive each line as a message object. From there you can do what you like with it. This could be a bit overkill if all you have is a single column in the file(just a column for ID) but is a general way of handling the ingestion of files.
go to post Stephen Canzano · Oct 11, 2024 I'm assuming folks from InterSystems have a more formal way of saying "you have a partner with InterSystems". When the occasional crisis occurs, the support of many folks from WRC rally around your issue and see it to the end. Having the ability to contact someone on the other end and resolve crisis issues is not something you are likely to get from other vendors.
go to post Stephen Canzano · Sep 4, 2024 Looking at your example class, and maybe its not practical as we aren't seeing the entire context of your real world usage but might you see better resuilts if you were using instead of a composite index on prop1, prop2, prop3 but rahter bitmap indices on prop1 as it seems like it is the field name and would have a suffeceintly small number of values, a bitmap index on prop2, and a traditional index on prop3. If you were to show the query plan that would also provide some insight.
go to post Stephen Canzano · Aug 27, 2024 I would imagine if you have a license from Intersystems you could install Cache, mount the DB, and then the next question is "Was the application developed back in 2017" with an SQL interface, ie are there SQL tables that exist for the database that you have?" If so you could connect to the db via ODBC and extract the data. If not then that's a much large endeavor as you would need to have the tables defined and depending on how much meta-data/documentation you have for the data that could be quite involved.
go to post Stephen Canzano · Aug 2, 2024 Joel, That's assuming your class query is based on %SQLQuery. If your class query is based on %Query then you could have a single class query.
go to post Stephen Canzano · Jul 29, 2024 there is of course %LIbrary.ArrayOf.* for example https://docs.intersystems.com/iris20241/csp/documatic/%25CSP.Documatic.c... unlike %Library.List* of which allows for an item to exist more than once in the set/collection
go to post Stephen Canzano · Jul 25, 2024 some thoughts on using custom ZEN Components that I follow that might help. In my custom component I have /// If true, then the include files generated for this component, are placed in the /// common /csp/broker directory and not the local /csp/*namespace* directory.<br/> /// This is intended for use with packages that are mapped so as to be visible to every namespace.<br/> /// All Zen classes within the same package must have the same value for this parameter. /// It is the developer's responsibility to ensure this. Parameter USECOMMONDIRECTORY As BOOLEAN = 1; and /// XML namespace for component. Parameter NAMESPACE = "http://www.readycomputing.com/zen"; 2. In my ZEN page in <page xmlns="http://www.intersystems.com/zen" xmlns:RC="http://www.readycomputing.com/zen" if you are using Package Mapping with a common database for your classes I found using USECOMMONDIRECTORY neccessary.
go to post Stephen Canzano · Jul 17, 2024 Is this a CSP class or a class that extends from %ZEN.Component.page, it looks like you might be have a CSP page that wants to use ZEN components and do not think that is possible.. but I could be incorrect. Regardless, is the &html ON LINE 72 closed with the > symbol on line 92?
go to post Stephen Canzano · Jul 8, 2024 How 'bout https://docs.intersystems.com/iris20241/csp/docbook/Doc.View.cls?KEY=GTS...
go to post Stephen Canzano · Jun 25, 2024 Maybe one good reason to have all of this in a class is normally you would make a change to the definition which write to the class, you then commit your changes, ie commit the class, and then promote the class using your normal class deployment strategy.
go to post Stephen Canzano · Jun 24, 2024 The linkage definition is stored in a class which can be found here you could use System Explorer->Classes to export the class as a file and then use System Explorer->Classes to Import the class.
go to post Stephen Canzano · May 20, 2024 Depending on your implementation you can If using %SQL.Statement set %SelectMode accordingly if using the old %Library.ResultSet, set RuntimeMode accordingly in your method code.
go to post Stephen Canzano · May 14, 2024 Using [ Language = python ] in a classmethod and then leveraging pymongo could be one way to do this
go to post Stephen Canzano · May 10, 2024 If you click on the bottom line of VS Code where your connection is defined it will display a dialog on the top of the screen showing the Server Actions including the SOAP Wizard
go to post Stephen Canzano · Apr 15, 2024 Still not fully able to grasp what you are doing but if are trying to address log.cls_id IN (61) AND log.q_id IN (19, 25, 27) I often find myself doing something like log.cls_id %INLIST $LISTFROMSTRING(':Param1,',') AND log.q_id %INLIST $LISTFROMSTRING(':Param2,',') and then set Param1=61 and Param2 = "19, 25, 27" so long as you know the values of Param1 and Param2. %INLIST is documented https://docs.intersystems.com/iris20241/csp/docbook/Doc.View.cls?KEY=RSQ... and $LISTFROMSTRING is documented here https://docs.intersystems.com/iris20241/csp/docbook/Doc.View.cls?KEY=RSQ...
go to post Stephen Canzano · Apr 3, 2024 Try this but I might be incorrect. It looks like you have a custom component which you have highlighted. When you compile the component class it produces a .js file in InstallDirectory\CSP\broker. Look there to see if the file is there. If not consider recompiling your component class and ensure that the .js class exists.
go to post Stephen Canzano · Mar 27, 2024 Regarding If the first bullet item in the Query Plan is “Read master map”, or the Query Plan calls a module whose first bullet item is “Read master map”, the query first map is the master map rather than an index map. Because the master map reads the data itself, rather than an index to the data, this almost always indicates an inefficient Query Plan. Unless the table is relatively small, we should create an index so that when we rerun this query the Query Plan first map says “Read index map.” I think it's more subtle than that. My general plan of attack is to review the results of Show Plan and then search for Looping. If the first bullet item in Show Plan is one of the following Read master map Ens.MessageHeader.IDKEY, using the given idkey value. Read master map Ens.MessageHeader.IDKEY, looping on ID (with a range condition). I'm not immediately concerned. In the first case this is going directly to the row which is perfectly fine. In the second case so long as the range condition is not going to read the entire extent I can accept that and not look for a better query plan. Honestly, where its Read master map Ens.MessageHeader.IDKEY, looping on ID (with a range condition). or Read index map Ens.MessageHeader.TimeCreated, looping on TimeCreated (with a range condition) and ID. I don't care if its the master map or the index map, what I'm interested in is Looping and does looping cause the engine to look at the entire extent or index.
go to post Stephen Canzano · Mar 7, 2024 You wrote The module.xml has the one line which describes unit tests: <UnitTest Name="src" Package="UnitTests" Phase="test"/> This line means that ZPM will look in /src folder of the repo and will run all the tests of all the classes which are included in UnitTests packageIs Is this to say the Name="src" means it will look on the machine where the module has been installed in the /src folder? If this is so this is problematic for us I believe. We are trying to protect our IP and as part of the Module.xml definition we have 2 Invokes that help with this effort 1. <Invoke Class="RCIPM.Utils" Method="MakeModuleDeployed" Phase="Compile" When="After" CheckStatus="false"> We do this because there are some classes which cannot be marked as Deployed as they need to be compiled additional times on the application namespaces after we have run the install command in HSCUSTOM 2. <Invoke Class="RCIPM.Utils" Method="DeleteModulesFolder" Phase="Activate" When="After" CheckStatus="true"> If we don't delete the Module folder then our classes are there in plain text and could be lifted off of the server. so if Name="src" mean look in the /src folder on the target machine(not the registry) then this wouldn't work for us. That's not to say that DeleteModulesFolder doesn't cause other issues but its currently what we feel we need to do to protect our code.