Question Kevin Furze · Apr 26, 2021

The boss (reasonable intelligent ;-) wants to connect to the cache database through Excel, but unless I explain what he's looking for (field names DB names etc) then I can see him continually coming back for "what's the link here and how do I get the delivery company name etc etc"

 

is there a SAFE way I can give him access to our database using an intelligent visual user interface.

I had thought about the SQL Query Builder within the management portal, but the thought of giving him access to all of the other functionality of the management portal.

3
0 348
Question Kevin Furze · Nov 15, 2020

version cache for windows, 2017.2.1 build 801_3 - windows 10

I had this system set up for 3+ years now, and background tasks such as converting emails,  have always worked, suddenly it's stopped working and I've tracked it down to any network references.

reading the emails, I look for any attachment files, and save them to a network drive before processing them within a class method,

I've been testing it by sending exactly the same email repeatedly and checking the saving of the attached file in both the background and in the terminal.

11
0 627
Question Kevin Furze · Jul 31, 2020

cache 2017.2 windows 10

Is there any way to change the sql Shell interface to output a <TAB> between the fields instead of outputting one or more spaces between columns

 

I needed to run an sql ( that took a while to run) and then  cut and paste the generated output into excel, trouble was the paste into excel was not very good for columns when there's spaces used between the columns

 

kev

3
0 335
Question Kevin Furze · Jan 15, 2020

cache 2017.2.1 (Build 801_3)

when I look into the "sql statements" ( sql page of the management portal ) I have lots of old statements with a lot of them frozen. many of them are %sqlcq routines (I believe these are the SLQ's I run when testing/running random SQL queries in the sql page. )

I can clearly see where I can click on an individual query and untick an individual query to unfreeze it. or delete it. but thats a painful slow process.

2
0 296
Question Kevin Furze · Aug 15, 2019

I've just been tempted to the option exchange (curiosity) and when browsing, I often right-click, and open links in a new tab, eventually ;-) I have enough interesting open tabs to go off and read the tabbed articles,

I can't do this in open exchange, it will only allow a direct click to open the url.

even worse, when I come back (to where I left off) It starts from the top of the page.

any chance of changing the url's to allow us to right click and open in a new tab

I'm guessing that this applies to may other URL's around the intersystems community, but it's the first time it annoyed me.

 

kev

3
0 243
Question Kevin Furze · Jan 16, 2019

I need to automate the handling of usernames passwords, serverNames etc for use in the sending and receiving  of emails, logging into SFTP servers etc etc for use within COS code
To manage external passwords we could use LastPass or any other proprietary password loggers, but I need to be able to call them as part of the automation (COS code) and occasionally visually look them up to "remind" the staff of their passwords.

any suggestions as to the best class data constructs to handle this scenario. Should the whole table be encrypted, only the passwords etc.

9
0 626
Question Kevin Furze · Sep 20, 2018

I'm using cache  win10-x64  version 2017.2.1.801

I want to uniquely identify the installation of cache, and from that create a meaningful unique folder names to store files. 

so to generate \192-168-1-100\KEVDEV\testfolder \ and \192-168-1-5\LIVE\testfolder\

so in this case, I could- use the IPaddress and thesecond part of $SYSTEM (cache instance name) - at least this way, I can instantly see where it came from with little risk of overwriting between cache instance.

10
0 1482
Question Kevin Furze · Apr 13, 2018

I use macros everyday, but its the first time I want to create a macro like this

I want to create a new macro whereby I can pass a variable amount of parameters

the macro (much simplified version) would be 

#define myMacro(%params)         $listBuild(any Number Of %params I pass in)

so I want to be able to call $$$myMacro(user,ID,vehicle)         ie 3 parameters would generate

$lb(user,ID,vehicle)

but equally I might want to call that same macro $$$myMacro(companyID)          ie 1 paramter and would generate

$lb(companyID)

so the question is, 

how can I create the macro without knowing how many

4
0 522
Question Kevin Furze · Mar 16, 2018

most of my jSON data is single words, but when it comes to sending chunks of a memo/email via JSON, that totally different

which is the correct conversion process to prepare data ready to insert into the data part of a JSON string so that all problem characters are converted

JSON of course crashes if you use the wrong format of quotes (single or double) and you ned up having to use &QUOT and \' to get around that but is there a simple call to something that will just take care of preparing the data from the JSON string both on the inward and outward part of JSON

kevin

13
0 658
Question Kevin Furze · Mar 13, 2018

Cache 2016.2.1.603 for windows)

I created a few classes and one class called jitPod.Api.toServer.additionalConsignments and realised even before I did any work,, that the word "Api" (note capital A) needed to be "api" (all lowercase)

it would not allow copying the class to the lowercase name because the directory already exists (i understand that)

so I exported the class to an XML, edited the xml to become lowercase "api" , deleted all the classes (and directory name) and re-imported the class.

19
0 912
Question Kevin Furze · Nov 15, 2017

I'm looking for information, suggestions, video (courses) on make a lot more use of the documatic system already built into Cache,

Probably talked of before within this forum, but after an hour or two of searching, can't find the articles that I mmay have seen before.

I want to do a lot more documenting of my installation, we use and actively comment classes and methods, but I want to take it further by actually documenting the "why" and high level "how" my system works. Documatic seems a good place to put that knowledge.

6
0 572
Question Kevin Furze · Nov 15, 2017

I searched fror "documenting classes" from the search button with no filtering. it naturally came back with 559 responses, but to me, the responses (and therefore the search)  came without context.

for instance,  one of the texts came back with:

Answer:

 

In first you should define ODBC DSN in your operation system, to your Oracle DB.  Then you can look at this page in the documentation and class %SQLGatewayConnection Vote up! Vote down! Rating: 0 .

3
0 359
Question Kevin Furze · Nov 13, 2017

A third party developer has asked for access to the documentation of my classes so he can understand my tables/classes better.

  • How do I give access the the documentation of my classes (single namespace)  and secondary, do I need to give  him access to %system. (and others)
  • Is it possible to block the likes of ensemble, Iknow, deepSee etc. I don't use those, and I don't want him to waste time (and my money) exploring areas that simply not necessary
  • what privilege roles do I need to give him  whilst still maintaing security.

kevin

4
0 456
Question Kevin Furze · Sep 13, 2017

Cache 2016.2.1

the system offers $LISTNEXT as a way of looping  in $LISTs and the documentation says this is much more efficeint than writing

for i=1:1:$LISTLENGTH(myList) { set value = $LIST (myList,i) }

I want to walk backwards in the list,

is there a $LISTPREVIOUS or do I have to use the followng syntax to achie

 for i=1:-1:$LISTLENGTH(myList)

kevin

4
0 645
Question Kevin Furze · Sep 5, 2017

version 2016.2.1 on windows

I accidently clicked the mouse into the output window of studio (where you get the compile results etc) and typed soemthing in there (by mistake) and it came back with <SYNTAX>.

I've been playing with it further, and it's like a cut down version of terminal.

I can "s x=1" and the "w x" and sure enough, it will display "1" (ie the value of x)

when I call one of my utilities ie "d ^dev", my utility runs as expected, but when I try entering a value (my utility was waiting on a read *x) it generated a <SYNTAX> error.

7
0 662
Question Kevin Furze · Jul 31, 2017

suggestions to try to make the searching of the community better, more relevent

I've been searching within the community for an article about troubleshoting SQL's working out how efficient they are, and how to look inside the system for other SLQ's that we used but may be inefficient,  (still haven't found it, and getting frustrated)

In this instance, after many guesses, I tried

sql "how to" analyze plan tutorial efficiency inefficient troubleshooting highest

I know I've seen the article about this very subject, but it's getting darned hard to find things in the community.

3
0 311
Question Kevin Furze · May 25, 2017

Hello,

I'm having a problem with %SQL.Statement.

I have a ClassMethod on Cache that I'm trying to access via - this.db.invoke_classmethod.

When I get to my %Prepare I get a <DYNAMIC LIBRARY LOAD> error. Upon checking cconsole.log I find the following...

05/25/17-09:45:35:224 (9876) 2 Error loading zlib1.dll: 126
05/25/17-09:45:35:224 (9876) 2 zlib unavailable
05/25/17-09:58:12:507 (9876) 2 Error loading zlib1.
4
0 579
Question Kevin Furze · Mar 30, 2017

Tried to access the forum over on google, its been taken offline because google has detected

Banned Content Warning

The group that you are attempting to view (Caché, Ensemble, DeepSee) has been identified as containing spam, malware or other malicious content. Content in this group is now limited to view-only mode for those with access. Group owners can request an appeal after they have taken steps to clean up potentially offensive content in the forum.

4
0 445
Question Kevin Furze · Jan 4, 2017

the boss started using his new mac laptop, and now we are getting macintosh's own html escape characters being stored in the database especially in our text blocks, when we then print it we see things like don%u2019t instead of don't

so for example instead of the apostrophe we see %u2019 being stored. We've already noticed %u2018, %u2019, %u201C, %u201D, %2026

I'd like to replace the %u2019 with the nearest equivilent (especially when he starts to use left and right quote marks)

so how can I efficiently start to replace the
%u2019 with the apostrophe
%u2026 with the ".

2
0 543
Question Kevin Furze · Sep 27, 2016

Looking at the posts, I cannot find a simple way to show everything in DATE order (newest first).

when I click on "NEW", It's 11:26am (UK time) and the first few entries are

Post by Istvan Hahn 6 min 19 sec ago.          Enabling Cross-origin Resource Sharing (CORS) for RESTful Services new
Post by Eduard Lebedyuk 23 hours 46 min ago.   Automatic removal of system methods from codebase
Last answer 2 hours 46 min ago.                Is the possible for Multiple Streams using in single method?

 

Date/time seems to bear no relationship to the order.

1
0 230
Question Kevin Furze · Jul 26, 2016

Cache 2015.2

I need to get a sort order stored in my database with mutiple decimal places, but I want the string stored and retrieved EXACTLY as I enter it. so if someone enters 700.3000 I don't want cache to treat it as a decimal and strip the trailing zeros storing it as 700.3

once it comes back, I want the sorting to sort AS STRINGS, again, none of that stripping training/leading zeros.

this ay, I can create local arrays in exactly the order they think? they created them

I realise I can add another decimal point at the end eg 700.3000.

3
0 557
Question Kevin Furze · May 23, 2016

I am playing with json output from result sets

I've generated a dynamic resultset and now doing the json and I can get Array's with nested Objects but I'm trying to get to Objects nested with another object

mainObj = ##class(%Object).$new()
set array=[]
  While (result.Next()) {
     s object = ##class(%Object).$new()
     s object.id = result.Data("ID"
     s object.reg = result.Data("Registration")
     s object.snNum = result.Data("SatNavVehNumber")
     do array.$push(object)
     }
  w !

5
0 1153