Question Scott Roth · Feb 16, 2018

I am working on an ZAUTHENTICATE.mac to move us from local cache users to Delegated Authentication against LDAP. 

I have created a user role within my instance of Ensemble that matches the AD Group that I will be assigning everyone in my group to.  Is there a way to query the list of available Roles within Ensemble, and if one of my AD groups matches that role, set the role for that user?

How would I compare the AD Group against the Role listing?

Thanks

Scott

10
0 756
Question David Crawford · Feb 20, 2018

I'm experimenting with sending large amounts of data in a POST payload to be stored as a stream. However I've noticed that no matter how many characters are in the message, Cache only gets about 32k of them, cutting off the rest. Conversely as expected it can only send about 32k worth of characters in a payload.

Before I get creative, is there a REST message size limit that can be changed? Or is there something else going on here?

Thank you!

9
0 1532
Question Michael Lundberg · Feb 20, 2018

Hi!

We have problems in some productions where it stuck in a Queue when things goes wrong and i wonder if somebody have som tips to avoid it?

example when we got stuck is this:

set MyClass= ##class(SomeClass).%New(). MyClass has a Datefield

try
{
 
MyClass.Date =  Sourcedata.Date  //Sourcedata send us wrong format to that datefield. Error occur.

}

catch ex 
{
set tErrMsg = "Error i this method "  _ $System.Status.GetOneStatusText(ex.AsStatus())
$$$LOGERROR(tErrMsg)
Quit
}

In this case the catch-scope is not seems to be reached at all and the production get stuck in a Queue.

And this is pretty common for u

5
0 628
Article Evgeny Shvarov · Feb 20, 2018 3m read

Hi, Community! 

This is the 3rd part of DeepSee Web story - Angular base UI for DeepSee Dashboards, see the beginning here.

By design, DSW provides an implementation for every widget in DeepSee library. But there are some extra features in DSW which make solutions built with DSW dashboards more functional.  This article describes it.

0
1 1083
Question George Hodder · Feb 16, 2018

I am trying to use the automated unittest class for a %CSP.Rest service.

So my Unittest code set's %request and %response from %CSP.Req/resp respectively

I build a tProxy with the fields I need for the post and set it %ToJson... I have tried seting %request.Content = tProxy (and not)

I call the method for the post url directly... 

  When that method calls %fromJson to set an object with the info. I passed... 

      - when I don't set %request.content.. I get a error '5035 - premature end of data code 12'

      - when I set %request.content=tProxy.. I get an errror Method Does not exist 
Any tips on w

7
2 1293
Question Eduard Lebedyuk · Feb 19, 2018

Let's say I want to execute  this cache script (saved as test.txt) from OS terminal:

zn "USER"
write 1
zn "%SYS"
write 2
halt

Executing the following command in a terminal:

csession cache < test.txt

Would yield this output:

$ csession cache < script.txt

Node: gitlab-test, Instance: CACHE

USER>

USER>
1
USER>

%SYS>
2
%SYS>
Job succeeded

Is there a better way to run these scripts?

Currently I have two problems:

  1. I have several variables defined in my bash script, what's the best approach to pass them into Caché? 
  2. I can't capture script input (for example wri
1
0 1160
Question Philip McClean · Feb 16, 2018

I have a dataListBox in ZEN which has an OnDrawItem method associated with it. The DrawItem method never seems to be called and I cannot see why.  I am using IE11. Can anyone suggest a reason? The attached code runs in a namespace called CODE and can be run using view webpage on the TheLabsApp.BioAnal class. Please note that the data is in a global called ^%ANAL that resides in %SYS.

3
0 318
Question Antonio Garcia Martinez · Feb 14, 2018

Hi,

I am afraid I am stuck again. I have ensemble connected with a MsSQL database and I have a service that calls a store procedure. All is working, and I can get strings from the database in the service. The problem is that the data the store procedure returns is suppose to be an HL7 message so I need to convert the string into HL7 format. I have been using the ##class(EnsLib.HL7.Message).ImportFromString  method but although I have a valid HL7 message from the string received from the DB...apparently the content of the message is being modified.

I guess, is something to be with the struc

3
0 1595
Article Clark Matthews · Nov 3, 2016 4m read

Problem:

Caché prints to printers in a manner somewhat different from other Windows applications.  Caché sends the data directly to the GDI Printer, without the usual interface.  This is because the GUI interface can only be shown on a system desktop session and not in web browser and terminal sessions.  Some printer drivers have problems with this method of printing.

Is this the problem you are having?

  • If you are opening the printer as a Windows printer as described in the documentation (found here).
  • … And if after you open the printer in Caché you see the job in the Windows Print Management snap
3
3 3116
Question George Hodder · Feb 2, 2018

Hi.. I have an issue where we are using OAuth2.0 with the ZAUTHENTICATE routine.  Once our token is validated we are using a users lan id (passed on the ID token) to find a software defined username in a Cache Global.

That is all working fine in ZAUTHENTICATE.. I am setting the software defined username in the Properties("Comment") array and wanting to reference it in the Rest Service Dispatch class.

I am finding that Properties array is not resident in the dispatch class.  It is my understanding that Properties is passed to ZAUTHENTICATE by reference, but how can I invoke the dispatch class in

6
0 966
Question Jenna Makin · Jan 6, 2016

What are the best steps for troubleshooting printing to a Windows printer from Cache.  The printer has been configured in the Windows Printer Manager and has been able to print a test page (from the windows print manager).

The device has been configured in Cache -> Sys Admin -> Config -> Device Settings -> Devices with properly formatted |PRN|printer device name and "W" for open parameters and 101 for Alias.

From a command prompt, O 101 U 101 write something U 0 C 101 doesnt output anything to the printer, but does create a document in the Windows print spooler.

What steps should

2
0 595
Question Enric Moya Sánchez · Feb 16, 2018

Hi everybody,

I love the integration of HL7 v2.x in Ensemble, it's really easy to use.

I would love to see the same about using CDA on Ensemble. I know it's a complicated standard, but it would be more easy for developers in Europe if we could use it like any other type of message instead of using at XML level and xsl transformations.

Any experiences dealing with CDA on Ensemble?

1
0 585
Article Robert Cemper · Feb 16, 2018 2m read

The base class Bmap.Person defines persons within an organization distributed
by various countries. All records are indexed by (Country, PersonalId).
this structure doesn't allow use of bitmaps.

So a wrapper class Bmap.PersonQ around the data eliminates the top level of
the index (Country) and isolates the PersonalId (%Integer, MINVAL=1).
We are ready to use a Bitmap index.

A few performance figures on 300010 generated records.
You see that Relative Cost are sometimes quite misleading.

base

  select count(*) from Bmap.Person  
  300010 global references 1600446 lines executed   

demo 1

  s




0
1 981
Question CJ H · Feb 15, 2018

I noticed that the subscript of the index map is actually the collated field (%SQLUPPER).

Is String the only data type going through this transformation? Any other data type would also go through this transformation?

Thanks. 

1
0 361
Question David Crawford · Feb 15, 2018

I'm sending data via ajax to my REST service, and while retrieving any information sent in the url parameter is easy when they're defined in the route, I can't get anything if I store information in the data parameter. For example:

$.ajax({
               url: "ServerURL",
               data: { "some": "json" } //How do I get this information?

...

I've looked at many common solutions such as here:

https://community.intersystems.com/post/lets-write-angular-1x-app-cach%C3%A9-rest-backend-part-9

However, %request seems empty for the most part. I can get the url of the request and the me

8
0 1410
Question Jack Mears · Feb 14, 2018

Hello,

We are currently in the process of migrating from Ensemble to Healthshare and I have been advised Healthshare works with the IDE Atelier. 

Does anyone know if you can change the views for transforms like you can in Studio? IE to see the .dtl, .cls and the .INT? 

It would be nice to be able to visually view the transforms like you can with Studio.

Cheers

2
0 445
Question Vivek Ranjan · Feb 8, 2018

Intersytems  documentation says not to hold entire SDA  as object in In-memory. 

 http://localhost:57772/csp/documatic/%25CSP.Documatic.cls?LIBRARY=registry&CLASSNAME=HS.SDA3.Container&MEMBER=&CSPCHD=001000000000x1zyO3kkajy0iIjjpi2dxUJUnwFSY_pz7jtbNV&CSPSHARE=1

 // Serialize Object to XML
  
  Set object = ##class(User.NewClass1).%New()
  object.Property1="one"
  object.Property2="two"
  object.Property3="three"
  object.Property4="four"
  Set w=##class(%XML.Writer).%New()
  set w.Charset="UTF-8"
  Set w.Indent=1
  set status=w.OutputToString()
  set status=w.StartDocument()
  Set status=w.RootO

1
0 570
Question Jenna Makin · Sep 23, 2016

I was curious if application partners were developing their own task managers for scheduling background tasks, or using the built in task schedule that is part of the Cache platform.

For those that are using the Cache task manager, what has been your method for distributing default tasks that your application needs during initial install as well as upgrades?  Are you distributing an export of the %SYS.Task object, or perhaps you are distributing an installation script that adds a task to the task scheduler when it is first run?

3
0 3218
Question Mike Minor · Feb 9, 2018

I'm trying to learn how To use SQL in CACHE, so I hope I don't bore you with "Dumb" questions.... 

I'm getting "ERROR #6022: Gateway failed" message following this line of code. 

s sc=gc.Prepare(hstmt,pQuery) 

This line of code comes from an example I found in the documentation.  pQuery is the "Select" statement setting up the variables and tables I'm trying to pull information from. 

What does that error indicate? 

Thank you. 

5
0 1471
Question John Murray · Feb 13, 2018

Documentation here lists the kinds of members a class definition may contain. In summary:

  • Parameters
  • Methods
  • Properties
  • Class queries
  • XData blocks
  • Projections
  • (and some that are relevant only for persistent classes):
    • Storage definitions
    • Indices
    • Foreign keys
    • SQL triggers

Later in the same document, a section headed "Class Member Names" contains this warning:

So I'm interested to hear how other DC members handle this.

  1. Do you comply (or at least attempt to comply) with this?
  2. If so, do you use any tools or naming conventions to assist you?
  3. Have you ever encountered "unexpected results" that were caused by a failu
7
0 455