#Caché

30 Followers · 4.5K Posts

  

InterSystems Caché is a multi-model DBMS and application server. See more details here.

Documentation.

Question Mike Minor · Apr 6, 2018

I am tasked with using CACHE to insert data retrieved from a CACHE data base and insert it into an sql database. The columns in the sql table that I am trying to insert data into have names that contain underscores such as "ACCESSION_DATE" I found a utility in CACHE to connect to the sql data base and perform inserts. I have the data I need to insert. I need to pass the  data into the sql utility referencing the column names.

I tried using indirection to set the data into underscored variables, but that isn't allowed  in cache object script.

Anyone have suggestions as to how to do that?

Thank

8
0 1564
Question Eduard Lebedyuk · Apr 5, 2018

Hello, Community!

Here's an interesting task I found on the Internet.

Problem description

Write a method that would draw a box of a specified size.

The goal is to write the shortest method.

Here's a method signature (it can't be modified):

ClassMethod main(s As %Integer = 10)

And call sample:

>do ##class(ITPlanet.Task4).main(5)
#####
## ##
# # #
## ##
#####

>do ##class(ITPlanet.Task4).main(10)
##########
##      ##
# #    # #
#  #  #  #
#   ##   #
#   ##   #
#  #  #  #
# #    # #
##      ##
##########
 
>do ##class(ITPlanet.Task4).main(20)
####################
##                ##
# #              # #
#  #            #  #
#   #          #   #
#    #        #    #
#     #      #     #
#      #    #      #
#       #  #       #
#        ##        #
#        ##        #
#       #  #       #
#      #    #      #
#     #      #     #
#    #        #    #
#   #          #   #
#  #            #  #
# #              # #
##                ##
####################
15
0 721
Question Scott Roth · Apr 6, 2018

Is there a way to make the system users like _SYSTEM and ensadm bypass the Delegated sign-on and not cause it to fill up the Audit trail with "Programmer mode login failure"?? I figured I still had to leave password login enabled for the background users to run. How would I script if username = "_SYSTEM" then don't do the Delegated sign on?

Here is my ZAUTHENTICATE

s $zt="Error"
  s Status = 0
  i Password="" {
    s Status= $SYSTEM.Status.Error($$$InvalidUsernameOrPassword)
    g Error
  }
  i $$$WindowsLDAPServer {
    s AdminDN=$Get(^OSUMCLDAP("User"))
    s
3
0 444
Question Scott Roth · Apr 6, 2018

We have scripted a process where we can run EnableConfigItem from the cron in AIX so we can run multiple scripts at a time vs the scheduler in Ensemble that is single threaded. For the most part this works fine, until that service/operation has an error on it then it seems that everything else that is called after that instance halts.

Is there something that is stopping EnsConfigItem() from running once something has error'd?

Can something be forced like it does if we try to enable/disable in the gui and it times out?

this is the single command line we are calling

zn "$1"
w

3
0 638
Article Eduard Lebedyuk · Apr 6, 2018 5m read

In this series of articles, I'd like to present and discuss several possible approaches toward software development with InterSystems technologies and GitLab. I will cover such topics as:

  • Git 101
  • Git flow (development process)
  • GitLab installation
  • GitLab Workflow
  • Continuous Delivery
  • GitLab installation and configuration
  • GitLab CI/CD
  • Why containers?
  • Containers infrastructure
  • GitLab CI/CD using containers

In the first article, we covered Git basics, why a high-level understanding of Git concepts is important for modern software development, and how Git can be used to develop software.

In the second article, we covered GitLab Workflow - a complete software life cycle process and Continuous Delivery.

In the third article, we covered GitLab installation and configuration and connecting your environments to GitLab

In the fourth article, we wrote a CD configuration.

In the fifth article, we talked about containers and how (and why) they can be used.

In this article let's discuss main components you'll need to run a continuous delivery pipeline with containers and how they all work together.

0
2 3989
Question John Jacobs · Mar 26, 2018

I'm converting a DTM system to Caché and trying to use the Caché Terminal as the UI.I've come across and removed some DTM formatting for printed text that does not do anything in Caché (actually, it caused errors).The printed output to the default Windows printer ("|PRN|") has been working and the printed documents in text-only format look fine.I am testing on a low-end HP laser printer and a Brother laser.The client has done a print test to his own older HP laser from his Caché  instance and the text renders fine.

5
0 1001
Question Thomas Noitz · Apr 3, 2018

Hi guys,

is there an easy way to compare two objects in os?

Example:

I have a registered order-object at runtime. Now I want to call a specific export-service just in the case that sth in this order has changed since the last export. So I have to compare the persisted order-object (last export) with the current order-object.

Ist there an easy way to compare these two objects or do I have to check each object-value separately?

Thanks for your help!

Regards, Thomas

1
0 973
Question p rd · Mar 21, 2018

Problems encountered with Java Gateway

I am writing a framework for use on the Java Gateway. The role of the framework is:

1. Import the framework jar file into ensemble studio (test completed);
2. In the framework jar, handle the related functions of the remaining jar files (the rest of the jar files are written by colleagues).

The general idea is as follows:

Send: Ensemble Java Gateway -> Framework Jar -> Plugin Jar (colleagues write, processing data).
Returns: Plugin Jar (processed return data) ->Framework Jar->Ensemble Java Gateway.

The problems I encountered were:

I refer to gson and Bouncy

1
0 810
Question Anzelem Sanyatwe · Mar 29, 2018

Sounds odd - but I encountered it - twice now.Cache was restarted.in that period the primary journal directory was full and it was writing to the secondary journal directory.So upon start-up, it was quite obvious that it was not going to write to the primary.Cache reported this but was able to continue with the start-up but writing to the secondary.All of a sudden it doesn't recognize the 'primary' config any more and started saying 'Alternate and primary journal directories are the same'.

3
0 1113
Question Diones Forteski · Mar 29, 2018

For the browser to not update the screen and direct you to top after the onchange event of the combobox, just remove href="#" from the piece:
html[html.length] '<tr id="item_'+n+'_'+this.index+'" class="comboboxItem" onmousedown="zenPage.getComponent('+this.index+').itemMouseDown(event,'+n+');" onmouseup="zenPage.getComponent('+this.index+').itemMouseUp(event,'+n+');"><td width="100%"><a href="#">'+text+'<\/a><\/td><\/tr>';


Of course to do this you'll have to customize the %ZEN.Component.combobox component and inherit it from %ZEN.Component.abstractComboBox.

This solved my problem with long

1
0 337
Article Artem Daugel-Dauge · Mar 28, 2018 9m read

There are numerous ways to interact with InterSystems Caché: We can start with ODBC/JDBC that are available via SQL gateway. There are API for .NET and Java too. But if we need to work with native binary libraries, such interaction is  possible through Caché Callout Gateway, which can be tricky. You can read more about the ways of facilitating the work with native libraries directly from Caché in the article below.

1
1 1123
Question Lucas Fernandes · Feb 26, 2018

Hi community,
I need to monitor Caché Intersystems with some custom indicators.

I started customizing the SNMP Mib.But I've been in a Zabbix event, all speakers use ODBC to monitor their database, Oracle, MySQL, PostgreSQL ...
What is the best way?Use ODBC or SNMP Custom Mib?
What are you guys using?

2
0 1165
Question Rosti Zacharias · Mar 21, 2018

Hi,

There have been similar questions asked before, but a few years ago now. My problem is that when I create an application in plain CSP, a typical link to a page will look like this in the browser..

https://omnidata.com.au/csp/lcda/StudentList.csp?CSPCHD=001000010000EYn…

One user sent back a comment.. 'I'm not using your application as it is un-secure' .. based on the fact that the elements are spelled out in the URL.

Is there now some way of hiding the path and the .csp page in the URL?

Thanks in advance,

Rosti.

6
0 537
Question Davidson Espindola · Mar 26, 2018

Good morning, employees

I'm having trouble compiling in studio, I already reported it to intersystems support, but it did not solve the problem.

when calling a method of a class by putting $, follows an example:

set obj = ## class (% AbstractObject). $ fromJSON (data)ERROR: SearchCep.int (29) # 1011: Invalid name: '## class (% Library.AbstractObject) $ fromJSON (data)': Offset: 45 [SearchCep + 28 ^ SearchCep]

the studio compiles, and the application performs perfectly, but in the studio it presents error.
Someone has already encountered this type of error.

Following is a sample application.

W #
4
0 342
Article Eduard Lebedyuk · Mar 26, 2018 5m read

In this series of articles, I'd like to present and discuss several possible approaches toward software development with InterSystems technologies and GitLab. I will cover such topics as:

  • Git 101
  • Git flow (development process)
  • GitLab installation
  • GitLab Workflow
  • Continuous Delivery
  • GitLab installation and configuration
  • GitLab CI/CD
  • Why containers?
  • GitLab CI/CD using containers

In the first article, we covered Git basics, why a high-level understanding of Git concepts is important for modern software development, and how Git can be used to develop software.

In the second article, we covered GitLab Workflow - a complete software life cycle process and Continuous Delivery.

In the third article,  we covered GitLab installation and configuration and connecting your environments to GitLab

In the fourth article, we wrote a CD configuration.

In this article, let's talk about containers and how (and why) they can be used.

0
1 1546
Article Murray Oldfield · Mar 11, 2016 8m read

In the last post we scheduled 24-hour collections of performance metrics using pButtons. In this post we are going to be looking at a few of the key metrics that are being collected and how they relate to the underlying system hardware. We will also start to explore the relationship between Caché (or any of the InterSystems Data Platforms) metrics and system metrics. And how you can use these metrics to understand the daily beat rate of your systems and diagnose performance problems.

10
2 4286
Question Ben Spead · Mar 23, 2018

I've been writing ObjectScript for a long time and was a little surprised by this behavior so I'd like to understand what is going on.

I was doing a peer review on some source which had roughly the equivalent of the following line:

Set myRecord = ##class(MyObj.Record).%OpenId(id)
Set emailList = previousEmails_","_myRecord.RecordGroup.EmailList

I flagged it for further testing because the code didn't check if RecordGroup was set and I knew that not all records were part of a Group so I was expecting that in cases where it wasn't set this line should throw an <INVALID OREF>

However, it turns out

2
0 405