Enrico Parisi · Feb 26, 2023 go to post

Yes, there is, at least "everything" IRIS is aware of, so some item maybe missing but can be added.

In SMP, Iteroperability -> List -> Productions, select the production and click "Export" button.

Or, open production configuration, production settings, actions, Export button.

All production items are selected and you can manually add additional classes/components like search tables, custom schema, deployable system default settings, data transformations, etc.

Then, when you deploy your production you can also create a rollback file, in case you want to rollback, see:

https://docs.intersystems.com/irisforhealth20222/csp/docbook/DocBook.UI…

Enrico

Enrico Parisi · Feb 26, 2023 go to post

Ciao Pietro,

there are 2 cases for routines, INT and MAC.

INT are generated when MAC is compiled but may also be written directly ("old style"), so I'd use:

do $system.OBJ.Export("*.mac,*.int","c:\temp\myexport.xml","/generated=0")

This way you export all INT and MAC but exclude generated INT.

Enrico

Enrico Parisi · Feb 26, 2023 go to post

I'm lazy typing, in my test I've used the portal and it worked just fine.

What version are you using?

Enrico

Enrico Parisi · Feb 24, 2023 go to post

Yes, of course, I tested it and it works after adding the datatype.

How do you rebuild the indices?

Enrico

Enrico Parisi · Feb 23, 2023 go to post

Personally I'd rather use a default numeric ID and if needed an additional UUID/GUID unique property.

To implement what you asked you can use something like:

Class My.TestClass Extends %Persistent
{
Property PrimaryUUID As %String [ InitialExpression = {$system.Util.CreateGUID()} ];
Property MyOtherData As %String;

Index PrimaryUUIDIndex On PrimaryUUID [ IdKey, Unique ];
}

In this way the primary key (PrimaryUUID) is automatically assigned, no need to set it manually, in SQL is mapped as ID (as well as PrimaryUUID).

Enrico

Enrico Parisi · Feb 23, 2023 go to post

You need to provide a datatype for your properties, try with:

Property aaa As %Integer;

Property bbb As %Integer;

Enrico

Enrico Parisi · Feb 7, 2023 go to post

I would  send the message to a Business Operation and set state as deferred, then "later" (when? what trigger? from where?) using some logic, choose the message(es) and send response to that BO from somewhere (Business Service? Any other Business Host? ...to little info to know) to continue the process.

Not enough info to elaborate it further.

Enrico

Enrico Parisi · Feb 2, 2023 go to post

The solution depends on the problem, my understanding is that the problem is to convert any arbitrary HTML to PDF, then I don't think Zen report can do it.

Enrico Parisi · Feb 2, 2023 go to post

There are plenty of options, as discussed in the thread linked above.

Personally, a little more than 10 years ago I've used a (commercial) .NET library called hiqpdf and wrote a very tiny .NET wrapper. Works great and since then it's still running fine.

Enrico

Enrico Parisi · Jan 21, 2023 go to post

I don't think is possible, ANY IRIS.DAT can be mounted and named as desired when mounted (configured) in an IRIS instance.

If the database is mounted, then it's possible to find out the name and path of the IRIS.DAT that correspond to a mounted database: System Management Portal -> System Operations - Databases, there you have the list of configured databases with name and corresponding path.

If you have a "spare" unmounted/unconfigured database then you can mount it (add it to the IRIS configuration) and check the content and see what it contains to understand what was used for.

Enrico

Enrico Parisi · Jan 19, 2023 go to post

How is the BS pulling the data? From files? From SQL? Or?

I think you need to parallelize the dequeuing, but I don't think a BS can have more than one job. You can move the dequeuing to a Business Operation, in that case you can assign as many jobs (pool size) as required.

Enrico

Enrico Parisi · Jan 18, 2023 go to post

Hi Con,
I was afraid of that, the $zcvt function does not handle that translation.

You need to modify your code to something like:

set text=$zcvt(text,"O","XML")
set text =$replace(text,">=","≥")
write !,"<PostInfo>"_text_"</PostInfo>"

Enrico

Enrico Parisi · Jan 16, 2023 go to post

Regarding:

Set mgr.StringQuote = ""

I think it should be:

Set mgr.StringQuote = """"

Otherwise you set the StringQuote to null.

Regarding the date/time export, what's the datatype of the columns (class properties) you are exporting?

Enrico

Enrico Parisi · Jan 16, 2023 go to post

Single character greater than or equal symbol is $c(8805), so:

.......
set 
text=^||TestProfile("Table",p,"PostInfo",r)
set text=$replace(text,">=",$c(8805))
.......

Try and let us know.

Enrico

Enrico Parisi · Jan 16, 2023 go to post

In what part/context and how (constant? function/expression? report data?) of a ZEN Report do you want to insert it?

Maybe a little snipped of the report may help us in helping you...

Enrico

Enrico Parisi · Jan 14, 2023 go to post

Often SqlComputed is used for properties that are also calculated like:

Property TestCalc As %String [ Calculated, SqlComputeCode = { Set {*} = ..#TestParam }, SqlComputed ];

but in that case ..#ParamName does not work, this works:

Property TestCalc As %String [ Calculated, SqlComputeCode = { Set {*} = ##class(test.CalcParm).#TestParam }, SqlComputed ];

Enrico

Enrico Parisi · Jan 12, 2023 go to post

SQL Compute Code runs outside the class context, in that circumstance you can use:

##class(YourPkg.YourClassName).#YourParamName

Enrico

Enrico Parisi · Jan 12, 2023 go to post

You can change the port from 57772 to 80 in System Managment Portal: System Administrtion -> Configuration -> Additional Settings -> Startup -> WebServerPort

Or cache.cpf configurtion file:

WebServerPort=57772  to WebServerPort=80

Better, proper and suggested solution: install a properly configured web server using port 80, don't use the little web server installed by Ensemble.

Enrico

Enrico Parisi · Jan 11, 2023 go to post

It's very difficult....nearly impossible to help with the little info provided.

The error does not looks like an IRIS/Caché error, is it an IRIS/Caché table or an external table?

How are you invoking the query? System Management Portal? Embedded SQL? xDBC?

Enrico

Enrico Parisi · Jan 11, 2023 go to post

Exactly for that situation I use:

If ##class(Ens.Job).ShouldBeQuiescent() || ##class(Ens.Job).ShouldTerminate() {
    ; do your closing housekeeping or...whatever..
    Quit
}

In your case maybe only  ShouldTerminate() would be sufficient.

Enrico

Enrico Parisi · Jan 11, 2023 go to post

If you use custom port there is no session, that's expected/by design.

A session (%session) is a %CSP.Session object that is available only when the SOAP service uses a standard request via a properly configured web server (apache, IIS, other), to configure it check the "EnableStandardRequests" setting in the Business Service, configure the Web Application and the web server (or use default namespace Web Application), then invoke the service via the web server port.

In my experience I prefer to use standard request via web server, in general there is no need or valid reason (I can think of) to use custom port, unless you need something very specific, for example you don't have a web server (so...no SMP, something very unusual...).

Enrico

Enrico Parisi · Dec 22, 2022 go to post

I haven't seen a database corruption for many years, I literally forgot the last time I saw it, it may be 15+ years or more. And in the past (last millennium) I've seen and dealt db corruption.

Out of curiosity, what are the symptoms or your corruption? How did it happened?

Enrico Parisi · Dec 22, 2022 go to post

Sorry but I don't understand the problem/issue, starting from 2023 a web server is a prerequisite for IRIS, I's say that is almost mandatory unless you have some very particular use case.

What's the difficulty of installing Apache or IIS in windows?

Providing that IRIS installation properly configure the WEB Server (IIS or Apache), I don't see the difficulty. Or I'm missing something?

Enrico Parisi · Dec 21, 2022 go to post

I don't think alerts are stored in any file, they are stored in the Interoperability Event Log accessible from System Management Portal or via SQL using Ens_Util.Log table alerts have Type=6/Alert

Enrico Parisi · Dec 21, 2022 go to post

Use Microsoft Windows to install IIS.
Once installed you can install InterSystems IRIS, which will ask the user if IIS should be configured.

Unfortunately, as of latest IRIS and any previous IRIS/Caché, after default/standard configuration by install kit the SMP won't work properly without additional manual configuration of IIS.

I suggest ISC to fix this before removing PWS.