Question Eduard Lebedyuk · Dec 14, 2016 How do I free licenses? I have a server with public web application with Unauthenticated access and there seems to be a problem that CSP session ends, but associated license persists for some time (hours). If several users log in, we can hit license limit and all the other users get 503 Service unavailable error.We are currently debugging it and moving to authenticated web applications, but is there a way to free these licenses quickly?Here's how it looks like in SMP: #System Administration #Frontend #Caché 0 1 0 712
Article Eduard Lebedyuk · Dec 1, 2016 8m read RESTForms - REST API for your classes In this article I would like to present the RESTForms project - generic REST API backend for modern web applications.The idea behind the project is simple -after I wrote several REST APIs I realized that generally, REST API consists of two parts:Work with persistent classesCustom business logicAnd, while you'll have to write your own custom business logic, RESTForms provides all things related to working with persistent classes right out of the box.Use casesYou already have a data model in Caché and you want to expose some (or all) of the information in a form of REST APIYou are developing a new Caché application and you want to provide a REST API #Best Practices #REST API #Tools #Frontend #Caché 12 23 3 5.2K
Question Eduard Lebedyuk · Nov 22, 2016 How do I log terminal output to file automatically? As stated in title, I want to log everything I type/get in the terminal to a log file, is there a setting like this somewhere? Preferably I'd like to enable it once and that's it. #Beginner #Terminal #Caché 1 5 0 1.3K
Question Eduard Lebedyuk · Nov 8, 2016 Why my ZEN report displays ok in xml mode but not xlsx excel I have a following ZEN report: #Caché #ZEN 0 2 0 387
Question Eduard Lebedyuk · Oct 24, 2016 Is it possible to use non /csp/<namespace> for SMP I had default csp application: /csp/<namespace> for a namespace.Later I created another application: /csp2/<namespace> and made it default.Yet all namespace-specific (Ensemble, DeepSee, SQL, etc.) links in management portal still point to/csp/<namespace>.Is there any way to make the links in management portal point to /csp2/<namespace>? #Beginner #Management Portal #CSP #Caché 0 1 0 359
Article Eduard Lebedyuk · Oct 18, 2016 7m read Macros in the InterSystems Caché In this article I would like to tell you about macros in InterSystems Caché. A macro is a symbolic name that is replaced with a set of instructions during compilation. A macro can “unfold” in various instruction sets each time it is called, depending on the parameters passed to it and activated scenarios. This can be both static code and the result of ObjectScript execution. Let's take a look at how you can use them in your application. #Beginner #Best Practices #Caché #Compiler #Terminal #ObjectScript #Tips & Tricks 9 3 0 2.3K
Article Eduard Lebedyuk · Oct 6, 2016 3m read Tips & Tricks - Automatic removal of system methods from codebase Recently I wrote about automatic removal of system methods from the codebase. Today, I'm ready to present you a working solution (codename: SMR) for this task. #Caché #Change Management #Code Snippet #ObjectScript #Tips & Tricks 4 5 0 746
Article Eduard Lebedyuk · Oct 3, 2016 3m read Tips & Tricks - SQL to Excel End users sure love Excel tables. So, how can you deliver the second to the first? Read this post to find out. #Caché #Code Snippet #SQL #Tips & Tricks 6 6 1 2.6K
Question Eduard Lebedyuk · Sep 28, 2016 How do I get display value of a property via ODBC I have a class with a string property with DISPLAYLIST and VALUELIST parameters specified.When I query this class via ODBC I receive logical value as it is and not a display value.Is there any way (without stored procedure) to get display value? #ODBC #SQL #Caché 0 3 0 632
Question Eduard Lebedyuk · Sep 26, 2016 Automatic removal of system methods from codebase As we've all heard 2016.2 draws near and brings the removal of system methods with it.There are two ways to make the code compatible with 2016.2:Replace system methods with new methodsReplace system methods with macros #Caché #Compatibility #ObjectScript 1 1 0 410
Article Eduard Lebedyuk · Sep 26, 2016 2m read Tips & Tricks - Export object to global We're developing Ensemble PoC and one day our frontend developer (who doesn't have Ensemble production running) said that Populate just doesn't cut it and he needs to see the real data. He needed only one object, but the problem was - it's a big object. Still, I checked ids of everything related and wrote this command (parts omitted, but you get the idea): #Code Snippet #Globals #Key Value #Object Data Model #Tips & Tricks #Caché 2 1 0 716
Question Eduard Lebedyuk · Sep 16, 2016 Exporting global nodes to xml Let's say I have a global named ^a and I need to export its nodes 1, 2, 3, 5 only. Currently I write something like this: Write $SYSTEM.OBJ.Export("a(1).gbl,a(2).gbl,a(3).gbl,a(5).gbl", "C:\Users\eduard\Desktop\a.xml") Is there a way to write it shorter? I want to write global node once and list all the subscripts I need. #Caché #Globals 1 1 0 690
Article Eduard Lebedyuk · Sep 13, 2016 7m read User authentication using Arduino with RFID In the previous article, I had just started working with Arduino, and got a meteorological station to show as a result. In this article, let's go further: we will set up authentication via RFID cards and Arduino against the InterSystems Caché application. #Authentication #Security #Terminal #Access control #Caché 8 3 1 5K
Article Eduard Lebedyuk · Sep 6, 2016 2m read Some considerations when creating objects with >1 level of serial objects Let's say we have two serial classes, one as a property of another: Class test.Serial Extends %SerialObject { Property Serial2 As test.Serial2; } Class test.Serial2 Extends %SerialObject { Property Property As %String; } And a persistent class, that has a property of test.Serial type: Class test.Persistent Extends %Persistent { Property Datatype As %String; Property Serial As test.Serial; } So it's a serial, inside a serial, inside a persistent object. #Object Data Model #SQL #Caché 4 2 0 447
Question Eduard Lebedyuk · Aug 10, 2016 How do I invoke Ensemble testing service for requests with %ArrayOfDataTypes property from SMP I have the following Ensemble request: Class MyApp.MyRequest Extends (%Persistent, Ens.Request) { Property idToTokenArray As %ArrayOfDataTypes; } On SMP Testing service page it looks like this: But my attempts to set idToTokenArray have not yielded any positive results so far. How do I need to fill it? #Ensemble #Business Service 2 2 0 504
Article Eduard Lebedyuk · Aug 9, 2016 2m read Tips & Tricks - Process-private Globals as a class storage Process-private Globals can be used as a data global in storage definition. That way, each process can have its own objects for the class with ppg storage. For example lets define a pool, which can:add elements to a pool (ignoring duplicates)check if an element exists in the poolHere's the class: #Code Snippet #Data Model #Globals #Object Data Model #ObjectScript #Tips & Tricks #Caché 4 2 0 932
Article Eduard Lebedyuk · Aug 1, 2016 2m read Tips & Tricks - ByRef object passing Today, I was reading some source code, and encountered the following method signature: Method SendRequestSync(pRequest As %Library.Persistent, ByRef pResponse As %Library.Persistent) And I immediately thought, why is there a ByRef? #Object Data Model #Tips & Tricks #Caché 6 4 1 2.2K
Question Eduard Lebedyuk · Jul 14, 2016 How to set compilation flags/qualifiers? I have the following problem: There are several classes with method generators, which needs to be compiled during every compilationI have "ckub" qualifiers enabled in studioI don't want to remove "u" qualifier because I need it very much in another namespaces So how do I force classes with method generators to recompile when "u" qualifier is present? #Caché #Compiler #Studio #ObjectScript 0 2 0 1.3K
Article Eduard Lebedyuk · Jul 5, 2016 3m read Useful auto-generated methods For each defined property, query or an index, several corresponding methods would be automatically generated on a class compilation. These methods can be very useful. In this article, I would describe some of them. #Best Practices #Code Snippet #Object Data Model #Caché #InterSystems IRIS 9 15 8 4.3K
Article Eduard Lebedyuk · Jul 1, 2016 1m read After scrolling to the page footer more results are loaded but the view jumps back to the beginning Go to My Content -> Collaborations and scroll down. After hitting the bottom of the page, the more results are loaded and the page becomes longer, but the view jumps back to the beginning of the page.Expected behavior: the view stays where it was after loading more results. #DC Feedback 1 3 0 223