go to post Michel Liberado · Jul 25, 2023 Just to be sure, this is a typo in "Interger", right ?- Parameter HandleCorsRequest = 1; Parameter UseSession As Interger = 1;
go to post Michel Liberado · Jul 24, 2023 InterSystems enforced SOAP/REST licensing but may have removed it.In the InterSystems IRIS® Upgrade Checklist (2023.1) you can see in the Google cached webpage: DP-417320: Enforce SOAP/REST licensing Category: LicensingPlatforms: AllVersion: 2023.1.0 In previous versions, the product did not enforce the SOAP/REST licensing rules. With this version, we are now enforcing those licensing rules. Each authenticated SOAP/REST request will be licensed as a concurrent user (with multiple connections allowed). Unauthenticated requests (i.e. $Username = "UnknownUser") will be counted as independent user connections and subject to a 10-second minimum connection time.Maybe you can try again with a more recent release or rework your app to use authenticated users.
go to post Michel Liberado · Dec 14, 2022 Hi, what about deploying using a Docker container ?I'm not sure you absolutely need Studio, Visual Studio Code + InterSystems plugins should do fine.You could eventually also provide just a ZPM of your application and let the client manage its license + IRIS.
go to post Michel Liberado · Sep 20, 2022 Hi, I just did the same thing.I am using Visual Studio Code with InterSystems plugins.Using the plugin, connect to your server in the appropriate namespace. Once done, locate your Production.cls in VSCode explorer, right click and select Export, this will export from IRIS to your local filesystem. You should be able to find the location of the exported class in your filesystem in the output panel: export "Namespace.Production.cls" as "/Users/yourself/Developer/Project/Namespace/Production.cls" - SuccessExported items: 1 Do the search and replace that you in the local Production.cls. When saving your modifications, the class is automatically compiled in the server: The output also shows: Compilation started on 09/20/2022 13:33:15 with qualifiers 'cuk'Compiling class EAI.ProductionCompiling routine EAI.Production.1Compilation finished successfully in 0.113s. While working on your changes, pay attention to the notification that can occur
go to post Michel Liberado · Feb 17, 2022 Hi, I think you mean IRIS, not ISIS. can you give more precisions about the installation ? Platform ? Distribution ? Firewall somewhere ?
go to post Michel Liberado · Feb 14, 2022 Thanks everyone, I've read all your answers. I am using a %DocDB.Database. I have many colons created using %CreateProperty and some of them have the UNIQUE indicator set to true, therefore an index is created.BUT, the %CreateProperty method is quite limited and I couldn't find how to make indexes on multiple columns/properties without doing some kind of trick (adding a property whose propertyExpression is the combination of other properties).Anyway, I ended up building some indexes manually like that: SET className = tfullDatabaseName SET indexDefinition = ##class(%Dictionary.IndexDefinition).%New() DO indexDefinition.parentSetObjectId(className) SET indexDefinition.Name = "col1AndColB" SET indexDefinition.Properties = "col1,colB" SET indexDefinition.Unique = 1 SET status = indexDefinition.%Save() Whenever I want to update my database schema, our strategy is to remove all properties and indexes.Of course, the original %DropProperty drops indexes associated to the property to drop using an internal server only method dropIndex: /// dropIndex() - delete an index definition and its structure. This method returns an oref referencing the index definition /// document that was removed from the index definition database. /// <br> /// <pre> /// SAMPLES>set people = $system.DocDB.GetDatabase("People") /// SAMPLES>set index = people.%DropIndex("HC") /// SAMPLES>write index.%ToJSON() /// {"database":"People","name":"HC","type":"bitmap","class":"%DocDB.Server.Index.Bitmap","key":[["HomeCity","string"]]} /// </pre> Method dropIndex(indexName As %RawString = "") As %Library.DynamicAbstractObject [ Internal, ServerOnly = 1 ] { TRY { SET response = $THIS $$$THROWONERROR(status,$CLASSMETHOD(..ClassName,"%PurgeIndices",$LISTBUILD(indexName))) $$$THROWONERROR(status,##class(%Dictionary.IndexDefinition).%Delete($$$oidForm(..ClassName_"||"_indexName))) // check status? } CATCH exception { SET response = "" THROW exception } RETURN response } By the way, the documentation of this method suggest that you can use %DropIndex ... maybe this is an error.Note that this instance method is called only within the %DropProperty method, within a TSTART TCOMMIT block and the class is also locked.About my initial question, my original intent was to drop ALL indexes on the database, even those NOT created with %CreateProperty.I tried to mimic the code of %DroptProperty (TSTART TCOMMIT, lock class, ...) with no success. When I try to recreate properties and columns for all my %DocDb.Databases it fails randomly.
go to post Michel Liberado · Feb 11, 2022 Thanks, this works.But, my question did not exactly reflect my thoughts, I needed the ID of a class' indices in order to delete them manually since I haven't found any method that would be %RemoveIndices(pIndexList As %List=""...).So, in order to get the IDs, I use SELECT ID FROM %Dictionary.IndexDefinition WHERE parent = 'your.class' Then we use %DeleteId to delete the found indices. This is not fully tested yet.
go to post Michel Liberado · Nov 26, 2021 We are looking forward for Embedded Python ! About the mindset|languages, don't be rude please ! 😚. Whenever a new developer comes in and jumps into ObjectScript, you don't necessarily tell him about this very rule exception when writing arithmetic nor does he think that he should read the documentation SQL/Using SQL/... whilst it's not trivial that is is related. I was just asking about a setting that would make me confident when we deliver our platform to future developers.I always format my expressions with "(" but for some people this is just some coding style...
go to post Michel Liberado · Nov 26, 2021 Operator precedence in ObjectScript is strictly left-to-right; within an expression operations are performed in the order in which they appear. This is different from other languages in which certain operators have higher precedence than others I am fine with each language having its own operator precedence, but, is there a setting somewhere, even hidden or activable with some obscur guru command to have the same as pretty much everyone else ?
go to post Michel Liberado · Mar 2, 2020 Problem is solved, it was my fault. I forgot a '.' in one of the many nested calls ...The thing to remember is to pass the response argument by reference everywhere, from REST to BO1.
go to post Michel Liberado · Mar 2, 2020 Hi, I don't really get it, I don't understand the flow. The documentation says : structure your code to use SendRequestAsync() instead of this method, and handle response messages in the OnResponse() callback method But I want a synced request. Set tSC = SendRequestSync(request, .response)// Now I continue the flow from here ... but you're telling me I should handle in OnResponse() ... but how do I take control right back here if I use OnResponse() +?
go to post Michel Liberado · Feb 20, 2020 The following post (How to - Customize Ensemble Settings) details your answers.I had not seen it while searching for answers because it didn't show up in the results while typing "settings" in the search field it but it does when typing "customize": vs Anyway, thank you for your help.
go to post Michel Liberado · Feb 4, 2020 You are right, my calling code is inside a web application, so I need to give the ressource %NSone_SRC to the web application. Thank you.
go to post Michel Liberado · Jul 9, 2019 Hi there, this is not related to Atelier but rather to your Eclipse installation.In the menu bar, click "Windows" and then "Preferences", a window will happen. On the top left corner, type "proxy" in the "Type filter text".In the right part, you enter your proxy settings (ask your IT department).Here is an example for me: