Alexander Koblov · Jan 20, 2017 go to post

Thank you Stephen, that helps a lot.

You have valueColumn defined: valueColumn="ID" "Each time the table is refreshed, in each row Zen tests this logical value against the actual value that appears in the valueColumn in that row. Zen selects any row(s) that contain value in valueColumn" http://docs.intersystems.com/cache20162/csp/docbook/DocBook.UI.Page.cls?KEY=GZCP_tables#GZCP_table_selection

However no ID column in query. So value of every row is empty string, that matches value of table for every row, so last row is hightlighted.

You need either remove valueColumn="ID" or add ID column to query.

Regards, Alexander.

Alexander Koblov · Jan 23, 2017 go to post

Locale enuw has RAW translation table for reading from files. Some other locales, for example rusw, has UTF8 translation table.

So when reading UTF8 in enuw locale you need to specify translation table explicitly. Or have locale with default file translation table UTF8.

Alexander Koblov · Jan 24, 2017 go to post

Hi Token.

Can you please attach complete wsdl and provide version of Caché that you use ('write $zversion').

Did you use SOAP Client Wizard to generate SOAP client classes from WSDL?

Alexander Koblov · Jan 25, 2017 go to post

Hi Token.

a) Please notice, WSDL that you provided is not correct.

For example, try to validate it in https://www.wsdl-analyzer.com/.

Or, download SOAP UI and try to create SOAP project based on this wsdl.

You'll see errors.

I've tried to import this WSDL into 2012.2.5 and got following error: ERROR #6294: Cannot find message part in schema: Classname not found for http://halykws/::GetContractsExt

b) Version you have is almost 7 years old. Please consider upgrading. Cache for UNIX (Red Hat Enterprise Linux 5 for x86-64) 2010.1.2 (Build 600U) Mon May 10 2010 23:28:54 EDT

c) If you need further help with this, please open WRC issue.

In any case, first thing you need to do is to have valid WSDL.

Alexander Koblov · Jan 26, 2017 go to post

Hi Token.

As I understand XML you provided in the beginning is the response to the SOAP request you are doing.

If that's correct, than this response is not validated with XML Schema from provided WSDL. You should check with developers who maintain this SOAP service if WSDL you have is correct.

Also you might try to change

Parameter NAMESPACE = "http://192.96.222.19/";

in Class Data.SOAP.CardData to

Parameter NAMESPACE = "http://111.12.123.11/";

Even if this helps, this would be temporary solution for one particular request, other might fail if you have not-correct WSDL.

Alexander Koblov · Mar 16, 2017 go to post

Cool!

It would be great to show articles only for particular Author in Article dropdown list once the Author is chosen.

Alexander Koblov · Mar 23, 2017 go to post

Or TO_CHAR.

Depending if you need convert string -> date (TO_DATE) or date -> string (TO_CHAR)

Alexander Koblov · Mar 24, 2017 go to post

Hi Amir.

Some of items you mentioned are already in Atelier

  • Support for using Studio wizards of a specific sever connection.

Go to File -> New -> Other. Then Atelier -> New File -> Custom File. Choose connection and pick Server-side template.

Also you can go to Tools-> Add-Ins or Tools -> Templates and run good old Studio Add-Ins or Templates

  • Support for seeing a CSP page (like when we click on the globe icon and the CSP page opens)

Hm, there is already globe icon on Atelier toolbar that opens CSP page.

The 6th in that list http://docs.intersystems.com/atelier/latest/topic/com.intersys.eclipse.help/html/reference/toolbar-atelier-perspective.html?cp=1_3_2

  • Support for seeing the other

The 5th in that list http://docs.intersystems.com/atelier/latest/topic/com.intersys.eclipse.help/html/reference/toolbar-atelier-perspective.html?cp=1_3_2

  • GitHub and CRLF / LF

As I understand this configuration should be done on EGit side, by setting core.autocrlf = true for Windows installations. http://mike.meessen.biz/blog/?p=368

Alexander Koblov · May 31, 2017 go to post

Hi Sean.

This looks interesting.

Why do you prefer annotations style instead of standard Caché attribute style for properties?

I mean

/// @JSONNAME=BirthDate
Property DateOfBirth As %Date;

Instead of

Property DateOfBirth As %Date(JSONNAME = "BirthDate");

Thank you, Alexander.

Alexander Koblov · May 31, 2017 go to post

Oh. OK. (PUBLIC=1) in this case is related to %ListOfObjects return class, not the method itself.

Although, it's the question of how developer interpret this parameter.

Alexander Koblov · Jun 2, 2017 go to post

I'm not aware of such global setting.

If you want to prevent legacy Caché ObjectScript application with direct global access to see not-committed data, then you need to implement proper locking in that application.

Starting READ COMMITTED transaction in that process will not help as this does not affect the code that modifies globals directly.

Alexander Koblov · Jun 2, 2017 go to post

Thank you for article Dmitry.

You say "you may notice data in ASCII is represented by in 1 byte but Unicode data in 2-bytes".

Actually, it seems, that Unicode data takes less then 2 bytes per character.

In your example with BLKDUMP string "TestТест" is represented as

54 65 73 74 92 30 A2 B5 C1 C2

First four bytes is clearly "Test" representation, so other four characters "Тест" are represented with just six bytes -- "92 30 A2 B5 C1 C2", instead of expected 8.

Alexander Koblov · Jun 6, 2017 go to post

Not always, If $T was set to 1 before, then it is not reseted on entering the method Main()

Alexander Koblov · Jul 4, 2017 go to post

FWIW I just checked 2015.1.4 and 2015.2

And IE 11.0.9600.18697 on Windows 7x86

And Color Selection Dialog is opened properly:

/csp/samples/ZENDemo.Home.cls -> Components -> Popup Windows

Alexander Koblov · Jul 5, 2017 go to post

Kyle, please notice that indeed

CALL %SYSTEM.SQL_TableExists('table name')

shows nothing -- no result is returned.

Whereas

?= CALL %SYSTEM.SQL_TableExists('table name')

prints boolean result 1 or 0 depending on whether 'table name' exists.

Alexander Koblov · Jul 18, 2017 go to post

Please notice, that execution plan for

select * from person where (lastname=? or ? is null) and (age > ? or ? is null)

might be less optimal than

select * from person where lastname=?

So in some sense it's better to generate different queries based on input

Alexander Koblov · Aug 10, 2017 go to post

I don't have any particular recomendations about openssl. I use openssl that icomes with linux I use.

If connection works Ok on 2016.1 (or 2016.2?) you might try to uncheck tls1.1 and tls1.2 in SSL/TLS configuration settings on 2016.1 installation, leaving only tls1.0 and see if connection succeeds. If no -- probably server requires tls1.1 or tls1.2.

Alexander Koblov · Aug 21, 2017 go to post

$THIS is object reference (OREF) -- unique identifier of object in memory. Different objects might have the same OREF during process lifetime

And subscript of local/global can be only numeric or a string -- not an object reference.

So, while indeed $GET(a($THIS)) triggers something wrong, the construction itself is not correct.

Timothy's suggestion converts OREF to string:

if $GET(seen(""_$THIS)) quit

making command correct.

Notice, that in workaround you proposed -- you are using OID, that is unique identifier of object on disk. Different objects cannot have the same OID.

Alexander Koblov · Aug 22, 2017 go to post

Hi Mike.

You can open view's popup menu by right-clicking inside view.

Please notice that "Workbench User Guide" is user-guide for Eclipse that is Atelier based on.

For Atelier guide, please see "InterSystems Atelier User Guide" located below "Workbench User Guide".