Question Eduard Lebedyuk · Dec 21, 2016 How do I calculate the difference between two texts using iKnow? I'm in a process of acquiring a corpus of documents on educational courses. For example there is an educational course called "OOP" and it can have documents from 2008, 2009, ... 2016 etc.And there are a lot of these courses, each one with programs from different years (hopefully)So 1 document is 1 programm of one course for one year.I want to calculate how much does a course changes per year. #InterSystems Natural Language Processing (NLP, iKnow) 0 7 0 602
Article Eduard Lebedyuk · Dec 19, 2016 3m read Tips & Tricks - SQL queries management If you have a lot of SQL queries to external systems (or even internal dynamic ones), you can encounter something like this: #Beginner #Caché #SQL 3 2 0 1.5K
Question Eduard Lebedyuk · Dec 15, 2016 Is there a way to determine row level security in runtime? So, I played with row level security and was unable to find a way to get to work it dynamically. I want to determine if the user can access the row in runtime based on a state of external system, but it seems that row level access is calculated during INSERT/UPDATE and stored in %RLI index. Is there a way to achieve runtime access calculation? #SQL #Caché 0 1 0 414
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 716
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 394
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 364
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 759
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.7K
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 645
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 414
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 725
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 702
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 457
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 515
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 945
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