Written by

Question Yone Moreno · Aug 17, 2020

Production message filtering: How could we find a substring inside a GlobalCharacterStream?

Hello,

We would need to find messages where a property "pEntrada" of type %GlobalCharacterStream contains "C006"

We have read:

https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=E…

We have tried:

 

The production outputs:

How could we search in fields which are not strings?

Comments

Dmitry Zasypkin · Aug 19, 2020

Hi Yone,

There is the class iscru.util.StreamUtils designed exactly for the purpose to solve problems like yours. The class contains  streamLike() method that can be called directly or from SQL. It can also be used within business rules via iscru.util.FunctionSet.

If you want to enable searching on stream properties with Like/NotLike operators in the Message Viewer, then you would need to import  iscru.util.MsgFilterAssistant class as well, then give  permission to run iscru_util.FunctionSet_streamLike stored procedure to the user, and run the following command in your namespace: 

set ^EnsPortal.Settings("MessageViewer","AssistantClass") = "iscru.util.MsgFilterAssistant"

Once you've done that, you can try Like operator against stream properties in the Message Viewer.

DISCLAIMER: The classes mentioned above have not been used much in real world projects yet. However there are some unit tests in the repo.

HTH, Dmitry

0