Arturo Masero · Aug 8, 2022 go to post

Hi, for these concerns I always refresh my memory going to this vid:

InterSystems Webinar: Configuring a Web Server for IIS for Better Performance and Security

https://www.youtube.com/watch?v=luplow26i7c 

Some key URL's you may find helpful too (find the newer version according to your IRIS version):

CSP Gateway Configuration Guide:
 
Web Servers for Microsoft Windows
 
How to Set Up SSL on IIS 7
Arturo Masero · Feb 18, 2022 go to post

Ok so, to summarize the thread:

Requirements:
1.- Work with variable table names.
2.- Being able to 'see'/'use' them (i.e. the evenTotal count)
3.- Not having the variables loaded in memory after method execution.

In 'ObjectScript+.int' you can have all 3. In '.cls' you can only have 1 and 2, waiving point 3. 


Options in '.cls' from better to worse in my opinion are:

a. The cleanest option I've seen is @Jose-Tomas.Salvador version. This option still doesn't have the point 3 but you can kill the variables before leaving the method.

b. Before 'Jose Tomas version' my choice was adding the variables to public list, and trying to kill them before leaving the method. Although it breaks the not knowing the names thing.

c. Using percent variables (obscure, and also my colleages don't know well percent vars, so risky too)

d. Set ProcedureBlock=0 (worst choice in my opinion as it makes visible all variables)

Thank you very much for your help as I was a bit anxious with this thing thinking there was a better option and I was too clumsy to find it.

Arturo Masero · Feb 17, 2022 go to post

Thanks for the reply. I've tried that too, but if I set the ProcedureBlock to 0, all the variables stay loaded in memory after the method execution, which is worse than having only the ones used inside the indirection.

Is it a dead end? There is no chance to have it working?

I read about $XECUTE accepting parameters. I tried some aproaches without good results. Could it work using that, @Robert Cemper ?

Also, thanks a lot for the link, it's a very interesting post. 

Arturo Masero · Feb 14, 2022 go to post

Hi,

In the Library.ClassDefinition you have an Indices property you can iterate and get info about. I don't know if it fits to your needs.

You can code something like:

set myClassDef = ##class(%Library.ClassDefinition).%OpenId("MyClass") 
for anIndex = 1 : 1 : myClassDef.Indices.Count() { 
     set indexes = myClassDef.Indices.GetAt(anIndex).Properties 
     // and operate with the indexes variable 
}

PS: Sorry, I don't get the highlight code feature to work properly.

Arturo Masero · Nov 15, 2021 go to post

Hello,

Do you mean the 'Studio > Debug > Attach to process' option?

If yes, the process must end or you need to detach from it before attaching to another.

In my particular setup this usually means hitting the stop button while I'm over a break or interrupt point because otherwise caché kills the job and I have problems.

I'm not an expert in these concerns. I may be wrong in some point.

Arturo Masero · Nov 3, 2021 go to post

Thanks for the point Julius. Maybe removing that big global from the buffer has done the job because one of the problems the old routine had was over-iterating on those nested 'For-orders' and that bad design could be camouflaged by the buffering thing.

Dunno, I'm new to these concerns, but it worked!! :-D

Arturo Masero · Nov 3, 2021 go to post

Thank you all for your contributions. With Robert's and Vitaliy's answers I have managed to learn what I needed to solve this problem.

Kind regards :-)

Arturo Masero · Oct 20, 2021 go to post

+1 Same here. PuTTY

Sometimes native caché terminal locally but most of the time PuTTY. I also spend many time working with remote databases where PuTTY shines for me.

Arturo Masero · Jul 8, 2021 go to post

I don't know the answer but you could try to query the max_cover_partdays or other numeric without decimal part to check if it causes issues. Or try to add it to your query, something like <109.99

It looks to me like there's some casting or parseing type ocurring somehow and greater than X just checks if the value is not null?

I never had any issue like this, besides dealing with decimal separator between systems or dealing with null and empty value conversions/replacements to avoid runtime exceptions.

Arturo Masero · Jun 29, 2021 go to post

Oh, I was assuming you are using the caché Studio as your IDE. If so, it's under Class > Add > Index...

If you are using VS Code, Eclipse or other, I can't tell you, but the syntax I wrote works fine.

For more reference you have the online documentation, “Index Definitions.”

Arturo Masero · Jun 29, 2021 go to post

Hi,

The 'New Index' wizard allows you to add various properties to the index. Or, manually, you could have something like this:

Index MyIndex On (AProperty, MySecondProperty) [ IdKey ];