Run a Subgraph only if a condition is met

Hello,

I am trying to make a graph where I compare 2 files. If I have the same data send an email with one message - something like “Files are OK” and if not send other message … “Files are not OK” both not both together.

I can add an ExtFilter but how can I tell what mailwriter to run? I tried subgraph - but subgraph did run on both ports of the ExtFilter, I tried “Enable with condition” but I learned that a parameter cannot be changed during graph execution.

Anybody that can help?!

Thank you,
Adrian

Hi,

I’m sending a graph that should solve this issue. Basis is to convert the input files to hashes, which are compared with each other. There is a message, on the output port, which should be used in the body of email (“Files are OK” or “Files are not OK”). So you only need to replace Trash by EmailSender.

Unfortunately, this solution will only work with file sizes up to 32 megabytes. If you want to work with larger files, you must change Engine Properties, specifically RECORD_LIMIT_SIZE and FIELD_LIMIT_SIZE, from default to desired size. Here you can find, how to do it: Engine Properties

Or you can try this:
The second solution is to use SystemExecute component and the command “comp” for windows or “diff” for linux.

Please take a look at the graph below and try to use one of its parts.

Hope this helps,

Hi,

You can also try to use a Reformat before EmailSender with conditions: " iif condition “x” is met, send this message, iif not → send this message".

Regards,
Roxana

Hi krizovav and Roxana,

Both solutions worked like a charm.

Thanks a lot for your help,
Adrian