#Caché

30 Followers · 4.6K Posts

  

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

Documentation.

Article Danny Wijnschenk · Nov 15, 2017 3m read

This is a series of programming challenges for beginners and experienced Caché programmers.

For an introduction and an index of all articles: go to article https://community.intersystems.com/post/advent-code-2016-day1-no-time-t…

The challenge for today consists of capsules that bounce through a maze of spinning discs.
The capsule can fall through a hole of each disc if they hit the disc at position 0,  each disc has a fixed amount of positions that rotate every second.
The distance between the release and the first disc is one second, as is the distance between each consecutive disc as well.

0
0 385
Question barry dellinger · Nov 8, 2017

I am using Cache FTP classes to download from a FTP site files, that include zip files.

I can retrieve the whole file into a stream, but it contains a lot garbage.

Sample:

PKvªZK!—XÃ×$¯²4rNDDF Plus DB/Counseling Messages/CMM 1.0/RCMMD0_DESCNUnNUCX4NDDF Plus DB/Counseling Messages/CMM 1.0/RCMMD0_DESC´½[“ÛH’.ø¾fûð²ê*›¬ï—Q[›©n]²î®Ò–ª§Ï>‚$Hbؑ)ÊâÇ÷Ï=¸P™9gmlª•„‡.~ý|4Íñ)>$Uôîòäú6K“2Jó(ù¼MªŠþ2»¢J*ócåÅ%ºÄIt*JúO²K·iž˜Ë1Σ´ŠÊd[œNI¾Kvÿ÷ÿ5&faìÛ]|Nñçh_”Ñö˜f»2ÉMg4A´KiÜ%ÙE›+Qo/Ei~-d0VQl˜s ;­¢š¦)£ñ$º–˜lj>]xL|‰Ê¢8E—ätNÊøR—‰‰ŸxdI¿V4iz8^^Dþ3óþ±Hwî©«h[ä—8ÍÓüUñ)1ô’.&ùå›ê[¥.

4
0 1668
Article Danny Wijnschenk · Nov 14, 2017 5m read

This is a series of programming challenges for beginners and experienced Caché programmers.

For an introduction : go to article https://community.intersystems.com/post/advent-code-2016-day1-no-time-t…

The challenge today is about some basic cryptography : you will have to generate data for a one-time pad (OTP) (see https://en.wikipedia.org/wiki/One-time_pad for more info).

You need to generate keys by taking the MD5 of a pre-arranged salt (your puzzle input), and an increasing integer index starting with 0.

0
0 524
Question Soufiane Amroun · Nov 14, 2017

Hi communauty

I've two columns in my table and the type must be interval of integer values for example : age must be interval between [2 and 6] years and wigth between [10 and 30 ] Kg , how can i define them when creating my table?

thank's

3
0 335
Question Soufiane Amroun · Nov 14, 2017

Hi communauty

i work on the Oauth2 authentification patry in my application , i read a lot of documentation , but i don't know exactly what does it mean by Claims values and the method "SetClaimValue", what does it do really?

can anyone explain for me.

Thank's.

1
0 317
Question Robert Harris · Nov 13, 2017

"Help me, Obi Wan Kenobi"?

I’ve hit the wall. I’m a one person shop who wants to start developing Cache on a mac using Eclipse/Atelier, after using Studio for the last 5 years. I’ve installed the 1.1 beta plugin, watched 6 or 7 videos from the September conference, tried several times to work through the cheat sheets, only to have connection issues or compilation issues, so at this point, I’m feeling very frustrated. The videos were interesting, but generally didn’t work as tutorials for fundamental programming operations, for me.

3
0 421
Question GUILHERME CRUZ DA CUNHA · Nov 9, 2017

Hello guys,
I'm having a problem on a sign-up screen, what happens is that this screen is not reloaded after clicking save, and that's where the problem arises, on that screen it is possible to upload images, but as everything is loaded with submit, the record would have to be updated so I had all the information, which does not happen.
With this I'm trying to find a way to get the information from the file loaded in the "file" component to get the data in "% request.MimeData".
The only way I've found it so far has been to reload the whole page, but that's all I do not want to do.

3
0 1825
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 481
Article Danny Wijnschenk · Nov 13, 2017 5m read

This is a series of programming challenges for beginners and experienced Caché programmers.

For an introduction : go to article https://community.intersystems.com/post/advent-code-2016-day1-no-time-t…

Today, you have to find a path through a maze. To know if a coordinate is a wall or an open space, you will have to do a calculation like this :

x*x + 3*x + 2*x*y + y + y*y
Add the office designer's favorite number (your puzzle input).
Find the binary representation of that sum; count the number of bits that are 1.
  - If the number of bits that are 1 is even, it's an open space.
  - If the number of bits that are 1 is odd, it's a wall.
0
0 389
Article Daniel Kutac · Nov 10, 2017 1m read

As many of you, our partners, are more widely using modern UI frameworks to create client front-end, you may have encountered a question, "So how do I secure my data when I just finished developing all new fancy browser based client experience?"

The answer is easy. Use a standard, proven OAuth2 and OpenID!

"OK, but how can I do it? I have never done it before."

No problem, just have a look here, if your client is Angular (not AngularJS) based, there is a demo project available for you to review and get inspired!

1
0 1320
Question Soufiane Amroun · Nov 10, 2017

Hi community

i'm working on the validation user method , i found this following  code in the  \HSIE\%SYS\Classes\%OAuth2\Server\Validate.cls  

ClassMethod ValidateUser(username As %String, password As %String, scope As %ArrayOfDataTypes, properties As %OAuth2.Server.Properties, Output sc As %Status) As %Boolean
{
    // Check if user is defined.
    // We use local Cache user list as the shipped default.
    If '##class(Security.Users).Exists(username,.user,.sc) || $$$ISERR(sc) {
        If $$$ISERR(sc),$$$GETERRORCODE(sc)=$$$ERRORCODE($$$UserDoesNotExist) {
            Set sc=$$$OK
        }
        Quit 0
    }
    
    // Check the password
    If password'="",'##class(Security.Users).CheckPassword(user,password) {
        Quit 0
    }
    
    // Get the properties associated with this user.
    Set sc=##class(Security.Users).GetProperties(user,.prop)
    If $$$ISERR(sc) Quit 0

    // Use the Cache roles for the user to setup a custom property.
    Set sc=##class(Security.Roles).RecurseRoleSet(prop("Roles"),.roles)
    If $$$ISERR(sc) Quit 0
    set roles=prop("Roles")
    Do properties.CustomProperties.SetAt(roles,"roles")

    // Setup claims for profile and email OpenID Connect scopes.
    Do properties.SetClaimValue("sub",username)
    Do properties.SetClaimValue("preferred_username",username)
    If $get(prop("EmailAddress"))'="" {
        Do properties.SetClaimValue("email",prop("EmailAddress"))
        Do properties.SetClaimValue("email_verified",0,"boolean")
    }
    If $get(prop("FullName"))'="" {
        Do properties.SetClaimValue("name",prop("FullName"))
    }
    If $get(prop("PhoneNumber"))'="" {
        Do properties.SetClaimValue("phone_number",prop("PhoneNumber"))
        Do properties.SetClaimValue("phone_number_verified",0,"boolean")
    }
    
    // Setup claim for when user last updated.
    If $get(prop("LastModifiedDateTime"))'="" {
        Set time=##class(%OAuth2.Utils).TimeInSeconds(prop("LastModifiedDateTime"),0)
        Do properties.SetClaimValue("updated_at",time,"number")
    }
    Quit 1
​}
2
0 734
InterSystems Official Steve Brunner · Nov 13, 2017

InterSystems is pleased to announce the availability of the following maintenance releases:

  • Caché and Ensemble 2016.2.3
  • HealthShare Health Connect v15.021 on core technology 2016.2.3

Caché and Ensemble 2016.2.3 are available on the same platforms as 2016.2.2

The full list of corrections can be found in the release notes.

HealthShare Health Connect v15.021 for core technology 2016.2.3.903.0 contains the following HealthShare module:

  • Core: 15.021.
0
0 405
Article Robert Cemper · Nov 11, 2017 3m read

This should be an overview over a subject that pops up over several places in online documentation mostly as remarks and never as dedicated chapter.

Once upon a time ...  No it's not a fairy tale.
In the beginning of Caché (and before) you had your partition to run your code. Part of that partition was a space with all your local variables nicely sorted by %,A,..Z,a,...z

3
1 1241
Question Nikita Savchenko · Nov 12, 2017

I am trying to make Caché perform certain actions depending on whether a particular property of the object was changed using triggers.

For example, say I have this class:

Class Dummy.Class Extends %Persistent {

Property Name As %String;
Property Visible As %Boolean;

Trigger OnUpdate [ Event = UPDATE/DELETE, Time = BEFORE ] {
    if ({Published*O} = 0) && ({Published*N} = 1) {
        do ..CertainAction({ID})
    }
}

ClassMethod %OnBeforeSave(insert As %Boolean) As %Status [ Private, ServerOnly = 1 ] {
    // ... ?
}

ClassMethod CertainAction(objId) {
    set ^test = "Object ID=" _ objId _ " has just become visible!"
}

}
6
0 848
Article Danny Wijnschenk · Nov 12, 2017 3m read

This is a series of programming challenges for beginners and experienced Caché programmers.

For an introduction : go to article https://community.intersystems.com/post/advent-code-2016-day1-no-time-t…

Today, you need to make a compiler for the language assembunny.
Luckily, this language has only 4 instructions :

cpy x yinc xdec x


For example :

cpy 41 a
inc a
inc a
dec a
jnz a 2
dec a

After executing these instructions, the register a would contain 42.

1
0 515
Question Malcolm Needham · Nov 8, 2017

Does anyone know where to find a cache.node that works with Cache version 2016.1.1.108.0? I am currently getting  this:

Error: Unable to load shared library C:\InterSystems\TryCache\bin\cache.node''

I am using Windows 7 Pro + SP1.

Thanks!

8
0 708
Article Danny Wijnschenk · Nov 11, 2017 9m read

This is a series of programming challenges for beginners and experienced Caché programmers.

For an introduction : go to article https://community.intersystems.com/post/advent-code-2016-day1-no-time-t…

The challenge today is about microchips and generators. A microchip belongs to one particular generator, and the two can be on the same floor, or in the same elevator. But if a microchip is with another generator on the same floor or elevator, it will get toasted, except if his own generator is also on the same floor/elevator.

0
0 757
Article David Loveluck · Nov 8, 2017 5m read

Using the CSP Page Statistics

Application Performance Management

Introduction

A key part of Application Performance Management (APM) is recording the activity and performance of user activity. For many web applications the closest you can get to this is to record the CSP pages or CSP based services being dispatched.

If the pages or service names are meaningful and they indicate the business activity being performed the CSP page statistics can be very useful in building up a historical record of activity, performance and resource usage.

1
1 791
Article Danny Wijnschenk · Nov 9, 2017 4m read

This is a series of programming challenges for beginners and experienced Caché programmers.

For an introduction : go to article https://community.intersystems.com/post/advent-code-2016-day1-no-time-t…

Today's challenge is about decompressing input that is compressed in an experimental format.
In the format, markers indicate how much time a number of characters need to be repeated.

For example :

A(1x5)BCABBBBBC7(3x3)XYZ9

For the complete explanation of the challenge, go to http://adventofcode.com/2016/day/9.

3
0 679
Question Romero Terrones Esteve · Nov 10, 2017

Hello All,

what is the best method for search a portion of text in a non-indexed global?

I need to implement an autocomplete kind of search, in a global of >1M registers (text type, not $lb)

Maybe the best way would be use a SQL mapped class, with 'Bitmap' indexes?

Thanks in advance!

4
0 577