Caché

Syndicate content 118 

Index to Articles

Published 2018-05-11 Last edit -

Hi All

I this article I detail some strategic issues that a new development UI will need to address - these are the ones that I can think of now - others may come to light during this journey.

See the webinar by Eduard Lebedyuk here from the last Global Summit describing  modern web development and Caché

And, as always, if I have missed something please comment....

Last comment 8 April 2019
+ 13   2 6
671

views

+ 13

rating

I am trying to get the time difference between two time stamps one is recorded earlier to the one happening current but the problem is sql expect string while I have the other stored in a variable and if I do the following I get errors any help please

 

&sql(SELECT {fn TIMESTAMPDIFF(SQL_TSI_HOUR,$ZDT($H,3,1,3),tx)})

 

please note that tx is a variable holding the time formatted the same way as the one being compared to

Last answer 8 April 2019
0   0 1
0

comments

65

views

0

rating

Howdy, Developer Community!

 

Here’s a fun little formatting problem you may run into when trying to use the RSAEncrypt method of %SYSTEM.Encryption (also useable as $System.Encryption.RSAEncrypt()!), which is documented here:

https://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?...

Last comment 7 April 2019
+ 5   0 2
130

views

+ 5

rating

Hi!

We are using Rest Service with inheritance of  %CSP.Rest, and we are having the following problem: when we receive 100 request from single IP adress - this creates 100 CSP sessions and takes 100 user licence for each request for few seconds. What can we do do about this? We've  set this parameter:

Parameter UseSession As Integer = 1;

Thank you in advance!

Last answer 5 April 2019 Last comment 5 April 2019
0   0 2
95

views

0

rating

Hi All
This is the index to a series of articles I hope to create over the coming months.

ZEN and ZEN Mojo are no longer being actively developed by Intesystems - this is a great shame as it is a fine product that works so well for business applications.
However ZEN is a 15 year old product and I need a path forward to replace the ZEN UI with a supported development framework.

This article is an index of the other articles I have, or plan to write. - the articles will be subject to change as I develop my thoughts and climb the learning curve.

Last comment 5 April 2019
+ 12   0 8
702

views

+ 12

rating

My database service is on the cloud server, and I access it on the company intranet. When I user the %request.CgiEnvs  to get "REMOTE_ADDR", but what I have been getting is the company's external address. I can't get my IP address in the LAN. 
For example, my computer IP address is 192.168.11.11, and my company's external public network address is 214.17.17. I can only get 214.17.17 by using %request.CgiEnvs("REMOTE_ADDR"), but not 192.168.11.11.   

I only want to get 192.168.11.11.

Any help would be appreciated. Thanks!

Last comment 5 April 2019
0   0 4
0

answers

194

views

0

rating

Hey everyone, 

I stumbled across a comment in this post that mentioned that the %SYS.GlobalQuery is a potentially faster alternative to %GSIZE. I tested it out and while I like the %SYS.GlobalQuery I noticed that it has some size discrepancies against a %GSIZE with details.  Can anyone tell me which is more accurate for estimating the size of globals?

 

Here is an example of one of the differences I saw. From this it looks like the size is estimated to about 70gb from %GSIZE and about 67gb from %SYS.GlobalQuery.

%GSIZE Output:

Ens.MessageBodyD
                   8830691   70,452,447,461     98 %   8,194,352
%SYS.GlobalQuery Output:

                  Ens.MessageBodyD, 68990, 67189

Last answer 4 April 2019 Last comment 5 April 2019
0   0 2
83

views

0

rating

On one of our servers, when I am in Mgmt Portal and click the link for Configure / CSP Gateway Management, I get this url:

http://ipaddress.of.server:port/INSTANCENAME/csp/bin/Systems/Module.cxw?CSPSYS=0&CSPSYSreferer=_CSP.Portal.Home.zen

but the page displays a 0, and nothing else. Literally, just a 0.  This link works on our other servers, with the same URL.  Any idea why? 

 

Thanks,

Laura

Last answer 4 April 2019 Last comment 4 April 2019
0   0 1
46

views

0

rating

You may have missed it, but it's here.

Now popups from SMP when you're restarting the instance or just lost connection can be suppressed.

All you need to do is set this global:

set  ^%SYS("Portal","DisableConnectivityPopup") = 1

Available for 2018.1.2 and later. Documentation.

Thank you, @Alexander Koblov  for the find!

Last comment 4 April 2019
+ 2   1 1
62

views

+ 2

rating

Hello everyone,

 

i am in process of changing our authentication method, so we can integrate our AD authentication in our programs. At the moment i am using they %SYS.LDAP object, and trying to use the .Bind() method with the user information to authenticate. This seems to work without issues, but here the problems start.

When i flag a user 'Change password on next logon' in our Active Directory, the Bind fails with a status error: "Invalid Credentials". To make sure the user who logged in is in fact the user to change the password. I still need to check if this user entered the correct current login information.

Checking the fields 'badPwdCount' or 'badPasswordTime' does not help since they are not filled after a failed .Bind() it seems.

Anyone has experience with this issue and knows how to work around the change password issue?

Thank you guys in advance!

 

Thomas

Last answer 4 April 2019
0   0 2
0

comments

65

views

0

rating

I use Documatic a lot to generate class documentation from comments embedded in the code. Is there a good way to create documentation for SQL views as well? Ideally I want to document each column in the view with HTML markup similar to how I document each method of a class with Documatic.

Last answer 4 April 2019 Last comment 3 April 2019
0   0 2
68

views

0

rating

Dear Colleagues and Friends,

is there any indication that the .NET object representation of Cache objects (i.e. InterSystems.Data.CacheClient.dll) complies with .NET Standard? I'm planning to extend our existing .NET client/server solution with a mobile option by Xamarin Forms and can't find any significant hints in the internet.

I'm just fooling around a bit and made some expreiments with a REST API and a generic object-to-JSON tier

Last comment 1 April 2019
0   0 2
0

answers

66

views

0

rating

Hello all!

My company has been switching from $zf(-1) to $zf(-100) like many companies have been. I have been doing fine with 1 argument windows commands such as:

set errorfile = "D:\folder\error.txt"
set outputfile = "D:\folder\output.txt"


set options(1) = ""
set options(2) = "D:\ThomasTools\"

w $zf(-100,"/SHELL /STDERR="_errorfile_" /STDOUT="_outputfile, "dir", .options

Last answer 1 April 2019
0   0 2
0

comments

84

views

0

rating

image

The InterSystems DBMS has a built-in technology for working with non-structured data called iKnow and a full-text search technology called iFind. We decided to take a dive into both and make something useful. As the result, we have DocSearch — a web application for searching in InterSystems documentation using iKnow and iFind.

Last comment 1 April 2019
+ 8   0 8
742

views

+ 8

rating

Good afternoon - I am in the process of writing a AngularJS front-end for some CoS functions that my integration team uses for auditing, analyzing and various other purposes. I have re-tooled the functions to return JSON results that AngularJS can then interpret and display. Many kudos to the AngularJS series on this site for giving me a jump start.

One of these functions uses %SQL.Statement to prepare a class query on %Dictionary.CompiledClassQuery, Summary. This works perfectly if I give the web app making the call %All privileges but obviously I don't want to do that. I cannot determine the appropriate privilege(s) needed to execute this query otherwise however. My REST call simply returns ERROR 5540 - UserUnknownUserisnotprivilegedfortheoperation.

I have attempted to the give the Web App's unique Role EXECUTE privileges to %Dictionary.CompiledClassQuery_Summary and several other things without success.

Last answer 16 October 2017 Last comment 1 April 2019
0   0 2
231

views

0

rating

Hi! We have received a request to create a new rule on CachéQuality to identify when a developer uses double quotes (" ") within any SQL statement.

We have been asked many times about SQL validation rules, and we would like to open a debate to allow everyone discuss what would you like to be checked on a SQL statement.

Current examples are for basic situations:

  • Using SQL.Statement class:

Set stmt = ##CLASS(%SQL.Statement).%New()
Set query = "Select Val1, Val2 FROM Table WHERE Val1=""SomeCondition"""

  • Using embedded SQL

&SQL(SELECT Val1, Val2
                INTO :val1, :val2
                FROM Table
                WHERE Val1="SomeCondition")

Last answer 1 April 2019 Last comment 28 March 2019
0   0 3
166

views

0

rating

How Tax Service, OpenStreetMap, and InterSystems IRIS
could help developers get clean addresses

 

Pieter Brueghel the Younger, Paying the Tax (The Tax Collector), 1640

 

In my previous article, we just skimmed the surface of objects. Let's continue our reconnaissance. Today's topic is a tough one. It's not quite BIG DATA, but it's still the data not easy to work with: we're talking about fairly large amounts of data. It won't all fit into RAM at once, and some of it won't even fit on the drive (not due to lack of space, but because there's a lot of junk). The name of our subject is FIAS DB: the Federal Information Address System database - the databases of addresses in Russia. The archive is 5.5 GB. And it's a compressed XML file. After extraction, it will be a full 53 GB (set aside 110 GB for extraction). And when you start to parse and convert it, that 110 GB won't be enough. There won't be enough RAM either.

+ 2   2 1
0

comments

131

views

+ 2

rating

Hello

I made for fun a bash script that creates csv files from a %GOGEN exported file.
%GOGEN, the utility for exporting globals for Cache 5.xx

First I thought it would be very simply with bash, but ...
- if I want a header in the csv file
- if you export with GOGEN more globals together not only one
- if I want a csv file for every global/indexes has the global ..

The simply bash script goes up 100 lines of code. If I will start again with this, I would use Python or Go, not bash.

Example:

For a EXPORTED.GLO fil

0   0 1
0

comments

62

views

0

rating

Hello,

 

Last weekend we've updated our Caché version to 

Versie:Cache for Windows (x86-64) 2018.1.1 (Build 312U) 

 

I'm using Studio to develop. I've been using the built-in debugger and it has been working nicely. But now, since the upgrade, I'm getting this error when trying to debug any routine or class method:

Executing ##class(Blue.App.Handler.Adsolut).TestConnection()
<COMMAND>zDebugStub+30^%Debugger.System.1

 

This is the code for the classmethod I got the error on

Last answer 14 March 2019 Last comment 30 March 2019
0   0 6
328

views

0

rating

InterSystems is delighted to announce the support of Docker container technology as a platform from the moment 2016.1 will be released.


Docker is a disruptive system technology that has many benefits and offers many advantages for those investing in infrastructure-as-code or immutable-infrastructure provisioning & deployment scenarios.
Like any new technology that appears, there is a learning curve, and many considerations need to occur when using it. However, Docker container technology has already proven to be successful by a huge follow-up with many companies already using it in production. Furthermore & FYI, all public cloud providers already support it.


InterSystems validates and supports its technologies on Docker container engine from v1.8 and above with CentOS, Ubuntu, RedHat and SUSE based containers from the official Docker Hub repository or their respective projects and sites.

Have fun with it

Last comment 29 March 2019
+ 5   0 8
1831

views

+ 5

rating

I want to upload several files using the html tag

< input multiple="multiple" name="BulkFileUpload" type="file">

. The upload.csp page in the SAMPLE namespace only shows how to extract a single file from the MimeData on the %request object. I cannot fathom how to extract multiple files from the MimeData in the %request object in cache. Can some kind soul explain to me how to do that?

Last answer 29 March 2019 Last comment 29 March 2019
0   0 2
50

views

0

rating

Hope someone can help me,  so i was developing a script and during the tests I was using the csession to execute a method. Also i thought i had to stop the instance i was using, so I used the ccontrol stop [instanceName] to stop the instance, but when i restarted the instance i got this error trying to start my production, I have an idea of what's the problem but i don't know how to fix it.

ERRO <Ens>ErrException: <FILEFULL>zStartProduction+62^Ens.Director.1 ^Ens.Runtime("Name"),/hs-connect-hom/db/BPINTEGRADEV-GLB/ -- - registrado no log como '-' número - @' Set ^Ens.Runtime("Name")=pProductionName'
Last answer 29 March 2019 Last comment 29 March 2019
0   0 3
58

views

0

rating

ObjectScript has at least three ways of handling errors (status codes, exceptions, SQLCODE, etc.). Most of the system code uses statuses but exceptions are easier to handle for a number of reasons. Working with legacy code you spend some time translating between the different techniques. I use these snippets a lot for reference. Hopefully they're useful to others as well.

Last comment 29 March 2019
+ 11   7 3
217

views

+ 11

rating

First time post, also a new Cache developer, hence the <Beginner> tag.

If our data has Predefined terms in a dictionary, and a user can add terms on their own, can the terms exist in different tables?

Lets call the tables "Terms" and the user data in "UserTerms".

If a third class definition has a property of "Term" can it not be either Terms or UserTerms?

I'm leaning towards using a Subclass strategy where the pseudo "Parent" (forgive me) is  Dictionary.Term and the child is along the lines of Dictionary.Term.User

Dictionary.Term.User can inherit from Dictionary.Term and this is stated in the Docs "If class B inherits from class A, you can use an instance of class B in any location where you can use an instance of class A."

This applies to properties of a class correct? Not just methods

Last answer 26 March 2019 Last comment 28 March 2019
0   0 3
77

views

0

rating

InterSystems Caché globals provide very convenient features for developers. But why are globals so fast and efficient?

Theory

Basically, the Caché database is a catalog having the same name as the database and containing the CACHE.DAT file. On Unix systems, the database can also be an ordinary disk partition

Last comment 27 March 2019
+ 8   3 9
2410

views

+ 8

rating