Alexander Koblov · Nov 11, 2015 go to post

Hi Chip.

You can brand userportal per namespace

You can override branding in each particular dashboard.

I think the only way to have different branding for different logins for the same dashboard is to create new class that inherits from Dashboard viewer and assign properties companyName, companyLogo, companyStyle manually based on login

Alexander Koblov · Jan 11, 2016 go to post

Hi Dan.

I don't know of ways to have up-to-date Age as dimension.

You can have level property Age, that will be calculated at run-time (checkbox "Get value at runtime").

See for example, HomeD.City level, property Population at Patients cube in SAMPLES namespace.

Also, see "Defining Age Members" section in docs: http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?KEY=D2MODEL_ch_calc#D2MODEL_calc_member_recipes_age_members

Alexander Koblov · Jan 25, 2016 go to post

I think you should not be able to delete comment or post. And you should have some time to edit comment (~10 minutes) after it was made.

What is the reason for deleting posts or comments?

Alexander Koblov · Jan 25, 2016 go to post

«And I want to be able to post new comments to any old post without any restriction.» I agree with this.

«I want to be able to edit my comment while topic is visible. At any time.» Why? If something is changed, so that comment is no longer relevant, you can post a new comment. If you made mistkae during posting -- you have 10 minutes to fix it.

Alexander Koblov · Feb 5, 2016 go to post

Hi Blaise. There is query ErrorLog in %CSP.UI.System.BackgroundTask class so you can print errors like follows:

USER>do ##class(%ResultSet).RunQuery("%CSP.UI.System.BackgroundTask","ErrorLog",3932)

3932 here is task id.

And print errors to file:

USER>set file="c:\temp\sqlerrors.txt"
 
USER>open file:"NW":5
 
USER>use file do ##class(%ResultSet).RunQuery("%CSP.UI.System.BackgroundTask","ErrorLog",3932)
 
USER>close file

Notice that %CSP.UI.System.BackgroundTask is marked for internal use only.

Alexander Koblov · Feb 16, 2016 go to post

Good! Now it would be good if we would be able to sort comments based on rating (as on reddit)

Alexander Koblov · Mar 2, 2016 go to post

The first time a message is added to a domain by $$$Text, $$$SessionLanguage is used: http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?KEY=GCSP_localization#GCSP_C199107

$$$SessionLanguage is determined by locale of current process, that is by default is the same as locale of Caché instance http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?KEY=GSTU_customize#GSTU_customize_nls

Default locale for Caché instance is determined during installation based on OS locale. For example, on English Windows that has Russian in Regional Settings, Caché is installed with locale rusw (ruw8 for 8-bit installation). You can change locale after installation. There is no option to select locale during installation.

You can change current session language with ##class(%MessageDictionary).SetSessionLanguage("ru")

Alexander Koblov · May 23, 2016 go to post

Thank you Jose-Tomas.

As I understand (please see last three paragraphs of "Cyrillic4, Cyrillic3, and umlauts" section), Spanish language has some specific collation rules and satisfying these rules require more general (and complex) algorithm than sorting two strings based on individual character codes. That is why Spanish collations are slower then Caché Standard. https://en.wikipedia.org/wiki/Alphabetical_order#Language-specific_conventions

The more processing you application does besides looping with $Order/$Query and inserting data into global the less impact has collation performance. Running ^%SYS.MONLBL with globals/locals with different collation settings should give you more accurate performance data.

Alexander Koblov · Jun 7, 2016 go to post

Yes, seeing comments/answers in compact mode is good feature.

Maybe one column is enough -- with two numbers separated by slash -- "5/10" -- 5 answers and 10 comments and sort by sum of these numbers. But that is just an idea.

Alexander Koblov · Jun 21, 2016 go to post

You can create one post that is just an index and reference this post in each new material.

Then just update this index post once after each new posting

Alexander Koblov · Jun 22, 2016 go to post

Yes, Illegal CSP Request usually means that access to this particular class is prohibited.

If your web application named '/csp/healthshare/mhclib/' then you need to enable classes as follows:

set ^SYS("Security","CSP","AllowClass","/csp/healthshare/mhclib/","%SOAP.WebServiceInfo")=1
set ^SYS("Security","CSP","AllowClass","/csp/healthshare/mhclib/","%SOAP.WebServiceInvoke")=1

Notice that calling SOAP Service via test webpage (%SOAP.WebServiceInvoke.cls) is independent from calling web service via SOAP protocol. For that you should check option "Inbound Web Services" in Web application settings.

%SOAP.WebServiceInfo and %SOAP.WebServiceInvoke are just pages to test web services via Browser.

SOAP protocol itself does not use these pages.

Alexander Koblov · Jun 28, 2016 go to post

Attila, can you please elaborate on why it is potentially dangerous to refer to data outside of current record unless Calculated is specified?

I personally use Calculated only when property value might change during oref lifetime. If property value is not changed once object is in process memory, then there is no need for Calculated, as I understand -- Transient is enough.