Andrew Sklyarov · Nov 8, 2025 go to post

A very interesting article. Thanks!

Little note: for DynamicSearchPerson sample, I believe it's a good idea to open WHERE by default using "WHERE 1=1". For not worrying about what combination of condition fields will be used. And adding all conditions with just AND. Unfortunately, I have no such pretty solution for %Execute.

Andrew Sklyarov · Nov 4, 2025 go to post

It's unbelievable work! I love PlantUML! And visual traces in IRIS, it's almost sequence diagrams, isn't it?

Andrew Sklyarov · Nov 3, 2025 go to post

Yeah, thanks! Added more details to "Level one (domains)" to clarify my point about it. I believe not only the company name might be a root delimiter, but it's an excellent choice for most cases, anyway. I agree.

Andrew Sklyarov · Oct 9, 2025 go to post

Thanks! It's interesting. Keeping different pool sizes may be more important to me than an active flag. Because I have many Business Operations with pool sizes like 100 or more, and on the DEV environment just not enough memory for it.

Andrew Sklyarov · Oct 8, 2025 go to post

I'm glad to hear that the platform solution works well. I should try it too. But need the actual version of IRIS, becouse to control what is active across environments - it's very important, I believe

Andrew Sklyarov · Oct 8, 2025 go to post

That's what I was thinking when I described these options: 4, it's just not an automated version of 2. I would use copy and paste or some merging to add the same items across Productions. And automate merging of content while keeping individual settings - it's the obvious next step, right? 

Yes, it's a good solution if we want to keep a different structure of Productions (to keep development stuff on DEV Production). But I believe it's not a big problem, I'm just committing all new services in a disabled state (actually, they're disabled automatically). Therefore, stuff under development, yeah, can get to PROD but in an inactive state.

Just thinking out loud, so to speak...

Andrew Sklyarov · Sep 24, 2025 go to post

Looks a bit complex... For my purposes, I just took 2 lines from the ISC code. If I got it correct, and it's just a reading of Credentials.

If '$ISOBJECT(..%CredentialsObj) Do ..CredentialsSet(..Credentials) If '$ISOBJECT(..%CredentialsObj) { Set tSC=$$$EnsError($$$EnsErrNoCredentials,..Credentials) Quit }

w ..%CredentialsObj.Username

Update: Oh, your function works outside of the business host, okay 🙂

Andrew Sklyarov · Sep 12, 2025 go to post

For me, it was a surprise that COS has no priority for the match (and logical) operation. I mean 3+3*2 = 12, not 9.

Andrew Sklyarov · Jun 21, 2025 go to post

I believe it is a good way if you use ORM:

Property CreatedAt As%TimeStamp [ InitialExpression = {$ZDATETIME($HOROLOG, 3)}, Required ];
Andrew Sklyarov · Jun 15, 2025 go to post

Hi everyone,

  • My name is Andrew 
  • I am living in Thailand 
  • I am a Senior Software Engineer, and sometimes work as an Integration Architect 
  • I work on and support a huge implementation of IRIS as an Enterprise Service Bus. Actually, I think it is one of the biggest IRIS instances that is used exactly as a Service Bus (maybe the biggest). We do not have a very intensive inbound data flow, this is around 300 RPS, but my Productions contains thousands of Business Hosts, dozens of combined systems, and an amount of transmitted data of around 2 TB per week. So, my specialization is Interoperability. Feel free to ask me about app integration. BTW, I'm looking for an additional job for now.
  • My hobby is sports. Here in Thailand, all men must learn Muay Thai. It's a joke, of course, but Thailand and Thai boxing it is like Dagestan and wrestling. Maybe one day I'll change all these boring globals to the fighter's way 😁 (subscribe to my fighter Instagram: https://www.instagram.com/andrey.sklyaroff )
  • And my Link: https://www.linkedin.com/in/andrey-sklyaroff
Andrew Sklyarov · Mar 27, 2025 go to post

To exclude the version with inbound parameter (and too big data in selected field), I modified the query as:

"with st as (select * from prod.stocks limit 1) select json_agg(row_to_json(st)) #>> '{}' from st"

The error remained the same

Andrew Sklyarov · Mar 26, 2025 go to post

I'm sure the problem is in a selected field. The warehouse has a varchar type on the database side and %String on the IRIS side. It's just a warehouse ID. I need to select a big JSON string as one field, one record.

I could go with this problem to the database team, but in external SQL console with the same driver (I used SQuirreL SQL) all works fine.

My main hypothesis is that there is some error on the Java Gateway level. But I don't understand what the Long type value means here. Long, it's a number, right? Selected field have type text.