Question Steve Pisani · Apr 20, 2016

The following situation always catches out new Ensemble users, and is likely to continue doing this until it is addressed..

A business operation, service or other host that is configured with a dedicated # of actors, (ie, not using the actor pool) runs with the version of compiled code that existed when the host was started.  This code is loaded in memory. 

1
0 603
Question Raghu Kodumuri · Apr 19, 2016

Hello,

In my project, I am calling a store proc on third party database. I am using SQL Gateway and ODBC. Everything is working fine until the store proc changed.  In store proc they have changed the return alias name for a column. In Ensemble Snapshot I am not seeing the modified alias name until I restarted the whole Healthshare instance.

Here is my question, is there any other way? We do not want  to take the instance down if it happens after we go live.

Thanks

Raghu

1
0 636
Announcement Francis Galiegue · Apr 20, 2016

Hello community!

Heretofore is announced a new project which aims at providing a usable library for both running unit tests and collecting code coverage information at the same time:

https://github.com/litesolutions/cache-utcov

I shamelessly admit that this is my first project written in ObjectScript; the only source file right now barely loads a %Studio.Project instance on a given namespace and fails ungracefully on failure (it HALTs; meh); and even on success it will not even list the items correctly... Well, that's part of the learning curve.

14
0 716
Question Fabio Goncalves · Apr 19, 2016

Does Caché support SQL CREATE SEQUENCE as in PostgreSQL?

If not, what would be the best alternative? Create my own sequence logic as the example bellow? 

 Class Util.MySequence Extends %Persistent [ ClassType = persistent, ProcedureBlock ]
{


Property dummy As %String;

Property myvalue As %Integer [ Calculated, SqlComputeCode = { Set 
{myvalue}=##class(Util.MySequence).CurrentValue()}, SqlComputed ];

ClassMethod CurrentValue() As %Integer
{
        s x=$I(^MySequence)
	Quit x
}

Method myvalueGet() As %Integer [ CodeMode = expression ]
{
..CurrentValue()
}

}

 

Thanks.

4
0 737
Article Evgeny Shvarov · Apr 15, 2016 2m read

Hi!

Please find all the source code Global Summit 2016 Sessions and Experiences in following GitHub repositories:

Codes are in UDL form which is native to Atelier IDE.

Here is small guide how you can check out this project into your Atelier:

Let's see how to load code directly from GitHub URI. 

Open Atelier. Go to File -> Import -> Git -> Clone URI

   2. Specify URL for repository and press Next

1
0 1017
Question Nicki Vallentgoed · Apr 19, 2016

MessagePack is a binary-based efficient object serialization library. It enables to exchange structured objects between many languages like JSON. But unlike JSON, it is very fast and small.

Any chance of adding support for MessagePack?

2
0 485
Question Francis Galiegue · Apr 18, 2016

Hello,

For CachéQuality I'd love to be able to create issues when the programmer uses classes which are deprecated for this or that version of Caché... But short of reading all the changelogs of all versions, I can't really tell when a command appeared (for instance RETURN; I know now that it appeared in 2014.x, but it took me some time to realize that), or when a (set of) class(es) became deprecated (for instance %GlobalCharacterStream to be replaced with %Stream.GlobalCharacter -- I don't even know since which version this is true :/).

Is there an existing source which I am missing?

2
0 447
Announcement Francis Galiegue · Apr 18, 2016

Hello,

I hereby announce the creation of an IRC channel dedicated to Caché development:

* network: FreeNode (connect to server: irc.freenode.net)

* channel: ##cos (yes, two hashes).

Topic is anything related to Caché development in spite of the name (and the fact that of Caché development I only really know about COS anyway), so sorry in advance for the restrictive channel name :)

Waiting for you here! (my nick is idletask on freenode)

0
0 379
Question James MacKeith · Apr 11, 2016

During a fine breakfast at Global Summit 2016 I was asked about the %DEFAULTDB database that now appears when creating the %ALL namespace. Until the documentation on "Mapping a Package Across Multiple Namespaces"  is updated to include the use of subscript level mapping for all namespaces here is a brief explanation for this change in 2016.1: When creating a global subscript level mapping in the %ALL namespace the database that was used for the non-subscripted global could not be set to be the default database for each namespace. This behavior prevents using %ALL namespace to help manage

3
0 639
Question Francis Galiegue · Apr 13, 2016

Hello everyone,

I have discussed extensively with Andrew Cheshire, the author of the Atelier parser (which I'll be able to hack on and reuse for CachéQuality -- yay!), and while we were at it, we also discussed code coverage.

We ended up talking about the ZBREAK command and its /TRACE option.

It appears that combining this command and the unit test runner, we can indeed do code coverage (Andrew also told me about a way to map "back" routine lines to original lines in the source code).

4
0 438
Article Daniel Wijnschenk · Apr 7, 2016 1m read

Presenter: Danny Wijnschenk
Task: Help people make better decisions by letting application deal with all the data.
Approach: As an example, we’ll extend a demo asset management application for portfolio and trade compliance, using iKnow technology to translate agreements into rules that ensure portfolio compliance prior to trade execution.
 

In this session, we’ll discuss how easy it is to extend a classic application that deals with straightforward transactions, to also offer insights and actions based on more complex, unstructured data. We’ll present a use case on portfolio compliance from the financial services industry.

Content related to this session, including slides, video and additional learning content can be found here.

1
0 401
Article Rich Taylor · Apr 7, 2016 1m read

Presenter: Rich Taylor
Task: Use an LDAP schema that differs from the provided default
Approach: Give examples of customized LDAP schema development, using LDAP APIs and ZAUTHORIZE
 

In this session we explore the various options of for working with LDAP as an authentication and authorization framework. We will look beyond the simple LDAP schemas into working with more complex LDAP configurations that incorporate application level security information.

Content related to this session, including slides, video and additional learning content can be found here.

1
0 505
Article Andreas Dieckow · Apr 7, 2016 1m read

Presenter: Andreas Dieckow
Task: Securely store sensitive information
Approach: Give examples of data-at-rest encryption and data element encryption
 

Description: In this session, InterSystems will showcase how to use API calls to programmatically do everything using your own scripts. This approach is highly effective if you have recipe based settings and configurations that you would like to roll out in a controlled and fast fashion.

Problem: Implement Security relevant information correctly and how. Examples are Credit Card information, Sensitive information (e.g. SSN, Classified Information)

Solution: Data-at-rest encryption and data element encryption

Content related to this session, including slides, video and additional learning content can be found here.

1
0 320
Article Andreas Dieckow · Apr 7, 2016 1m read

Presenter: Andreas Dieckow
Task: Apply SQL security to multiple servers in a distributed system
Approach: Provide code samples for using new API calls to apply SQL security statements to multiple instances of our products
 

Description: The requirement that started at all. See examples on how to use this new feature and integrate it into your application by discuss code examples.

Problem: SQL Security is local to the instance and most of time driven by customer application code. That it is only local to the instance and is not automatically going to other instances requires a solution.

Solution: With application code use new API calls to issue SQL security statements that is applied to multiple instances.

Content related to this session, including slides, video and additional learning content can be found here.

1
0 274
Article Joe Gallant · Apr 8, 2016 1m read

Presenter: Joe Gallant
Task: Create a good analytical data model
Approach: Discuss what makes a good analytical data model. Provide examples of using DeepSee’s APIs for building custom dimensions, measures, and KPIs
 

Data models are the foundation of effective analytics. This session focuses on the factors that make good analytics data models. 

Content related to this session, including slides, video and additional learning content can be found here.

1
0 283
Question Stephen Canzano · Apr 13, 2016

I interested on how others feel on this subject.  In general terms when you have a class that extends from %XML.Adaptor and you call XMLExport no validation is automatically done as part of the XMLExport process.  As an example if you do the following

SAMPLES>S tPatient=##Class(Sample.Person).%New()
 
SAMPLES>Set tPatient.Name="asdfghjklqwrrrrokkfkljbvkfbjflkbjflkbjblkjblkjdblkjblkcn l nn klkjdfkbjdlkbjlkbj"
SAMPLES>w tPatient.XMLExport(,",indent")
<Person>
  <Name>asdfghjklqwrrrrokkfkljbvkfbjflkbjflkbjblkjblkjdblkjblkcn l nn klkjdfkbjdlkbjlkbj</Name>
</Person>

3
0 832
Question Steve Shaw · Apr 14, 2016

Hi,

IHAC who is trying to connect Ensemble to Quadramed for HL7 messaging, however, it seems that in order to do this, the following is required:

"we open a passive connection to Quadramed and then listen for a connection request from Quadramed, once this is established we then send messages"

Has anyone done this before?  Is this possible with the standard HL7 components?

Thanks,

Steve.

1
0 451
Article Timothy Leavitt · Apr 11, 2016 1m read

In the subscriptions e-mails I get (digested), the URLs are typically wrapped across lines, like:

| Post link:

| 

|http://community.intersystems.com/post/explanation-defaultdb-database-2

|01610  Direct unsubscribe link (content type):

My mail client can't handle this, of course; the link doesn't work. (The actual link in this case is: https://community.intersystems.com/post/explanation-defaultdb-database-… )

6
0 315
Announcement Francis Galiegue · Apr 6, 2016

Hello community!

Two new rules have been implemented:

OS0061: unsafe namespace switch

This rule detects when the body of a method contains two or more of the following statements:

  • set $namespace = something, or
  • znspace something.

If this is the case, it then checks whether there is a new $namespace prior to those two declarations; if not, it raises a warning.

List of issues currently found here:

https://demo.cachequality.com/issues/search#severities=CRITICAL|rules=cachequality%3AOS0061|resolved=false

OS0062: confusing identifiers

8
0 579
Article Francis Galiegue · Apr 10, 2016 1m read

Hello!

Link: https://demo.cachequality.com

In this presentation, developer oriented, we will cover this tool, how it works, how you can use it/administer it, etc. Duration 30 minutes.

The topics will include:

  • a short presentation of Caché Quality and SonarQube (which this plugin uses),
  • a demonstration of the rules and how to tailor them to your need.

Questions will be more than welcome! Hope to see you there!

And a big thanks to Evgeny Shvarov who made this possible!

0
0 684
Question Eduard Lebedyuk · Apr 10, 2016

Here's my code (download):

Class Utils.Generators [ Abstract ]
{

ClassMethod B()
{
    s ^a = 1
}

ClassMethod A() [ CodeMode = objectgenerator, GenerateAfter = B, PlaceAfter = B ]
{
    k ^a
    do ..B()
}

Now, obviously for it to work I need method B compiled and ready to use before compiling method A().

I test it with the following code:

do $system.OBJ.UnCompile("Utils.Generator")
do $system.OBJ.Compile("Utils.Generator")

Yet, I receive the following compilation error:

2
0 1020