Robert Cemper · Nov 29, 2019 go to post

Hi Udo,

I tried it with my 1 year old  Atelier installation.
Setup of a new sever connection.
The test showed me:

 

OK so I changed to PASSWORD only

 

AND the test worked OK.   And access as well..
 

Robert Cemper · Nov 29, 2019 go to post

you either remove the reference to the object
or terminate the process that holds the references.

Robert Cemper · Nov 29, 2019 go to post

The added %XML.Adaptor  is not active until the related object is closed and a new instance of it  is opened again.

Robert Cemper · Nov 28, 2019 go to post

check license usage in SMP/Operations

Check CSP Session as well

In Security / Application force authentication not to lose licenses to Unknown user,
It is not to comfortable but may help.

BTW. my preview licenses had all features but NO users.  I kicked them as useless.

Robert Cemper · Nov 28, 2019 go to post

You are on the right way.
It has to be a SYSTEM DSN.

in win10 clich to start
then click the GEAR symbol
next search for ODBC and you should be there.

OR

search from  WINDOWS control panel -> administration ->  ODBC data sources (64bit)  -> System DSN

Robert Cemper · Nov 25, 2019 go to post

sorry. this was done by a PHP developer back in 2008/2009.

the <Caché side was default from the wizard.

I have no idea about the details anymore.

Robert Cemper · Nov 21, 2019 go to post

$system.UpgradeAll("",.ERRLOG may give you a hint on problems.

Studio sticks with dictionary version. If there is a mismatch Studio refuses. And Mgmt Portal only shows Class documentation.

I'm not so familiar with Healthshare: Is there eventually some Read/Only DB involved that blocks Update ?
I think of class... EXTENDS (read/only class), ENSLIB ???

Robert Cemper · Nov 18, 2019 go to post

I faced a similar issue some years back.

As PHP is so close to web servers I decided to use a WebsService to call the ClassMethod aka Procedure.
It was easy on both ends and I could avoid the ODBC module (at that time only 32bit)

Robert Cemper · Nov 16, 2019 go to post

I'd expect better text search in a source control repository.
Anyhow there is either a bug or a setup problem related to your Error msg in Atelier.

Do you have any Windows based PC available to use Studio ?

Robert Cemper · Nov 16, 2019 go to post

This routine is mapped to another database, are you sure you want to change it??
 No => yes%DIRFULL.INT
 

reply with NO  (default) and you won't change any %*routine if you work from your namespace (RPMS?)

Robert Cemper · Nov 16, 2019 go to post

you use %session.AppTimeout which has a default of 900 (sec).

but SetCookie asks for a Time !
method SetCookie(name As %String, value As %String, expires As %String = "", path As %String = "", domain As %String = "", secure As %Boolean = 0, httpOnlyFlag As %Boolean = 0) 

I see from https://stackoverflow.com/questions/13154552/javascript-set-cookie-with-expire-time
what string this might be.

'Mon, 18 Nov 2019 08:50:17 GMT';

My assumption - your 900 was just not recognized and the default (=session) was set
 

Robert Cemper · Nov 16, 2019 go to post

just a guess:

with 850 chars length, this looks somewhat oversized.

and the query itself doesn't make much sense:

?query=.*Cache.*
&documents=*.cls,*.java,*.png,*.confluence,*.html,*.mediawiki,*.tracwiki,*.mdtext,*.shtml,*.doc,*.workingsets,*.chromium,*.patch,*.adoc,*.js,*.emof,*.macrodef,*.markdown,*.bmp,*.htpl,*.diff,*.xml,*.bas,*.xmi,*.ico,*.shtm,*.textile,*.twiki,*.ent,*.ecore,*.wsdl,*.ant,*.svg,*.md,*.prefs,*.jpeg,*.json,*.txt,*.int,*.rtn,*.xhtml,*.server,*.csr,*.mod,*.css,*.csp,*.class,*.xsd,*.docx,*.gif,*.log,*.exsd,*.xsl,*.xslt,*.e4xmi,*.mac,*.setup,*.mvb,*.ad,*.asciidoc,*.wml,*.dtd,*.mvi,*.htm,*.jpg,*.inc,*.properties
&max=2147483647
&sys=1
&gen=0
 

I doubt that you have all those file extensions available in Caché  or IRIS

Reduce it to the few useful ones that you konw from Studio:

*.prj,*.mac,*.int,*.mvi,*.inc,*.bas,*.cls,*.csp,*.csr,*.xml,.*js.*.css,*.xsl.*.xsd,*.mvb,*.dfi
 

Robert Cemper · Nov 14, 2019 go to post

I don't trust this line: Set zdh=$zdatetimeh("11/14/2019 15:18:56")

rather use 

Set zdh=$zdatetimeh("2015-11-14 15:18:56",3)

to be sure about zdh

Robert Cemper · Nov 13, 2019 go to post

by default IRISLIB is always read-only mounted as it holds most of system methods, utilities, compiles, ...
all code that just executes but not changes during runtime  and that you should not try to change

differently, IRISSYS holds all dynamic system data that can change during runtime and therefore requires read-write access
As configurations, namespace tables, .....

Though with system management privileges you may change this.
But I'd recommend not to touch it unless you are an in-depth IRIS expert.

Robert Cemper · Nov 13, 2019 go to post

SqlComputeOnChange   should trigger on INSERT

while it should trigger only if the value is CHANGED by an UPDATE.

If you need recalculation in any case you may use an ordinary Update  TRIGGER  to adjust your property as you need.

Robert Cemper · Nov 9, 2019 go to post

Right!

But without Git (several years back) . . . . . . . .
It's a matter of organization and discipline anyhow.  

Robert Cemper · Nov 8, 2019 go to post

another way to explain your phenomenon:

  • assume you have a.INC
  • assume inside you have #DEFINE vaXYZ
  • next, you have b.INC with an #include a
  • now your class C with include b and using $$$vaXYZ compiles fine
  • later #DEFINE vaXYZ is  removed from a.INC
  • NOTHING HAPPENS
  • you have constructed a time bomb
  • long time later you do any change on class C
  • now your bomb crashes your compilation

I experienced such a case where the bomb was sleeping for 5 years.
Nobody remembered the change of a.INC and not the reason for the change.

Robert Cemper · Nov 8, 2019 go to post

if your class inherits from some other the include may have gone there? 
typically explained by:  "We do not reference it here. "
 

Robert Cemper · Nov 8, 2019 go to post

It seems that you have lost the ????.inc the includes the definitions of
$$$vaExtentGbl
$$$vaSegment
$$$vaSegmentGbl
$$$vaDataSegName
$$$vaDataDocName
either you  lost the related Include statement or the whole file is lost sad

So in Studio run a "search in files" over *.inc for 

#Define vaExtentGbl
#Define  vaSegment
#Define  vaSegmentGbl
#Define  vaDataSegName
#Define  vaDataDocName
to find out which .inc you are missing.

The query you changed is totally unrelated to it, as far as it seems. 

Robert Cemper · Nov 6, 2019 go to post

OK.
It took some investigations to understand what's going on.

the is a Class Parameter XMLUSEEMPTYELEMENT = 1;
it switches between <Ping></Ping>  and <Ping />

BUT: if ALL Properties of your reply are empty then you just get 
an empty body  <soapenv:Body></soapenv:Body>

as soon as you set some dummy value into Property Ping you get  <Ping> </Ping>
or you add a dummy property.

Digging into %SOAP.... message classes shows, that the generated messages don't use  XMLUSEEMPTYELEMENT parameter.
 

Robert Cemper · Nov 6, 2019 go to post

if you add to your data class

Class NAMEHERE.myDate ClassType = datatype, ClientDataType = DATE, OdbcType = DATE, Not ProcedureBlockSqlCategory = DATE ]

these 2 methods you get a kind of self healing code.
It is accessed every time you load or save your property 

ClassMethod LogicalToStorage(in As NAMEHERE.myString ""As NAMEHERE.myDate CodeMode = expression ]
{
$s(+in'=in:$zdh(in),1:in)

}
ClassMethod StorageToLogical(in As NAMEHERE.myString ""As NAMEHERE.myDate CodeMode = expression ]
{
$s(+in'=in:$zdh(in)
,1:in)
}
Robert Cemper · Nov 5, 2019 go to post

Hi Alex,

 "in logical Mode the date shows normal format, in my case, for example 10/1/2019"

in logical mode you get the pure content from global which is here  NOT a $H value !!

$ZD() expects an Integer to convert    =>   it is just +"10/1/2019" => 10

then $ZD(10) = " 10/1/1841"    

So it seems that some of your Dates are not stored using DisplayToLogigal resulting in an Integer
but written directly (e.g. coming from ZEN) into your object / global.

To fix it you may run something like   if +in'=in set in=$zdh(in))

Robert Cemper · Oct 30, 2019 go to post

For a more precise explanation:

Table definitions with ALL indices are required and the complete query plans not just a summary.

And also your version ( $ZV )